func (op *obcBatch) leaderProcReq(req *Request) error {
	// XXX check req sig

	if !op.deduplicator.Request(req) {
		logger.Debug("Batch replica %d received stale request from %d",
			op.pbft.id, req.ReplicaId)
		return nil
	}

	hash := op.complainer.Custody(req)

	logger.Debug("Batch primary %d queueing new request %s", op.pbft.id, hash)
	op.batchStore = append(op.batchStore, req)

	if !op.batchTimerActive {
		op.startBatchTimer()
	}

	if len(op.batchStore) >= op.batchSize {
		op.sendBatch()
	}

	return nil
}
// =============================================================================
// functions specific to batch mode
// =============================================================================
functions specific to batch mode
// ============================================================================= // functions specific to batch mode // =============================================================================
func (op *obcBatch) leaderProcReq(req *Request) error {
	if !op.deduplicator.Request(req) {
		logger.Debug("Batch replica %d received stale request from %d",
			op.pbft.id, req.ReplicaId)
		return nil
	}
	hash := op.complainer.Custody(req)
	logger.Debug("Batch primary %d queueing new request %s", op.pbft.id, hash)
	op.batchStore = append(op.batchStore, req)
	if !op.batchTimerActive {
		op.startBatchTimer()
	}
	if len(op.batchStore) >= op.batchSize {
		op.sendBatch()
	}
	return nil
}
func ( op * obcBatch ) leaderProcReq ( req * Request ) error { if ! op . deduplicator . Request ( req ) { logger . Debug ( " " , op . pbft . id , req . ReplicaId ) return nil } hash := op . complainer . Custody ( req ) logger . Debug ( " " , op . pbft . id , hash ) op . batchStore = append ( op . batchStore , req ) if ! op . batchTimerActive { op . startBatchTimer ( ) } if len ( op . batchStore ) >= op . batchSize { op . sendBatch ( ) } return nil }
functions specific to batch mode
functions specific to batch mode
// XXX check req sig