Documentation ¶
Index ¶
- Constants
- Variables
- func ComputeRoundHash(nodeId crypto.Hash, number uint64, snapshots []*common.Snapshot) (uint64, uint64, crypto.Hash)
- func TestMockDiff(at time.Duration)
- type CacheRound
- type CosiAction
- type CosiAggregator
- type CosiVerifier
- type FinalRound
- type Genesis
- type Node
- func (node *Node) AddNeighborsFromConfig() error
- func (node *Node) Authenticate(msg []byte) (crypto.Hash, string, error)
- func (node *Node) BuildAuthenticationMessage() []byte
- func (node *Node) BuildGraph() []*network.SyncPoint
- func (node *Node) CachePutTransaction(peerId crypto.Hash, tx *common.VersionedTransaction) error
- func (node *Node) CacheVerify(snap crypto.Hash, sig crypto.Signature, pub crypto.Key) bool
- func (node *Node) CacheVerifyCosi(snap crypto.Hash, sig *crypto.CosiSignature, publics []*crypto.Key, ...) bool
- func (node *Node) CheckBroadcastedToPeers() bool
- func (node *Node) CheckCatchUpWithPeers() bool
- func (node *Node) ConsensusKeys(timestamp uint64) []*crypto.Key
- func (node *Node) ConsensusRemovedRecently(timestamp uint64) *common.Node
- func (node *Node) ConsensusThreshold(timestamp uint64) int
- func (node *Node) ConsumeQueue() error
- func (node *Node) CosiAggregateSelfCommitments(peerId crypto.Hash, snap crypto.Hash, commitment *crypto.Key, wantTx bool) error
- func (node *Node) CosiAggregateSelfResponses(peerId crypto.Hash, snap crypto.Hash, response *[32]byte) error
- func (node *Node) CosiLoop() error
- func (node *Node) CosiQueueExternalAnnouncement(peerId crypto.Hash, s *common.Snapshot, commitment *crypto.Key) error
- func (node *Node) CosiQueueExternalChallenge(peerId crypto.Hash, snap crypto.Hash, cosi *crypto.CosiSignature, ...) error
- func (node *Node) ElectionLoop() error
- func (node *Node) GetCacheStore() *fastcache.Cache
- func (node *Node) ListenNeighbors() error
- func (node *Node) LoadCacheToQueue() error
- func (node *Node) LoadConsensusNodes() error
- func (node *Node) LoadGenesis(configDir string) error
- func (node *Node) LoadNodeConfig()
- func (node *Node) Loop() error
- func (node *Node) MintLoop() error
- func (node *Node) NetworkId() crypto.Hash
- func (node *Node) PoolSize() (common.Integer, error)
- func (node *Node) QueueAppendSnapshot(peerId crypto.Hash, s *common.Snapshot, final bool) error
- func (node *Node) QueueTransaction(tx *common.VersionedTransaction) (string, error)
- func (node *Node) ReadAllNodes() []crypto.Hash
- func (node *Node) ReadSnapshotsForNodeRound(nodeIdWithNetwork crypto.Hash, round uint64) ([]*common.SnapshotWithTopologicalOrder, error)
- func (node *Node) ReadSnapshotsSinceTopology(offset, count uint64) ([]*common.SnapshotWithTopologicalOrder, error)
- func (node *Node) SendTransactionToPeer(peerId, hash crypto.Hash) error
- func (node *Node) SortAllNodesByTimestampAndId() []*common.Node
- func (node *Node) TopologicalOrder() uint64
- func (node *Node) UpdateSyncPoint(peerId crypto.Hash, points []*network.SyncPoint)
- func (node *Node) Uptime() time.Duration
- func (node *Node) VerifyAndQueueAppendSnapshotFinalization(peerId crypto.Hash, s *common.Snapshot) error
- type RoundGraph
- type TopologicalSequence
Constants ¶
View Source
const ( CosiActionSelfEmpty = iota CosiActionSelfCommitment CosiActionSelfResponse CosiActionExternalAnnouncement CosiActionExternalChallenge CosiActionFinalization )
View Source
const (
MempoolSize = 8192
)
View Source
const (
MinimumNodeCount = 7
)
Variables ¶
Functions ¶
func ComputeRoundHash ¶ added in v0.2.10
func TestMockDiff ¶ added in v0.6.2
Types ¶
type CacheRound ¶
type CacheRound struct { NodeId crypto.Hash Number uint64 Timestamp uint64 References *common.RoundLink Snapshots []*common.Snapshot `msgpack:"-"` }
func (*CacheRound) Copy ¶
func (c *CacheRound) Copy() *CacheRound
func (*CacheRound) Gap ¶
func (c *CacheRound) Gap() (uint64, uint64)
func (*CacheRound) ValidateSnapshot ¶
func (c *CacheRound) ValidateSnapshot(s *common.Snapshot, add bool) bool
type CosiAction ¶ added in v0.5.0
type CosiAggregator ¶ added in v0.5.0
type CosiVerifier ¶ added in v0.5.0
type FinalRound ¶
type FinalRound struct { NodeId crypto.Hash Number uint64 Start uint64 End uint64 Hash crypto.Hash }
func (*FinalRound) Copy ¶
func (f *FinalRound) Copy() *FinalRound
type Genesis ¶
type Genesis struct { Epoch int64 `json:"epoch"` Nodes []struct { Signer common.Address `json:"signer"` Payee common.Address `json:"payee"` Balance common.Integer `json:"balance"` } `json:"nodes"` Domains []struct { Signer common.Address `json:"signer"` Balance common.Integer `json:"balance"` } `json:"domains"` }
type Node ¶
type Node struct { IdForNetwork crypto.Hash Signer common.Address Graph *RoundGraph TopoCounter *TopologicalSequence Peer *network.Peer SyncPoints *syncMap Listener string ActiveNodes []*common.Node ConsensusNodes map[crypto.Hash]*common.Node SortedConsensusNodes []crypto.Hash ConsensusIndex int ConsensusPledging *common.Node ConsensusRemoved *common.Node CosiAggregators *aggregatorMap CosiVerifiers map[crypto.Hash]*CosiVerifier Epoch uint64 // contains filtered or unexported fields }
func (*Node) AddNeighborsFromConfig ¶
func (*Node) BuildAuthenticationMessage ¶
func (*Node) BuildGraph ¶
func (*Node) CachePutTransaction ¶
func (*Node) CacheVerify ¶
func (*Node) CacheVerifyCosi ¶ added in v0.5.0
func (*Node) CheckBroadcastedToPeers ¶ added in v0.2.12
func (*Node) CheckCatchUpWithPeers ¶ added in v0.2.12
func (*Node) ConsensusKeys ¶ added in v0.5.0
func (*Node) ConsensusRemovedRecently ¶ added in v0.6.3
func (*Node) ConsensusThreshold ¶ added in v0.5.0
func (*Node) ConsumeQueue ¶
func (*Node) CosiAggregateSelfCommitments ¶ added in v0.5.0
func (*Node) CosiAggregateSelfResponses ¶ added in v0.5.0
func (*Node) CosiQueueExternalAnnouncement ¶ added in v0.5.0
func (*Node) CosiQueueExternalChallenge ¶ added in v0.5.0
func (node *Node) CosiQueueExternalChallenge(peerId crypto.Hash, snap crypto.Hash, cosi *crypto.CosiSignature, ver *common.VersionedTransaction) error
func (*Node) ElectionLoop ¶ added in v0.3.5
func (*Node) GetCacheStore ¶ added in v0.2.18
func (*Node) ListenNeighbors ¶
func (*Node) LoadCacheToQueue ¶
func (*Node) LoadConsensusNodes ¶
func (*Node) LoadGenesis ¶
func (*Node) LoadNodeConfig ¶ added in v0.2.15
func (node *Node) LoadNodeConfig()
func (*Node) QueueAppendSnapshot ¶
func (*Node) QueueTransaction ¶ added in v0.1.2
func (node *Node) QueueTransaction(tx *common.VersionedTransaction) (string, error)
func (*Node) ReadAllNodes ¶ added in v0.5.6
func (*Node) ReadSnapshotsForNodeRound ¶
func (*Node) ReadSnapshotsSinceTopology ¶
func (node *Node) ReadSnapshotsSinceTopology(offset, count uint64) ([]*common.SnapshotWithTopologicalOrder, error)
func (*Node) SendTransactionToPeer ¶
func (*Node) SortAllNodesByTimestampAndId ¶ added in v0.6.1
func (*Node) TopologicalOrder ¶ added in v0.1.2
func (*Node) UpdateSyncPoint ¶
type RoundGraph ¶
type RoundGraph struct { Nodes []*crypto.Hash CacheRound map[crypto.Hash]*CacheRound FinalRound map[crypto.Hash]*FinalRound RoundHistory map[crypto.Hash][]*FinalRound GraphTimestamp uint64 FinalCache []*network.SyncPoint MyCacheRound *CacheRound MyFinalNumber uint64 }
func LoadRoundGraph ¶
func (*RoundGraph) Print ¶
func (g *RoundGraph) Print() string
func (*RoundGraph) UpdateFinalCache ¶
func (g *RoundGraph) UpdateFinalCache(idForNetwork crypto.Hash)
type TopologicalSequence ¶
func (*TopologicalSequence) Next ¶
func (c *TopologicalSequence) Next() uint64
Source Files ¶
Click to show internal directories.
Click to hide internal directories.