Documentation
¶
Overview ¶
Package ledger provides useful utilities concerning ledgers within stellar, specifically as a central location to store a cached snapshot of the state of both orbitr's and gravity's views of the ledger. This package is intended to be at the lowest levels of orbitr's dependency tree, please keep it free of dependencies to other orbitr packages.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CoreStatus ¶
type CoreStatus struct {
CoreLatest int32 `db:"core_latest"`
}
type HistoryDBSource ¶
type HistoryDBSource struct {
// contains filtered or unexported fields
}
HistoryDBSource utility struct to pass the SSE update frequency and a function to get the current ledger state.
func NewHistoryDBSource ¶
func NewHistoryDBSource(updateFrequency time.Duration, state *State) *HistoryDBSource
NewHistoryDBSource constructs a new instance of HistoryDBSource
func (*HistoryDBSource) Close ¶
func (source *HistoryDBSource) Close()
Close closes the internal go routines.
func (*HistoryDBSource) CurrentLedger ¶
func (source *HistoryDBSource) CurrentLedger() uint32
CurrentLedger returns the current ledger.
func (*HistoryDBSource) NextLedger ¶
func (source *HistoryDBSource) NextLedger(currentSequence uint32) chan uint32
NextLedger returns a channel which yields every time there is a new ledger with a sequence number larger than currentSequence.
type OrbitRStatus ¶
type Source ¶
type Source interface { CurrentLedger() uint32 NextLedger(currentSequence uint32) chan uint32 Close() }
Source exposes two helpers methods to help you find out the current ledger and yield every time there is a new ledger. Call `Close` when source is no longer used.
type State ¶
type State struct { sync.RWMutex Metrics struct { HistoryLatestLedgerCounter prometheus.CounterFunc HistoryLatestLedgerClosedAgoGauge prometheus.GaugeFunc HistoryElderLedgerCounter prometheus.CounterFunc CoreLatestLedgerCounter prometheus.CounterFunc } // contains filtered or unexported fields }
State is an in-memory data structure which holds a snapshot of both orbitr's and gravity's view of the the network
func (*State) CurrentStatus ¶
CurrentStatus returns the cached snapshot of ledger state
func (*State) RegisterMetrics ¶
func (c *State) RegisterMetrics(registry *prometheus.Registry)
func (*State) SetCoreStatus ¶
func (c *State) SetCoreStatus(next CoreStatus)
SetCoreStatus updates the cached snapshot of the ledger state of Gravity
func (*State) SetOrbitRStatus ¶
func (c *State) SetOrbitRStatus(next OrbitRStatus)
SetOrbitRStatus updates the cached snapshot of the ledger state of OrbitR
type Status ¶
type Status struct { CoreStatus OrbitRStatus }
Status represents a snapshot of both orbitr's and gravity's view of the ledger.
type TestingSource ¶
type TestingSource struct {
// contains filtered or unexported fields
}
TestingSource is helper struct which implements the LedgerSource interface.
func NewTestingSource ¶
func NewTestingSource(currentLedger uint32) *TestingSource
NewTestingSource returns a TestingSource.
func (*TestingSource) AddLedger ¶
func (source *TestingSource) AddLedger(nextSequence uint32)
AddLedger adds a new sequence to the newLedgers channel. AddLedger() will block until the new sequence is read
func (*TestingSource) Close ¶
func (source *TestingSource) Close()
func (*TestingSource) CurrentLedger ¶
func (source *TestingSource) CurrentLedger() uint32
CurrentLedger returns the current ledger.
func (*TestingSource) NextLedger ¶
func (source *TestingSource) NextLedger(currentSequence uint32) chan uint32
NextLedger returns a channel which yields every time there is a new ledger.