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
geth
oropenethereum
- configures
geth
oropenethereum
to 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.