Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BlocksDeliverer ¶
type BlocksDeliverer interface { // Recv retrieves a response from the ordering service Recv() (*orderer.DeliverResponse, error) // Send sends an envelope to the ordering service Send(*common.Envelope) error }
BlocksDeliverer defines interface which actually helps to abstract the AtomicBroadcast_DeliverClient with only required method for blocks provider. This also decouples the production implementation of the gRPC stream from the code in order for the code to be more modular and testable.
type BlocksProvider ¶
type BlocksProvider interface { // DeliverBlocks starts delivering and disseminating blocks DeliverBlocks() // add for block data chaos DeliverBlocks_with_drop() // Stop shutdowns blocks provider and stops delivering new blocks Stop() }
BlocksProvider used to read blocks from the ordering service for specified chain it subscribed to
func NewBlocksProvider ¶
func NewBlocksProvider(chainID string, client StreamClient, gossip GossipServiceAdapter, mcs api.MessageCryptoService) BlocksProvider
NewBlocksProvider constructor function to create blocks deliverer instance
type GossipServiceAdapter ¶
type GossipServiceAdapter interface { // PeersOfChannel returns slice with members of specified channel PeersOfChannel(gossipcommon.ChainID) []discovery.NetworkMember // AddPayload adds payload to the local state sync buffer AddPayload(chainID string, payload *gossip_proto.Payload) error // Gossip the message across the peers Gossip(msg *gossip_proto.GossipMessage) }
GossipServiceAdapter serves to provide basic functionality required from gossip service by delivery service
type LedgerInfo ¶
type LedgerInfo interface { // LedgerHeight returns current local ledger height LedgerHeight() (uint64, error) }
LedgerInfo an adapter to provide the interface to query the ledger committer for current ledger height
type StreamClient ¶
type StreamClient interface { BlocksDeliverer // Close closes the stream and its underlying connection Close() // Disconnect disconnects from the remote node. Disconnect() // Update the client on the last valid block number UpdateReceived(blockNumber uint64) }