Documentation
¶
Overview ¶
Package catalyst implements the temporary eth1/eth2 RPC integration.
Index ¶
- func Register(stack *node.Node, backend *eth.Ethereum) error
- func RegisterDevAPIs(stack *node.Node, eth *eth.Ethereum, sim *SimulatedBeacon)
- 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) GetBlobsV2(hashes []common.Hash) ([]*engine.BlobAndProofV2, 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) GetPayloadV5(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 DevAPI
- func (api *DevAPI) AutoImpersonate(ctx context.Context, enabled bool) error
- func (api *DevAPI) DumpState(ctx context.Context) (state.Dump, error)
- func (api *DevAPI) ImpersonateAccount(ctx context.Context, address common.Address) error
- func (api *DevAPI) IncreaseTime(ctx context.Context, seconds hexutil.Uint64) (hexutil.Uint64, error)
- func (api *DevAPI) Mine(ctx context.Context, blocks *hexutil.Uint64, interval *hexutil.Uint64) (common.Hash, error)
- func (api *DevAPI) Reset(ctx context.Context) error
- func (api *DevAPI) Revert(ctx context.Context, snapID hexutil.Uint64) (bool, error)
- func (api *DevAPI) SetBalance(ctx context.Context, address common.Address, balance hexutil.Big) error
- func (api *DevAPI) SetCode(ctx context.Context, address common.Address, code hexutil.Bytes) error
- func (api *DevAPI) SetNextBlockTimestamp(ctx context.Context, timestamp hexutil.Uint64) error
- func (api *DevAPI) SetNonce(ctx context.Context, address common.Address, nonce hexutil.Uint64) error
- func (api *DevAPI) SetStorageAt(ctx context.Context, address common.Address, slot common.Hash, ...) error
- func (api *DevAPI) Snapshot(ctx context.Context) hexutil.Uint64
- func (api *DevAPI) StopImpersonatingAccount(ctx context.Context, address common.Address) error
- type FullSyncTester
- type SimulatedBeacon
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterDevAPIs ¶ added in v1.16.67
func RegisterDevAPIs(stack *node.Node, eth *eth.Ethereum, sim *SimulatedBeacon)
RegisterDevAPIs registers the dev mode APIs with the node. This registers under multiple namespaces for Anvil/Hardhat compatibility: - eth: eth_setStorageAt, eth_setBalance (Anvil compat) - evm: evm_mine, evm_snapshot, evm_revert (Anvil/Hardhat compat) - anvil: anvil_* methods (Anvil compat) - hardhat: hardhat_* methods (Hardhat compat)
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 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.
Specification:
Given an array of blob versioned hashes client software MUST respond with an array of BlobAndProofV1 objects with matching versioned hashes, respecting the order of versioned hashes in the input array.
Client software MUST place responses in the order given in the request, using null for any missing blobs. For instance:
if the request is [A_versioned_hash, B_versioned_hash, C_versioned_hash] and client software has data for blobs A and C, but doesn't have data for B, the response MUST be [A, null, C].
Client software MUST support request sizes of at least 128 blob versioned hashes. The client MUST return -38004: Too large request error if the number of requested blobs is too large.
Client software MAY return an array of all null entries if syncing or otherwise unable to serve blob pool data.
func (*ConsensusAPI) GetBlobsV2 ¶
func (api *ConsensusAPI) GetBlobsV2(hashes []common.Hash) ([]*engine.BlobAndProofV2, error)
GetBlobsV2 returns a blob from the transaction pool.
Specification: Refer to the specification for engine_getBlobsV1 with changes of the following:
Given an array of blob versioned hashes client software MUST respond with an array of BlobAndProofV2 objects with matching versioned hashes, respecting the order of versioned hashes in the input array.
Client software MUST return null in case of any missing or older version blobs. For instance,
if the request is [A_versioned_hash, B_versioned_hash, C_versioned_hash] and client software has data for blobs A and C, but doesn't have data for B, the response MUST be null.
if the request is [A_versioned_hash_for_blob_with_blob_proof], the response MUST be null as well.
Client software MUST support request sizes of at least 128 blob versioned hashes. The client MUST return -38004: Too large request error if the number of requested blobs is too large.
Client software MUST return null if syncing or otherwise unable to serve blob pool data.
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. This endpoint should only be used for the Cancun fork.
func (*ConsensusAPI) GetPayloadV4 ¶
func (api *ConsensusAPI) GetPayloadV4(payloadID engine.PayloadID) (*engine.ExecutionPayloadEnvelope, error)
GetPayloadV4 returns a cached payload by id. This endpoint should only be used for the Prague fork.
func (*ConsensusAPI) GetPayloadV5 ¶
func (api *ConsensusAPI) GetPayloadV5(payloadID engine.PayloadID) (*engine.ExecutionPayloadEnvelope, error)
GetPayloadV5 returns a cached payload by id. This endpoint should only be used after the Osaka fork.
This method follows the same specification as engine_getPayloadV4 with changes of returning BlobsBundleV2 with BlobSidecar version 1.
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 DevAPI ¶ added in v1.16.67
type DevAPI struct {
// contains filtered or unexported fields
}
DevAPI provides Anvil/Hardhat-compatible RPC methods for dev mode. These methods allow manipulation of blockchain state for testing purposes.
func NewDevAPI ¶ added in v1.16.67
func NewDevAPI(eth *eth.Ethereum, sim *SimulatedBeacon) *DevAPI
NewDevAPI creates a new DevAPI instance.
func (*DevAPI) AutoImpersonate ¶ added in v1.16.67
AutoImpersonate enables or disables auto-impersonation of all accounts. Anvil: anvil_autoImpersonateAccount
func (*DevAPI) DumpState ¶ added in v1.16.67
DumpState returns a dump of the current state (for debugging).
func (*DevAPI) ImpersonateAccount ¶ added in v1.16.67
ImpersonateAccount starts impersonating an account (allows sending tx without private key). Anvil: anvil_impersonateAccount Hardhat: hardhat_impersonateAccount
func (*DevAPI) IncreaseTime ¶ added in v1.16.67
func (api *DevAPI) IncreaseTime(ctx context.Context, seconds hexutil.Uint64) (hexutil.Uint64, error)
IncreaseTime increases the block timestamp. Anvil: evm_increaseTime Hardhat: evm_increaseTime
func (*DevAPI) Mine ¶ added in v1.16.67
func (api *DevAPI) Mine(ctx context.Context, blocks *hexutil.Uint64, interval *hexutil.Uint64) (common.Hash, error)
Mine forces mining of new blocks. Anvil: evm_mine (single optional timestamp parameter) Hardhat: hardhat_mine (blocks count, optional interval) We use optional pointer parameters to handle both calling conventions.
func (*DevAPI) Reset ¶ added in v1.16.67
Reset resets the chain to genesis state. Anvil: anvil_reset
func (*DevAPI) Revert ¶ added in v1.16.67
Revert reverts the state to a previous snapshot. Anvil: evm_revert Hardhat: evm_revert
func (*DevAPI) SetBalance ¶ added in v1.16.67
func (api *DevAPI) SetBalance(ctx context.Context, address common.Address, balance hexutil.Big) error
SetBalance sets the balance of an address. Anvil: anvil_setBalance Hardhat: hardhat_setBalance
func (*DevAPI) SetCode ¶ added in v1.16.67
SetCode sets the code of an address. Anvil: anvil_setCode Hardhat: hardhat_setCode
func (*DevAPI) SetNextBlockTimestamp ¶ added in v1.16.67
SetNextBlockTimestamp sets the timestamp for the next block. Anvil: evm_setNextBlockTimestamp Hardhat: evm_setNextBlockTimestamp
func (*DevAPI) SetNonce ¶ added in v1.16.67
func (api *DevAPI) SetNonce(ctx context.Context, address common.Address, nonce hexutil.Uint64) error
SetNonce sets the nonce of an address. Anvil: anvil_setNonce Hardhat: hardhat_setNonce
func (*DevAPI) SetStorageAt ¶ added in v1.16.67
func (api *DevAPI) SetStorageAt(ctx context.Context, address common.Address, slot common.Hash, value common.Hash) error
SetStorageAt sets a storage slot value for an address. Anvil: anvil_setStorageAt Hardhat: hardhat_setStorageAt
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, exitWhenSynced bool) (*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, feeRecipient common.Address, 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.