nimbus-eth1/nimbus
Jamie Lokier e60ad129a2
Transaction: New object `TransactionHost` for "EVMC host services"
`TransactionHost` represents the interface to the EVM from the application once
we've fully transitioned to EVMC.  It represents a managed EVM call, and the
"EVMC host" side of the host<->EVM boundary.

This holds transaction state which sits outside the EVM, but a pointer to this
is passed around by the EVM as _opaque_ type `evmc_host_context`.

To the EVM, this offers "host services", which manage account state that the
EVM cannot do, such as balance transfers, call costs, storage, logs, gas
refunds, nested calls and new contract addresses.  The EVM has no direct access
to the account state database or network; it's all via "host services".

To the application (host side), this object represents a managed EVM call, with
inputs, a method to run, outputs, hidden transaction state, and later async
scheduling.  It is to replace `Computation` on the application side, while
`Computation` will remain but just be for the EVM side.

Signed-off-by: Jamie Lokier <jamie@shareable.org>
2021-05-28 12:12:02 +01:00
..
db drop PublicNetwork enum usage and replace it with NetworkId 2021-05-20 14:04:16 +07:00
graphql add more query fields and resolvers to graphql api 2021-05-18 07:32:03 +07:00
p2p add validateKinship in persistBlocks of nimbus/p2p/chain.nim 2021-05-27 16:28:26 +07:00
rpc implement "net_nodeInfo" rpc 2021-05-19 16:35:13 +07:00
transaction Transaction: New object `TransactionHost` for "EVMC host services" 2021-05-28 12:12:02 +01:00
utils Deep copy semantics for LRU cache 2021-05-26 11:12:52 +01:00
vm EVM: Move where `continuation` is cleared to fix a potential stall 2021-05-27 12:16:37 +01:00
vm2 drop PublicNetwork enum usage and replace it with NetworkId 2021-05-20 14:04:16 +07:00
block_types.nim reduce compiler warnings 2019-11-13 21:49:39 +07:00
chain_config.nim drop PublicNetwork enum usage and replace it with NetworkId 2021-05-20 14:04:16 +07:00
conf_utils.nim add validateKinship in persistBlocks of nimbus/p2p/chain.nim 2021-05-27 16:28:26 +07:00
config.nim add missing poaEngine configuration in config.nim 2021-05-24 14:35:47 +07:00
constants.nim Clear up meaning of `ZERO_ADDRESS`, delete `CREATE_CONTRACT_ADDRESS` 2021-05-27 12:14:51 +01:00
errors.nim remove unused eraseReturnData 2020-01-20 18:36:58 +02:00
genesis.nim drop PublicNetwork enum usage and replace it with NetworkId 2021-05-20 14:04:16 +07:00
genesis_alloc.nim add goerli testnet genesis data[skip ci] 2020-04-09 19:13:17 +03:00
launcher.nim Premix-related changes 2019-01-28 12:38:23 +02:00
lightchain_shell.nim Some renames 2018-05-28 13:22:28 +03:00
makefile removed circular import dependencies 2021-04-28 15:24:14 +03:00
nim.cfg NAT port mapping 2019-04-17 03:56:28 +02:00
nimbus.nim don't mix customBootNodes and bootNodes usage 2021-05-20 14:04:17 +07:00
random_keys.nim move rng to configuration 2020-07-21 00:16:59 +07:00
tracer.nim fixes wrong usage of `chainId` in places where it should be networkId 2021-05-12 09:45:09 +07:00
transaction.nim EIP-2930: optional access list 2021-05-16 19:54:48 +07:00
utils.nim implement more eth rpc and keystore management 2020-07-23 14:54:32 +07:00
validation.nim reduce compiler warnings 2019-11-13 21:49:39 +07:00
vm_compile_info.nim print compiler warning about the VM used 2021-04-28 15:24:14 +03:00
vm_computation.nim re-named compu_helper.nim => computation.nim 2021-04-28 15:24:14 +03:00
vm_gas_costs.nim re-named v2gas_costs.nim to its original name v2gas_costs.nim 2021-04-28 15:24:14 +03:00
vm_internals.nim re-named compu_helper.nim => computation.nim 2021-04-28 15:24:14 +03:00
vm_message.nim re-named some v2*.nim sources to its original name *.nim (without the v2) 2021-04-28 15:24:14 +03:00
vm_precompiles.nim re-named some v2*.nim sources to its original name *.nim (without the v2) 2021-04-28 15:24:14 +03:00
vm_state.nim re-named some v2state_transactions.nim to its original name without the v2 2021-04-28 15:24:14 +03:00
vm_state_transactions.nim Transaction: Prepare txRefundGas to support txCallEvm 2021-05-03 19:51:20 +01:00
vm_types.nim re-named some v2*.nim sources to its original name *.nim (without the v2) 2021-04-28 15:24:14 +03:00
vm_types2.nim eliminated v2opcode_values, v2forks in favour of op_codes, forks_list 2021-04-28 15:24:14 +03:00