Laconic state machine
Go to file
Emmanuel T Odeke a2f246c2a6
x/evm/keeper: use the fastest slice making idiom for Keeper.EthereumTx.Logs (#827)
Uses the fastest slice making idiom of creating the well known
size of a slice using

    make([]sdk.Attribute, len(response.Logs))
    for i, log := range response.Logs {
        txLogAttrs[i] = ...
    }

instead of

    make([]sdk.Attribute, 0)
    for _, log := range response.Logs {
        txLogAttrs = append(txLogAttrs, ...)
    }

which had a few problems:
1. Using 0 for size then appending is quite slow yet we know the exact size
2. Using append instead of indexing is slower

If we examine the advisory at https://bencher.orijtech.com/perfclinic/sliceupdate/
and the verdict at https://bencher.orijtech.com/perfclinic/sliceupdate/#verdict
this new scheme shows a massive improvement in that call site.

Fixes #825
2021-12-14 00:05:12 +00:00
.bencher ci: add bencher config (#652) 2021-10-08 12:07:03 +00:00
.github build(deps): bump actions/setup-node from 2.4.1 to 2.5.0 (#803) 2021-11-30 11:25:26 +01:00
app ante: remove unused AccessListDecorator (#797) 2021-11-30 09:06:34 +01:00
client fix: gosec issues (#779) 2021-11-25 15:12:57 +00:00
cmd feat: store migration setup (#794) 2021-11-29 16:46:20 +01:00
contrib/scripts ci: liveness test (#498) 2021-08-26 15:21:43 +00:00
crypto crypto: updates from reviews (#535) 2021-09-07 17:29:24 +00:00
docs rpc: debug_traceTransaction fails for succesful tx (#720) 2021-11-09 18:38:22 +00:00
encoding encoding: rm MsgEthereumTx custom support in TxConfig (#714) 2021-11-02 11:24:24 +01:00
networks/local [Snyk] Security upgrade golang from 1.16.7 to 1.16 (#670) 2021-10-14 07:39:48 +00:00
proto rpc: debug_traceTransaction fails for succesful tx (#720) 2021-11-09 18:38:22 +00:00
rpc fix: NobaseFee value should be consistent with height (#831) 2021-12-13 23:55:41 +00:00
scripts tests: integration tests with JSON-RPC client (#704) 2021-11-14 14:34:10 +01:00
server x/evm/keeper: save 24B with Go in-condition variable idiom (#828) 2021-12-14 00:51:36 +01:00
tests tests: eth_sendRawTx (#804) 2021-12-01 09:38:59 +01:00
testutil/network evm: ForEachStorage semantic not compatible with go-ethereum (#798) 2021-11-30 10:34:33 +00:00
third_party/proto evm: EIP1559 & go-ethereum related updates (#469) 2021-08-25 14:45:51 +00:00
tools tests: integration tests with JSON-RPC client (#704) 2021-11-14 14:34:10 +01:00
types evm: check height overflow (#597) 2021-09-28 09:48:11 +00:00
version more fixes 2021-04-18 18:39:15 +02:00
x x/evm/keeper: use the fastest slice making idiom for Keeper.EthereumTx.Logs (#827) 2021-12-14 00:05:12 +00:00
.clang-format ci: enable backport for v0.8 and v0.7 (#784) 2021-11-25 11:06:30 +00:00
.dockerignore build: fix docker setup (#337) 2021-08-04 09:30:13 +00:00
.gitattributes add gitattributes file (#567) 2021-09-16 08:36:08 +00:00
.gitignore build: fix docker setup (#337) 2021-08-04 09:30:13 +00:00
.golangci.yml x/evm/keeper: save 24B with Go in-condition variable idiom (#828) 2021-12-14 00:51:36 +01:00
.goreleaser.yml ci: fix goreleaser (#708) 2021-10-29 15:56:09 +02:00
.mergify.yml docs: backport changelog updates (#807) 2021-12-01 09:58:41 +01:00
buf.work.yaml evm: EIP1559 & go-ethereum related updates (#469) 2021-08-25 14:45:51 +00:00
CHANGELOG.md x/evm/keeper: use the fastest slice making idiom for Keeper.EthereumTx.Logs (#827) 2021-12-14 00:05:12 +00:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2018-07-17 11:52:20 -04:00
codecov.yml all: linter (#532) 2021-09-05 11:03:06 +00:00
CONTRIBUTING.md doc: duplicated documentation removed (#603) 2021-09-29 10:37:10 +00:00
docker-compose.yml build: fix docker setup (#337) 2021-08-04 09:30:13 +00:00
Dockerfile build: fix docker setup (#337) 2021-08-04 09:30:13 +00:00
go.mod build(deps): bump github.com/spf13/viper from 1.9.0 to 1.10.0 (#833) 2021-12-13 20:11:11 +01:00
go.sum build(deps): bump github.com/spf13/viper from 1.9.0 to 1.10.0 (#833) 2021-12-13 20:11:11 +01:00
init.bat feat: update chain-id format (#447) 2021-08-17 14:11:26 +00:00
init.sh fix: set EVM debug based on tracer config (#746) 2021-11-16 08:57:03 +00:00
LICENSE docs: re-license to LGPLv3 (#800) 2021-11-30 09:22:21 +01:00
Makefile fix: proto-gen broken env var (#723) 2021-11-06 22:01:58 +00:00
README.md Update README.md (#736) 2021-11-09 19:50:27 +00:00
starport.yml ci: liveness test (#498) 2021-08-26 15:21:43 +00:00

Ethermint

banner

Ethermint is a scalable and interoperable Ethereum library, built on Proof-of-Stake with fast-finality using the Cosmos SDK which runs on top of Tendermint Core consensus engine.

Note: Requires Go 1.17+

Installation

For prerequisites and detailed build instructions please read the Evmos Installation instructions. Once the dependencies are installed, run:

make install

Or check out the latest release.

Quick Start

To learn how the Ethermint works from a high-level perspective, go to the Introduction section from the documentation. You can also check the instructions to Run a Node.

For an example on how Ethermint can be used on any Cosmos-SDK chain, please refer to Evmos.

Community

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

Contributing

Looking for a good place to start contributing? Check out some good first issues.

For additional instructions, standards and style guides, please refer to the Contributing document.

Careers

See our open positions on Cosmos Jobs, Notion, or feel free to reach out via email.