Documentation ¶
Index ¶
- Constants
- Variables
- func MessageType(msg interface{}) uint64
- func WalMessageType(msg interface{}) uint64
- type BlockPreCommitQuorumCert
- type BlockQuorumCert
- type ChainState
- type ConfirmedViewChange
- type GetBlockPreCommitQuorumCert
- type GetBlockQuorumCert
- type GetLatestStatus
- type GetPreCommit
- type GetPrepareBlock
- type GetPrepareVote
- type GetQCBlockList
- type GetViewChange
- type LatestStatus
- type PbftStatusData
- type Ping
- type Pong
- type PreCommit
- func (pv *PreCommit) BHash() common.Hash
- func (pv *PreCommit) BlockNum() uint64
- func (pv *PreCommit) CannibalizeBytes() ([]byte, error)
- func (pv *PreCommit) EpochNum() uint64
- func (pv *PreCommit) EqualState(vote *PreCommit) bool
- func (pv *PreCommit) MsgHash() common.Hash
- func (pv *PreCommit) NodeIndex() uint32
- func (pv *PreCommit) SetSign(sign []byte)
- func (pv *PreCommit) Sign() []byte
- func (pv *PreCommit) String() string
- func (pv *PreCommit) ViewNum() uint64
- type PreCommits
- type PrepareBlock
- func (pb *PrepareBlock) BHash() common.Hash
- func (pb *PrepareBlock) BlockNum() uint64
- func (pb *PrepareBlock) CannibalizeBytes() ([]byte, error)
- func (pb *PrepareBlock) EpochNum() uint64
- func (pb *PrepareBlock) MsgHash() common.Hash
- func (pb *PrepareBlock) NodeIndex() uint32
- func (pb *PrepareBlock) SetSign(sign []byte)
- func (pb *PrepareBlock) Sign() []byte
- func (pb *PrepareBlock) String() string
- func (pb *PrepareBlock) ViewNum() uint64
- type PrepareBlockHash
- type PrepareVote
- func (pv *PrepareVote) BHash() common.Hash
- func (pv *PrepareVote) BlockNum() uint64
- func (pv *PrepareVote) CannibalizeBytes() ([]byte, error)
- func (pv *PrepareVote) EpochNum() uint64
- func (pv *PrepareVote) EqualState(vote *PrepareVote) bool
- func (pv *PrepareVote) MsgHash() common.Hash
- func (pv *PrepareVote) NodeIndex() uint32
- func (pv *PrepareVote) SetSign(sign []byte)
- func (pv *PrepareVote) Sign() []byte
- func (pv *PrepareVote) String() string
- func (pv *PrepareVote) ViewNum() uint64
- type PrepareVotes
- type QCBlockList
- type SendPreCommit
- type SendPrepareBlock
- type SendPrepareVote
- type SendViewChange
- type State
- type ViewChange
- func (vc *ViewChange) BHash() common.Hash
- func (vc *ViewChange) BlockNum() uint64
- func (vc *ViewChange) CannibalizeBytes() ([]byte, error)
- func (vc *ViewChange) EpochNum() uint64
- func (vc *ViewChange) MsgHash() common.Hash
- func (vc *ViewChange) NodeIndex() uint32
- func (vc *ViewChange) SetSign(sign []byte)
- func (vc *ViewChange) Sign() []byte
- func (vc *ViewChange) String() string
- func (vc *ViewChange) ViewNum() uint64
- type ViewChangeQuorumCert
- type ViewChanges
- type WalMsg
Constants ¶
const ( PBFTStatusMsg = 0x00 // Protocol messages belonging to pbft PrepareBlockMsg = 0x01 PrepareVoteMsg = 0x02 ViewChangeMsg = 0x03 GetPrepareBlockMsg = 0x04 GetBlockQuorumCertMsg = 0x05 BlockQuorumCertMsg = 0x06 GetPrepareVoteMsg = 0x07 PrepareVotesMsg = 0x08 GetQCBlockListMsg = 0x09 QCBlockListMsg = 0x0a GetLatestStatusMsg = 0x0b LatestStatusMsg = 0x0c PrepareBlockHashMsg = 0x0d GetViewChangeMsg = 0x0e PingMsg = 0x0f PongMsg = 0x10 ViewChangeQuorumCertMsg = 0x11 ViewChangesMsg = 0x12 PreCommitMsg = 0x13 GetPreCommitMsg = 0x14 GetBlockPreCommitQuorumCertMsg = 0x15 BlockPreCommitQuorumCertMsg = 0x16 PreCommitsMsg = 0x17 )
const ( ConfirmedViewChangeMsg = 0x01 SendViewChangeMsg = 0x02 SendPrepareBlockMsg = 0x03 SendPrepareVoteMsg = 0x04 SendPreCommitMsg = 0x05 )
const ( CommitState = 0x05 LockState = 0x06 QCState = 0x07 )
const DefaultAvgLatency = 100
Default average delay time (in milliseconds).
const PbftProtocolMaxMsgSize = 10 * 1024 * 1024
Maximum cap on the size of a pbft protocol message
Variables ¶
var ( WalMessages = []interface{}{ ConfirmedViewChange{}, SendViewChange{}, SendPrepareBlock{}, SendPrepareVote{}, SendPreCommit{}, } )
Functions ¶
func MessageType ¶
func MessageType(msg interface{}) uint64
A is used to convert specific message types according to the message body. The program is forcibly terminated if there is an unmatched message type and all types must exist in the match list.
func WalMessageType ¶
func WalMessageType(msg interface{}) uint64
Types ¶
type BlockPreCommitQuorumCert ¶
type BlockPreCommitQuorumCert struct { BlockQC *ctypes.QuorumCert `json:"qc"` // Block aggregation signature information. // contains filtered or unexported fields }
Aggregate signature response message, representing aggregated signature information for a block.
func (*BlockPreCommitQuorumCert) BHash ¶
func (s *BlockPreCommitQuorumCert) BHash() common.Hash
func (*BlockPreCommitQuorumCert) MsgHash ¶
func (s *BlockPreCommitQuorumCert) MsgHash() common.Hash
func (*BlockPreCommitQuorumCert) String ¶
func (s *BlockPreCommitQuorumCert) String() string
type BlockQuorumCert ¶
type BlockQuorumCert struct { BlockQC *ctypes.QuorumCert `json:"qc"` // Block aggregation signature information. // contains filtered or unexported fields }
Aggregate signature response message, representing aggregated signature information for a block.
func (*BlockQuorumCert) BHash ¶
func (s *BlockQuorumCert) BHash() common.Hash
func (*BlockQuorumCert) MsgHash ¶
func (s *BlockQuorumCert) MsgHash() common.Hash
func (*BlockQuorumCert) String ¶
func (s *BlockQuorumCert) String() string
type ChainState ¶
ChainState indicates the latest consensus state.
func (*ChainState) String ¶
func (cs *ChainState) String() string
func (*ChainState) ValidChainState ¶
func (cs *ChainState) ValidChainState() bool
type ConfirmedViewChange ¶
type ConfirmedViewChange struct { Epoch uint64 ViewNumber uint64 Block *types.Block QC *ctypes.QuorumCert `rlp:"nil"` ViewChangeQC *ctypes.ViewChangeQC `rlp:"nil"` }
ConfirmedViewChange indicates the latest confirmed view.
func (*ConfirmedViewChange) String ¶
func (c *ConfirmedViewChange) String() string
type GetBlockPreCommitQuorumCert ¶
type GetBlockPreCommitQuorumCert struct { BlockHash common.Hash `json:"blockHash"` // The hash of the block to be acquired. BlockNumber uint64 `json:"blockNumber"` // The number of the block to be acquired. // contains filtered or unexported fields }
GetBlockPreCommitQuorumCert is the protocol message for obtaining an aggregated signature. todo: Need to determine the attribute field - ParentQC.
func (*GetBlockPreCommitQuorumCert) BHash ¶
func (s *GetBlockPreCommitQuorumCert) BHash() common.Hash
func (*GetBlockPreCommitQuorumCert) MsgHash ¶
func (s *GetBlockPreCommitQuorumCert) MsgHash() common.Hash
func (*GetBlockPreCommitQuorumCert) String ¶
func (s *GetBlockPreCommitQuorumCert) String() string
type GetBlockQuorumCert ¶
type GetBlockQuorumCert struct { BlockHash common.Hash `json:"blockHash"` // The hash of the block to be acquired. BlockNumber uint64 `json:"blockNumber"` // The number of the block to be acquired. // contains filtered or unexported fields }
GetBlockQuorumCert is the protocol message for obtaining an aggregated signature. todo: Need to determine the attribute field - ParentQC.
func (*GetBlockQuorumCert) BHash ¶
func (s *GetBlockQuorumCert) BHash() common.Hash
func (*GetBlockQuorumCert) MsgHash ¶
func (s *GetBlockQuorumCert) MsgHash() common.Hash
func (*GetBlockQuorumCert) String ¶
func (s *GetBlockQuorumCert) String() string
type GetLatestStatus ¶
type GetLatestStatus struct { BlockNumber uint64 `json:"blockNumber"` // QC Block height BlockHash common.Hash `json:"blockHash"` // QC block hash QuorumCert *ctypes.QuorumCert `json:"quorumCert" rlp:"nil"` // QC quorumCert LBlockNumber uint64 `json:"lBlockNumber"` // Locked block height LBlockHash common.Hash `json:"lBlockHash"` // Locked block hash LQuorumCert *ctypes.QuorumCert `json:"lQuorumCert" rlp:"nil"` // Locked quorumCert LogicType uint64 `json:"logicType"` // LogicType: 1 QCBn, 2 LockedBn, 3 CommitBn // contains filtered or unexported fields }
State synchronization for nodes.
func (*GetLatestStatus) BHash ¶
func (s *GetLatestStatus) BHash() common.Hash
func (*GetLatestStatus) MsgHash ¶
func (s *GetLatestStatus) MsgHash() common.Hash
func (*GetLatestStatus) String ¶
func (s *GetLatestStatus) String() string
type GetPreCommit ¶
type GetPreCommit struct { Epoch uint64 ViewNumber uint64 BlockNumber uint64 BlockIndex uint32 UnKnownSet *utils.BitArray // contains filtered or unexported fields }
Message used to get PreCommit.
func (*GetPreCommit) BHash ¶
func (s *GetPreCommit) BHash() common.Hash
func (*GetPreCommit) MsgHash ¶
func (s *GetPreCommit) MsgHash() common.Hash
func (*GetPreCommit) String ¶
func (s *GetPreCommit) String() string
type GetPrepareBlock ¶
type GetPrepareBlock struct { Epoch uint64 BlockNumber uint64 ViewNumber uint64 BlockIndex uint32 // contains filtered or unexported fields }
GetPrepareBlock is used to get the proposed block information.
func (*GetPrepareBlock) BHash ¶
func (s *GetPrepareBlock) BHash() common.Hash
func (*GetPrepareBlock) MsgHash ¶
func (s *GetPrepareBlock) MsgHash() common.Hash
func (*GetPrepareBlock) String ¶
func (s *GetPrepareBlock) String() string
type GetPrepareVote ¶
type GetPrepareVote struct { Epoch uint64 ViewNumber uint64 BlockNumber uint64 BlockIndex uint32 UnKnownSet *utils.BitArray // contains filtered or unexported fields }
Message used to get block voting.
func (*GetPrepareVote) BHash ¶
func (s *GetPrepareVote) BHash() common.Hash
func (*GetPrepareVote) MsgHash ¶
func (s *GetPrepareVote) MsgHash() common.Hash
func (*GetPrepareVote) String ¶
func (s *GetPrepareVote) String() string
type GetQCBlockList ¶
type GetQCBlockList struct { Epoch uint64 `json:"epoch"` BlockHash common.Hash `json:"blockHash"` // The hash to the block. BlockNumber uint64 `json:"blockNumber"` // The number corresponding to the block. // contains filtered or unexported fields }
Used to get block information that has reached QC. Note: Get up to 3 blocks of data at a time.
func (*GetQCBlockList) BHash ¶
func (s *GetQCBlockList) BHash() common.Hash
func (*GetQCBlockList) MsgHash ¶
func (s *GetQCBlockList) MsgHash() common.Hash
func (*GetQCBlockList) String ¶
func (s *GetQCBlockList) String() string
type GetViewChange ¶
type GetViewChange struct { Epoch uint64 `json:"epoch"` BlockNumber uint64 `json:"blockNumber"` ViewNumber uint64 `json:"viewNumber"` ViewChangeBits *utils.BitArray `json:"nodeIndexes"` // contains filtered or unexported fields }
Used to actively request to get viewChange.
func (*GetViewChange) BHash ¶
func (s *GetViewChange) BHash() common.Hash
func (*GetViewChange) MsgHash ¶
func (s *GetViewChange) MsgHash() common.Hash
func (*GetViewChange) String ¶
func (s *GetViewChange) String() string
type LatestStatus ¶
type LatestStatus struct { BlockNumber uint64 `json:"blockNumber"` // PreCommitQC Block height BlockHash common.Hash `json:"blockHash"` // PreCommitQC block hash QuorumCert *ctypes.QuorumCert `json:"quorumCert" rlp:"nil"` // PreCommitQC quorumCert LBlockNumber uint64 `json:"lBlockNumber"` // Locked block height LBlockHash common.Hash `json:"lBlockHash"` // Locked block hash LQuorumCert *ctypes.QuorumCert `json:"lQuorumCert" rlp:"nil"` // Locked quorumCert LogicType uint64 `json:"logicType"` // LogicType: 1 QCBn, 2 LockedBn, 3 CommitBn, 4 PreCommitQCBn // contains filtered or unexported fields }
Response message to GetLatestStatus request.
func (*LatestStatus) BHash ¶
func (s *LatestStatus) BHash() common.Hash
func (*LatestStatus) MsgHash ¶
func (s *LatestStatus) MsgHash() common.Hash
func (*LatestStatus) String ¶
func (s *LatestStatus) String() string
type PbftStatusData ¶
type PbftStatusData struct { ProtocolVersion uint32 `json:"protocolVersion"` // PBFT protocol version number. QCBn *big.Int `json:"qcBn"` // The highest local block number for collecting block signatures. QCBlock common.Hash `json:"qcBlock"` // The highest local block hash for collecting block signatures. LockBn *big.Int `json:"lockBn"` // Locally locked block number. LockBlock common.Hash `json:"lockBlock"` // Locally locked block hash. CmtBn *big.Int `json:"cmtBn"` // Locally submitted block number. CmtBlock common.Hash `json:"cmtBlock"` // Locally submitted block hash. // contains filtered or unexported fields }
PbftStatusData implement Message and including status information about peer.
func (*PbftStatusData) BHash ¶
func (s *PbftStatusData) BHash() common.Hash
func (*PbftStatusData) MsgHash ¶
func (s *PbftStatusData) MsgHash() common.Hash
func (*PbftStatusData) String ¶
func (s *PbftStatusData) String() string
type PreCommit ¶
type PreCommit struct { Epoch uint64 `json:"epoch"` ViewNumber uint64 `json:"viewNumber"` BlockHash common.Hash `json:"blockHash"` BlockNumber uint64 `json:"blockNumber"` BlockIndex uint32 `json:"blockIndex"` // The block number of the current ViewNumber proposal, 0....10 ValidatorIndex uint32 `json:"validatorIndex"` ParentQC *ctypes.QuorumCert `json:"parentQC" rlp:"nil"` Signature ctypes.Signature `json:"signature"` // contains filtered or unexported fields }
Message used to PreCommit.
func (*PreCommit) CannibalizeBytes ¶
func (*PreCommit) EqualState ¶
type PreCommits ¶
type PreCommits struct { Epoch uint64 ViewNumber uint64 BlockIndex uint32 Votes []*PreCommit // Block voting set. // contains filtered or unexported fields }
Message used to respond to the number of block votes.
func (*PreCommits) BHash ¶
func (s *PreCommits) BHash() common.Hash
func (*PreCommits) MsgHash ¶
func (s *PreCommits) MsgHash() common.Hash
func (*PreCommits) String ¶
func (s *PreCommits) String() string
type PrepareBlock ¶
type PrepareBlock struct { Epoch uint64 `json:"epoch"` ViewNumber uint64 `json:"viewNumber"` Block *types.Block `json:"blockHash"` BlockIndex uint32 `json:"blockIndex"` // The block number of the current ViewNumber proposal, 0....10 ProposalIndex uint32 `json:"proposalIndex"` // Proposer's index. PrepareQC *ctypes.QuorumCert `json:"prepareQC" rlp:"nil"` // N-f aggregate signature ViewChangeQC *ctypes.ViewChangeQC `json:"viewchangeQC" rlp:"nil"` // viewChange aggregate signature Signature ctypes.Signature `json:"signature"` // PrepareBlock signature information // contains filtered or unexported fields }
Proposed block carrier.
func (*PrepareBlock) BHash ¶
func (pb *PrepareBlock) BHash() common.Hash
func (*PrepareBlock) BlockNum ¶
func (pb *PrepareBlock) BlockNum() uint64
func (*PrepareBlock) CannibalizeBytes ¶
func (pb *PrepareBlock) CannibalizeBytes() ([]byte, error)
func (*PrepareBlock) EpochNum ¶
func (pb *PrepareBlock) EpochNum() uint64
func (*PrepareBlock) MsgHash ¶
func (pb *PrepareBlock) MsgHash() common.Hash
func (*PrepareBlock) NodeIndex ¶
func (pb *PrepareBlock) NodeIndex() uint32
func (*PrepareBlock) SetSign ¶
func (pb *PrepareBlock) SetSign(sign []byte)
func (*PrepareBlock) Sign ¶
func (pb *PrepareBlock) Sign() []byte
func (*PrepareBlock) String ¶
func (pb *PrepareBlock) String() string
func (*PrepareBlock) ViewNum ¶
func (pb *PrepareBlock) ViewNum() uint64
type PrepareBlockHash ¶
type PrepareBlockHash struct { Epoch uint64 ViewNumber uint64 BlockIndex uint32 BlockHash common.Hash BlockNumber uint64 // contains filtered or unexported fields }
Represents the hash of the proposed block for secondary propagation.
func (*PrepareBlockHash) BHash ¶
func (s *PrepareBlockHash) BHash() common.Hash
func (*PrepareBlockHash) MsgHash ¶
func (s *PrepareBlockHash) MsgHash() common.Hash
func (*PrepareBlockHash) String ¶
func (s *PrepareBlockHash) String() string
type PrepareVote ¶
type PrepareVote struct { Epoch uint64 `json:"epoch"` ViewNumber uint64 `json:"viewNumber"` BlockHash common.Hash `json:"blockHash"` BlockNumber uint64 `json:"blockNumber"` BlockIndex uint32 `json:"blockIndex"` // The block number of the current ViewNumber proposal, 0....10 ValidatorIndex uint32 `json:"validatorIndex"` ParentQC *ctypes.QuorumCert `json:"parentQC" rlp:"nil"` Signature ctypes.Signature `json:"signature"` // contains filtered or unexported fields }
Removed the validator address, index. Mainly to ensure that the signature hash of the aggregate signature is consistent.
func (*PrepareVote) BHash ¶
func (pv *PrepareVote) BHash() common.Hash
func (*PrepareVote) BlockNum ¶
func (pv *PrepareVote) BlockNum() uint64
func (*PrepareVote) CannibalizeBytes ¶
func (pv *PrepareVote) CannibalizeBytes() ([]byte, error)
func (*PrepareVote) EpochNum ¶
func (pv *PrepareVote) EpochNum() uint64
func (*PrepareVote) EqualState ¶
func (pv *PrepareVote) EqualState(vote *PrepareVote) bool
func (*PrepareVote) MsgHash ¶
func (pv *PrepareVote) MsgHash() common.Hash
func (*PrepareVote) NodeIndex ¶
func (pv *PrepareVote) NodeIndex() uint32
func (*PrepareVote) SetSign ¶
func (pv *PrepareVote) SetSign(sign []byte)
func (*PrepareVote) Sign ¶
func (pv *PrepareVote) Sign() []byte
func (*PrepareVote) String ¶
func (pv *PrepareVote) String() string
func (*PrepareVote) ViewNum ¶
func (pv *PrepareVote) ViewNum() uint64
type PrepareVotes ¶
type PrepareVotes struct { Epoch uint64 ViewNumber uint64 BlockIndex uint32 Votes []*PrepareVote // Block voting set. // contains filtered or unexported fields }
Message used to respond to the number of block votes.
func (*PrepareVotes) BHash ¶
func (s *PrepareVotes) BHash() common.Hash
func (*PrepareVotes) MsgHash ¶
func (s *PrepareVotes) MsgHash() common.Hash
func (*PrepareVotes) String ¶
func (s *PrepareVotes) String() string
type QCBlockList ¶
type QCBlockList struct { QC []*ctypes.QuorumCert Blocks []*types.Block ForkedQC []*ctypes.QuorumCert ForkedBlocks []*types.Block // contains filtered or unexported fields }
PBFT synchronize blocks that have reached qc.
func (*QCBlockList) BHash ¶
func (s *QCBlockList) BHash() common.Hash
func (*QCBlockList) MsgHash ¶
func (s *QCBlockList) MsgHash() common.Hash
func (*QCBlockList) String ¶
func (s *QCBlockList) String() string
type SendPreCommit ¶
SendPreCommit indicates the prepareVote sent by the local node.
func (SendPreCommit) BlockNumber ¶
func (s SendPreCommit) BlockNumber() uint64
func (SendPreCommit) Epoch ¶
func (s SendPreCommit) Epoch() uint64
func (*SendPreCommit) String ¶
func (s *SendPreCommit) String() string
func (SendPreCommit) ViewNumber ¶
func (s SendPreCommit) ViewNumber() uint64
type SendPrepareBlock ¶
type SendPrepareBlock struct {
Prepare *PrepareBlock
}
SendPrepareBlock indicates the prepareBlock sent by the local node.
func (SendPrepareBlock) BlockNumber ¶
func (s SendPrepareBlock) BlockNumber() uint64
func (SendPrepareBlock) Epoch ¶
func (s SendPrepareBlock) Epoch() uint64
func (*SendPrepareBlock) String ¶
func (s *SendPrepareBlock) String() string
func (SendPrepareBlock) ViewNumber ¶
func (s SendPrepareBlock) ViewNumber() uint64
type SendPrepareVote ¶
type SendPrepareVote struct { Block *types.Block Vote *PrepareVote }
SendPrepareVote indicates the prepareVote sent by the local node.
func (SendPrepareVote) BlockNumber ¶
func (s SendPrepareVote) BlockNumber() uint64
func (SendPrepareVote) Epoch ¶
func (s SendPrepareVote) Epoch() uint64
func (*SendPrepareVote) String ¶
func (s *SendPrepareVote) String() string
func (SendPrepareVote) ViewNumber ¶
func (s SendPrepareVote) ViewNumber() uint64
type SendViewChange ¶
type SendViewChange struct {
ViewChange *ViewChange
}
SendViewChange indicates the viewChange sent by the local node.
func (SendViewChange) BlockNumber ¶
func (s SendViewChange) BlockNumber() uint64
func (SendViewChange) Epoch ¶
func (s SendViewChange) Epoch() uint64
func (*SendViewChange) String ¶
func (s *SendViewChange) String() string
func (SendViewChange) ViewNumber ¶
func (s SendViewChange) ViewNumber() uint64
type State ¶
type State struct { Block *types.Block QuorumCert *ctypes.QuorumCert }
func (*State) EqualState ¶
func (*State) ValidState ¶
type ViewChange ¶
type ViewChange struct { Epoch uint64 `json:"epoch"` ViewNumber uint64 `json:"viewNumber"` BlockHash common.Hash `json:"blockHash"` BlockNumber uint64 `json:"blockNumber"` ValidatorIndex uint32 `json:"validatorIndex"` PrepareQC *ctypes.QuorumCert `json:"prepareQC" rlp:"nil"` Signature ctypes.Signature `json:"signature"` // contains filtered or unexported fields }
ViewChange is message structure for view switching.
func (*ViewChange) BHash ¶
func (vc *ViewChange) BHash() common.Hash
func (*ViewChange) BlockNum ¶
func (vc *ViewChange) BlockNum() uint64
func (*ViewChange) CannibalizeBytes ¶
func (vc *ViewChange) CannibalizeBytes() ([]byte, error)
func (*ViewChange) EpochNum ¶
func (vc *ViewChange) EpochNum() uint64
func (*ViewChange) MsgHash ¶
func (vc *ViewChange) MsgHash() common.Hash
func (*ViewChange) NodeIndex ¶
func (vc *ViewChange) NodeIndex() uint32
func (*ViewChange) SetSign ¶
func (vc *ViewChange) SetSign(sign []byte)
func (*ViewChange) Sign ¶
func (vc *ViewChange) Sign() []byte
func (*ViewChange) String ¶
func (vc *ViewChange) String() string
func (*ViewChange) ViewNum ¶
func (vc *ViewChange) ViewNum() uint64
type ViewChangeQuorumCert ¶
type ViewChangeQuorumCert struct { ViewChangeQC *ctypes.ViewChangeQC `json:"viewchangeQC"` // viewChange aggregate signature HighestViewChangeQC *ctypes.ViewChangeQC `json:"highestViewChangeQC" rlp:"nil"` // the highest viewChangeQC of current epoch // contains filtered or unexported fields }
func (*ViewChangeQuorumCert) BHash ¶
func (v *ViewChangeQuorumCert) BHash() common.Hash
func (*ViewChangeQuorumCert) MsgHash ¶
func (v *ViewChangeQuorumCert) MsgHash() common.Hash
func (*ViewChangeQuorumCert) String ¶
func (v *ViewChangeQuorumCert) String() string
type ViewChanges ¶
type ViewChanges struct { VCs []*ViewChange // contains filtered or unexported fields }
func (ViewChanges) BHash ¶
func (ViewChanges) BHash() common.Hash
func (ViewChanges) MsgHash ¶
func (v ViewChanges) MsgHash() common.Hash
func (ViewChanges) String ¶
func (v ViewChanges) String() string