Search code examples
hyperledgerpeerhyperledger-indy

How many peers does an Indy Node connect to?


I have a question about Indy Node. In the Bitcoin network, each node is connected to 8 peers. It can also be configured to allow for more connections. How is this done in Indy Node?

The Indy Rocket chat directed me here. I found that Bitcoin uses 8 peers by default. I searched for how Indy does it on the Indy Node and Indy SDK github page and documentation but did not manage to find it anywhere.


Solution

  • The short answer is that every node must connect to all other nodes in the consensus pool.

    The Bitcoin network (the blockchain) is a permissionless network, meaning that anyone can set up a validator node that contributes to consensus using proof-of-work.

    Indy networks are permissioned. The community of stewards running validator nodes have to approve additional nodes being added to the network. These validator nodes use a Byzantine Fault Tolerant protocol by which the primary updates the ledger and notifies the other nodes in consensus of the changes. If the other nodes suspect that the primary is not acting correctly, they can elect a new primary. This protocol is provably resilient against one third of the nodes being malicious.

    Indy favors this approach because the cost of settling a transaction is much lower than with blockchain. The Indy protocol requires at least 4 nodes in consensus, and it operates well with 25 nodes in the validator pool before performance begins to drop.

    In order to read from the network, a client only needs to contact one consensus node because each response contains a BLS signature that proves the response represents the value held by the ledger in consensus.

    Useful resources for learning more: