type Metrics struct { BlockFillDuration metrics.Histogram }
func NewMetrics(p metrics.Provider) *Metrics
type OrdererConfigFetcher interface { OrdererConfig() (channelconfig.Orderer, bool) }
Receiver defines a sink for the ordered broadcast messages
type Receiver interface { // Ordered should be invoked sequentially as messages are ordered // Each batch in `messageBatches` will be wrapped into a block. // `pending` indicates if there are still messages pending in the receiver. Ordered(msg *cb.Envelope) (messageBatches [][]*cb.Envelope, pending bool) // Cut returns the current batch and starts a new one Cut() []*cb.Envelope }
func NewReceiverImpl(channelID string, sharedConfigFetcher OrdererConfigFetcher, metrics *Metrics) Receiver
NewReceiverImpl creates a Receiver implementation based on the given configtxorderer manager