Documentation ¶
Index ¶
- Constants
- func NewHeadBroadcaster(logger logger.Logger) httypes.HeadBroadcaster
- type Config
- type HeadListener
- type HeadSaver
- type HeadTracker
- func (ht *HeadTracker) Backfill(ctx context.Context, headWithChain *eth.Head, depth uint) (err error)
- func (ht *HeadTracker) Connected() bool
- func (ht *HeadTracker) Healthy() error
- func (ht *HeadTracker) HighestSeenHeadFromDB(ctx context.Context) (*eth.Head, error)
- func (ht *HeadTracker) LatestChain() *eth.Head
- func (ht *HeadTracker) Save(ctx context.Context, h *eth.Head) error
- func (ht *HeadTracker) SetLogLevel(lvl zapcore.Level)
- func (ht *HeadTracker) Start() error
- func (ht *HeadTracker) Stop() error
- type NullBroadcaster
- func (*NullBroadcaster) Close() error
- func (n *NullBroadcaster) Healthy() error
- func (*NullBroadcaster) OnNewLongestChain(ctx context.Context, head *eth.Head)
- func (n *NullBroadcaster) Ready() error
- func (*NullBroadcaster) Start() error
- func (*NullBroadcaster) Subscribe(callback httypes.HeadTrackable) (currentLongestChain *eth.Head, unsubscribe func())
- type NullTracker
- type ORM
- func (orm *ORM) HeadByHash(ctx context.Context, hash common.Hash) (head *eth.Head, err error)
- func (orm *ORM) IdempotentInsertHead(ctx context.Context, h *eth.Head) error
- func (orm *ORM) LatestHead(ctx context.Context) (head *eth.Head, err error)
- func (orm *ORM) LatestHeads(ctx context.Context, limit int) (heads []*eth.Head, err error)
- func (orm *ORM) TrimOldHeads(ctx context.Context, n uint) (err error)
Constants ¶
const HeadsBufferSize = 10
HeadsBufferSize - The buffer is used when heads sampling is disabled, to ensure the callback is run for every head
Variables ¶
This section is empty.
Functions ¶
func NewHeadBroadcaster ¶
func NewHeadBroadcaster(logger logger.Logger) httypes.HeadBroadcaster
NewHeadBroadcaster creates a new HeadBroadcaster
Types ¶
type HeadListener ¶
type HeadListener struct {
// contains filtered or unexported fields
}
func NewHeadListener ¶
func (*HeadListener) Connected ¶
func (hl *HeadListener) Connected() bool
Connected returns whether or not this HeadTracker is connected.
func (*HeadListener) ListenForNewHeads ¶
type HeadSaver ¶
type HeadSaver struct {
// contains filtered or unexported fields
}
func (*HeadSaver) LatestChain ¶ added in v1.1.0
LatestChain returns the block header with the highest number that has been seen, or nil
func (*HeadSaver) LoadFromDB ¶ added in v1.1.0
type HeadTracker ¶
type HeadTracker struct { utils.StartStopOnce // contains filtered or unexported fields }
HeadTracker holds and stores the latest block number experienced by this particular node in a thread safe manner. Reconstitutes the last block number from the data store on reboot.
func NewHeadTracker ¶
func NewHeadTracker( l logger.Logger, ethClient eth.Client, config Config, orm *ORM, headBroadcaster httypes.HeadBroadcaster, sleepers ...utils.Sleeper, ) *HeadTracker
NewHeadTracker instantiates a new HeadTracker using the orm to persist new block numbers. Can be passed in an optional sleeper object that will dictate how often it tries to reconnect.
func (*HeadTracker) Backfill ¶
func (ht *HeadTracker) Backfill(ctx context.Context, headWithChain *eth.Head, depth uint) (err error)
Backfill given a head will fill in any missing heads up to the given depth
func (*HeadTracker) Connected ¶
func (ht *HeadTracker) Connected() bool
Connected returns whether or not this HeadTracker is connected.
func (*HeadTracker) Healthy ¶ added in v0.10.11
func (ht *HeadTracker) Healthy() error
func (*HeadTracker) HighestSeenHeadFromDB ¶
func (*HeadTracker) LatestChain ¶ added in v1.1.0
func (ht *HeadTracker) LatestChain() *eth.Head
func (*HeadTracker) SetLogLevel ¶ added in v1.1.0
func (ht *HeadTracker) SetLogLevel(lvl zapcore.Level)
func (*HeadTracker) Start ¶
func (ht *HeadTracker) Start() error
Start retrieves the last persisted block number from the HeadTracker, subscribes to new heads, and if successful fires Connect on the HeadTrackable argument.
func (*HeadTracker) Stop ¶
func (ht *HeadTracker) Stop() error
Stop unsubscribes all connections and fires Disconnect.
type NullBroadcaster ¶
type NullBroadcaster struct{}
func (*NullBroadcaster) Close ¶
func (*NullBroadcaster) Close() error
func (*NullBroadcaster) Healthy ¶
func (n *NullBroadcaster) Healthy() error
func (*NullBroadcaster) OnNewLongestChain ¶
func (*NullBroadcaster) OnNewLongestChain(ctx context.Context, head *eth.Head)
func (*NullBroadcaster) Ready ¶
func (n *NullBroadcaster) Ready() error
func (*NullBroadcaster) Start ¶
func (*NullBroadcaster) Start() error
func (*NullBroadcaster) Subscribe ¶
func (*NullBroadcaster) Subscribe(callback httypes.HeadTrackable) (currentLongestChain *eth.Head, unsubscribe func())
type NullTracker ¶
type NullTracker struct{}
func (*NullTracker) Healthy ¶ added in v0.10.11
func (*NullTracker) Healthy() error
func (*NullTracker) HighestSeenHeadFromDB ¶
func (*NullTracker) Ready ¶ added in v0.10.11
func (*NullTracker) Ready() error
func (*NullTracker) SetLogLevel ¶ added in v1.1.0
func (*NullTracker) SetLogLevel(zapcore.Level)
func (*NullTracker) Start ¶
func (*NullTracker) Start() error
func (*NullTracker) Stop ¶
func (*NullTracker) Stop() error
type ORM ¶ added in v0.10.10
type ORM struct {
// contains filtered or unexported fields
}
func (*ORM) HeadByHash ¶ added in v0.10.10
HeadByHash fetches the head with the given hash from the db, returns nil if none exists
func (*ORM) IdempotentInsertHead ¶ added in v0.10.10
IdempotentInsertHead inserts a head only if the hash is new. Will do nothing if hash exists already. No advisory lock required because this is thread safe.
func (*ORM) LatestHead ¶ added in v1.1.0
LatestHead returns the highest seen head
func (*ORM) LatestHeads ¶ added in v1.1.0
LatestHeads returns the latest heads up to given limit