In Hyperledger-fabric blockchain, is there a limit to the number of nodes participating in a network? If yes, how many nodes can be in a network?
问题:
回答1:
To get the complete functionality of blockchain(consensus mechanism, hyperledger fabric uses PBFT consensus which means it will accept any transaction to be valid if more than 66% of the nodes are up and running.
In short more than 66% of nodes must be up and must validate the order to requests in Hyperledger farbic.
Both the Starter Developer plan and the High Security Business Network plan enable you to test the Practical Byzantine Fault Tolerance (PBFT) consensus protocol on a four-node blockchain network
Consensus is a method for validating the order of requests, or transactions (deploy and invoke), on a blockchain network. The correct ordering of transactions is critical, because many transactions have a dependency on one or more prior transactions (account debits often have a dependency on prior credits, for example).
The network can tolerate no more than one Byzantine node. Each network contains N=4 nodes, so applying the formula for the maximum number of tolerated Byzantine nodes results in: f=(4-1)/3=1. If two or more Byzantine nodes (f>1) exist, a the 4-node PBFT network cannot guarantee consistency or integrity of the ledger across all nodes. (For comparison, tolerating two Byzantine nodes would require f=(7-1)/3=2, or a minimum 7-node PBFT blockchain network.)
回答2:
In Hyperledger Fabric, nodes can be of type orderers, endrosing peers or clients. Are you asking about a number of Byzantine nodes, or the number of nodes in general?
- If you are asking about how many Byzantine nodes, then the precise answer is as follows: a) There is no limit on Byzantine peers and clients. If there are too many of them, a client just won't be able to get his transaction endorsed. However the integrity of the system is not endangered. b) Since the consensus algorithm is run between the orderers, then the limit depends on that specific algorithm used. Remember Hyperledger Fabric supports pluggable consensus, meaning that the consensus algorithm is not necessarily hardcoded. In its current implementation, Hypeledger Fabric runs "Kafka" which is NOT Byzantine-Fault tolerant. This means that even one Byzantine orderer can compromise the whole system! However, there are plans for BFT-Smart which is Byzantine-Fault tolerant and supports up to 33% faulty nodes, as the above answer says.
- If you are asking about the total number of nodes, then the precise answer is as follows: a) There is (theoretically) no limit on the number of clients-peers. b) The practical limit of orderers again depends on the consensus. For BFT, this translates up to practically 10 (maybe 20) orderers.