davidkel / hlf

0 stars 0 forks source link

[fabric-network] document the HA capabilities of the fabric-network api #25

Open davidkel opened 4 years ago

davidkel commented 4 years ago

There is a whole range of HA capabilities in fabric-network (and also in fabric-client which is exploited by fabric-network) which is not fully explained anywhere. It would be good to document this.

  1. channel initialisation on get network will try alternative peers in your org if the peer(s) it tries cannot be contacted (discovery enabled), will try alternative peers in the channel (discovery disabled)
  2. on submit transaction with discovery, endorsement will be submitted to a set of peers that satisfy the endorsement policy and any failure then submission will be done to alternative sets of peers as required (via the pluggable discovery endorsement handler)
  3. on submit transaction, if the endorsements can't be sent to an orderer, alternative available orderers will be tried (via the pluggable basic commit handler)
  4. on submit transaction, waiting for commits to occur on the peer will try to ensure that the strategy is satisfied before unblocking even if loss of connectivity to a peer channel event hub occurs (via pluggable event strategies)
  5. block/chaincode/transaction event listening should try to ensure that an event is not missed, even if connection to the current peer that events are being listened on are lost and also recovery of missed events if the application is stopped and restarted. (pluggable via event hub selection, checkpointers etc)
  6. on evaluate transaction if no response from a peer in your org is obtained, it will try other peers in your org and continue to use the peer (via pluggable query handlers)