Documentation ¶
Index ¶
- Constants
- Variables
- type BitSet
- type BitSetCell
- type BitSetMapper
- type CapabilityPoolingAndActivation
- type ChangeNetworkClaim
- type ClaimSupplementary
- type ClaimType
- type ConsensusPacket
- type GlobuleHashSignature
- type HeaderSkipDeserializer
- type MissingNode
- type MissingNodeClaim
- type MissingNodeSupplementaryVote
- type NodeAddress
- type NodeAnnounceClaim
- func (nac *NodeAnnounceClaim) Clone() ReferendumClaim
- func (nac *NodeAnnounceClaim) Deserialize(data io.Reader) error
- func (nac *NodeAnnounceClaim) Serialize() ([]byte, error)
- func (nac *NodeAnnounceClaim) SerializeRaw() ([]byte, error)
- func (nac *NodeAnnounceClaim) SetCloudHash(cloudHash []byte)
- func (nac *NodeAnnounceClaim) Type() ClaimType
- func (nac *NodeAnnounceClaim) Update(nodeJoinerID core.RecordRef, crypto core.CryptographyService) error
- type NodeBroadcast
- type NodeJoinClaim
- func (njc *NodeJoinClaim) Clone() ReferendumClaim
- func (njc *NodeJoinClaim) Deserialize(data io.Reader) error
- func (njc *NodeJoinClaim) GetNodeID() core.RecordRef
- func (njc *NodeJoinClaim) GetPublicKey() (crypto.PublicKey, error)
- func (njc *NodeJoinClaim) GetSignature() []byte
- func (njc *NodeJoinClaim) Serialize() ([]byte, error)
- func (njc *NodeJoinClaim) SerializeRaw() ([]byte, error)
- func (njc *NodeJoinClaim) Type() ClaimType
- type NodeLeaveClaim
- type NodeListHash
- type NodeListSupplementaryVote
- type NodePulseProof
- type NodeViolationBlame
- type PacketHeader
- type PacketRoutable
- type PacketType
- type Phase1Packet
- func (p1p *Phase1Packet) AddClaim(claim ReferendumClaim) bool
- func (p1p *Phase1Packet) Clone() ConsensusPacket
- func (p1p *Phase1Packet) Deserialize(data io.Reader) error
- func (p1p *Phase1Packet) DeserializeWithoutHeader(data io.Reader, header *PacketHeader) error
- func (p1p *Phase1Packet) GetAnnounceClaim() *NodeAnnounceClaim
- func (p1p *Phase1Packet) GetClaims() []ReferendumClaim
- func (p1p *Phase1Packet) GetOrigin() core.ShortNodeID
- func (p1p *Phase1Packet) GetPulse() core.Pulse
- func (p1p *Phase1Packet) GetPulseNumber() core.PulseNumber
- func (p1p *Phase1Packet) GetPulseProof() *NodePulseProof
- func (p1p *Phase1Packet) GetTarget() core.ShortNodeID
- func (p1p *Phase1Packet) GetType() PacketType
- func (p1p *Phase1Packet) RemoveAnnounceClaim()
- func (p1p *Phase1Packet) Serialize() ([]byte, error)
- func (p1p *Phase1Packet) SetPulseProof(proofStateHash, proofSignature []byte) error
- func (p1p *Phase1Packet) SetRouting(origin, target core.ShortNodeID)
- func (p1p *Phase1Packet) Sign(cryptographyService core.CryptographyService) error
- func (p1p *Phase1Packet) Verify(crypto core.CryptographyService, key crypto.PublicKey) error
- type Phase2Packet
- func (p2p *Phase2Packet) AddVote(vote ReferendumVote)
- func (p2p *Phase2Packet) Clone() ConsensusPacket
- func (p2p *Phase2Packet) ContainsRequests() bool
- func (p2p *Phase2Packet) ContainsResponses() bool
- func (p2p *Phase2Packet) Deserialize(data io.Reader) error
- func (p2p *Phase2Packet) DeserializeWithoutHeader(data io.Reader, header *PacketHeader) error
- func (p2p *Phase2Packet) GetBitSet() BitSet
- func (p2p *Phase2Packet) GetGlobuleHashSignature() GlobuleHashSignature
- func (p2p *Phase2Packet) GetOrigin() core.ShortNodeID
- func (p2p *Phase2Packet) GetPulseNumber() core.PulseNumber
- func (p2p *Phase2Packet) GetTarget() core.ShortNodeID
- func (p2p *Phase2Packet) GetType() PacketType
- func (p2p *Phase2Packet) GetVotes() []ReferendumVote
- func (p2p *Phase2Packet) IsPhase3Needed() bool
- func (p2p *Phase2Packet) Serialize() ([]byte, error)
- func (p2p *Phase2Packet) SetBitSet(bitset BitSet)
- func (p2p *Phase2Packet) SetGlobuleHashSignature(globuleHashSignature []byte) error
- func (p2p *Phase2Packet) SetRouting(origin, target core.ShortNodeID)
- func (p2p *Phase2Packet) Sign(cryptographyService core.CryptographyService) error
- func (p2p *Phase2Packet) Verify(crypto core.CryptographyService, key crypto.PublicKey) error
- type Phase3Packet
- func (p3p *Phase3Packet) Clone() ConsensusPacket
- func (p3p *Phase3Packet) Deserialize(data io.Reader) error
- func (p3p *Phase3Packet) DeserializeWithoutHeader(data io.Reader, header *PacketHeader) error
- func (p3p *Phase3Packet) GetBitset() BitSet
- func (p3p *Phase3Packet) GetGlobuleHashSignature() GlobuleHashSignature
- func (p3p *Phase3Packet) GetOrigin() core.ShortNodeID
- func (p3p *Phase3Packet) GetPulseNumber() core.PulseNumber
- func (p3p *Phase3Packet) GetTarget() core.ShortNodeID
- func (p3p *Phase3Packet) GetType() PacketType
- func (p3p *Phase3Packet) Serialize() ([]byte, error)
- func (p3p *Phase3Packet) SetRouting(origin, target core.ShortNodeID)
- func (p3p *Phase3Packet) Sign(cryptographyService core.CryptographyService) error
- func (p3p *Phase3Packet) Verify(crypto core.CryptographyService, key crypto.PublicKey) error
- type PulseData
- type PulseDataExt
- type ReferendumClaim
- type ReferendumVote
- type Serializer
- type SignedClaim
- type SignedPacket
- type StateFraudNodeSupplementaryVote
- type TriState
- type TriStateBitSet
- type VoteType
Constants ¶
const ( TypeNodeJoinClaim = ClaimType(iota + 1) TypeNodeAnnounceClaim TypeCapabilityPollingAndActivation TypeNodeViolationBlame TypeNodeBroadcast TypeNodeLeaveClaim TypeChangeNetworkClaim )
const ( Phase1 = PacketType(iota + 1) Phase2 Phase3 )
const ( TypeStateFraudNodeSupplementaryVote = VoteType(iota + 1) TypeNodeListSupplementaryVote TypeMissingNodeSupplementaryVote TypeMissingNode TypeMissingNodeClaim )
const HashLength = 64
const HeaderSize = 2
const NodeAddressSize = 20
const PublicKeyLength = 66
const ReferenceLength = 64
const SignatureLength = 66
Variables ¶
var ( // ErrBitSetOutOfRange is returned when index passed to IndexToRef function is out of range (ERROR) ErrBitSetOutOfRange = errors.New("index out of range") // ErrBitSetNodeIsMissing is returned in IndexToRef when we have no information about the node on specified index (SPECIAL CASE) ErrBitSetNodeIsMissing = errors.New("no information about node on specified index") // ErrBitSetIncorrectNode is returned when an incorrect node is passed to RefToIndex (ERROR) ErrBitSetIncorrectNode = errors.New("incorrect node ID") )
Possible errors in BitSetMapper
Functions ¶
This section is empty.
Types ¶
type BitSet ¶
type BitSet interface { Serialize() ([]byte, error) // GetCells get buckets of bitset GetCells(mapper BitSetMapper) ([]BitSetCell, error) // GetTristateArray get underlying tristate GetTristateArray() ([]TriState, error) // ApplyChanges returns copy of the current bitset with changes applied ApplyChanges(changes []BitSetCell, mapper BitSetMapper) error }
BitSet is interface
type BitSetCell ¶
BitSetCell is structure that contains the state of the node
type BitSetMapper ¶
type BitSetMapper interface { // IndexToRef get ID of the node that is stored on the specified internal index IndexToRef(index int) (core.RecordRef, error) // RefToIndex get bitset internal index where the specified node state is stored RefToIndex(nodeID core.RecordRef) (int, error) // Length returns required length of the bitset Length() int }
BitSetMapper contains the mapping from bitset index to node ID (and vice versa)
type CapabilityPoolingAndActivation ¶
type CapabilityPoolingAndActivation struct { PollingFlags uint16 CapabilityType uint16 CapabilityRef [ReferenceLength]byte }
CapabilityPoolingAndActivation is a type 3.
func (*CapabilityPoolingAndActivation) Clone ¶ added in v0.8.0
func (cpa *CapabilityPoolingAndActivation) Clone() ReferendumClaim
func (*CapabilityPoolingAndActivation) Deserialize ¶
func (cpa *CapabilityPoolingAndActivation) Deserialize(data io.Reader) error
Deserialize implements interface method
func (*CapabilityPoolingAndActivation) Serialize ¶
func (cpa *CapabilityPoolingAndActivation) Serialize() ([]byte, error)
Serialize implements interface method
func (*CapabilityPoolingAndActivation) Type ¶
func (cpa *CapabilityPoolingAndActivation) Type() ClaimType
type ChangeNetworkClaim ¶
type ChangeNetworkClaim struct { }
ChangeNetworkClaim uses to change network state.
func (*ChangeNetworkClaim) Type ¶
func (cnc *ChangeNetworkClaim) Type() ClaimType
type ClaimSupplementary ¶ added in v0.8.0
type ConsensusPacket ¶
type ConsensusPacket interface { GetType() PacketType Clone() ConsensusPacket SignedPacket HeaderSkipDeserializer Serializer PacketRoutable }
func ExtractPacket ¶
func ExtractPacket(reader io.Reader) (ConsensusPacket, error)
type GlobuleHashSignature ¶ added in v0.8.0
type GlobuleHashSignature [SignatureLength]byte
type HeaderSkipDeserializer ¶
type HeaderSkipDeserializer interface {
DeserializeWithoutHeader(data io.Reader, header *PacketHeader) error
}
type MissingNode ¶
type MissingNode struct {
NodeIndex uint16
}
func (*MissingNode) Deserialize ¶
func (mn *MissingNode) Deserialize(data io.Reader) error
func (*MissingNode) Serialize ¶
func (mn *MissingNode) Serialize() ([]byte, error)
func (*MissingNode) Type ¶
func (mn *MissingNode) Type() VoteType
type MissingNodeClaim ¶ added in v0.8.0
type MissingNodeClaim struct { NodeIndex uint16 Claim ReferendumClaim // contains filtered or unexported fields }
func (*MissingNodeClaim) Deserialize ¶ added in v0.8.0
func (mn *MissingNodeClaim) Deserialize(data io.Reader) error
func (*MissingNodeClaim) Serialize ¶ added in v0.8.0
func (mn *MissingNodeClaim) Serialize() ([]byte, error)
func (*MissingNodeClaim) Type ¶ added in v0.8.0
func (mn *MissingNodeClaim) Type() VoteType
type MissingNodeSupplementaryVote ¶
type MissingNodeSupplementaryVote struct { NodeIndex uint16 NodePulseProof NodePulseProof // TODO: make it signed NodeClaimUnsigned NodeJoinClaim }
func (*MissingNodeSupplementaryVote) Deserialize ¶
func (v *MissingNodeSupplementaryVote) Deserialize(data io.Reader) error
Deserialize implements interface method
func (*MissingNodeSupplementaryVote) Serialize ¶
func (v *MissingNodeSupplementaryVote) Serialize() ([]byte, error)
Serialize implements interface method
func (*MissingNodeSupplementaryVote) Type ¶
func (v *MissingNodeSupplementaryVote) Type() VoteType
type NodeAddress ¶ added in v0.8.0
type NodeAddress [NodeAddressSize]byte
TODO: create heterogeneous structure for variuos types of adresses (IPv4, IPv6, etc.)
func NewNodeAddress ¶ added in v0.8.0
func NewNodeAddress(address string) NodeAddress
func (NodeAddress) Get ¶ added in v0.8.0
func (address NodeAddress) Get() string
func (*NodeAddress) Set ¶ added in v0.8.0
func (address *NodeAddress) Set(s string)
type NodeAnnounceClaim ¶
type NodeAnnounceClaim struct { NodeJoinClaim NodeAnnouncerIndex uint16 NodeJoinerIndex uint16 NodeCount uint16 CloudHash [HashLength]byte // mapper is used to fill three fields above, is not serialized BitSetMapper BitSetMapper }
NodeJoinClaim is a type 5, len == 272.
func (*NodeAnnounceClaim) Clone ¶ added in v0.8.0
func (nac *NodeAnnounceClaim) Clone() ReferendumClaim
func (*NodeAnnounceClaim) Deserialize ¶ added in v0.7.5
func (nac *NodeAnnounceClaim) Deserialize(data io.Reader) error
Deserialize implements interface method
func (*NodeAnnounceClaim) Serialize ¶ added in v0.7.5
func (nac *NodeAnnounceClaim) Serialize() ([]byte, error)
Serialize implements interface method
func (*NodeAnnounceClaim) SerializeRaw ¶ added in v0.8.0
func (nac *NodeAnnounceClaim) SerializeRaw() ([]byte, error)
func (*NodeAnnounceClaim) SetCloudHash ¶ added in v0.8.0
func (nac *NodeAnnounceClaim) SetCloudHash(cloudHash []byte)
func (*NodeAnnounceClaim) Type ¶
func (nac *NodeAnnounceClaim) Type() ClaimType
func (*NodeAnnounceClaim) Update ¶ added in v0.8.0
func (nac *NodeAnnounceClaim) Update(nodeJoinerID core.RecordRef, crypto core.CryptographyService) error
type NodeBroadcast ¶
type NodeBroadcast struct {
EmergencyLevel uint8
}
NodeBroadcast is a broadcast of info. Must be brief and only one entry per node. Type 4.
func (*NodeBroadcast) Clone ¶ added in v0.8.0
func (nb *NodeBroadcast) Clone() ReferendumClaim
func (*NodeBroadcast) Deserialize ¶
func (nb *NodeBroadcast) Deserialize(data io.Reader) error
Deserialize implements interface method
func (*NodeBroadcast) Serialize ¶
func (nb *NodeBroadcast) Serialize() ([]byte, error)
Serialize implements interface method
func (*NodeBroadcast) Type ¶
func (nb *NodeBroadcast) Type() ClaimType
type NodeJoinClaim ¶
type NodeJoinClaim struct { ShortNodeID core.ShortNodeID RelayNodeID core.ShortNodeID ProtocolVersionAndFlags uint32 JoinsAfter uint32 NodeRoleRecID core.StaticRole NodeRef core.RecordRef NodeAddress NodeAddress NodePK [PublicKeyLength]byte Signature [SignatureLength]byte }
NodeJoinClaim is a type 1, len == 272.
func NodeToClaim ¶ added in v0.8.0
func NodeToClaim(node core.Node) (*NodeJoinClaim, error)
func (*NodeJoinClaim) Clone ¶ added in v0.8.0
func (njc *NodeJoinClaim) Clone() ReferendumClaim
func (*NodeJoinClaim) Deserialize ¶
func (njc *NodeJoinClaim) Deserialize(data io.Reader) error
Deserialize implements interface method
func (*NodeJoinClaim) GetNodeID ¶ added in v0.8.0
func (njc *NodeJoinClaim) GetNodeID() core.RecordRef
func (*NodeJoinClaim) GetPublicKey ¶ added in v0.8.0
func (njc *NodeJoinClaim) GetPublicKey() (crypto.PublicKey, error)
func (*NodeJoinClaim) GetSignature ¶ added in v0.8.0
func (njc *NodeJoinClaim) GetSignature() []byte
func (*NodeJoinClaim) Serialize ¶
func (njc *NodeJoinClaim) Serialize() ([]byte, error)
Serialize implements interface method
func (*NodeJoinClaim) SerializeRaw ¶ added in v0.8.0
func (njc *NodeJoinClaim) SerializeRaw() ([]byte, error)
func (*NodeJoinClaim) Type ¶
func (njc *NodeJoinClaim) Type() ClaimType
type NodeLeaveClaim ¶
type NodeLeaveClaim struct { // additional field that is not serialized and is set from transport layer on packet receive NodeID core.RecordRef ETA core.PulseNumber }
NodeLeaveClaim can be the only be issued by the node itself and must be the only claim record. Should be executed with the next pulse. Type 1, len == 0.
func (*NodeLeaveClaim) AddSupplementaryInfo ¶ added in v0.8.0
func (nlc *NodeLeaveClaim) AddSupplementaryInfo(nodeID core.RecordRef)
func (*NodeLeaveClaim) Clone ¶ added in v0.8.0
func (nlc *NodeLeaveClaim) Clone() ReferendumClaim
func (*NodeLeaveClaim) Deserialize ¶
func (nlc *NodeLeaveClaim) Deserialize(data io.Reader) error
Deserialize implements interface method
func (*NodeLeaveClaim) Serialize ¶
func (nlc *NodeLeaveClaim) Serialize() ([]byte, error)
Serialize implements interface method
func (*NodeLeaveClaim) Type ¶
func (nlc *NodeLeaveClaim) Type() ClaimType
type NodeListHash ¶ added in v0.8.0
type NodeListHash [32]byte
type NodeListSupplementaryVote ¶
type NodeListSupplementaryVote struct { NodeListCount uint16 NodeListHash NodeListHash }
func (*NodeListSupplementaryVote) Deserialize ¶
func (v *NodeListSupplementaryVote) Deserialize(data io.Reader) error
Deserialize implements interface method
func (*NodeListSupplementaryVote) Serialize ¶
func (v *NodeListSupplementaryVote) Serialize() ([]byte, error)
Serialize implements interface method
func (*NodeListSupplementaryVote) Type ¶
func (v *NodeListSupplementaryVote) Type() VoteType
type NodePulseProof ¶
type NodePulseProof struct { NodeStateHash [HashLength]byte NodeSignature [SignatureLength]byte }
func (*NodePulseProof) Deserialize ¶
func (npp *NodePulseProof) Deserialize(data io.Reader) error
Deserialize implements interface method
func (*NodePulseProof) Serialize ¶
func (npp *NodePulseProof) Serialize() ([]byte, error)
Serialize implements interface method
func (*NodePulseProof) Signature ¶
func (npp *NodePulseProof) Signature() []byte
func (*NodePulseProof) StateHash ¶
func (npp *NodePulseProof) StateHash() []byte
type NodeViolationBlame ¶
NodeViolationBlame is a type 2.
func (*NodeViolationBlame) Clone ¶ added in v0.8.0
func (nvb *NodeViolationBlame) Clone() ReferendumClaim
func (*NodeViolationBlame) Deserialize ¶
func (nvb *NodeViolationBlame) Deserialize(data io.Reader) error
Deserialize implements interface method
func (*NodeViolationBlame) Serialize ¶
func (nvb *NodeViolationBlame) Serialize() ([]byte, error)
Serialize implements interface method
func (*NodeViolationBlame) Type ¶
func (nvb *NodeViolationBlame) Type() ClaimType
type PacketHeader ¶
type PacketHeader struct { PacketT PacketType HasRouting bool Pulse uint32 //----------------- OriginNodeID core.ShortNodeID TargetNodeID core.ShortNodeID // contains filtered or unexported fields }
func (*PacketHeader) Deserialize ¶
func (ph *PacketHeader) Deserialize(data io.Reader) error
Deserialize implements interface method
func (*PacketHeader) Serialize ¶
func (ph *PacketHeader) Serialize() ([]byte, error)
Serialize implements interface method
type PacketRoutable ¶
type PacketRoutable interface { GetOrigin() core.ShortNodeID GetTarget() core.ShortNodeID SetRouting(origin, target core.ShortNodeID) }
type PacketType ¶
type PacketType uint8
func (PacketType) String ¶ added in v0.8.0
func (i PacketType) String() string
type Phase1Packet ¶
type Phase1Packet struct { // -------------------- // signature contains signature of Header + Section 1 + Section 2 Signature [SignatureLength]byte // contains filtered or unexported fields }
func NewPhase1Packet ¶
func NewPhase1Packet(pulse core.Pulse) *Phase1Packet
func (*Phase1Packet) AddClaim ¶
func (p1p *Phase1Packet) AddClaim(claim ReferendumClaim) bool
AddClaim adds claim if phase1Packet has space for it and returns true, otherwise returns false
func (*Phase1Packet) Clone ¶ added in v0.8.0
func (p1p *Phase1Packet) Clone() ConsensusPacket
func (*Phase1Packet) Deserialize ¶
func (p1p *Phase1Packet) Deserialize(data io.Reader) error
func (*Phase1Packet) DeserializeWithoutHeader ¶
func (p1p *Phase1Packet) DeserializeWithoutHeader(data io.Reader, header *PacketHeader) error
func (*Phase1Packet) GetAnnounceClaim ¶ added in v0.8.0
func (p1p *Phase1Packet) GetAnnounceClaim() *NodeAnnounceClaim
func (*Phase1Packet) GetClaims ¶
func (p1p *Phase1Packet) GetClaims() []ReferendumClaim
func (*Phase1Packet) GetOrigin ¶ added in v0.8.0
func (p1p *Phase1Packet) GetOrigin() core.ShortNodeID
func (*Phase1Packet) GetPulse ¶
func (p1p *Phase1Packet) GetPulse() core.Pulse
func (*Phase1Packet) GetPulseNumber ¶
func (p1p *Phase1Packet) GetPulseNumber() core.PulseNumber
func (*Phase1Packet) GetPulseProof ¶
func (p1p *Phase1Packet) GetPulseProof() *NodePulseProof
func (*Phase1Packet) GetTarget ¶ added in v0.8.0
func (p1p *Phase1Packet) GetTarget() core.ShortNodeID
func (*Phase1Packet) GetType ¶ added in v0.8.0
func (p1p *Phase1Packet) GetType() PacketType
func (*Phase1Packet) RemoveAnnounceClaim ¶ added in v0.8.0
func (p1p *Phase1Packet) RemoveAnnounceClaim()
TODO: I AM AWFUL WORKAROUND, NEED TO REWORK
func (*Phase1Packet) Serialize ¶
func (p1p *Phase1Packet) Serialize() ([]byte, error)
func (*Phase1Packet) SetPulseProof ¶
func (p1p *Phase1Packet) SetPulseProof(proofStateHash, proofSignature []byte) error
SetPulseProof sets PulseProof and check struct fields len, returns error if invalid len
func (*Phase1Packet) SetRouting ¶ added in v0.8.0
func (p1p *Phase1Packet) SetRouting(origin, target core.ShortNodeID)
func (*Phase1Packet) Sign ¶ added in v0.8.0
func (p1p *Phase1Packet) Sign(cryptographyService core.CryptographyService) error
func (*Phase1Packet) Verify ¶ added in v0.8.0
func (p1p *Phase1Packet) Verify(crypto core.CryptographyService, key crypto.PublicKey) error
type Phase2Packet ¶
type Phase2Packet struct { SignatureHeaderSection1 [SignatureLength]byte SignatureHeaderSection2 [SignatureLength]byte // contains filtered or unexported fields }
func NewPhase2Packet ¶ added in v0.8.0
func NewPhase2Packet(number core.PulseNumber) *Phase2Packet
func (*Phase2Packet) AddVote ¶ added in v0.7.5
func (p2p *Phase2Packet) AddVote(vote ReferendumVote)
func (*Phase2Packet) Clone ¶ added in v0.8.0
func (p2p *Phase2Packet) Clone() ConsensusPacket
func (*Phase2Packet) ContainsRequests ¶ added in v0.7.5
func (p2p *Phase2Packet) ContainsRequests() bool
func (*Phase2Packet) ContainsResponses ¶ added in v0.8.0
func (p2p *Phase2Packet) ContainsResponses() bool
func (*Phase2Packet) Deserialize ¶
func (p2p *Phase2Packet) Deserialize(data io.Reader) error
func (*Phase2Packet) DeserializeWithoutHeader ¶
func (p2p *Phase2Packet) DeserializeWithoutHeader(data io.Reader, header *PacketHeader) error
func (*Phase2Packet) GetBitSet ¶
func (p2p *Phase2Packet) GetBitSet() BitSet
func (*Phase2Packet) GetGlobuleHashSignature ¶
func (p2p *Phase2Packet) GetGlobuleHashSignature() GlobuleHashSignature
func (*Phase2Packet) GetOrigin ¶ added in v0.8.0
func (p2p *Phase2Packet) GetOrigin() core.ShortNodeID
func (*Phase2Packet) GetPulseNumber ¶
func (p2p *Phase2Packet) GetPulseNumber() core.PulseNumber
func (*Phase2Packet) GetTarget ¶ added in v0.8.0
func (p2p *Phase2Packet) GetTarget() core.ShortNodeID
func (*Phase2Packet) GetType ¶ added in v0.8.0
func (p2p *Phase2Packet) GetType() PacketType
func (*Phase2Packet) GetVotes ¶ added in v0.7.5
func (p2p *Phase2Packet) GetVotes() []ReferendumVote
func (*Phase2Packet) IsPhase3Needed ¶ added in v0.8.0
func (p2p *Phase2Packet) IsPhase3Needed() bool
func (*Phase2Packet) Serialize ¶
func (p2p *Phase2Packet) Serialize() ([]byte, error)
func (*Phase2Packet) SetBitSet ¶ added in v0.7.5
func (p2p *Phase2Packet) SetBitSet(bitset BitSet)
func (*Phase2Packet) SetGlobuleHashSignature ¶
func (p2p *Phase2Packet) SetGlobuleHashSignature(globuleHashSignature []byte) error
func (*Phase2Packet) SetRouting ¶ added in v0.8.0
func (p2p *Phase2Packet) SetRouting(origin, target core.ShortNodeID)
func (*Phase2Packet) Sign ¶ added in v0.8.0
func (p2p *Phase2Packet) Sign(cryptographyService core.CryptographyService) error
func (*Phase2Packet) Verify ¶ added in v0.8.0
func (p2p *Phase2Packet) Verify(crypto core.CryptographyService, key crypto.PublicKey) error
type Phase3Packet ¶
type Phase3Packet struct { SignatureHeaderSection1 [SignatureLength]byte // contains filtered or unexported fields }
func NewPhase3Packet ¶
func NewPhase3Packet(number core.PulseNumber, globuleHashSignature GlobuleHashSignature, bitSet BitSet) *Phase3Packet
func (*Phase3Packet) Clone ¶ added in v0.8.0
func (p3p *Phase3Packet) Clone() ConsensusPacket
func (*Phase3Packet) Deserialize ¶
func (p3p *Phase3Packet) Deserialize(data io.Reader) error
func (*Phase3Packet) DeserializeWithoutHeader ¶
func (p3p *Phase3Packet) DeserializeWithoutHeader(data io.Reader, header *PacketHeader) error
func (*Phase3Packet) GetBitset ¶
func (p3p *Phase3Packet) GetBitset() BitSet
func (*Phase3Packet) GetGlobuleHashSignature ¶ added in v0.8.0
func (p3p *Phase3Packet) GetGlobuleHashSignature() GlobuleHashSignature
func (*Phase3Packet) GetOrigin ¶ added in v0.8.0
func (p3p *Phase3Packet) GetOrigin() core.ShortNodeID
func (*Phase3Packet) GetPulseNumber ¶ added in v0.8.0
func (p3p *Phase3Packet) GetPulseNumber() core.PulseNumber
func (*Phase3Packet) GetTarget ¶ added in v0.8.0
func (p3p *Phase3Packet) GetTarget() core.ShortNodeID
func (*Phase3Packet) GetType ¶ added in v0.8.0
func (p3p *Phase3Packet) GetType() PacketType
func (*Phase3Packet) Serialize ¶
func (p3p *Phase3Packet) Serialize() ([]byte, error)
func (*Phase3Packet) SetRouting ¶ added in v0.8.0
func (p3p *Phase3Packet) SetRouting(origin, target core.ShortNodeID)
func (*Phase3Packet) Sign ¶ added in v0.8.0
func (p3p *Phase3Packet) Sign(cryptographyService core.CryptographyService) error
func (*Phase3Packet) Verify ¶ added in v0.8.0
func (p3p *Phase3Packet) Verify(crypto core.CryptographyService, key crypto.PublicKey) error
type PulseData ¶
type PulseData struct { PulseNumber uint32 Data PulseDataExt }
PulseData is a pulse data.
func (*PulseData) Deserialize ¶
Deserialize implements interface method
type PulseDataExt ¶
type PulseDataExt struct { NextPulseDelta uint16 PrevPulseDelta uint16 OriginID [16]byte EpochPulseNo uint32 PulseTimestamp uint32 Entropy core.Entropy }
PulseDataExt is a pulse data extension.
func (*PulseDataExt) Deserialize ¶
func (pde *PulseDataExt) Deserialize(data io.Reader) error
Deserialize implements interface method
func (*PulseDataExt) Serialize ¶
func (pde *PulseDataExt) Serialize() ([]byte, error)
Serialize implements interface method
type ReferendumClaim ¶
type ReferendumClaim interface { Serializer Type() ClaimType Clone() ReferendumClaim }
type ReferendumVote ¶
type ReferendumVote interface { Serializer Type() VoteType }
type Serializer ¶
type SignedClaim ¶ added in v0.8.0
type SignedPacket ¶ added in v0.8.0
type SignedPacket interface { Verify(cryptographyService core.CryptographyService, key crypto.PublicKey) error Sign(core.CryptographyService) error }
type StateFraudNodeSupplementaryVote ¶
type StateFraudNodeSupplementaryVote struct { Node1PulseProof NodePulseProof Node2PulseProof NodePulseProof PulseData PulseData // optional }
func (*StateFraudNodeSupplementaryVote) Deserialize ¶
func (v *StateFraudNodeSupplementaryVote) Deserialize(data io.Reader) error
Deserialize implements interface method
func (*StateFraudNodeSupplementaryVote) Serialize ¶
func (v *StateFraudNodeSupplementaryVote) Serialize() ([]byte, error)
Serialize implements interface method
func (*StateFraudNodeSupplementaryVote) Type ¶
func (v *StateFraudNodeSupplementaryVote) Type() VoteType
type TriStateBitSet ¶
type TriStateBitSet struct { CompressedSet bool // contains filtered or unexported fields }
TriStateBitSet bitset implementation.
func NewTriStateBitSet ¶
func NewTriStateBitSet(size int) (*TriStateBitSet, error)
NewTriStateBitSet creates and returns a tristatebitset.
func (*TriStateBitSet) ApplyChanges ¶
func (dbs *TriStateBitSet) ApplyChanges(changes []BitSetCell, mapper BitSetMapper) error
func (*TriStateBitSet) GetCells ¶
func (dbs *TriStateBitSet) GetCells(mapper BitSetMapper) ([]BitSetCell, error)
func (*TriStateBitSet) GetTristateArray ¶ added in v0.8.0
func (dbs *TriStateBitSet) GetTristateArray() ([]TriState, error)
func (*TriStateBitSet) Serialize ¶
func (dbs *TriStateBitSet) Serialize() ([]byte, error)