Documentation ¶
Index ¶
- Variables
- type CEntry
- func (*CEntry) Descriptor() ([]byte, []int)deprecated
- func (x *CEntry) GetCheckpointValue() []byte
- func (x *CEntry) GetNetworkState() *NetworkState
- func (x *CEntry) GetSeqNo() uint64
- func (*CEntry) ProtoMessage()
- func (x *CEntry) ProtoReflect() protoreflect.Message
- func (x *CEntry) Reset()
- func (x *CEntry) String() string
- type Checkpoint
- type Commit
- func (*Commit) Descriptor() ([]byte, []int)deprecated
- func (x *Commit) GetDigest() []byte
- func (x *Commit) GetEpoch() uint64
- func (x *Commit) GetSeqNo() uint64
- func (*Commit) ProtoMessage()
- func (x *Commit) ProtoReflect() protoreflect.Message
- func (x *Commit) Reset()
- func (x *Commit) String() string
- type ECEntry
- type EpochChange
- func (*EpochChange) Descriptor() ([]byte, []int)deprecated
- func (x *EpochChange) GetCheckpoints() []*Checkpoint
- func (x *EpochChange) GetNewEpoch() uint64
- func (x *EpochChange) GetPSet() []*EpochChange_SetEntry
- func (x *EpochChange) GetQSet() []*EpochChange_SetEntry
- func (*EpochChange) ProtoMessage()
- func (x *EpochChange) ProtoReflect() protoreflect.Message
- func (x *EpochChange) Reset()
- func (x *EpochChange) String() string
- type EpochChangeAck
- func (*EpochChangeAck) Descriptor() ([]byte, []int)deprecated
- func (x *EpochChangeAck) GetEpochChange() *EpochChange
- func (x *EpochChangeAck) GetOriginator() uint64
- func (*EpochChangeAck) ProtoMessage()
- func (x *EpochChangeAck) ProtoReflect() protoreflect.Message
- func (x *EpochChangeAck) Reset()
- func (x *EpochChangeAck) String() string
- type EpochChange_SetEntry
- func (*EpochChange_SetEntry) Descriptor() ([]byte, []int)deprecated
- func (x *EpochChange_SetEntry) GetDigest() []byte
- func (x *EpochChange_SetEntry) GetEpoch() uint64
- func (x *EpochChange_SetEntry) GetSeqNo() uint64
- func (*EpochChange_SetEntry) ProtoMessage()
- func (x *EpochChange_SetEntry) ProtoReflect() protoreflect.Message
- func (x *EpochChange_SetEntry) Reset()
- func (x *EpochChange_SetEntry) String() string
- type EpochConfig
- func (*EpochConfig) Descriptor() ([]byte, []int)deprecated
- func (x *EpochConfig) GetLeaders() []uint64
- func (x *EpochConfig) GetNumber() uint64
- func (x *EpochConfig) GetPlannedExpiration() uint64
- func (*EpochConfig) ProtoMessage()
- func (x *EpochConfig) ProtoReflect() protoreflect.Message
- func (x *EpochConfig) Reset()
- func (x *EpochConfig) String() string
- type FEntry
- type FetchBatch
- type ForwardBatch
- func (*ForwardBatch) Descriptor() ([]byte, []int)deprecated
- func (x *ForwardBatch) GetDigest() []byte
- func (x *ForwardBatch) GetRequestAcks() []*RequestAck
- func (x *ForwardBatch) GetSeqNo() uint64
- func (*ForwardBatch) ProtoMessage()
- func (x *ForwardBatch) ProtoReflect() protoreflect.Message
- func (x *ForwardBatch) Reset()
- func (x *ForwardBatch) String() string
- type ForwardRequest
- func (*ForwardRequest) Descriptor() ([]byte, []int)deprecated
- func (x *ForwardRequest) GetRequestAck() *RequestAck
- func (x *ForwardRequest) GetRequestData() []byte
- func (*ForwardRequest) ProtoMessage()
- func (x *ForwardRequest) ProtoReflect() protoreflect.Message
- func (x *ForwardRequest) Reset()
- func (x *ForwardRequest) String() string
- type Msg
- func (*Msg) Descriptor() ([]byte, []int)deprecated
- func (x *Msg) GetCheckpoint() *Checkpoint
- func (x *Msg) GetCommit() *Commit
- func (x *Msg) GetEpochChange() *EpochChange
- func (x *Msg) GetEpochChangeAck() *EpochChangeAck
- func (x *Msg) GetFetchBatch() *FetchBatch
- func (x *Msg) GetFetchRequest() *RequestAck
- func (x *Msg) GetForwardBatch() *ForwardBatch
- func (x *Msg) GetForwardRequest() *ForwardRequest
- func (x *Msg) GetNewEpoch() *NewEpoch
- func (x *Msg) GetNewEpochEcho() *NewEpochConfig
- func (x *Msg) GetNewEpochReady() *NewEpochConfig
- func (x *Msg) GetPrepare() *Prepare
- func (x *Msg) GetPreprepare() *Preprepare
- func (x *Msg) GetRequestAck() *RequestAck
- func (x *Msg) GetSuspect() *Suspect
- func (m *Msg) GetType() isMsg_Type
- func (*Msg) ProtoMessage()
- func (x *Msg) ProtoReflect() protoreflect.Message
- func (x *Msg) Reset()
- func (x *Msg) String() string
- type Msg_Checkpoint
- type Msg_Commit
- type Msg_EpochChange
- type Msg_EpochChangeAck
- type Msg_FetchBatch
- type Msg_FetchRequest
- type Msg_ForwardBatch
- type Msg_ForwardRequest
- type Msg_NewEpoch
- type Msg_NewEpochEcho
- type Msg_NewEpochReady
- type Msg_Prepare
- type Msg_Preprepare
- type Msg_RequestAck
- type Msg_Suspect
- type NEntry
- type NetworkState
- func (*NetworkState) Descriptor() ([]byte, []int)deprecated
- func (x *NetworkState) GetClients() []*NetworkState_Client
- func (x *NetworkState) GetConfig() *NetworkState_Config
- func (x *NetworkState) GetPendingReconfigurations() []*Reconfiguration
- func (x *NetworkState) GetReconfigured() bool
- func (*NetworkState) ProtoMessage()
- func (x *NetworkState) ProtoReflect() protoreflect.Message
- func (x *NetworkState) Reset()
- func (x *NetworkState) String() string
- type NetworkState_Client
- func (*NetworkState_Client) Descriptor() ([]byte, []int)deprecated
- func (x *NetworkState_Client) GetCommittedMask() []byte
- func (x *NetworkState_Client) GetId() uint64
- func (x *NetworkState_Client) GetLowWatermark() uint64
- func (x *NetworkState_Client) GetWidth() uint32
- func (x *NetworkState_Client) GetWidthConsumedLastCheckpoint() uint32
- func (*NetworkState_Client) ProtoMessage()
- func (x *NetworkState_Client) ProtoReflect() protoreflect.Message
- func (x *NetworkState_Client) Reset()
- func (x *NetworkState_Client) String() string
- type NetworkState_Config
- func (*NetworkState_Config) Descriptor() ([]byte, []int)deprecated
- func (x *NetworkState_Config) GetCheckpointInterval() int32
- func (x *NetworkState_Config) GetF() int32
- func (x *NetworkState_Config) GetMaxEpochLength() uint64
- func (x *NetworkState_Config) GetNodes() []uint64
- func (x *NetworkState_Config) GetNumberOfBuckets() int32
- func (*NetworkState_Config) ProtoMessage()
- func (x *NetworkState_Config) ProtoReflect() protoreflect.Message
- func (x *NetworkState_Config) Reset()
- func (x *NetworkState_Config) String() string
- type NewEpoch
- func (*NewEpoch) Descriptor() ([]byte, []int)deprecated
- func (x *NewEpoch) GetEpochChanges() []*NewEpoch_RemoteEpochChange
- func (x *NewEpoch) GetNewConfig() *NewEpochConfig
- func (*NewEpoch) ProtoMessage()
- func (x *NewEpoch) ProtoReflect() protoreflect.Message
- func (x *NewEpoch) Reset()
- func (x *NewEpoch) String() string
- type NewEpochConfig
- func (*NewEpochConfig) Descriptor() ([]byte, []int)deprecated
- func (x *NewEpochConfig) GetConfig() *EpochConfig
- func (x *NewEpochConfig) GetFinalPreprepares() [][]byte
- func (x *NewEpochConfig) GetStartingCheckpoint() *Checkpoint
- func (*NewEpochConfig) ProtoMessage()
- func (x *NewEpochConfig) ProtoReflect() protoreflect.Message
- func (x *NewEpochConfig) Reset()
- func (x *NewEpochConfig) String() string
- type NewEpoch_RemoteEpochChange
- func (*NewEpoch_RemoteEpochChange) Descriptor() ([]byte, []int)deprecated
- func (x *NewEpoch_RemoteEpochChange) GetDigest() []byte
- func (x *NewEpoch_RemoteEpochChange) GetNodeId() uint64
- func (*NewEpoch_RemoteEpochChange) ProtoMessage()
- func (x *NewEpoch_RemoteEpochChange) ProtoReflect() protoreflect.Message
- func (x *NewEpoch_RemoteEpochChange) Reset()
- func (x *NewEpoch_RemoteEpochChange) String() string
- type PEntry
- type Persistent
- func (*Persistent) Descriptor() ([]byte, []int)deprecated
- func (x *Persistent) GetCEntry() *CEntry
- func (x *Persistent) GetECEntry() *ECEntry
- func (x *Persistent) GetFEntry() *FEntry
- func (x *Persistent) GetNEntry() *NEntry
- func (x *Persistent) GetPEntry() *PEntry
- func (x *Persistent) GetQEntry() *QEntry
- func (x *Persistent) GetSuspect() *Suspect
- func (x *Persistent) GetTEntry() *TEntry
- func (m *Persistent) GetType() isPersistent_Type
- func (*Persistent) ProtoMessage()
- func (x *Persistent) ProtoReflect() protoreflect.Message
- func (x *Persistent) Reset()
- func (x *Persistent) String() string
- type Persistent_CEntry
- type Persistent_ECEntry
- type Persistent_FEntry
- type Persistent_NEntry
- type Persistent_PEntry
- type Persistent_QEntry
- type Persistent_Suspect
- type Persistent_TEntry
- type Prepare
- func (*Prepare) Descriptor() ([]byte, []int)deprecated
- func (x *Prepare) GetDigest() []byte
- func (x *Prepare) GetEpoch() uint64
- func (x *Prepare) GetSeqNo() uint64
- func (*Prepare) ProtoMessage()
- func (x *Prepare) ProtoReflect() protoreflect.Message
- func (x *Prepare) Reset()
- func (x *Prepare) String() string
- type Preprepare
- func (*Preprepare) Descriptor() ([]byte, []int)deprecated
- func (x *Preprepare) GetBatch() []*RequestAck
- func (x *Preprepare) GetEpoch() uint64
- func (x *Preprepare) GetSeqNo() uint64
- func (*Preprepare) ProtoMessage()
- func (x *Preprepare) ProtoReflect() protoreflect.Message
- func (x *Preprepare) Reset()
- func (x *Preprepare) String() string
- type QEntry
- func (*QEntry) Descriptor() ([]byte, []int)deprecated
- func (x *QEntry) GetDigest() []byte
- func (x *QEntry) GetRequests() []*RequestAck
- func (x *QEntry) GetSeqNo() uint64
- func (*QEntry) ProtoMessage()
- func (x *QEntry) ProtoReflect() protoreflect.Message
- func (x *QEntry) Reset()
- func (x *QEntry) String() string
- type Reconfiguration
- func (*Reconfiguration) Descriptor() ([]byte, []int)deprecated
- func (x *Reconfiguration) GetNewClient() *Reconfiguration_NewClient
- func (x *Reconfiguration) GetNewConfig() *NetworkState_Config
- func (x *Reconfiguration) GetRemoveClient() uint64
- func (m *Reconfiguration) GetType() isReconfiguration_Type
- func (*Reconfiguration) ProtoMessage()
- func (x *Reconfiguration) ProtoReflect() protoreflect.Message
- func (x *Reconfiguration) Reset()
- func (x *Reconfiguration) String() string
- type Reconfiguration_NewClient
- func (*Reconfiguration_NewClient) Descriptor() ([]byte, []int)deprecated
- func (x *Reconfiguration_NewClient) GetId() uint64
- func (x *Reconfiguration_NewClient) GetWidth() uint32
- func (*Reconfiguration_NewClient) ProtoMessage()
- func (x *Reconfiguration_NewClient) ProtoReflect() protoreflect.Message
- func (x *Reconfiguration_NewClient) Reset()
- func (x *Reconfiguration_NewClient) String() string
- type Reconfiguration_NewClient_
- type Reconfiguration_NewConfig
- type Reconfiguration_RemoveClient
- type Request
- func (*Request) Descriptor() ([]byte, []int)deprecated
- func (x *Request) GetClientId() uint64
- func (x *Request) GetData() []byte
- func (x *Request) GetReqNo() uint64
- func (*Request) ProtoMessage()
- func (x *Request) ProtoReflect() protoreflect.Message
- func (x *Request) Reset()
- func (x *Request) String() string
- type RequestAck
- func (*RequestAck) Descriptor() ([]byte, []int)deprecated
- func (x *RequestAck) GetClientId() uint64
- func (x *RequestAck) GetDigest() []byte
- func (x *RequestAck) GetReqNo() uint64
- func (*RequestAck) ProtoMessage()
- func (x *RequestAck) ProtoReflect() protoreflect.Message
- func (x *RequestAck) Reset()
- func (x *RequestAck) String() string
- type Suspect
- type TEntry
Constants ¶
This section is empty.
Variables ¶
var File_msgs_msgs_proto protoreflect.FileDescriptor
Functions ¶
This section is empty.
Types ¶
type CEntry ¶
type CEntry struct { SeqNo uint64 `protobuf:"varint,1,opt,name=seq_no,json=seqNo,proto3" json:"seq_no,omitempty"` CheckpointValue []byte `protobuf:"bytes,2,opt,name=checkpoint_value,json=checkpointValue,proto3" json:"checkpoint_value,omitempty"` NetworkState *NetworkState `protobuf:"bytes,3,opt,name=network_state,json=networkState,proto3" json:"network_state,omitempty"` // contains filtered or unexported fields }
CEntry is an entry which must be persisted before a Checkpoint message is sent.
func (*CEntry) Descriptor
deprecated
func (*CEntry) GetCheckpointValue ¶
func (*CEntry) GetNetworkState ¶
func (x *CEntry) GetNetworkState() *NetworkState
func (*CEntry) ProtoMessage ¶
func (*CEntry) ProtoMessage()
func (*CEntry) ProtoReflect ¶
func (x *CEntry) ProtoReflect() protoreflect.Message
type Checkpoint ¶
type Checkpoint struct { SeqNo uint64 `protobuf:"varint,1,opt,name=seq_no,json=seqNo,proto3" json:"seq_no,omitempty"` Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` // contains filtered or unexported fields }
func (*Checkpoint) Descriptor
deprecated
func (*Checkpoint) Descriptor() ([]byte, []int)
Deprecated: Use Checkpoint.ProtoReflect.Descriptor instead.
func (*Checkpoint) GetSeqNo ¶
func (x *Checkpoint) GetSeqNo() uint64
func (*Checkpoint) GetValue ¶
func (x *Checkpoint) GetValue() []byte
func (*Checkpoint) ProtoMessage ¶
func (*Checkpoint) ProtoMessage()
func (*Checkpoint) ProtoReflect ¶
func (x *Checkpoint) ProtoReflect() protoreflect.Message
func (*Checkpoint) Reset ¶
func (x *Checkpoint) Reset()
func (*Checkpoint) String ¶
func (x *Checkpoint) String() string
type Commit ¶
type Commit struct { SeqNo uint64 `protobuf:"varint,1,opt,name=seq_no,json=seqNo,proto3" json:"seq_no,omitempty"` Epoch uint64 `protobuf:"varint,2,opt,name=epoch,proto3" json:"epoch,omitempty"` Digest []byte `protobuf:"bytes,3,opt,name=digest,proto3" json:"digest,omitempty"` // contains filtered or unexported fields }
func (*Commit) Descriptor
deprecated
func (*Commit) ProtoMessage ¶
func (*Commit) ProtoMessage()
func (*Commit) ProtoReflect ¶
func (x *Commit) ProtoReflect() protoreflect.Message
type ECEntry ¶
type ECEntry struct { EpochNumber uint64 `protobuf:"varint,1,opt,name=epoch_number,json=epochNumber,proto3" json:"epoch_number,omitempty"` // contains filtered or unexported fields }
ECEntry indicates that an epoch change has been sent, and that log truncation must halt until the next epoch begins.
func (*ECEntry) Descriptor
deprecated
func (*ECEntry) GetEpochNumber ¶
func (*ECEntry) ProtoMessage ¶
func (*ECEntry) ProtoMessage()
func (*ECEntry) ProtoReflect ¶
func (x *ECEntry) ProtoReflect() protoreflect.Message
type EpochChange ¶
type EpochChange struct { NewEpoch uint64 `protobuf:"varint,1,opt,name=new_epoch,json=newEpoch,proto3" json:"new_epoch,omitempty"` // c_set contains the entries for the C-set as defined by the classical // PBFT view-change protocol. Checkpoints []*Checkpoint `protobuf:"bytes,2,rep,name=checkpoints,proto3" json:"checkpoints,omitempty"` // p_set contains the entries for the P-set as defined by the classical // PBFT view-change protocol. PSet []*EpochChange_SetEntry `protobuf:"bytes,3,rep,name=p_set,json=pSet,proto3" json:"p_set,omitempty"` // q_set contains the entries for the Q-set as defined by the classical // PBFT view-change protocol. QSet []*EpochChange_SetEntry `protobuf:"bytes,4,rep,name=q_set,json=qSet,proto3" json:"q_set,omitempty"` // contains filtered or unexported fields }
EpochChange messages are used to implement the classical PBFT view-change protocol, (very) slightly modified to adapt to Mir. The assorted sets are encoded as repeated fields, rather than as maps for ease of serialization and particularly for computing a digest to attest to. If any set contains a duplicated entry, the message may be discarded as byzantine.
func (*EpochChange) Descriptor
deprecated
func (*EpochChange) Descriptor() ([]byte, []int)
Deprecated: Use EpochChange.ProtoReflect.Descriptor instead.
func (*EpochChange) GetCheckpoints ¶
func (x *EpochChange) GetCheckpoints() []*Checkpoint
func (*EpochChange) GetNewEpoch ¶
func (x *EpochChange) GetNewEpoch() uint64
func (*EpochChange) GetPSet ¶
func (x *EpochChange) GetPSet() []*EpochChange_SetEntry
func (*EpochChange) GetQSet ¶
func (x *EpochChange) GetQSet() []*EpochChange_SetEntry
func (*EpochChange) ProtoMessage ¶
func (*EpochChange) ProtoMessage()
func (*EpochChange) ProtoReflect ¶
func (x *EpochChange) ProtoReflect() protoreflect.Message
func (*EpochChange) Reset ¶
func (x *EpochChange) Reset()
func (*EpochChange) String ¶
func (x *EpochChange) String() string
type EpochChangeAck ¶
type EpochChangeAck struct { Originator uint64 `protobuf:"varint,1,opt,name=originator,proto3" json:"originator,omitempty"` // epoch_change is included fully instead of echo-ing the digest as suggested by the original // PBFT paper. This is purely to prevent requiring a separate fetch step for missing epoch change // requests. Although this is slightly heavier, because ungraceful epoch change is not a performance // optimal path, the simplification seems worthwhile. EpochChange *EpochChange `protobuf:"bytes,2,opt,name=epoch_change,json=epochChange,proto3" json:"epoch_change,omitempty"` // contains filtered or unexported fields }
EpochChangeAck messages are broadcast in response to receiving a valid epoch change from a replica. Replicas collect these epoch change ack messages, and when there are 2f+1 such messages begin to count that epoch change as appropriately broadcast for purposes of the epoch change timer.
func (*EpochChangeAck) Descriptor
deprecated
func (*EpochChangeAck) Descriptor() ([]byte, []int)
Deprecated: Use EpochChangeAck.ProtoReflect.Descriptor instead.
func (*EpochChangeAck) GetEpochChange ¶
func (x *EpochChangeAck) GetEpochChange() *EpochChange
func (*EpochChangeAck) GetOriginator ¶
func (x *EpochChangeAck) GetOriginator() uint64
func (*EpochChangeAck) ProtoMessage ¶
func (*EpochChangeAck) ProtoMessage()
func (*EpochChangeAck) ProtoReflect ¶
func (x *EpochChangeAck) ProtoReflect() protoreflect.Message
func (*EpochChangeAck) Reset ¶
func (x *EpochChangeAck) Reset()
func (*EpochChangeAck) String ¶
func (x *EpochChangeAck) String() string
type EpochChange_SetEntry ¶
type EpochChange_SetEntry struct { Epoch uint64 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"` SeqNo uint64 `protobuf:"varint,2,opt,name=seq_no,json=seqNo,proto3" json:"seq_no,omitempty"` Digest []byte `protobuf:"bytes,3,opt,name=digest,proto3" json:"digest,omitempty"` // contains filtered or unexported fields }
func (*EpochChange_SetEntry) Descriptor
deprecated
func (*EpochChange_SetEntry) Descriptor() ([]byte, []int)
Deprecated: Use EpochChange_SetEntry.ProtoReflect.Descriptor instead.
func (*EpochChange_SetEntry) GetDigest ¶
func (x *EpochChange_SetEntry) GetDigest() []byte
func (*EpochChange_SetEntry) GetEpoch ¶
func (x *EpochChange_SetEntry) GetEpoch() uint64
func (*EpochChange_SetEntry) GetSeqNo ¶
func (x *EpochChange_SetEntry) GetSeqNo() uint64
func (*EpochChange_SetEntry) ProtoMessage ¶
func (*EpochChange_SetEntry) ProtoMessage()
func (*EpochChange_SetEntry) ProtoReflect ¶
func (x *EpochChange_SetEntry) ProtoReflect() protoreflect.Message
func (*EpochChange_SetEntry) Reset ¶
func (x *EpochChange_SetEntry) Reset()
func (*EpochChange_SetEntry) String ¶
func (x *EpochChange_SetEntry) String() string
type EpochConfig ¶
type EpochConfig struct { // number of this new epoch Number uint64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"` Leaders []uint64 `protobuf:"varint,2,rep,packed,name=leaders,proto3" json:"leaders,omitempty"` PlannedExpiration uint64 `protobuf:"varint,3,opt,name=planned_expiration,json=plannedExpiration,proto3" json:"planned_expiration,omitempty"` // contains filtered or unexported fields }
func (*EpochConfig) Descriptor
deprecated
func (*EpochConfig) Descriptor() ([]byte, []int)
Deprecated: Use EpochConfig.ProtoReflect.Descriptor instead.
func (*EpochConfig) GetLeaders ¶
func (x *EpochConfig) GetLeaders() []uint64
func (*EpochConfig) GetNumber ¶
func (x *EpochConfig) GetNumber() uint64
func (*EpochConfig) GetPlannedExpiration ¶
func (x *EpochConfig) GetPlannedExpiration() uint64
func (*EpochConfig) ProtoMessage ¶
func (*EpochConfig) ProtoMessage()
func (*EpochConfig) ProtoReflect ¶
func (x *EpochConfig) ProtoReflect() protoreflect.Message
func (*EpochConfig) Reset ¶
func (x *EpochConfig) Reset()
func (*EpochConfig) String ¶
func (x *EpochConfig) String() string
type FEntry ¶
type FEntry struct { EndsEpochConfig *EpochConfig `protobuf:"bytes,1,opt,name=ends_epoch_config,json=endsEpochConfig,proto3" json:"ends_epoch_config,omitempty"` // contains filtered or unexported fields }
func (*FEntry) Descriptor
deprecated
func (*FEntry) GetEndsEpochConfig ¶
func (x *FEntry) GetEndsEpochConfig() *EpochConfig
func (*FEntry) ProtoMessage ¶
func (*FEntry) ProtoMessage()
func (*FEntry) ProtoReflect ¶
func (x *FEntry) ProtoReflect() protoreflect.Message
type FetchBatch ¶
type FetchBatch struct { SeqNo uint64 `protobuf:"varint,1,opt,name=seq_no,json=seqNo,proto3" json:"seq_no,omitempty"` Digest []byte `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"` // contains filtered or unexported fields }
func (*FetchBatch) Descriptor
deprecated
func (*FetchBatch) Descriptor() ([]byte, []int)
Deprecated: Use FetchBatch.ProtoReflect.Descriptor instead.
func (*FetchBatch) GetDigest ¶
func (x *FetchBatch) GetDigest() []byte
func (*FetchBatch) GetSeqNo ¶
func (x *FetchBatch) GetSeqNo() uint64
func (*FetchBatch) ProtoMessage ¶
func (*FetchBatch) ProtoMessage()
func (*FetchBatch) ProtoReflect ¶
func (x *FetchBatch) ProtoReflect() protoreflect.Message
func (*FetchBatch) Reset ¶
func (x *FetchBatch) Reset()
func (*FetchBatch) String ¶
func (x *FetchBatch) String() string
type ForwardBatch ¶
type ForwardBatch struct { SeqNo uint64 `protobuf:"varint,1,opt,name=seq_no,json=seqNo,proto3" json:"seq_no,omitempty"` RequestAcks []*RequestAck `protobuf:"bytes,2,rep,name=request_acks,json=requestAcks,proto3" json:"request_acks,omitempty"` Digest []byte `protobuf:"bytes,3,opt,name=digest,proto3" json:"digest,omitempty"` // contains filtered or unexported fields }
func (*ForwardBatch) Descriptor
deprecated
func (*ForwardBatch) Descriptor() ([]byte, []int)
Deprecated: Use ForwardBatch.ProtoReflect.Descriptor instead.
func (*ForwardBatch) GetDigest ¶
func (x *ForwardBatch) GetDigest() []byte
func (*ForwardBatch) GetRequestAcks ¶
func (x *ForwardBatch) GetRequestAcks() []*RequestAck
func (*ForwardBatch) GetSeqNo ¶
func (x *ForwardBatch) GetSeqNo() uint64
func (*ForwardBatch) ProtoMessage ¶
func (*ForwardBatch) ProtoMessage()
func (*ForwardBatch) ProtoReflect ¶
func (x *ForwardBatch) ProtoReflect() protoreflect.Message
func (*ForwardBatch) Reset ¶
func (x *ForwardBatch) Reset()
func (*ForwardBatch) String ¶
func (x *ForwardBatch) String() string
type ForwardRequest ¶
type ForwardRequest struct { RequestAck *RequestAck `protobuf:"bytes,1,opt,name=request_ack,json=requestAck,proto3" json:"request_ack,omitempty"` RequestData []byte `protobuf:"bytes,2,opt,name=request_data,json=requestData,proto3" json:"request_data,omitempty"` // contains filtered or unexported fields }
func (*ForwardRequest) Descriptor
deprecated
func (*ForwardRequest) Descriptor() ([]byte, []int)
Deprecated: Use ForwardRequest.ProtoReflect.Descriptor instead.
func (*ForwardRequest) GetRequestAck ¶
func (x *ForwardRequest) GetRequestAck() *RequestAck
func (*ForwardRequest) GetRequestData ¶
func (x *ForwardRequest) GetRequestData() []byte
func (*ForwardRequest) ProtoMessage ¶
func (*ForwardRequest) ProtoMessage()
func (*ForwardRequest) ProtoReflect ¶
func (x *ForwardRequest) ProtoReflect() protoreflect.Message
func (*ForwardRequest) Reset ¶
func (x *ForwardRequest) Reset()
func (*ForwardRequest) String ¶
func (x *ForwardRequest) String() string
type Msg ¶
type Msg struct { // Types that are assignable to Type: // *Msg_Preprepare // *Msg_Prepare // *Msg_Commit // *Msg_Checkpoint // *Msg_Suspect // *Msg_EpochChange // *Msg_EpochChangeAck // *Msg_NewEpoch // *Msg_NewEpochEcho // *Msg_NewEpochReady // *Msg_FetchBatch // *Msg_ForwardBatch // *Msg_FetchRequest // *Msg_ForwardRequest // *Msg_RequestAck Type isMsg_Type `protobuf_oneof:"type"` // contains filtered or unexported fields }
func (*Msg) Descriptor
deprecated
func (*Msg) GetCheckpoint ¶
func (x *Msg) GetCheckpoint() *Checkpoint
func (*Msg) GetEpochChange ¶
func (x *Msg) GetEpochChange() *EpochChange
func (*Msg) GetEpochChangeAck ¶
func (x *Msg) GetEpochChangeAck() *EpochChangeAck
func (*Msg) GetFetchBatch ¶
func (x *Msg) GetFetchBatch() *FetchBatch
func (*Msg) GetFetchRequest ¶
func (x *Msg) GetFetchRequest() *RequestAck
func (*Msg) GetForwardBatch ¶
func (x *Msg) GetForwardBatch() *ForwardBatch
func (*Msg) GetForwardRequest ¶
func (x *Msg) GetForwardRequest() *ForwardRequest
func (*Msg) GetNewEpoch ¶
func (*Msg) GetNewEpochEcho ¶
func (x *Msg) GetNewEpochEcho() *NewEpochConfig
func (*Msg) GetNewEpochReady ¶
func (x *Msg) GetNewEpochReady() *NewEpochConfig
func (*Msg) GetPrepare ¶
func (*Msg) GetPreprepare ¶
func (x *Msg) GetPreprepare() *Preprepare
func (*Msg) GetRequestAck ¶
func (x *Msg) GetRequestAck() *RequestAck
func (*Msg) GetSuspect ¶
func (*Msg) ProtoMessage ¶
func (*Msg) ProtoMessage()
func (*Msg) ProtoReflect ¶
func (x *Msg) ProtoReflect() protoreflect.Message
type Msg_Checkpoint ¶
type Msg_Checkpoint struct {
Checkpoint *Checkpoint `protobuf:"bytes,4,opt,name=checkpoint,proto3,oneof"`
}
type Msg_Commit ¶
type Msg_Commit struct {
Commit *Commit `protobuf:"bytes,3,opt,name=commit,proto3,oneof"`
}
type Msg_EpochChange ¶
type Msg_EpochChange struct {
EpochChange *EpochChange `protobuf:"bytes,6,opt,name=epoch_change,json=epochChange,proto3,oneof"`
}
type Msg_EpochChangeAck ¶
type Msg_EpochChangeAck struct {
EpochChangeAck *EpochChangeAck `protobuf:"bytes,7,opt,name=epoch_change_ack,json=epochChangeAck,proto3,oneof"`
}
type Msg_FetchBatch ¶
type Msg_FetchBatch struct {
FetchBatch *FetchBatch `protobuf:"bytes,11,opt,name=fetch_batch,json=fetchBatch,proto3,oneof"`
}
type Msg_FetchRequest ¶
type Msg_FetchRequest struct {
FetchRequest *RequestAck `protobuf:"bytes,13,opt,name=fetch_request,json=fetchRequest,proto3,oneof"`
}
type Msg_ForwardBatch ¶
type Msg_ForwardBatch struct {
ForwardBatch *ForwardBatch `protobuf:"bytes,12,opt,name=forward_batch,json=forwardBatch,proto3,oneof"`
}
type Msg_ForwardRequest ¶
type Msg_ForwardRequest struct {
ForwardRequest *ForwardRequest `protobuf:"bytes,14,opt,name=forward_request,json=forwardRequest,proto3,oneof"`
}
type Msg_NewEpoch ¶
type Msg_NewEpoch struct {
NewEpoch *NewEpoch `protobuf:"bytes,8,opt,name=new_epoch,json=newEpoch,proto3,oneof"`
}
type Msg_NewEpochEcho ¶
type Msg_NewEpochEcho struct {
NewEpochEcho *NewEpochConfig `protobuf:"bytes,9,opt,name=new_epoch_echo,json=newEpochEcho,proto3,oneof"`
}
type Msg_NewEpochReady ¶
type Msg_NewEpochReady struct {
NewEpochReady *NewEpochConfig `protobuf:"bytes,10,opt,name=new_epoch_ready,json=newEpochReady,proto3,oneof"`
}
type Msg_Prepare ¶
type Msg_Prepare struct {
Prepare *Prepare `protobuf:"bytes,2,opt,name=prepare,proto3,oneof"`
}
type Msg_Preprepare ¶
type Msg_Preprepare struct {
Preprepare *Preprepare `protobuf:"bytes,1,opt,name=preprepare,proto3,oneof"`
}
type Msg_RequestAck ¶
type Msg_RequestAck struct {
RequestAck *RequestAck `protobuf:"bytes,15,opt,name=request_ack,json=requestAck,proto3,oneof"`
}
type Msg_Suspect ¶
type Msg_Suspect struct {
Suspect *Suspect `protobuf:"bytes,5,opt,name=suspect,proto3,oneof"`
}
type NEntry ¶
type NEntry struct { SeqNo uint64 `protobuf:"varint,1,opt,name=seq_no,json=seqNo,proto3" json:"seq_no,omitempty"` EpochConfig *EpochConfig `protobuf:"bytes,2,opt,name=epoch_config,json=epochConfig,proto3" json:"epoch_config,omitempty"` // TODO, include whether we've suspected // contains filtered or unexported fields }
NEntry indicates that a new set of sequences are being allocated, and will be persisted immediately before log truncation occurs.
func (*NEntry) Descriptor
deprecated
func (*NEntry) GetEpochConfig ¶
func (x *NEntry) GetEpochConfig() *EpochConfig
func (*NEntry) ProtoMessage ¶
func (*NEntry) ProtoMessage()
func (*NEntry) ProtoReflect ¶
func (x *NEntry) ProtoReflect() protoreflect.Message
type NetworkState ¶
type NetworkState struct { Config *NetworkState_Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` Clients []*NetworkState_Client `protobuf:"bytes,2,rep,name=clients,proto3" json:"clients,omitempty"` PendingReconfigurations []*Reconfiguration `` /* 130-byte string literal not displayed */ Reconfigured bool `protobuf:"varint,4,opt,name=reconfigured,proto3" json:"reconfigured,omitempty"` // TODO, do we need this? // contains filtered or unexported fields }
NetworkState contains the configuration agreed to by all nodes in the network as well as the current client statuses. NetworkState must be reflected in the state digest for checkpoints. The easiest way to accomplish this is by serializing the structure and including it in the application state. Note, when there are a large number of clients, performing a custom serialization may be desirable.
func (*NetworkState) Descriptor
deprecated
func (*NetworkState) Descriptor() ([]byte, []int)
Deprecated: Use NetworkState.ProtoReflect.Descriptor instead.
func (*NetworkState) GetClients ¶
func (x *NetworkState) GetClients() []*NetworkState_Client
func (*NetworkState) GetConfig ¶
func (x *NetworkState) GetConfig() *NetworkState_Config
func (*NetworkState) GetPendingReconfigurations ¶
func (x *NetworkState) GetPendingReconfigurations() []*Reconfiguration
func (*NetworkState) GetReconfigured ¶
func (x *NetworkState) GetReconfigured() bool
func (*NetworkState) ProtoMessage ¶
func (*NetworkState) ProtoMessage()
func (*NetworkState) ProtoReflect ¶
func (x *NetworkState) ProtoReflect() protoreflect.Message
func (*NetworkState) Reset ¶
func (x *NetworkState) Reset()
func (*NetworkState) String ¶
func (x *NetworkState) String() string
type NetworkState_Client ¶
type NetworkState_Client struct { // A unique ID for this client, never repeated. Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // Width is the configured width of the request window for this client. // Clients must submit requests sequentially, but, replicas will participate // in the ack procedures for any request acknowledged within this window. Width uint32 `protobuf:"varint,2,opt,name=width,proto3" json:"width,omitempty"` // WidthConsumedLastCheckpoint is the portion of the request window which // overlaps with commits in the last checkpoint. It must be tracked because // we do not want to wait for the previous checkpoint to be computed before // processing requests in the next checkpoint window. Therefore, we restrict // the width in the current checkpoint window to be width - width_consumed_last_checkpoint // and in this way, we ensure that all replicas regardless of whether they have the // last checkpoint can deterministically evaluate whether a request is within the // expected watermarks. WidthConsumedLastCheckpoint uint32 `` /* 147-byte string literal not displayed */ // LowWatermark is the lowest uncommitted request number. LowWatermark uint64 `protobuf:"varint,4,opt,name=low_watermark,json=lowWatermark,proto3" json:"low_watermark,omitempty"` // CommittedMask is a bitmask of up to length 'width', indicating which request numbers // beyond the low_watermark have committed. If non-empty, the last byte is never 0, // and all request numbers beyond the last bit are uncommitted. Note, a repeated bool // would be much more natural, but very space inefficient per proto's implementation. CommittedMask []byte `protobuf:"bytes,5,opt,name=committed_mask,json=committedMask,proto3" json:"committed_mask,omitempty"` // contains filtered or unexported fields }
func (*NetworkState_Client) Descriptor
deprecated
func (*NetworkState_Client) Descriptor() ([]byte, []int)
Deprecated: Use NetworkState_Client.ProtoReflect.Descriptor instead.
func (*NetworkState_Client) GetCommittedMask ¶
func (x *NetworkState_Client) GetCommittedMask() []byte
func (*NetworkState_Client) GetId ¶
func (x *NetworkState_Client) GetId() uint64
func (*NetworkState_Client) GetLowWatermark ¶
func (x *NetworkState_Client) GetLowWatermark() uint64
func (*NetworkState_Client) GetWidth ¶
func (x *NetworkState_Client) GetWidth() uint32
func (*NetworkState_Client) GetWidthConsumedLastCheckpoint ¶
func (x *NetworkState_Client) GetWidthConsumedLastCheckpoint() uint32
func (*NetworkState_Client) ProtoMessage ¶
func (*NetworkState_Client) ProtoMessage()
func (*NetworkState_Client) ProtoReflect ¶
func (x *NetworkState_Client) ProtoReflect() protoreflect.Message
func (*NetworkState_Client) Reset ¶
func (x *NetworkState_Client) Reset()
func (*NetworkState_Client) String ¶
func (x *NetworkState_Client) String() string
type NetworkState_Config ¶
type NetworkState_Config struct { // Nodes represent the active nodeIDs in the network. // The number of nodeIDs corresponds to the size of the network. Nodes []uint64 `protobuf:"varint,1,rep,packed,name=nodes,proto3" json:"nodes,omitempty"` // CheckpointInterval is how often checkpoints are taken. In terms of // of sequence numbers, this is multiplied by the configured number of // buckets, so that it scales naturally as the number of buckets increases // or decreases. CheckpointInterval int32 `protobuf:"varint,2,opt,name=checkpoint_interval,json=checkpointInterval,proto3" json:"checkpoint_interval,omitempty"` // MaxEpochLength is the maximum number of sequence numbers which may preprepare // in an epoch. This is to force bucket rotation even when the system is otherwise // in a healthy state. Setting this value to uint64_max will effectively disable // graceful epoch changes. MaxEpochLength uint64 `protobuf:"varint,3,opt,name=max_epoch_length,json=maxEpochLength,proto3" json:"max_epoch_length,omitempty"` // NumberOfBuckets is the number of buckets the network is configured to operate over. // Each bucket is a partition of the request space. Typically, number of buckets should // be nodes * m, where 'm' is some small constant. Setting this value to 1 effectively // reduces Mir to PBFT. NumberOfBuckets int32 `protobuf:"varint,4,opt,name=number_of_buckets,json=numberOfBuckets,proto3" json:"number_of_buckets,omitempty"` // F is the number of byzantine faults tolerated by the network. // It must be less than len(nodes)/3 (truncated). The 'F' parameter // need not be maximal, ie, a network of 9 nodes with 'F' set to 1 may // simultaneously tolerate 1 byzantine fault, and 2 crash faults. Whereas // when F=2, that 9 node network may only tolerate 2 crash faults. Note // usually, a maximal value makes sense. For instance in a network of 7 // nodes F=1, and F=2 both provide crash tolerance of only 2 nodes. The // following table summarizes the number of crash faults tolerated for // a given network of size N and number of byzantine faults tolerated F. // // | F | // | 0 | 1 | 2 | 3 | 4 | 5 | // N -------------------------- // 1 | 0 | | | | | | // 2 | 0 | | | | | | // 3 | 1 | | | | | | // 4 | 1 | 1 | | | | | // 5 | 2 | 1 | | | | | // 6 | 2 | 1 | | | | | // 7 | 3 | 2 | 2 | | | | // 8 | 3 | 3 | 2 | | | | // 9 | 4 | 3 | 2 | | | | // 10 | 4 | 4 | 3 | 3 | | | // 11 | 5 | 4 | 4 | 3 | | | // 12 | 5 | 5 | 4 | 4 | | | // 13 | 6 | 5 | 5 | 4 | 4 | | // 14 | 6 | 6 | 5 | 5 | 4 | | // 15 | 7 | 6 | 6 | 5 | 5 | | // 16 | 7 | 7 | 6 | 6 | 5 | 5 | // 17 | 8 | 7 | 7 | 6 | 6 | 5 | F int32 `protobuf:"varint,5,opt,name=f,proto3" json:"f,omitempty"` // contains filtered or unexported fields }
func (*NetworkState_Config) Descriptor
deprecated
func (*NetworkState_Config) Descriptor() ([]byte, []int)
Deprecated: Use NetworkState_Config.ProtoReflect.Descriptor instead.
func (*NetworkState_Config) GetCheckpointInterval ¶
func (x *NetworkState_Config) GetCheckpointInterval() int32
func (*NetworkState_Config) GetF ¶
func (x *NetworkState_Config) GetF() int32
func (*NetworkState_Config) GetMaxEpochLength ¶
func (x *NetworkState_Config) GetMaxEpochLength() uint64
func (*NetworkState_Config) GetNodes ¶
func (x *NetworkState_Config) GetNodes() []uint64
func (*NetworkState_Config) GetNumberOfBuckets ¶
func (x *NetworkState_Config) GetNumberOfBuckets() int32
func (*NetworkState_Config) ProtoMessage ¶
func (*NetworkState_Config) ProtoMessage()
func (*NetworkState_Config) ProtoReflect ¶
func (x *NetworkState_Config) ProtoReflect() protoreflect.Message
func (*NetworkState_Config) Reset ¶
func (x *NetworkState_Config) Reset()
func (*NetworkState_Config) String ¶
func (x *NetworkState_Config) String() string
type NewEpoch ¶
type NewEpoch struct { NewConfig *NewEpochConfig `protobuf:"bytes,1,opt,name=new_config,json=newConfig,proto3" json:"new_config,omitempty"` // epoch_changes must contains at least 2f+1 EpochChange messages references from // replicas in the network. If two EpochChanges references originated from the same // replica, then the NewEpoch message is invalid. EpochChanges []*NewEpoch_RemoteEpochChange `protobuf:"bytes,2,rep,name=epoch_changes,json=epochChanges,proto3" json:"epoch_changes,omitempty"` // contains filtered or unexported fields }
NewEpoch is akin to the NewView message in classical PBFT and follows the same semantics. Optionally, for graceful epoch change, the epoch_changes field may be empty. In the event that the previous epoch does not complete gracefully, the graceful NewEpoch is ignored. Unlike in classical PBFT, we employ a classical Bracha reliable broadcast on embedded config. A replica should respond to a NewEpoch message with a NewEpochEcho (assuming that the NewEpoch message is validly constructed). We consider the payload of the broadcast to be the config, and treat the epoch changes as the signature / proof which validates the initial connection but does not need to be rebroadcast.
func (*NewEpoch) Descriptor
deprecated
func (*NewEpoch) GetEpochChanges ¶
func (x *NewEpoch) GetEpochChanges() []*NewEpoch_RemoteEpochChange
func (*NewEpoch) GetNewConfig ¶
func (x *NewEpoch) GetNewConfig() *NewEpochConfig
func (*NewEpoch) ProtoMessage ¶
func (*NewEpoch) ProtoMessage()
func (*NewEpoch) ProtoReflect ¶
func (x *NewEpoch) ProtoReflect() protoreflect.Message
type NewEpochConfig ¶
type NewEpochConfig struct { Config *EpochConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` StartingCheckpoint *Checkpoint `protobuf:"bytes,2,opt,name=starting_checkpoint,json=startingCheckpoint,proto3" json:"starting_checkpoint,omitempty"` // final_preprepares finalizes the last checkpoint window or windows // which some correct replica preprepared a sequence in. The entries are // digests indexed by sequence number offset by the starting_checkpoint // seq_no. An empty digest corresponds to a null request. FinalPreprepares [][]byte `protobuf:"bytes,3,rep,name=final_preprepares,json=finalPreprepares,proto3" json:"final_preprepares,omitempty"` // contains filtered or unexported fields }
func (*NewEpochConfig) Descriptor
deprecated
func (*NewEpochConfig) Descriptor() ([]byte, []int)
Deprecated: Use NewEpochConfig.ProtoReflect.Descriptor instead.
func (*NewEpochConfig) GetConfig ¶
func (x *NewEpochConfig) GetConfig() *EpochConfig
func (*NewEpochConfig) GetFinalPreprepares ¶
func (x *NewEpochConfig) GetFinalPreprepares() [][]byte
func (*NewEpochConfig) GetStartingCheckpoint ¶
func (x *NewEpochConfig) GetStartingCheckpoint() *Checkpoint
func (*NewEpochConfig) ProtoMessage ¶
func (*NewEpochConfig) ProtoMessage()
func (*NewEpochConfig) ProtoReflect ¶
func (x *NewEpochConfig) ProtoReflect() protoreflect.Message
func (*NewEpochConfig) Reset ¶
func (x *NewEpochConfig) Reset()
func (*NewEpochConfig) String ¶
func (x *NewEpochConfig) String() string
type NewEpoch_RemoteEpochChange ¶
type NewEpoch_RemoteEpochChange struct { NodeId uint64 `protobuf:"varint,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` Digest []byte `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"` // contains filtered or unexported fields }
func (*NewEpoch_RemoteEpochChange) Descriptor
deprecated
func (*NewEpoch_RemoteEpochChange) Descriptor() ([]byte, []int)
Deprecated: Use NewEpoch_RemoteEpochChange.ProtoReflect.Descriptor instead.
func (*NewEpoch_RemoteEpochChange) GetDigest ¶
func (x *NewEpoch_RemoteEpochChange) GetDigest() []byte
func (*NewEpoch_RemoteEpochChange) GetNodeId ¶
func (x *NewEpoch_RemoteEpochChange) GetNodeId() uint64
func (*NewEpoch_RemoteEpochChange) ProtoMessage ¶
func (*NewEpoch_RemoteEpochChange) ProtoMessage()
func (*NewEpoch_RemoteEpochChange) ProtoReflect ¶
func (x *NewEpoch_RemoteEpochChange) ProtoReflect() protoreflect.Message
func (*NewEpoch_RemoteEpochChange) Reset ¶
func (x *NewEpoch_RemoteEpochChange) Reset()
func (*NewEpoch_RemoteEpochChange) String ¶
func (x *NewEpoch_RemoteEpochChange) String() string
type PEntry ¶
type PEntry struct { SeqNo uint64 `protobuf:"varint,2,opt,name=seq_no,json=seqNo,proto3" json:"seq_no,omitempty"` Digest []byte `protobuf:"bytes,3,opt,name=digest,proto3" json:"digest,omitempty"` // contains filtered or unexported fields }
PEntry is an entry which must be persisted before a batch is Prepared (ie, before a Commit message is sent).
func (*PEntry) Descriptor
deprecated
func (*PEntry) ProtoMessage ¶
func (*PEntry) ProtoMessage()
func (*PEntry) ProtoReflect ¶
func (x *PEntry) ProtoReflect() protoreflect.Message
type Persistent ¶
type Persistent struct { // Types that are assignable to Type: // *Persistent_QEntry // *Persistent_PEntry // *Persistent_CEntry // *Persistent_NEntry // *Persistent_FEntry // *Persistent_ECEntry // *Persistent_TEntry // *Persistent_Suspect Type isPersistent_Type `protobuf_oneof:"type"` // contains filtered or unexported fields }
Persistent contains data that should be persited by lib user
func (*Persistent) Descriptor
deprecated
func (*Persistent) Descriptor() ([]byte, []int)
Deprecated: Use Persistent.ProtoReflect.Descriptor instead.
func (*Persistent) GetCEntry ¶
func (x *Persistent) GetCEntry() *CEntry
func (*Persistent) GetECEntry ¶
func (x *Persistent) GetECEntry() *ECEntry
func (*Persistent) GetFEntry ¶
func (x *Persistent) GetFEntry() *FEntry
func (*Persistent) GetNEntry ¶
func (x *Persistent) GetNEntry() *NEntry
func (*Persistent) GetPEntry ¶
func (x *Persistent) GetPEntry() *PEntry
func (*Persistent) GetQEntry ¶
func (x *Persistent) GetQEntry() *QEntry
func (*Persistent) GetSuspect ¶
func (x *Persistent) GetSuspect() *Suspect
func (*Persistent) GetTEntry ¶
func (x *Persistent) GetTEntry() *TEntry
func (*Persistent) GetType ¶
func (m *Persistent) GetType() isPersistent_Type
func (*Persistent) ProtoMessage ¶
func (*Persistent) ProtoMessage()
func (*Persistent) ProtoReflect ¶
func (x *Persistent) ProtoReflect() protoreflect.Message
func (*Persistent) Reset ¶
func (x *Persistent) Reset()
func (*Persistent) String ¶
func (x *Persistent) String() string
type Persistent_CEntry ¶
type Persistent_CEntry struct {
CEntry *CEntry `protobuf:"bytes,3,opt,name=c_entry,json=cEntry,proto3,oneof"`
}
type Persistent_ECEntry ¶
type Persistent_ECEntry struct {
ECEntry *ECEntry `protobuf:"bytes,6,opt,name=e_c_entry,json=eCEntry,proto3,oneof"`
}
type Persistent_FEntry ¶
type Persistent_FEntry struct {
FEntry *FEntry `protobuf:"bytes,5,opt,name=f_entry,json=fEntry,proto3,oneof"`
}
type Persistent_NEntry ¶
type Persistent_NEntry struct {
NEntry *NEntry `protobuf:"bytes,4,opt,name=n_entry,json=nEntry,proto3,oneof"`
}
type Persistent_PEntry ¶
type Persistent_PEntry struct {
PEntry *PEntry `protobuf:"bytes,2,opt,name=p_entry,json=pEntry,proto3,oneof"`
}
type Persistent_QEntry ¶
type Persistent_QEntry struct {
QEntry *QEntry `protobuf:"bytes,1,opt,name=q_entry,json=qEntry,proto3,oneof"`
}
type Persistent_Suspect ¶
type Persistent_Suspect struct {
Suspect *Suspect `protobuf:"bytes,8,opt,name=suspect,proto3,oneof"` // TODO, suspect_ready?
}
type Persistent_TEntry ¶
type Persistent_TEntry struct {
TEntry *TEntry `protobuf:"bytes,7,opt,name=t_entry,json=tEntry,proto3,oneof"`
}
type Prepare ¶
type Prepare struct { SeqNo uint64 `protobuf:"varint,1,opt,name=seq_no,json=seqNo,proto3" json:"seq_no,omitempty"` Epoch uint64 `protobuf:"varint,2,opt,name=epoch,proto3" json:"epoch,omitempty"` Digest []byte `protobuf:"bytes,3,opt,name=digest,proto3" json:"digest,omitempty"` // contains filtered or unexported fields }
func (*Prepare) Descriptor
deprecated
func (*Prepare) ProtoMessage ¶
func (*Prepare) ProtoMessage()
func (*Prepare) ProtoReflect ¶
func (x *Prepare) ProtoReflect() protoreflect.Message
type Preprepare ¶
type Preprepare struct { SeqNo uint64 `protobuf:"varint,1,opt,name=seq_no,json=seqNo,proto3" json:"seq_no,omitempty"` Epoch uint64 `protobuf:"varint,2,opt,name=epoch,proto3" json:"epoch,omitempty"` Batch []*RequestAck `protobuf:"bytes,3,rep,name=batch,proto3" json:"batch,omitempty"` // contains filtered or unexported fields }
func (*Preprepare) Descriptor
deprecated
func (*Preprepare) Descriptor() ([]byte, []int)
Deprecated: Use Preprepare.ProtoReflect.Descriptor instead.
func (*Preprepare) GetBatch ¶
func (x *Preprepare) GetBatch() []*RequestAck
func (*Preprepare) GetEpoch ¶
func (x *Preprepare) GetEpoch() uint64
func (*Preprepare) GetSeqNo ¶
func (x *Preprepare) GetSeqNo() uint64
func (*Preprepare) ProtoMessage ¶
func (*Preprepare) ProtoMessage()
func (*Preprepare) ProtoReflect ¶
func (x *Preprepare) ProtoReflect() protoreflect.Message
func (*Preprepare) Reset ¶
func (x *Preprepare) Reset()
func (*Preprepare) String ¶
func (x *Preprepare) String() string
type QEntry ¶
type QEntry struct { SeqNo uint64 `protobuf:"varint,2,opt,name=seq_no,json=seqNo,proto3" json:"seq_no,omitempty"` Digest []byte `protobuf:"bytes,3,opt,name=digest,proto3" json:"digest,omitempty"` Requests []*RequestAck `protobuf:"bytes,4,rep,name=requests,proto3" json:"requests,omitempty"` // contains filtered or unexported fields }
QEntry is an entry which must be persisted before a batch is Preprepared (ie, before a Preprepare or Prepare message is sent). Note, any RequestAck referenced by the QEntry is already persisted to disk.
func (*QEntry) Descriptor
deprecated
func (*QEntry) GetRequests ¶
func (x *QEntry) GetRequests() []*RequestAck
func (*QEntry) ProtoMessage ¶
func (*QEntry) ProtoMessage()
func (*QEntry) ProtoReflect ¶
func (x *QEntry) ProtoReflect() protoreflect.Message
type Reconfiguration ¶
type Reconfiguration struct { // Types that are assignable to Type: // *Reconfiguration_NewClient_ // *Reconfiguration_RemoveClient // *Reconfiguration_NewConfig Type isReconfiguration_Type `protobuf_oneof:"type"` // contains filtered or unexported fields }
func (*Reconfiguration) Descriptor
deprecated
func (*Reconfiguration) Descriptor() ([]byte, []int)
Deprecated: Use Reconfiguration.ProtoReflect.Descriptor instead.
func (*Reconfiguration) GetNewClient ¶
func (x *Reconfiguration) GetNewClient() *Reconfiguration_NewClient
func (*Reconfiguration) GetNewConfig ¶
func (x *Reconfiguration) GetNewConfig() *NetworkState_Config
func (*Reconfiguration) GetRemoveClient ¶
func (x *Reconfiguration) GetRemoveClient() uint64
func (*Reconfiguration) GetType ¶
func (m *Reconfiguration) GetType() isReconfiguration_Type
func (*Reconfiguration) ProtoMessage ¶
func (*Reconfiguration) ProtoMessage()
func (*Reconfiguration) ProtoReflect ¶
func (x *Reconfiguration) ProtoReflect() protoreflect.Message
func (*Reconfiguration) Reset ¶
func (x *Reconfiguration) Reset()
func (*Reconfiguration) String ¶
func (x *Reconfiguration) String() string
type Reconfiguration_NewClient ¶
type Reconfiguration_NewClient struct { Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Width uint32 `protobuf:"varint,2,opt,name=width,proto3" json:"width,omitempty"` // contains filtered or unexported fields }
func (*Reconfiguration_NewClient) Descriptor
deprecated
func (*Reconfiguration_NewClient) Descriptor() ([]byte, []int)
Deprecated: Use Reconfiguration_NewClient.ProtoReflect.Descriptor instead.
func (*Reconfiguration_NewClient) GetId ¶
func (x *Reconfiguration_NewClient) GetId() uint64
func (*Reconfiguration_NewClient) GetWidth ¶
func (x *Reconfiguration_NewClient) GetWidth() uint32
func (*Reconfiguration_NewClient) ProtoMessage ¶
func (*Reconfiguration_NewClient) ProtoMessage()
func (*Reconfiguration_NewClient) ProtoReflect ¶
func (x *Reconfiguration_NewClient) ProtoReflect() protoreflect.Message
func (*Reconfiguration_NewClient) Reset ¶
func (x *Reconfiguration_NewClient) Reset()
func (*Reconfiguration_NewClient) String ¶
func (x *Reconfiguration_NewClient) String() string
type Reconfiguration_NewClient_ ¶
type Reconfiguration_NewClient_ struct {
NewClient *Reconfiguration_NewClient `protobuf:"bytes,1,opt,name=new_client,json=newClient,proto3,oneof"`
}
type Reconfiguration_NewConfig ¶
type Reconfiguration_NewConfig struct {
NewConfig *NetworkState_Config `protobuf:"bytes,3,opt,name=new_config,json=newConfig,proto3,oneof"`
}
type Reconfiguration_RemoveClient ¶
type Reconfiguration_RemoveClient struct {
RemoveClient uint64 `protobuf:"varint,2,opt,name=remove_client,json=removeClient,proto3,oneof"`
}
type Request ¶
type Request struct { ClientId uint64 `protobuf:"varint,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` ReqNo uint64 `protobuf:"varint,2,opt,name=req_no,json=reqNo,proto3" json:"req_no,omitempty"` Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` // contains filtered or unexported fields }
func (*Request) Descriptor
deprecated
func (*Request) GetClientId ¶
func (*Request) ProtoMessage ¶
func (*Request) ProtoMessage()
func (*Request) ProtoReflect ¶
func (x *Request) ProtoReflect() protoreflect.Message
type RequestAck ¶
type RequestAck struct { ClientId uint64 `protobuf:"varint,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` ReqNo uint64 `protobuf:"varint,2,opt,name=req_no,json=reqNo,proto3" json:"req_no,omitempty"` Digest []byte `protobuf:"bytes,3,opt,name=digest,proto3" json:"digest,omitempty"` // contains filtered or unexported fields }
func (*RequestAck) Descriptor
deprecated
func (*RequestAck) Descriptor() ([]byte, []int)
Deprecated: Use RequestAck.ProtoReflect.Descriptor instead.
func (*RequestAck) GetClientId ¶
func (x *RequestAck) GetClientId() uint64
func (*RequestAck) GetDigest ¶
func (x *RequestAck) GetDigest() []byte
func (*RequestAck) GetReqNo ¶
func (x *RequestAck) GetReqNo() uint64
func (*RequestAck) ProtoMessage ¶
func (*RequestAck) ProtoMessage()
func (*RequestAck) ProtoReflect ¶
func (x *RequestAck) ProtoReflect() protoreflect.Message
func (*RequestAck) Reset ¶
func (x *RequestAck) Reset()
func (*RequestAck) String ¶
func (x *RequestAck) String() string
type Suspect ¶
type Suspect struct { Epoch uint64 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"` // contains filtered or unexported fields }
func (*Suspect) Descriptor
deprecated
func (*Suspect) ProtoMessage ¶
func (*Suspect) ProtoMessage()
func (*Suspect) ProtoReflect ¶
func (x *Suspect) ProtoReflect() protoreflect.Message
type TEntry ¶
type TEntry struct { SeqNo uint64 `protobuf:"varint,1,opt,name=seq_no,json=seqNo,proto3" json:"seq_no,omitempty"` Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` // contains filtered or unexported fields }
TEntry indicates that a state transfer has been requested.
func (*TEntry) Descriptor
deprecated
func (*TEntry) ProtoMessage ¶
func (*TEntry) ProtoMessage()
func (*TEntry) ProtoReflect ¶
func (x *TEntry) ProtoReflect() protoreflect.Message