ethnode is a zero configuration tool to run a local Ethereum node. It supports both Openethereum and Geth.
Try it out:
npm install -g ethnode
ethnode
Or docker:
docker run -it ghcr.io/vrde/ethnode:latest
ethnode automatically:
- downloads the latest stable version of
gethoropenethereum - configures
gethoropenethereumto run in a single node network using the clique (Geth) or InstantSeal (Openethereum) consensus engine (transactions are processed instantly) - provides 10 unlocked accounts with 100ETH each
- enables all RPC endpoints (personal, db, eth, net, web3, debug and more)
- allows CORS from any domain (so you can use it with remix)
By default ethnode runs geth. If you want to run openethereum type ethnode openethereum.
Every time you run ethnode, it creates a new temporary directory to store the data. If you want to persist the data in a specific directory use:
ethnode --workdir=mydata
Sometimes you want to allocate Ether to some specific addresses (maybe some other accounts you have on MetaMask). This is an alternative approach to import a private key to your MetaMask extension.
ethnode --allocate=0xad7b5e515e557b2dc4d0625d206394b502412003,0xecdd5b467e38731bfad4bd75faa45c7d58e41b49
This is quite handy if you want to have a precommit hook that runs tests before committing, or if you want to integrate with a continuous integration system like travis.
ethnode --execute="truffle test"
Openethereum has a nice feature to run it as a private development chain (aka test RPC).
While testing it, I run into some problems, like:
- address management
- outdated genesis file
- the default configuration (
--config dev) doesn't:- open up CORS
- unlock the test keys
More or less for the same reasons mentioned above.
Ganache sometimes is not enough.