Documentation ¶
Overview ¶
Package catalyst implements the temporary eth1/eth2 RPC integration.
Index ¶
- func Register(stack *node.Node, backend *eth.Ethereum) error
- func RegisterSimulatedBeaconAPIs(stack *node.Node, sim *SimulatedBeacon)
- type ConsensusAPI
- func (api *ConsensusAPI) ExchangeCapabilities([]string) []string
- func (api *ConsensusAPI) ExchangeTransitionConfigurationV1(config engine.TransitionConfigurationV1) (*engine.TransitionConfigurationV1, error)
- func (api *ConsensusAPI) ExecuteStatelessPayloadV1(params engine.ExecutableData, opaqueWitness hexutil.Bytes) (engine.StatelessPayloadStatusV1, error)
- func (api *ConsensusAPI) ExecuteStatelessPayloadV2(params engine.ExecutableData, opaqueWitness hexutil.Bytes) (engine.StatelessPayloadStatusV1, error)
- func (api *ConsensusAPI) ExecuteStatelessPayloadV3(params engine.ExecutableData, versionedHashes []common.Hash, ...) (engine.StatelessPayloadStatusV1, error)
- func (api *ConsensusAPI) ExecuteStatelessPayloadV4(params engine.ExecutableData, versionedHashes []common.Hash, ...) (engine.StatelessPayloadStatusV1, error)
- func (api *ConsensusAPI) ForkchoiceUpdatedV1(update engine.ForkchoiceStateV1, payloadAttributes *engine.PayloadAttributes) (engine.ForkChoiceResponse, error)
- func (api *ConsensusAPI) ForkchoiceUpdatedV2(update engine.ForkchoiceStateV1, params *engine.PayloadAttributes) (engine.ForkChoiceResponse, error)
- func (api *ConsensusAPI) ForkchoiceUpdatedV3(update engine.ForkchoiceStateV1, params *engine.PayloadAttributes) (engine.ForkChoiceResponse, error)
- func (api *ConsensusAPI) ForkchoiceUpdatedWithWitnessV1(update engine.ForkchoiceStateV1, payloadAttributes *engine.PayloadAttributes) (engine.ForkChoiceResponse, error)
- func (api *ConsensusAPI) ForkchoiceUpdatedWithWitnessV2(update engine.ForkchoiceStateV1, params *engine.PayloadAttributes) (engine.ForkChoiceResponse, error)
- func (api *ConsensusAPI) ForkchoiceUpdatedWithWitnessV3(update engine.ForkchoiceStateV1, params *engine.PayloadAttributes) (engine.ForkChoiceResponse, error)
- func (api *ConsensusAPI) GetBlobsV1(hashes []common.Hash) ([]*engine.BlobAndProofV1, error)
- func (api *ConsensusAPI) GetClientVersionV1(info engine.ClientVersionV1) []engine.ClientVersionV1
- func (api *ConsensusAPI) GetPayloadBodiesByHashV1(hashes []common.Hash) []*engine.ExecutionPayloadBody
- func (api *ConsensusAPI) GetPayloadBodiesByHashV2(hashes []common.Hash) []*engine.ExecutionPayloadBody
- func (api *ConsensusAPI) GetPayloadBodiesByRangeV1(start, count hexutil.Uint64) ([]*engine.ExecutionPayloadBody, error)
- func (api *ConsensusAPI) GetPayloadBodiesByRangeV2(start, count hexutil.Uint64) ([]*engine.ExecutionPayloadBody, error)
- func (api *ConsensusAPI) GetPayloadV1(payloadID engine.PayloadID) (*engine.ExecutableData, error)
- func (api *ConsensusAPI) GetPayloadV2(payloadID engine.PayloadID) (*engine.ExecutionPayloadEnvelope, error)
- func (api *ConsensusAPI) GetPayloadV3(payloadID engine.PayloadID) (*engine.ExecutionPayloadEnvelope, error)
- func (api *ConsensusAPI) GetPayloadV4(payloadID engine.PayloadID) (*engine.ExecutionPayloadEnvelope, error)
- func (api *ConsensusAPI) NewPayloadV1(params engine.ExecutableData) (engine.PayloadStatusV1, error)
- func (api *ConsensusAPI) NewPayloadV2(params engine.ExecutableData) (engine.PayloadStatusV1, error)
- func (api *ConsensusAPI) NewPayloadV3(params engine.ExecutableData, versionedHashes []common.Hash, ...) (engine.PayloadStatusV1, error)
- func (api *ConsensusAPI) NewPayloadV4(params engine.ExecutableData, versionedHashes []common.Hash, ...) (engine.PayloadStatusV1, error)
- func (api *ConsensusAPI) NewPayloadWithWitnessV1(params engine.ExecutableData) (engine.PayloadStatusV1, error)
- func (api *ConsensusAPI) NewPayloadWithWitnessV2(params engine.ExecutableData) (engine.PayloadStatusV1, error)
- func (api *ConsensusAPI) NewPayloadWithWitnessV3(params engine.ExecutableData, versionedHashes []common.Hash, ...) (engine.PayloadStatusV1, error)
- func (api *ConsensusAPI) NewPayloadWithWitnessV4(params engine.ExecutableData, versionedHashes []common.Hash, ...) (engine.PayloadStatusV1, error)
- type FullSyncTester
- type SimulatedBeacon
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterSimulatedBeaconAPIs ¶
func RegisterSimulatedBeaconAPIs(stack *node.Node, sim *SimulatedBeacon)
RegisterSimulatedBeaconAPIs registers the simulated beacon's API with the stack.
Types ¶
type ConsensusAPI ¶
type ConsensusAPI struct {
// contains filtered or unexported fields
}
func NewConsensusAPI ¶
func NewConsensusAPI(eth *eth.Ethereum) *ConsensusAPI
NewConsensusAPI creates a new consensus api for the given backend. The underlying blockchain needs to have a valid terminal total difficulty set.
func (*ConsensusAPI) ExchangeCapabilities ¶
func (api *ConsensusAPI) ExchangeCapabilities([]string) []string
ExchangeCapabilities returns the current methods provided by this node.
func (*ConsensusAPI) ExchangeTransitionConfigurationV1 ¶
func (api *ConsensusAPI) ExchangeTransitionConfigurationV1(config engine.TransitionConfigurationV1) (*engine.TransitionConfigurationV1, error)
ExchangeTransitionConfigurationV1 checks the given configuration against the configuration of the node.
func (*ConsensusAPI) ExecuteStatelessPayloadV1 ¶
func (api *ConsensusAPI) ExecuteStatelessPayloadV1(params engine.ExecutableData, opaqueWitness hexutil.Bytes) (engine.StatelessPayloadStatusV1, error)
ExecuteStatelessPayloadV1 is analogous to NewPayloadV1, only it operates in a stateless mode on top of a provided witness instead of the local database.
func (*ConsensusAPI) ExecuteStatelessPayloadV2 ¶
func (api *ConsensusAPI) ExecuteStatelessPayloadV2(params engine.ExecutableData, opaqueWitness hexutil.Bytes) (engine.StatelessPayloadStatusV1, error)
ExecuteStatelessPayloadV2 is analogous to NewPayloadV2, only it operates in a stateless mode on top of a provided witness instead of the local database.
func (*ConsensusAPI) ExecuteStatelessPayloadV3 ¶
func (api *ConsensusAPI) ExecuteStatelessPayloadV3(params engine.ExecutableData, versionedHashes []common.Hash, beaconRoot *common.Hash, opaqueWitness hexutil.Bytes) (engine.StatelessPayloadStatusV1, error)
ExecuteStatelessPayloadV3 is analogous to NewPayloadV3, only it operates in a stateless mode on top of a provided witness instead of the local database.
func (*ConsensusAPI) ExecuteStatelessPayloadV4 ¶
func (api *ConsensusAPI) ExecuteStatelessPayloadV4(params engine.ExecutableData, versionedHashes []common.Hash, beaconRoot *common.Hash, executionRequests []hexutil.Bytes, opaqueWitness hexutil.Bytes) (engine.StatelessPayloadStatusV1, error)
ExecuteStatelessPayloadV4 is analogous to NewPayloadV4, only it operates in a stateless mode on top of a provided witness instead of the local database.
func (*ConsensusAPI) ForkchoiceUpdatedV1 ¶
func (api *ConsensusAPI) ForkchoiceUpdatedV1(update engine.ForkchoiceStateV1, payloadAttributes *engine.PayloadAttributes) (engine.ForkChoiceResponse, error)
ForkchoiceUpdatedV1 has several responsibilities:
We try to set our blockchain to the headBlock.
If the method is called with an empty head block: we return success, which can be used to check if the engine API is enabled.
If the total difficulty was not reached: we return INVALID.
If the finalizedBlockHash is set: we check if we have the finalizedBlockHash in our db, if not we start a sync.
If there are payloadAttributes: we try to assemble a block with the payloadAttributes and return its payloadID.
func (*ConsensusAPI) ForkchoiceUpdatedV2 ¶
func (api *ConsensusAPI) ForkchoiceUpdatedV2(update engine.ForkchoiceStateV1, params *engine.PayloadAttributes) (engine.ForkChoiceResponse, error)
ForkchoiceUpdatedV2 is equivalent to V1 with the addition of withdrawals in the payload attributes. It supports both PayloadAttributesV1 and PayloadAttributesV2.
func (*ConsensusAPI) ForkchoiceUpdatedV3 ¶
func (api *ConsensusAPI) ForkchoiceUpdatedV3(update engine.ForkchoiceStateV1, params *engine.PayloadAttributes) (engine.ForkChoiceResponse, error)
ForkchoiceUpdatedV3 is equivalent to V2 with the addition of parent beacon block root in the payload attributes. It supports only PayloadAttributesV3.
func (*ConsensusAPI) ForkchoiceUpdatedWithWitnessV1 ¶
func (api *ConsensusAPI) ForkchoiceUpdatedWithWitnessV1(update engine.ForkchoiceStateV1, payloadAttributes *engine.PayloadAttributes) (engine.ForkChoiceResponse, error)
ForkchoiceUpdatedWithWitnessV1 is analogous to ForkchoiceUpdatedV1, only it generates an execution witness too if block building was requested.
func (*ConsensusAPI) ForkchoiceUpdatedWithWitnessV2 ¶
func (api *ConsensusAPI) ForkchoiceUpdatedWithWitnessV2(update engine.ForkchoiceStateV1, params *engine.PayloadAttributes) (engine.ForkChoiceResponse, error)
ForkchoiceUpdatedWithWitnessV2 is analogous to ForkchoiceUpdatedV2, only it generates an execution witness too if block building was requested.
func (*ConsensusAPI) ForkchoiceUpdatedWithWitnessV3 ¶
func (api *ConsensusAPI) ForkchoiceUpdatedWithWitnessV3(update engine.ForkchoiceStateV1, params *engine.PayloadAttributes) (engine.ForkChoiceResponse, error)
ForkchoiceUpdatedWithWitnessV3 is analogous to ForkchoiceUpdatedV3, only it generates an execution witness too if block building was requested.
func (*ConsensusAPI) GetBlobsV1 ¶
func (api *ConsensusAPI) GetBlobsV1(hashes []common.Hash) ([]*engine.BlobAndProofV1, error)
GetBlobsV1 returns a blob from the transaction pool.
func (*ConsensusAPI) GetClientVersionV1 ¶
func (api *ConsensusAPI) GetClientVersionV1(info engine.ClientVersionV1) []engine.ClientVersionV1
GetClientVersionV1 exchanges client version data of this node.
func (*ConsensusAPI) GetPayloadBodiesByHashV1 ¶
func (api *ConsensusAPI) GetPayloadBodiesByHashV1(hashes []common.Hash) []*engine.ExecutionPayloadBody
GetPayloadBodiesByHashV1 implements engine_getPayloadBodiesByHashV1 which allows for retrieval of a list of block bodies by the engine api.
func (*ConsensusAPI) GetPayloadBodiesByHashV2 ¶
func (api *ConsensusAPI) GetPayloadBodiesByHashV2(hashes []common.Hash) []*engine.ExecutionPayloadBody
GetPayloadBodiesByHashV2 implements engine_getPayloadBodiesByHashV1 which allows for retrieval of a list of block bodies by the engine api.
func (*ConsensusAPI) GetPayloadBodiesByRangeV1 ¶
func (api *ConsensusAPI) GetPayloadBodiesByRangeV1(start, count hexutil.Uint64) ([]*engine.ExecutionPayloadBody, error)
GetPayloadBodiesByRangeV1 implements engine_getPayloadBodiesByRangeV1 which allows for retrieval of a range of block bodies by the engine api.
func (*ConsensusAPI) GetPayloadBodiesByRangeV2 ¶
func (api *ConsensusAPI) GetPayloadBodiesByRangeV2(start, count hexutil.Uint64) ([]*engine.ExecutionPayloadBody, error)
GetPayloadBodiesByRangeV2 implements engine_getPayloadBodiesByRangeV1 which allows for retrieval of a range of block bodies by the engine api.
func (*ConsensusAPI) GetPayloadV1 ¶
func (api *ConsensusAPI) GetPayloadV1(payloadID engine.PayloadID) (*engine.ExecutableData, error)
GetPayloadV1 returns a cached payload by id.
func (*ConsensusAPI) GetPayloadV2 ¶
func (api *ConsensusAPI) GetPayloadV2(payloadID engine.PayloadID) (*engine.ExecutionPayloadEnvelope, error)
GetPayloadV2 returns a cached payload by id.
func (*ConsensusAPI) GetPayloadV3 ¶
func (api *ConsensusAPI) GetPayloadV3(payloadID engine.PayloadID) (*engine.ExecutionPayloadEnvelope, error)
GetPayloadV3 returns a cached payload by id.
func (*ConsensusAPI) GetPayloadV4 ¶
func (api *ConsensusAPI) GetPayloadV4(payloadID engine.PayloadID) (*engine.ExecutionPayloadEnvelope, error)
GetPayloadV4 returns a cached payload by id.
func (*ConsensusAPI) NewPayloadV1 ¶
func (api *ConsensusAPI) NewPayloadV1(params engine.ExecutableData) (engine.PayloadStatusV1, error)
NewPayloadV1 creates an Eth1 block, inserts it in the chain, and returns the status of the chain.
func (*ConsensusAPI) NewPayloadV2 ¶
func (api *ConsensusAPI) NewPayloadV2(params engine.ExecutableData) (engine.PayloadStatusV1, error)
NewPayloadV2 creates an Eth1 block, inserts it in the chain, and returns the status of the chain.
func (*ConsensusAPI) NewPayloadV3 ¶
func (api *ConsensusAPI) NewPayloadV3(params engine.ExecutableData, versionedHashes []common.Hash, beaconRoot *common.Hash) (engine.PayloadStatusV1, error)
NewPayloadV3 creates an Eth1 block, inserts it in the chain, and returns the status of the chain.
func (*ConsensusAPI) NewPayloadV4 ¶
func (api *ConsensusAPI) NewPayloadV4(params engine.ExecutableData, versionedHashes []common.Hash, beaconRoot *common.Hash, executionRequests []hexutil.Bytes) (engine.PayloadStatusV1, error)
NewPayloadV4 creates an Eth1 block, inserts it in the chain, and returns the status of the chain.
func (*ConsensusAPI) NewPayloadWithWitnessV1 ¶
func (api *ConsensusAPI) NewPayloadWithWitnessV1(params engine.ExecutableData) (engine.PayloadStatusV1, error)
NewPayloadWithWitnessV1 is analogous to NewPayloadV1, only it also generates and returns a stateless witness after running the payload.
func (*ConsensusAPI) NewPayloadWithWitnessV2 ¶
func (api *ConsensusAPI) NewPayloadWithWitnessV2(params engine.ExecutableData) (engine.PayloadStatusV1, error)
NewPayloadWithWitnessV2 is analogous to NewPayloadV2, only it also generates and returns a stateless witness after running the payload.
func (*ConsensusAPI) NewPayloadWithWitnessV3 ¶
func (api *ConsensusAPI) NewPayloadWithWitnessV3(params engine.ExecutableData, versionedHashes []common.Hash, beaconRoot *common.Hash) (engine.PayloadStatusV1, error)
NewPayloadWithWitnessV3 is analogous to NewPayloadV3, only it also generates and returns a stateless witness after running the payload.
func (*ConsensusAPI) NewPayloadWithWitnessV4 ¶
func (api *ConsensusAPI) NewPayloadWithWitnessV4(params engine.ExecutableData, versionedHashes []common.Hash, beaconRoot *common.Hash, executionRequests []hexutil.Bytes) (engine.PayloadStatusV1, error)
NewPayloadWithWitnessV4 is analogous to NewPayloadV4, only it also generates and returns a stateless witness after running the payload.
type FullSyncTester ¶
type FullSyncTester struct {
// contains filtered or unexported fields
}
FullSyncTester is an auxiliary service that allows Geth to perform full sync alone without consensus-layer attached. Users must specify a valid block hash as the sync target.
This tester can be applied to different networks, no matter it's pre-merge or post-merge, but only for full-sync.
func RegisterFullSyncTester ¶
func RegisterFullSyncTester(stack *node.Node, backend *eth.Ethereum, target common.Hash) (*FullSyncTester, error)
RegisterFullSyncTester registers the full-sync tester service into the node stack for launching and stopping the service controlled by node.
func (*FullSyncTester) Start ¶
func (tester *FullSyncTester) Start() error
Start launches the beacon sync with provided sync target.
func (*FullSyncTester) Stop ¶
func (tester *FullSyncTester) Stop() error
Stop stops the full-sync tester to stop all background activities. This function can only be called for one time.
type SimulatedBeacon ¶
type SimulatedBeacon struct {
// contains filtered or unexported fields
}
SimulatedBeacon drives an Ethereum instance as if it were a real beacon client. It can run in period mode where it mines a new block every period (seconds) or on every transaction via Commit, Fork and AdjustTime.
func NewSimulatedBeacon ¶
func NewSimulatedBeacon(period uint64, eth *eth.Ethereum) (*SimulatedBeacon, error)
NewSimulatedBeacon constructs a new simulated beacon chain.
func (*SimulatedBeacon) AdjustTime ¶
func (c *SimulatedBeacon) AdjustTime(adjustment time.Duration) error
AdjustTime creates a new block with an adjusted timestamp.
func (*SimulatedBeacon) Commit ¶
func (c *SimulatedBeacon) Commit() common.Hash
Commit seals a block on demand.
func (*SimulatedBeacon) Fork ¶
func (c *SimulatedBeacon) Fork(parentHash common.Hash) error
Fork sets the head to the provided hash.
func (*SimulatedBeacon) Rollback ¶
func (c *SimulatedBeacon) Rollback()
Rollback un-sends previously added transactions.
func (*SimulatedBeacon) Start ¶
func (c *SimulatedBeacon) Start() error
Start invokes the SimulatedBeacon life-cycle function in a goroutine.
func (*SimulatedBeacon) Stop ¶
func (c *SimulatedBeacon) Stop() error
Stop halts the SimulatedBeacon service.