func makeRequestHandler(clientID uint32, seq sequenceGenerator, authen api.Authenticator, buf *requestbuffer.T, f uint32, logger logger.Logger) requestHandler {
	submitter := makeRequestSubmitter(clientID, seq, authen, buf, logger)
	collector := makeReplyCollector(f, buf)
	return func(operation []byte) <-chan []byte {
		return handleRequest(operation, submitter, collector)
	}
}
makeRequestHandler constructs a requestHandler uisng the supplied
clientID, sequence number generator, authenticator, request buffer,
and number of tolerated faulty replicas.
package client
import (
	"crypto/sha256"
	"time"
	"github.com/hyperledger-labs/minbft/api"
	"github.com/hyperledger-labs/minbft/client/internal/requestbuffer"
	"github.com/hyperledger-labs/minbft/common/logger"
	"github.com/hyperledger-labs/minbft/messages"
)
type requestHandler func(operation []byte) <-chan []byte