Remove outdated things, make it more useful.
2.4 KiB
NEO-GO consensus node
Neo-go node can act as a consensus node. It uses pure Go dBFT implementation from nspcc-dev/dbft.
How to start your own privnet with neo-go nodes
Using existing Dockerfile
neo-go comes with two preconfigured private network setups, the first one has four consensus nodes and the second one uses single node. Nodes are packed into Docker containers and four-node setup shares a volume for chain data.
Four-node setup uses ports 20333-20336 for P2P communication and ports 30333-30336 for RPC (Prometheus monitoring is also available at ports 20001-20004). Single-node is on ports 20333/30333/20001 for P2P/RPC/Prometheus.
NeoGo default privnet configuration is made to work with four node consensus, you have to modify it if you're to use single consensus node.
Node wallets are located in the .docker/wallets
directory where
wallet1_solo.json
is used for single-node setup and all the other ones for
four-node setup.
Prerequisites
docker
docker-compose
go
compiler
Instructions
You can use existing docker-compose file located in .docker/docker-compose.yml
:
make env_image # build image
make env_up # start containers, use "make env_single" for single CN
To monitor logs:
docker-compose -f .docker/docker-compose.yml logs -f
To stop:
make env_down
To remove old blockchain state:
make env_clean
Start nodes manually
-
Create a separate config directory for every node and place corresponding config named
protocol.privnet.yml
there. -
Edit configuration file for every node. Examples can be found at
config/protocol.privnet.docker.one.yml
(two
,three
etc.).- Note that it differs a bit from C# NEO node json config: our
UnlockWallet
contains an encrypted WIF instead of the path to the wallet. - Make sure that your
MinPeers
setting is equal to the number of nodes participating in consensus. This requirement is needed for nodes to correctly start and can be weakened in future. - Set you
Address
,Port
andRPC.Port
to the appropriate values. They must differ between nodes. - If you start binary from the same directory, you will probably want to change
DataDirectoryPath
from theLevelDBOptions
.
- Note that it differs a bit from C# NEO node json config: our
-
Start all nodes with
neo-go node --config-path <dir-from-step-2>
.