Documentation ¶
Index ¶
- type JSONPeerSet
- type Peer
- type PeerSet
- func (peerSet *PeerSet) Hash() ([]byte, error)
- func (peerSet *PeerSet) Hex() string
- func (peerSet *PeerSet) IDs() []uint32
- func (peerSet *PeerSet) Len() int
- func (peerSet *PeerSet) Marshal() ([]byte, error)
- func (peerSet *PeerSet) PubKeys() []string
- func (peerSet *PeerSet) SuperMajority() int
- func (peerSet *PeerSet) TrustCount() int
- func (peerSet *PeerSet) WithNewPeer(peer *Peer) *PeerSet
- func (peerSet *PeerSet) WithRemovedPeer(peer *Peer) *PeerSet
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type JSONPeerSet ¶
type JSONPeerSet struct {
// contains filtered or unexported fields
}
JSONPeerSet is used to provide peer persistence on disk in the form of a JSON file.
func NewJSONPeerSet ¶
func NewJSONPeerSet(base string, isCurrent bool) *JSONPeerSet
NewJSONPeerSet creates a new JSONPeerSet.
func (*JSONPeerSet) PeerSet ¶
func (j *JSONPeerSet) PeerSet() (*PeerSet, error)
PeerSet creates a PeerSet from the JSONPeerSet
func (*JSONPeerSet) Write ¶
func (j *JSONPeerSet) Write(peers []*Peer) error
Write persists a PeerSet to a JSON file in path
type Peer ¶
type Peer struct { NetAddr string PubKeyHex string Moniker string // contains filtered or unexported fields }
Peer is a struct that holds Peer data
func ExcludePeer ¶
ExcludePeer is used to exclude a single peer from a list of peers.
func (*Peer) ID ¶
ID returns an ID for the peer, calculating a hash is one is not available XXX Not very nice
func (*Peer) Marshal ¶
Marshal marshals the json representation of the peer json encoding excludes the ID field
func (*Peer) PubKeyBytes ¶
PubKeyBytes converts hex string representation of the public key and returns a byte array
func (*Peer) PubKeyString ¶
PubKeyString returns the upper-case version of PubKeyHex. It is used for indexing in maps with string keys. XXX do something nicer
type PeerSet ¶
type PeerSet struct { Peers []*Peer `json:"peers"` ByPubKey map[string]*Peer `json:"-"` ByID map[uint32]*Peer `json:"-"` // contains filtered or unexported fields }
PeerSet is a set of Peers forming a consensus network
func NewPeerSet ¶
NewPeerSet creates a new PeerSet from a list of Peers
func NewPeerSetFromPeerSliceBytes ¶
NewPeerSetFromPeerSliceBytes creates a new PeerSet from a peerSlice in Bytes format
func (*PeerSet) Hash ¶
Hash uniquely identifies a PeerSet. It is computed by sorting the peers set by ID, and hashing (SHA256) their public keys together, one by one.
func (*PeerSet) SuperMajority ¶
SuperMajority return the number of peers that forms a strong majortiy (+2/3) in the PeerSet
func (*PeerSet) TrustCount ¶
TrustCount calculates the Trust Count for a peerset
func (*PeerSet) WithNewPeer ¶
WithNewPeer returns a new PeerSet with a list of peers including the new one.
func (*PeerSet) WithRemovedPeer ¶
WithRemovedPeer returns a new PeerSet with a list of peers excluding the provided one