EscanBE / evermint

Evermint is a fork of open source Evmos, maintains bug fixes, customization and enable developers to fork and transform to their chain, fully customized naming, in just 2 steps. For research and development purpose.
GNU Lesser General Public License v3.0
2 stars 3 forks source link

Feature Request: `x/evm` indexing EvmBlock for faster Json-RPC #90

Open VictorTrustyDev opened 7 months ago

VictorTrustyDev commented 7 months ago

Problem: RPC is complex with fetching data from everywhere in order to build response for Json-RPC queries. That can down performance.

Solution: build entire EVM block then indexes it during EndBlock. Later can just get block and return corresponding result for related Json-RPC endpoints.

Props:

Cons:

Backward compatible for existing chains:

Steps:

Children tasks:

VictorTrustyDev commented 7 months ago

WIP!!!

Problems need to be solved:

x/evm new design relates to store & module:

Module ABCI events:

Store:

By using fixed key for new stores, data is prune-able on prune-nodes.

Events:

New specs:

RPC endpoints are targeted to only fetch from

EVMTxIndexer:

Backward compatible:

Unknown result:

VictorTrustyDev commented 7 months ago

Spec changed by the spec defined in 2nd post (above):