Laconic state machine
Go to file
Federico Kunze 1aa8c7e736
evm: refactor state transition (#41)
* evm: keeper statedb refactor

* keeper: implement stateDB account, balance, nonce and suicide functions

* keeper: implement stateDB code and iterator functions

* keeper: implement stateDB log and preimage functions

* update code to use CommitStateDB

* tests updates

* journal changes (wip)

* cache fields

* journal and logs

* minor cleanup

* evm: state transition refactor

* evm: unpack revert errors

* evm: update state transition (wip)

* evm: remove journal related changes

* evm: delete empty account code and storage state

* update gas limit

* evm: header hash to/from context

* evm: minor params and state transition changes

* ante: state transition changes

* ante: refactor default sig gas consumer

* ante: ignore gas costs from ops other than intrinsic gas

* ante: CanTransferDecorator

* evm: refund gas

* update comments

* state transition comments

* ante: CanTransfer and AccessList decorator tests

* evm: cleanup state transition

* ignore nonce increment during ante handler on contract creation

* fix ante tests

* more test fixes
2021-06-02 05:06:37 -04:00
.github repo: update collaborators (#32) 2021-05-19 09:35:22 -04:00
app evm: refactor state transition (#41) 2021-06-02 04:52:53 -04:00
client evm: fix EndBlock panic (#51) 2021-05-27 05:26:01 -04:00
cmd/ethermintd startport: setup (#27) 2021-05-20 03:44:07 -04:00
codec conflicts 2021-04-17 12:00:07 +02:00
crypto rpc, evm: secure tx signing (#20) 2021-05-12 09:08:31 -04:00
docs evm: error and block hash map updates (#60) 2021-05-31 10:54:59 -04:00
ethereum/rpc evm: refactor state transition (#41) 2021-06-02 04:52:53 -04:00
networks/local build: fix docker compose (#46) 2021-05-26 06:58:04 -04:00
proto/ethermint evm: error and block hash map updates (#60) 2021-05-31 10:54:59 -04:00
scripts build: fix docker compose (#46) 2021-05-26 06:58:04 -04:00
tests keeper: StateDB unit tests (#47) 2021-06-02 04:06:12 -04:00
third_party/proto cleanup proto 2021-04-19 09:10:57 +02:00
types evm: refactor state transition (#41) 2021-06-02 04:52:53 -04:00
version more fixes 2021-04-18 18:39:15 +02:00
x/evm evm: refactor state transition (#41) 2021-06-02 04:52:53 -04:00
.clang-format conflicts 2021-04-17 12:00:07 +02:00
.gitignore startport: setup (#27) 2021-05-20 03:44:07 -04:00
.golangci.yml update tools configs (#611) 2020-11-24 16:43:08 +01:00
.mergify.yml update tools configs (#611) 2020-11-24 16:43:08 +01:00
buf.yaml stargate: proto files (#679) 2021-01-07 18:45:32 -03:00
CHANGELOG.md rpc: fix empty root and uncle hash (#45) 2021-05-26 06:33:24 -04:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2018-07-17 11:52:20 -04:00
codecov.yml faucet: remove module (#678) 2021-01-08 10:25:02 -03:00
config.yml startport: setup (#27) 2021-05-20 03:44:07 -04:00
CONTRIBUTING.md Contributor guidelines (#762) 2021-02-02 10:06:15 -05:00
docker-compose.yml build: fix docker compose (#46) 2021-05-26 06:58:04 -04:00
Dockerfile conflicts 2021-04-17 12:00:07 +02:00
go.mod ante: AnteHandler changes from state transition refactor (#56) 2021-05-31 05:05:32 -04:00
go.sum ante: AnteHandler changes from state transition refactor (#56) 2021-05-31 05:05:32 -04:00
gometalinter.json Upgrade geth and cleanup 2018-09-28 17:40:58 -04:00
init.sh startport: setup (#27) 2021-05-20 03:44:07 -04:00
LICENSE Initial commit 2018-06-10 14:25:18 +01:00
Makefile tests: fix script (#43) 2021-05-25 04:46:10 -04:00
README.md build: require go 1.15+ (#610) 2020-11-20 19:31:57 +01:00

Ethermint

Ethermint is a scalable, high-throughput Proof-of-Stake blockchain that is fully compatible and interoperable with Ethereum. It's build using the the Cosmos SDK which runs on top of Tendermint Core consensus engine.

WARNING: Ethermint is under VERY ACTIVE DEVELOPMENT and should be treated as pre-alpha software. This means it is not meant to be run in production, its APIs are subject to change without warning and should not be relied upon, and it should not be used to hold any value. We will remove this warning when we have a release that is stable, secure, and properly tested.

Note: Requires Go 1.15+

Quick Start

To learn how the Ethermint works from a high-level perspective, go to the Introduction section from the documentation.

For more, please refer to the Ethermint Docs, which are also hosted on docs.ethermint.zone.

Tests

Unit tests are invoked via:

make test

To run JSON-RPC tests, execute:

make test-rpc

There is also an included Ethereum mainnet exported blockchain file in importer/blockchain that includes blocks up to height 97638. To execute and test a full import of these blocks using the EVM module, execute:

make test-import

You may also provide a custom blockchain export file to test importing more blocks via the --blockchain flag. See TestImportBlocks for further documentation.

Community

The following chat channels and forums are a great spot to ask questions about Ethermint: