- gets content of master branch of
poa-network-consensus-contractsrepo - compiles all POA Network contracts
- gets binary code of POA Network Consensus contract
- gets spec.json from
sokolbranch ofchain-specrepo - generates custom private, public key and password of MoC and save them to
./keys/mocfolder - updates spec.json with new MoC and binary code of POA Network Consensus contracts
- starts MoC Parity node
- deploys secondary POA Network contracts
- gets content of master branch of
poa-scripts-mocrepo - generates 1 initial key with password and copy it to
./keys/initial_keysfolder - gets content of sokol branch of
poa-dapps-keys-generationrepo - launches Ceremony DApp is locally builded from repo
- runs e2e tests on Ceremony DApp
- saves generated production keys with Ceremony DApp to
./keysfolder - runs validator node
- gets content of sokol branch of
poa-dapps-validatorsrepo - launches Validators DApp is locally builded from repo
- runs e2e tests on Validators DApp
- gets content of sokol branch of
poa-dapps-votingrepo - launches Voting DApp is locally builded from repo
- runs e2e tests on Governance DApp
- Linux, Mac OS
- Parity 1.9.2+
- Google Chrome
There are some options to start POA Network test setup depending on your needs:
- Start MoC node - launches only MoC node, generates initial key
- Launch DApps - launches Ceremony, Validators, Governance DApps
- Launch Ceremony - conducts Ceremony
- Set validator data - set validators personal data with Validators DApp
- Add validator from Governance - add new validator from Governance
- Launch added validator node - start new validator's node
npm inpm run start-moc-setup
At the successful end of POA test setup start you'll see this message ### POA test setup is configured ###
- RPC of Parity node with unlocked MoC account will be on
http://localhost:8545 - Spec of the network is generated to
./specfolder - MoC keystore file, password, private key is generated to
./keys/mocfolder - Parity config of MoC node is generated to
./nodes/parity-moc/moc.tomlfile - Addresses of governance smart contracts are generated to
./submodules/poa-network-consensus-contracts/contracts.json - ABI of smart contracts are generated to
./submodules/poa-network-consensus-contracts/build/contracts
Note: can be started after previous step is completed
npm run launch-dapps
- Ceremony Dapp is started on
http://localhost:3000 - Validators Dapp is started on
http://localhost:3001 - Governance Dapp is started on
http://localhost:3002
Note: can be started after previous step is completed
For Ubuntu users: you should first install and use X virtual framebuffer if you want to move all graphical operations to the virtual memory without showing any screen output.
sudo apt-get -y install xvfb
export DISPLAY=:99.0
sudo start-stop-daemon --start --quiet --pidfile /var/run/xvfb.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1024x768x24 -ac +extension GLX +render -noreset
npm run launch-ceremony-light
- 1 initital key is generated
- Initial key password, private key is generated to
.keys/initial_keysfolder - e2e test of Ceremony DApp is executed
- Mining address, password and private key is copied to
./keys/mining_keysfolder - Payout address, password and private key is copied to
./keys/payout_keysfolder - Voting address, password and private key is copied to
./keys/voting_keysfolder - Initital key is removed
- Most ETH from initial key is transfered to voting keys
- Validator node is started at RPC ports
8550
Note: can be started after previous step is completed
npm run set-validators-data-light
- 1 validator filled the form with mock personal data in Validator Dapp
Note: can be started after previous step is completed
npm run add-validator
- New validator is added to validators' set through Governance DApp
Note: can be started after previous step is completed
npm run start-new-validator-node
- New validator node is started at RPC port
8553
npm run stop-test-setup
For Ubuntu users: you should also stop virtual framebuffer if you started it before.
sudo start-stop-daemon --stop --quiet --pidfile /var/run/xvfb.pid --remove-pidfile