0

I am a new bee in Ethereum Blockchain in implementing this as a potential solution for decentralized application. In the process of identifying the solution i have came across a problem where what if i want to dynamically manage Nodes creation/deletion in an existing/functioning Blockchain.

For example : If i have a private blockchain which was initially created with 5 nodes running and communicating with each other. Each node has a static-nodes file with (enode) information for peering with each other. Now if i want to boot out one of the node out of the blockchain network i would update the static-node kicking the odd node out of the enode list and replicate it on each nodes. This would potentially kick out the deleted node out of the Blockchain network.

What if i wan to manage this deletion of nodes without touching each of the node (assuming nodes are not in our capacity to implement the changes). Is there a solution to add/delete nodes dynamically without making changes on each node? also without resetting Blockchain data (no reset of genesis block).

If anyone having any doubts on my question please write back to me.

Any help is highly appreciated.

Thanks.

  • you can modify the protocols to add ACL to your blockchain. This would require to modify the Discovery protocol (github.com/ethereum/wiki/wiki/Node-discovery-protocol) and probably Ethereum Wire Protocol too (github.com/ethereum/wiki/wiki/Ethereum-Wire-Protocol) – Nulik Mar 20 '18 at 2:59
  • I don't see any sense in having a blockchain based application being closed. Creating a centralized application in your case is going to be better. The whole point of using blockchain technology is to distribute the app on other peers, so you can't control the nodes. Your attempt to control the nodes go against the concept of using blockchain technology – Nulik Mar 20 '18 at 3:02
  • Thank you for your reply. Consider a scenario where you would want to create a distributed application. This application would allow creation of nodes for each onboarding customer. Now this is a private chain where only permissioned customers are allowed to transact. Customers will be growing in the chain dynamically, also they might be leaving the chain at some point of time. If i already have created a private Blockchain how would i onboard a new member (node) in this running blockchain and also how do i remove a node. Do you think of any solution to such scenario ? Thanks. – PSY Mar 20 '18 at 19:15
0

I would recommend adding to the block header (types.Header) a new field called CustomerHash, this hash would be generated by a sha256 algorithm on customer data (name+address+whatever info you want). Each customer would have a unique hash.

Now that you have hashes for all of your customers, you would have put this list of customers on Swarm network, so it is publicly accessible. Every node would download the list once every 1000 blocks (or something like that).

To be sure this list is only emitted by you (since you are a central authority here) you have to incorporate encryption mechanism. You have to encrypt the list with your private key and every node would be sure it is the list emitted by you. This way, you would make the blockchain only usable by your customers, because only they would be able to mine a block. If a stranger attempts to put a CustomerHash that is not on this list, other miners will reject his block as invalid.

The result is: you have a public blockchain, but only mineable by those who paid. And it is going to be accessible for everyone who is interested in getting the data available on the chain.

This is how I would implement it, it is a transparrent and clear way to do things while you keeping the status of central authority.

  • Thank you for your response. I have figured it out how a combination of static-nodes files along with dynamic command for adding a peer would leverage Admin responsibilities to (Admin) nodes in a Blockchain network. However there is certainly a smarter way of managing dynamic membership management in a Blockchain network but for time being i am taking this solution as initial solution and i am going to build & improvise on top of it. – PSY Mar 26 '18 at 21:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.