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