Versions in this module Expand all Collapse all v0 v0.1.3 Oct 3, 2023 v0.1.2 Oct 3, 2023 Changes in this version + const ConsensusBaseManaPastVectorMetadataStorageKey + const EventTypePledge + const EventTypeRevoke + const EventTypeUpdate + const PrefixAccess + const PrefixAccessResearch + const PrefixConsensus + const PrefixConsensusPastMetadata + const PrefixConsensusPastVector + const PrefixConsensusResearch + const PrefixEventStorage + var ErrAlreadyUpdated = errors.New("already updated to a later timestamp") + var ErrBaseManaNegative = errors.New("base mana should never be negative") + var ErrEffBaseManaNegative = errors.New("effective base mana should never be negative") + var ErrInvalidTargetManaType = errors.New("invalid target mana type") + var ErrInvalidWeightParameter = errors.New("invalid weight parameter, outside of [0,1]") + var ErrNodeNotFoundInBaseManaVector = errors.New("node not present in base mana vector") + var ErrUnknownManaEvent = errors.New("unknown mana event") + var ErrUnknownManaType = errors.New("unknown mana type") + func IDFromPubKey(pubKey string) (iID identity.ID, err error) + func IDFromStr(idStr string) (iID identity.ID, err error) + type AccessManaSnapshot struct + Timestamp time.Time + Value float64 + func (a *AccessManaSnapshot) Bytes() (serialized []byte) + func (a *AccessManaSnapshot) FromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (err error) + func (a AccessManaSnapshot) String() (humanReadable string) + type BaseMana interface + BaseValue func() float64 + type BaseManaJSON struct + BaseMana float64 + type BaseManaVector interface + Book func(*TxInfo) + BookEpoch func(created []*ledger.OutputWithMetadata, spent []*ledger.OutputWithMetadata) + ForEach func(func(identity.ID, BaseMana) bool) + FromPersistable func(*PersistableBaseMana) error + GetHighestManaNodes func(uint) ([]Node, time.Time, error) + GetHighestManaNodesFraction func(p float64) ([]Node, time.Time, error) + GetMana func(identity.ID) (float64, time.Time, error) + GetManaMap func() (NodeMap, time.Time, error) + Has func(identity.ID) bool + InitializeWithData func(map[identity.ID]float64) + RemoveZeroNodes func() + SetMana func(identity.ID, BaseMana) + Size func() int + ToPersistables func() []*PersistableBaseMana + Type func() Type + func NewBaseManaVector(manaType Type) BaseManaVector + type ConsensusBasePastManaVectorMetadata struct + Timestamp time.Time + func (c *ConsensusBasePastManaVectorMetadata) Bytes() []byte + func (c *ConsensusBasePastManaVectorMetadata) FromBytes(data []byte) (result *ConsensusBasePastManaVectorMetadata, err error) + func (c *ConsensusBasePastManaVectorMetadata) FromObjectStorage(_, value []byte) error + func (c *ConsensusBasePastManaVectorMetadata) ObjectStorageKey() []byte + func (c *ConsensusBasePastManaVectorMetadata) ObjectStorageValue() []byte + type Event interface + String func() string + ToJSONSerializable func() interface{} + ToPersistable func() *PersistableEvent + Type func() byte + func FromPersistableEvent(p *PersistableEvent) (Event, error) + type EventSlice []Event + func (e EventSlice) Sort() + type InputInfo struct + Amount float64 + InputID utxo.OutputID + PledgeID map[Type]identity.ID + type ManaBase struct + func NewManaBase(value float64) *ManaBase + func (m *ManaBase) BaseValue() float64 + type ManaBaseVector struct + func (m *ManaBaseVector) Book(txInfo *TxInfo) + func (m *ManaBaseVector) BookEpoch(created []*ledger.OutputWithMetadata, spent []*ledger.OutputWithMetadata) + func (m *ManaBaseVector) ForEach(callback func(ID identity.ID, bm BaseMana) bool) + func (m *ManaBaseVector) FromPersistable(p *PersistableBaseMana) (err error) + func (m *ManaBaseVector) GetHighestManaNodes(n uint) (res []Node, t time.Time, err error) + func (m *ManaBaseVector) GetHighestManaNodesFraction(p float64) (res []Node, t time.Time, err error) + func (m *ManaBaseVector) GetMana(nodeID identity.ID) (manaAmount float64, t time.Time, err error) + func (m *ManaBaseVector) GetManaMap() (res NodeMap, t time.Time, err error) + func (m *ManaBaseVector) Has(nodeID identity.ID) bool + func (m *ManaBaseVector) InitializeWithData(dataByNode map[identity.ID]float64) + func (m *ManaBaseVector) RemoveZeroNodes() + func (m *ManaBaseVector) SetMana(nodeID identity.ID, bm BaseMana) + func (m *ManaBaseVector) Size() int + func (m *ManaBaseVector) ToPersistables() []*PersistableBaseMana + func (m *ManaBaseVector) Type() Type + func (m *ManaBaseVector) Vector() map[identity.ID]*ManaBase + type ManaEvents struct + Pledged *event.Event[*PledgedEvent] + Revoked *event.Event[*RevokedEvent] + Updated *event.Event[*UpdatedEvent] + var Events *ManaEvents + type ManaRetrievalFunc func(identity.ID, ...time.Time) (float64, time.Time, error) + type ManaVectorUpdateEvent struct + Created []*ledger.OutputWithMetadata + EI epoch.Index + Spent []*ledger.OutputWithMetadata + type Node struct + ID identity.ID + Mana float64 + func (n Node) ToNodeStr() NodeStr + type NodeMap map[identity.ID]float64 + func (n NodeMap) GetPercentile(node identity.ID) (float64, error) + func (n NodeMap) ToNodeStrList() []NodeStr + type NodeMapStr map[string]float64 + type NodeStr struct + Mana float64 + NodeID string + ShortNodeID string + type PersistableBaseMana struct + func NewPersistableBaseMana(nodeID identity.ID, manaType Type, baseValues, effectiveValues []float64, ...) *PersistableBaseMana + func (v *PersistableBaseMana) BaseValues() []float64 + func (v *PersistableBaseMana) EffectiveValues() []float64 + func (v *PersistableBaseMana) LastUpdated() time.Time + func (v *PersistableBaseMana) ManaType() Type + func (v *PersistableBaseMana) NodeID() identity.ID + type PersistableEvent struct + Amount float64 + InputID utxo.OutputID + ManaType Type + NodeID identity.ID + Time time.Time + TransactionID utxo.TransactionID + Type byte + func (p *PersistableEvent) Bytes() []byte + func (p *PersistableEvent) FromBytes(data []byte) (result *PersistableEvent, err error) + func (p *PersistableEvent) FromObjectStorage(_, value []byte) error + func (p *PersistableEvent) ObjectStorageKey() []byte + func (p *PersistableEvent) ObjectStorageValue() []byte + func (p *PersistableEvent) ToStringKeys() []string + func (p *PersistableEvent) ToStringValues() []string + type PledgedEvent struct + Amount float64 + ManaType Type + NodeID identity.ID + Time time.Time + TransactionID utxo.TransactionID + func (p *PledgedEvent) String() string + func (p *PledgedEvent) Timestamp() time.Time + func (p *PledgedEvent) ToJSONSerializable() interface{} + func (p *PledgedEvent) ToPersistable() *PersistableEvent + func (p *PledgedEvent) Type() byte + type PledgedEventJSON struct + Amount float64 + ManaType string + NodeID string + Time int64 + TxID string + type RevokedEvent struct + Amount float64 + InputID utxo.OutputID + ManaType Type + NodeID identity.ID + Time time.Time + TransactionID utxo.TransactionID + func (r *RevokedEvent) String() string + func (r *RevokedEvent) Timestamp() time.Time + func (r *RevokedEvent) ToJSONSerializable() interface{} + func (r *RevokedEvent) ToPersistable() *PersistableEvent + func (r *RevokedEvent) Type() byte + type RevokedEventJSON struct + Amount float64 + InputID string + ManaType string + NodeID string + Time int64 + TxID string + type SnapshotNode struct + AccessMana *AccessManaSnapshot + SortedTxSnapshot SortedTxSnapshot + func (s *SnapshotNode) AccessManaUpdateTime() (maxTime time.Time) + func (s *SnapshotNode) AdjustAccessManaUpdateTime(diff time.Duration) + func (s *SnapshotNode) Bytes() (serialized []byte) + func (s *SnapshotNode) FromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (err error) + func (s *SnapshotNode) String() (humanReadable string) + type SortedTxSnapshot []*TxSnapshot + func (s *SortedTxSnapshot) FromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (err error) + func (s SortedTxSnapshot) Bytes() (serialized []byte) + func (s SortedTxSnapshot) Len() int + func (s SortedTxSnapshot) Less(i, j int) bool + func (s SortedTxSnapshot) String() (humanReadable string) + func (s SortedTxSnapshot) Swap(i, j int) + type TxInfo struct + InputInfos []InputInfo + PledgeID map[Type]identity.ID + TimeStamp time.Time + TotalBalance float64 + TransactionID utxo.TransactionID + type TxSnapshot struct + Timestamp time.Time + TxID utxo.TransactionID + Value float64 + func (t *TxSnapshot) Bytes() (serialized []byte) + func (t *TxSnapshot) FromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (err error) + func (t *TxSnapshot) String() (humanReadable string) + type Type byte + const AccessMana + const ConsensusMana + const ResearchAccess + const ResearchConsensus + const WeightedMana + func TypeFromString(stringType string) (Type, error) + func (t Type) String() string + type UpdatedEvent struct + ManaType Type + NewMana BaseMana + NodeID identity.ID + OldMana BaseMana + func (u *UpdatedEvent) String() string + func (u *UpdatedEvent) ToJSONSerializable() interface{} + func (u *UpdatedEvent) ToPersistable() *PersistableEvent + func (u *UpdatedEvent) Type() byte + type UpdatedEventJSON struct + ManaType string + NewMana interface{} + NodeID string + OldMana interface{}