Every Ledgerium node installation comes along with deployment of Governance app, which can be accessed at https://<BPDomainName>/governance
. GovernanceApp is a DApp which is used to interact with Ledgerium Blockchain and to send public transactions using the private key of the coinbase account of the Ledgerium node while pointing to JSON-RPC interface through Ledgerium Wallet.
Joining the Ledgerium Blockchain Governance consortium is a strategic investment decision which also has to pass through enough number of votes through the existing members. Hence, this is also a social investment as well.
A vote is passed if the sum is greater than to n/2, where n is the number of existing block producers in the Ledgerium Blockchain.
Your node will be showing up on this list.
Your node will be showing up on this list
If you want to become one of the block producers, your peer node needs to be voted IN. The existing members of block producers' consortium need to vote you IN. You will have to contact them to initiate the voting process. You will have to fulfil the requirement of being a block producer, however. For more details, contact The Ledgerium Foundation team and express your interest to join the consortium. They can help you out with the process.
As can be seen in the above, there are 9 block producers in the consortium. We will show the workflow to get 0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e
. There will be > 9/2 ie. at least 5 block producers should vote IN for 0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e
.
Preconditions
The existing block producers are willing to let the new peer to join the consortium
Access to the governance app https://:
Ledgerium Wallet installed on the browser e.g. Chrome, Firefox, Edge
Import coinbase account of the block producer using its private key
Keep the coinbase account selected in Ledgerium Wallet
Keep the RPC point to the local ie. http://: in Ledgerium Wallet
The operator of validator-mel-app01-10
block producer will access its governanceapp on http://toorak01.ledgerium.io/governance
and meet the preconditions above.
Step1: Choose an account from Peer Nodes In The Network
section in Governance app and click on Vote For
. Ledgerium Wallet pops up a dialog box to sign the transaction.
Step2: Go to Ledgerium Wallet and confirm the transaction to the Ledgerium Blockchain.
Step3: A new transaction in pending
state will be created. It will be confirmed
after a few seconds (the transaction has to get into a block) and one can observe the Contract Interaction
as CONFIRMED
under Ledgerium Wallet pop up dialog box.
Governance app will show voting details under Current Voting Snapshot
section
Connecting to the Ledgerium Blockchain will show the same snapshot as block producer has “Voted For”. [block:code] { "codes": [ { "code": "geth attach http://:8545\n> istanbul.getSnapshot()\n{\n epoch: 30000,\n
geth attach http://<BPDomainName>:8545> istanbul.getSnapshot(){epoch: 30000,hash: "0x02de64b5ffb503226a22c35d6a0bba95361acf97e3be7e97e8004a4462682d14",number: 438908,policy: 0,tally:0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e: {authorize: true,votes: 1}},validators: ["0x2296365c074db8bece7d8443d1ece22384ae1ee7", "0x645cab2686477cd244562d4bd95a75f157a4c055", "0x7cdf4118fd559efae92c0876fcee2afe767f0956", "0xa79f57a6884a71a25fd17c21549796a53c067376", "0xbefa0195759586a328502339f9420b8a6603bc82", "0xc7a89e9c2d5acd30cf78f8a9ef4777c10bb69a07", "0xd25df157d2a64e5eba4bc1363f5a386ec36154f3", "0xf232a4bf183cf17d09bea23e19ceff58ad9dbfed", "0xf7dce95345c5a5917360571165260cf0e8d98918"],votes: [{address: "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e",authorize: true,block: 438902,validator: "0xf232a4bf183cf17d09bea23e19ceff58ad9dbfed"}]}
Step4: Repeat steps 1,2 and 3 with different block producers.
If the number of votes is greater than N/2 (where N is the number of block producers), the peer will be added to the block producers' consortium. The new validator will be moved to the Current Admins
section.
Connecting to the Ledgerium Blockchain will show votes array as empty.
geth attach http://<BPDomainName>:8545> istanbul.getSnapshot(){epoch: 30000,hash: "0x2417c1a6725102c62bf4721cc03b52f1e30861ea293920cbb08768763a555ab5",number: 439335,policy: 0,tally: {},validators: ["0x2296365c074db8bece7d8443d1ece22384ae1ee7", "0x645cab2686477cd244562d4bd95a75f157a4c055", "0x7cdf4118fd559efae92c0876fcee2afe767f0956", "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e", "0xa79f57a6884a71a25fd17c21549796a53c067376", "0xbefa0195759586a328502339f9420b8a6603bc82", "0xc7a89e9c2d5acd30cf78f8a9ef4777c10bb69a07", "0xd25df157d2a64e5eba4bc1363f5a386ec36154f3", "0xf232a4bf183cf17d09bea23e19ceff58ad9dbfed", "0xf7dce95345c5a5917360571165260cf0e8d98918"],votes: []}