// From TOCS: Each replica collects messages until it has a quorum certificate
// with the PRE-PREPARE and 2*f matching PREPARE messages for sequence number n,
// view v, and request m. We call this certificate the prepared certificate
// and we say that the replica "prepared" the request.
From TOCS: Each replica collects messages until it has a quorum certificate
with the PRE-PREPARE and 2*f matching PREPARE messages for sequence number n,
view v, and request m. We call this certificate the prepared certificate
and we say that the replica "prepared" the request.
// From TOCS : Each replica collects messages until it has a quorum certificate // with the PRE - PREPARE and 2 * f matching PREPARE messages for sequence number n // view v and request m . We call this certificate the prepared certificate // and we say that the replica " prepared " the request .
func (state *State) prepared() bool {
	if state.MsgLogs.ReqMsg == nil || state.MsgLogs.PrePrepareMsg == nil {
		return false
	}
	if int(atomic.LoadInt32(&state.MsgLogs.TotalPrepareMsg)) < 2*state.F {
		return false
	}
	return true
}
func ( state * State ) prepared ( ) bool { if state . MsgLogs . ReqMsg == nil || state . MsgLogs . PrePrepareMsg == nil { return false } if int ( atomic . LoadInt32 ( & state . MsgLogs . TotalPrepareMsg ) ) < 2 * state . F { return false } return true }
From TOCS: Each replica collects messages until it has a quorum certificate
with the PRE-PREPARE and 2*f matching PREPARE messages for sequence number n,
view v, and request m. We call this certificate the prepared certificate
and we say that the replica "prepared" the request.
From TOCS : Each replica collects messages until it has a quorum certificate with the PRE - PREPARE and 2 * f matching PREPARE messages for sequence number n view v and request m . We call this certificate the prepared certificate and we say that the replica " prepared " the request .