Extracted from 7nodes Example for a single node installation.
Supported machine : Ubuntu
Incoming ports : 21000, 22000, 50401, 9001
Project structure : same as in the 7nodes example for a single node: qdata/dd1, qdata/c1, qdata/logs
Steps to deploy quorum
-
git clone https://github.com/biplavosti/Quorum.git -
Installation : Golang, Java, Quorum, Tessera and other libraries (note user input is required when installing Java, and some other libraries)
bash bootstrap.shIn step 3 geth not found error might shows up. So, better logout and re-login.
-
Initialize blockchain, generate node key, tessera keys and config file
bash raft-init.shThe enode hash is printed on terminal. Or check the nodekey file in qdata/dd1/geth/ directory and convert it to enodehash.
Add the enode url in the permission-nodes.json (sample enode urls is preloaded in the file - remove them) in all the nodes.
-
Copy permissioned-nodes.json to working directory
cp permissioned-nodes.json qdata/dd1/permissioned-nodes.json cp permissioned-nodes.json qdata/dd1/static-nodes.json -
Add Tessera peers url in qdata/c1/tessera_config.json in all nodes.
Follow above commands and procedures in all the nodes before proceeding further. After all the required nodes are set up proceed to 6)
-
Start node and teserra
bash raft-start.sh
If more nodes are needed to add in an existing blockchain system :
a) follow above steps upto 3 to get enodehash of the new node
b) Open Geth JS Console in any one of the already connected node and run :
raft.addPeer(enode_url)
This will return the raft id of the new node.
c) open raft_start.sh, add following parameter in the geth command
--raftjoinexisting raftid
d) Add enode url in the permissioned-nodes.json in all nodes.
e) follow steps 5 and 6