-
Notifications
You must be signed in to change notification settings - Fork 189
Document and publish the future roadmap #223
Comments
Feature:
|
@ratranqu Have you considered the Status() endpoint on Tendermint? |
@adrianbrink: thx for your suggestion. I haven't looked at the Status() endpoint in the latest version of tendermint. However, on 9.x (used as the backend for hyperledger/burrow), it looks like it doesn't tell me that a node which for instance had to be restarted from scratch (i.e. from latest_block_height=0) is still catching up with the rest of the chain? i.e. that I am not yet able to send transactions to the chain through that node (they remain in unconfirmed tx until the node has caught up). That's what I'm after. Does it make sense? |
Hey Andrian, |
@adrianbrink: actually, with the fix from #194, eth_syncing() could do the trick? |
@adrianbrink I think another thing we should think about is perhaps finding different machine types and run Ethermint on them and that can help us determine what works and what doesn't e.g #221. IMHO it'd make Ethermint look attractive to enterprise if we can provide guarantees of it being stable across different machine environments. Perhaps this is low priority, but it might help us dodge curveballs such as not suddenly working on a new developer's machine. |
#241 covers this |
Could we make this issue a superset of #184? |
@odeke-em Yes absolutely |
* evm: move Keeper and Querier to /keeper package * keeper: update keeper_test.go * fix format * evm: use aliased types * bump SDK version to v0.38.1 * app: updates from new version * errors: switch sdk.Error -> error * errors: switch sdk.Error -> error. Continuation * more fixes * update app/ * update keys and client pkgs * build * fix tests * lint * minor changes * changelog * address @AustinBell comments * Fix keyring usage in rpc API and CLI * fix keyring * break line * Misc cleanup (cosmos#188) * evm: move Begin and EndBlock to abci.go * evm: use expected keeper interfaces * app: use EthermintApp for integration and unit test setup * evm: remove count type; update codec * go mod verify * evm: rename msgs for consistency * evm: events * minor cleanup * lint * ante: update tests * changelog * nolint * evm: update statedb to create ethermint Account instead of BaseAccount * fix importer test * address @austinabell comments * update README * changelog * evm: update codec * rename GasLimit->Gas and Price ->GasPrice * msg cleanup and tests * cleanup TxData * fix marshaling * revert rename * move types * evm/keeper: querier tests * switch MarshalLengthPrefixed -> BinaryBare; remove panics * fix event sender * fix panic * try fix txDecoder error * evm: handler tests * evm: handler MsgEthermint test * fix tests * store logs in keeper after transition (cosmos#210) * add some comments * begin log handler test * update TransitionCSDB to return ReturnData * use rlp for result data encode/decode * update tests * implement SetBlockLogs * implement GetBlockLogs * test log set/get * update keeper get/set logs to use hash as key * fix test * move logsKey to csdb * attempt to fix test * attempt to fix test * attempt to fix test * lint * lint * lint * save logs after handling msg * update k.Logs * cleanup * remove unused * fix issues * comment out handler test * address comments * lint * fix handler test * address comments * use amino * lint * address comments * merge * fix encoding bug * minor fix * rpc: error handling * rpc: simulate only returns gasConsumed * rpc: error ineffassign * evm: handler test * go: bump version to 1.14 and SDK version to latest master * rpc: fix simulation return value * breaking changes from SDK * sdk: breaking changes; build * tests: fixes * minor fix * proto: ethermint types attempt * proto: define EthAccount proto type and extend sdk std.Codec * evm: fix panic on handler test * evm: minor state object changes * cleanup * tests: update test-importer * fix evm test * fix pubkey registration * lint * cleanup * more test checks for importer * minor change * codec fixes * rm init func * fix importer test build * fixes * test fixes * fix bloom key * rm unnecesary func * remove comment Co-authored-by: austinabell <[email protected]> Co-authored-by: noot <[email protected]>
This issue will collect all the missing and needed features before
ethermint
can be considered production ready. Please add your wishes and concerns as comments to allow us to better prioritise.There are generally two fronts that ethermint needs improvement on.
High Level Roadmap
1. User experience
2. Core logic
3. IBC and Validator Set changes
4. How can we use the light-client capabilities of Tendermint to our advantage in Ethermint?
Features
1. User experience
A user should not have to worry about initialisation. A user installs the ethermint binary and is immediately ready to connect to the testnet or to setup a private network. The binary should ship with the initialisation files for both tendermint and ethermint to connect to our testnet.
In order to connect to the testnet a user should specify
ethermint --testnet
and any number of other flags to configure the ethereum node. Issuing this simple command initialises the tendermint instance and the ethermint instance and starts both. There should be no error output and a user should immediately be able to use any tool over RPC.In order to start a private local network, a user should specify
ethermint --development
and any number of other flags to configure the ethereum node. As above this initialises and starts everything needed.In order to connect to the live network, a user simply needs to issue
ethermint
and he will immediately fast-sync to the public network.One solution to getting the binaries installed could be to specify it as a dependency in brew and otherwise to have an install script that automatically also pulls the
tendermint
binaries.#282 #284 #244
2. Core Logic
TODO
3. IBC
TODO
4. Light Client
TODO
Concrete Features and Improvements
Enable coin movements over IBC
Remove all command line flags from go-ethereum and instead use a
config.toml
file to configure the ethereum stackconfig.toml
file in the directory set via--home
genesis.json
file in the directory set via--home
Simplify the command line flags
--home
- defines the base directory for ethermint--help
--tendermint_addr
- address to connect to tendermint core--abci_laddr
- address that the ABCI server will listen on--verbosity
- log level, that get translated to the ethereum stack (config.toml file will override)Simplify the available commands
start
- initialises and starts the ethermint instanceversion
unsafe_reset_all
tests are run against a live network on CircleCi
benchmarking suite is run against
ethermint
on every buildRPC compliance suite with
go-ethereum
and `parity is added during testsCI should run across multiple different architectures.
Decide which RPC endpoint from go-ethereum we need to override to make them sensible
Implement a bettre framework then
ethereum/api.go
to override those endpointsTransition to viper cli
I am looking forward to all suggestions.
Once we have decided we need to make this easily sharable with #184.
The text was updated successfully, but these errors were encountered: