Documentation ¶
Index ¶
- Variables
- type ApiServer
- type BeaconLightApi
- func (api *BeaconLightApi) GetBeaconBlock(blockRoot common.Hash) (*types.BeaconBlock, error)
- func (api *BeaconLightApi) GetBestUpdatesAndCommittees(firstPeriod, count uint64) ([]*types.LightClientUpdate, []*types.SerializedSyncCommittee, error)
- func (api *BeaconLightApi) GetCheckpointData(checkpointHash common.Hash) (*types.BootstrapData, error)
- func (api *BeaconLightApi) GetFinalityUpdate() (types.FinalityUpdate, error)
- func (api *BeaconLightApi) GetHeader(blockRoot common.Hash) (types.Header, bool, bool, error)
- func (api *BeaconLightApi) GetOptimisticUpdate() (types.OptimisticUpdate, error)
- func (api *BeaconLightApi) StartHeadListener(listener HeadEventListener) func()
- type CommitteeUpdate
- type HeadEventListener
Constants ¶
This section is empty.
Variables ¶
var ( ErrNotFound = errors.New("404 Not Found") ErrInternal = errors.New("500 Internal Server Error") )
Functions ¶
This section is empty.
Types ¶
type ApiServer ¶
type ApiServer struct {
// contains filtered or unexported fields
}
ApiServer is a wrapper around BeaconLightApi that implements request.requestServer.
func NewApiServer ¶
func NewApiServer(api *BeaconLightApi) *ApiServer
NewApiServer creates a new ApiServer.
func (*ApiServer) SendRequest ¶
SendRequest implements request.requestServer.
func (*ApiServer) Unsubscribe ¶
func (s *ApiServer) Unsubscribe()
Unsubscribe implements request.requestServer. Note: Unsubscribe should not be called concurrently with Subscribe.
type BeaconLightApi ¶
type BeaconLightApi struct {
// contains filtered or unexported fields
}
BeaconLightApi requests light client information from a beacon node REST API. Note: all required API endpoints are currently only implemented by Lodestar.
func NewBeaconLightApi ¶
func NewBeaconLightApi(url string, customHeaders map[string]string) *BeaconLightApi
func (*BeaconLightApi) GetBeaconBlock ¶
func (api *BeaconLightApi) GetBeaconBlock(blockRoot common.Hash) (*types.BeaconBlock, error)
func (*BeaconLightApi) GetBestUpdatesAndCommittees ¶
func (api *BeaconLightApi) GetBestUpdatesAndCommittees(firstPeriod, count uint64) ([]*types.LightClientUpdate, []*types.SerializedSyncCommittee, error)
GetBestUpdatesAndCommittees fetches and validates LightClientUpdate for given period and full serialized committee for the next period (committee root hash equals update.NextSyncCommitteeRoot). Note that the results are validated but the update signature should be verified by the caller as its validity depends on the update chain.
func (*BeaconLightApi) GetCheckpointData ¶
func (api *BeaconLightApi) GetCheckpointData(checkpointHash common.Hash) (*types.BootstrapData, error)
GetCheckpointData fetches and validates bootstrap data belonging to the given checkpoint.
func (*BeaconLightApi) GetFinalityUpdate ¶
func (api *BeaconLightApi) GetFinalityUpdate() (types.FinalityUpdate, error)
GetFinalityUpdate fetches the latest available finality update.
See data structure definition here: https://github.com/ethereum/consensus-specs/blob/dev/specs/altair/light-client/sync-protocol.md#lightclientfinalityupdate
func (*BeaconLightApi) GetHeader ¶
GetHeader fetches and validates the beacon header with the given blockRoot. If blockRoot is null hash then the latest head header is fetched. The values of the canonical and finalized flags are also returned. Note that these flags are not validated.
func (*BeaconLightApi) GetOptimisticUpdate ¶
func (api *BeaconLightApi) GetOptimisticUpdate() (types.OptimisticUpdate, error)
GetOptimisticUpdate fetches the latest available optimistic update. Note that the signature should be verified by the caller as its validity depends on the update chain.
See data structure definition here: https://github.com/ethereum/consensus-specs/blob/dev/specs/altair/light-client/sync-protocol.md#lightclientoptimisticupdate
func (*BeaconLightApi) StartHeadListener ¶
func (api *BeaconLightApi) StartHeadListener(listener HeadEventListener) func()
StartHeadListener creates an event subscription for heads and signed (optimistic) head updates and calls the specified callback functions when they are received. The callbacks are also called for the current head and optimistic head at startup. They are never called concurrently.
type CommitteeUpdate ¶
type CommitteeUpdate struct { Version string Update types.LightClientUpdate NextSyncCommittee types.SerializedSyncCommittee }
func (*CommitteeUpdate) UnmarshalJSON ¶
func (u *CommitteeUpdate) UnmarshalJSON(input []byte) error
UnmarshalJSON unmarshals from JSON.
type HeadEventListener ¶
type HeadEventListener struct { OnNewHead func(slot uint64, blockRoot common.Hash) OnOptimistic func(head types.OptimisticUpdate) OnFinality func(head types.FinalityUpdate) OnError func(err error) }