synechron-finlabs / quorum-maker

Utility to create and monitor Quorum nodes
Apache License 2.0
196 stars 97 forks source link

Quorum maker join network and truffle issues #101

Open romisalve opened 5 years ago

romisalve commented 5 years ago

I have created a network on a virtual machine and joined another node to it. Everything seems to work fine, I am able to access both managers UI but I have encountered some difficulties.

The genesis.json of the attach node does not have any account besides the one of the node used to create the network. Should I modify something? On the web UI of my second node there are some accounts with balance 0, but in the genesis.json there is none.

image

That is the web UI of the second node, shows 2 accounts with no balance, and on the genesis, on the "alloc" field, there is only the account of the first node. Thats OK??

If it is OK, isn´t is necessary to have some funds?

I try to depoly a contract form truffle to the network and nothing gets deployed. I got: Error encountered, bailing. Network state unknown. Review successful transactions manually.

Error: returned error: authentication needed: password or unlock.

What can be happening? I deployed my contract through quorum maker, it appears as "deployed" on both nodes, but on truffle console it displays that there is no contract on the network and also on the second node, it seems to be no ABI available. What does it means?

romisalve commented 5 years ago

Also, even though I deployed a contract from quorum maker web UI, my contract appears to be deployed only in the node from which I deployed it. on $FirstNode/node/contracts there is two contracts: image

but on $SecondNode/node/contracts appears to be no contracts: image

but on dashboard of this same node, there seems to exists both contracts. I dont understand this inconsistency. image

ab-chowdhury commented 5 years ago

As genesis.json is initiated only once for a network. When you create a node, only first account address ie. coinbase account of the master node will be present in the genesis.json file. When attaching/joining the master node, the adderss of the slave node will not be present in genesis.json, as genesis.json will already be initiated at the time of creation of MasterNode, and also it is a slave node it should not have any balance in that network. So only coinbase address of master node will have the balance of 1e+27 and balance of the other accounts whether it is from the master node or slave node will have a balance 0. In MasterNode you can see ABI of the deployed contract through WebUI of Quorum Maker. Screenshot from 2019-06-03 15-32-21

In SlaveNode ABI will not be present. Screenshot from 2019-06-03 15-33-12

In MasterNode coinbase account address will only have the balance of 1e+27. Rest other account address will have 0 balance. Screenshot from 2019-06-03 15-33-21

In slave node, balance will be 0 for each and every account address created. As these account addresses were not present in genesis.json. Screenshot from 2019-06-03 15-33-26

You can manually unlock account address by the following command, if you want to permanently unlock it. Attach to geth console

personal.unlockAccount("-accountAddress-","pass",0)