Struct ethcore::machine::EthereumMachine[][src]

pub struct EthereumMachine { /* fields omitted */ }

An ethereum-like state machine.

Methods

impl EthereumMachine
[src]

Regular ethereum machine.

Ethereum machine with ethash extensions.

Attach special rules to the creation of schedule.

Get a reference to the ethash-specific extensions.

impl EthereumMachine
[src]

Execute a call as the system address. Block environment information passed to the VM is modified to have its gas limit bounded at the upper limit of possible used gases including this system call, capped at the maximum value able to be represented by U256. This system call modifies the block state, but discards other information. If suicides, logs or refunds happen within the system call, they will not be executed or recorded. Gas used by this system call will not be counted on the block.

Logic to perform on a new block: updating last hashes and the DAO fork, for ethash.

Populate a header's fields based on its parent's header. Usually implements the chain scoring rule based on weight. The gas floor target must not be lower than the engine's minimum gas limit.

Get the general parameters of the chain.

Get the EVM schedule for the given block number.

Builtin-contracts for the chain..

Attempt to get a handle to a built-in contract. Only returns references to activated built-ins.

Some intrinsic operation parameters; by default they take their value from the spec()'s engine_params.

The nonce with which accounts begin at given block.

The network ID that transactions should be signed with.

Returns new contract address generation scheme at given block number.

Verify a particular transaction is valid, regardless of order.

Does basic verification of the transaction.

Does verification of the transaction against the parent state.

Additional params.

Performs pre-validation of RLP decoded transaction before other processing

Trait Implementations

impl Engine<EthereumMachine> for AuthorityRound
[src]

The name of this engine.

Get access to the underlying state machine.

Three fields - consensus step and the corresponding proposer signature, and a list of empty step messages (which should be empty if no steps are skipped)

Trigger next step of the consensus engine.

Additional engine-specific information for the user/developer concerning header.

Maximum number of uncles a block is allowed to declare.

Populate a header's fields based on its parent's header. Usually implements the chain scoring rule based on weight. Read more

None means that it requires external input (e.g. PoW) to seal a block. Some(true) means the engine is currently prime for seal generation (i.e. node is the current validator). Some(false) means that the node might seal internally but is not qualified now. Read more

Handle any potential consensus messages; updating consensus state and potentially issuing a new one. Read more

Attempt to seal the block internally.

This operation is synchronous and may (quite reasonably) not be available, in which case Seal::None will be returned.

Verify a locally-generated seal of a header. Read more

Block transformation functions, before the transactions. epoch_begin set to true if this block kicks off an epoch. Read more

Apply the block reward on finalisation of the block.

Check the number of seal fields.

Do the step and gas limit validation.

Phase 4 verification. Verify block header against potentially external data. Should only be called when register_client has been called previously. Read more

Genesis epoch data.

Whether an epoch change is signalled at the given header but will require finality. If a change can be enacted immediately then return No from this function but Yes from is_epoch_end. Read more

Whether a block is the end of an epoch. Read more

Create an epoch verifier from validation proof and a flag indicating whether finality is required. Read more

Add Client which can be used for sealing, potentially querying the state and sending messages.

Register an account which signs consensus messages.

Sign using the EngineSigner, to be used for consensus tx signing.

Create a factory for building snapshot chunks and restoring from them. Returning None indicates that this engine doesn't support snapshot creation. Read more

Check whether the given new block is the best block, after finalization check.

The number of generations back that uncles can be.

Phase 2 verification. Perform costly checks such as transaction signatures. Returns either a null Ok or a general error detailing the problem with import.

Find out if the block is a proposal block and should not be inserted into the DB. Takes a header of a fully verified block. Read more

Stops any services that the may hold the Engine and makes it safe to drop.

Whether this engine supports warp sync.

Return a new open block header timestamp based on the parent timestamp.

Check whether the parent timestamp is valid.

Important traits for Vec<u8>

Gather all ancestry actions. Called at the last stage when a block is committed. The Engine must guarantee that the ancestry exists. Read more

impl Engine<EthereumMachine> for BasicAuthority
[src]

The name of this engine.

Get access to the underlying state machine.

The number of additional header fields required for this engine.

None means that it requires external input (e.g. PoW) to seal a block. Some(true) means the engine is currently prime for seal generation (i.e. node is the current validator). Some(false) means that the node might seal internally but is not qualified now. Read more

Attempt to seal the block internally.

Verify a locally-generated seal of a header. Read more

Phase 4 verification. Verify block header against potentially external data. Should only be called when register_client has been called previously. Read more

Genesis epoch data.

Whether an epoch change is signalled at the given header but will require finality. If a change can be enacted immediately then return No from this function but Yes from is_epoch_end. Read more

Whether a block is the end of an epoch. Read more

Create an epoch verifier from validation proof and a flag indicating whether finality is required. Read more

Add Client which can be used for sealing, potentially querying the state and sending messages.

Register an account which signs consensus messages.

Sign using the EngineSigner, to be used for consensus tx signing.

Create a factory for building snapshot chunks and restoring from them. Returning None indicates that this engine doesn't support snapshot creation. Read more

Check whether the given new block is the best block, after finalization check.

Additional engine-specific information for the user/developer concerning header.

Maximum number of uncles a block is allowed to declare.

The number of generations back that uncles can be.

Block transformation functions, before the transactions. epoch_begin set to true if this block kicks off an epoch. Read more

Block transformation functions, after the transactions.

Phase 1 quick block verification. Only does checks that are cheap. Returns either a null Ok or a general error detailing the problem with import.

Phase 2 verification. Perform costly checks such as transaction signatures. Returns either a null Ok or a general error detailing the problem with import.

Phase 3 verification. Check block information against parent. Returns either a null Ok or a general error detailing the problem with import.

Populate a header's fields based on its parent's header. Usually implements the chain scoring rule based on weight. Read more

Handle any potential consensus messages; updating consensus state and potentially issuing a new one. Read more

Find out if the block is a proposal block and should not be inserted into the DB. Takes a header of a fully verified block. Read more

Trigger next step of the consensus engine.

Stops any services that the may hold the Engine and makes it safe to drop.

Whether this engine supports warp sync.

Return a new open block header timestamp based on the parent timestamp.

Check whether the parent timestamp is valid.

Important traits for Vec<u8>

Gather all ancestry actions. Called at the last stage when a block is committed. The Engine must guarantee that the ancestry exists. Read more

impl Engine<EthereumMachine> for Tendermint
[src]

The name of this engine.

(consensus view, proposal signature, authority signatures)

Get access to the underlying state machine.

Maximum number of uncles a block is allowed to declare.

The number of generations back that uncles can be.

Populate a header's fields based on its parent's header. Usually implements the chain scoring rule based on weight. Read more

Should this node participate.

Attempt to seal generate a proposal seal.

This operation is synchronous and may (quite reasonably) not be available, in which case Seal::None will be returned.

Handle any potential consensus messages; updating consensus state and potentially issuing a new one. Read more

Block transformation functions, before the transactions. epoch_begin set to true if this block kicks off an epoch. Read more

Apply the block reward on finalisation of the block.

Verify a locally-generated seal of a header. Read more

Phase 1 quick block verification. Only does checks that are cheap. Returns either a null Ok or a general error detailing the problem with import.

Phase 4 verification. Verify block header against potentially external data. Should only be called when register_client has been called previously. Read more

Whether an epoch change is signalled at the given header but will require finality. If a change can be enacted immediately then return No from this function but Yes from is_epoch_end. Read more

Whether a block is the end of an epoch. Read more

Create an epoch verifier from validation proof and a flag indicating whether finality is required. Read more

Register an account which signs consensus messages.

Sign using the EngineSigner, to be used for consensus tx signing.

Create a factory for building snapshot chunks and restoring from them. Returning None indicates that this engine doesn't support snapshot creation. Read more

Stops any services that the may hold the Engine and makes it safe to drop.

Find out if the block is a proposal block and should not be inserted into the DB. Takes a header of a fully verified block. Read more

Equivalent to a timeout: to be used for tests.

Add Client which can be used for sealing, potentially querying the state and sending messages.

Check whether the given new block is the best block, after finalization check.

Additional engine-specific information for the user/developer concerning header.

Phase 2 verification. Perform costly checks such as transaction signatures. Returns either a null Ok or a general error detailing the problem with import.

Phase 3 verification. Check block information against parent. Returns either a null Ok or a general error detailing the problem with import.

Genesis epoch data.

Whether this engine supports warp sync.

Return a new open block header timestamp based on the parent timestamp.

Check whether the parent timestamp is valid.

Important traits for Vec<u8>

Gather all ancestry actions. Called at the last stage when a block is committed. The Engine must guarantee that the ancestry exists. Read more

impl EpochVerifier<EthereumMachine> for Arc<Ethash>
[src]

Lightly verify the next block header. This may not be a header belonging to a different epoch. Read more

Perform potentially heavier checks on the next block header.

Check a finality proof against this epoch verifier. Returns Some(hashes) if the proof proves finality of these hashes. Returns None if the proof doesn't prove anything. Read more

impl Engine<EthereumMachine> for Arc<Ethash>
[src]

The name of this engine.

Get access to the underlying state machine.

The number of additional header fields required for this engine.

Additional engine-specific information for the user/developer concerning header.

Maximum number of uncles a block is allowed to declare.

Populate a header's fields based on its parent's header. Usually implements the chain scoring rule based on weight. Read more

Apply the block reward on finalisation of the block. This assumes that all uncles are valid uncles (i.e. of at least one generation before the current).

Verify a locally-generated seal of a header. Read more

Phase 1 quick block verification. Only does checks that are cheap. Returns either a null Ok or a general error detailing the problem with import.

Phase 2 verification. Perform costly checks such as transaction signatures. Returns either a null Ok or a general error detailing the problem with import.

Phase 3 verification. Check block information against parent. Returns either a null Ok or a general error detailing the problem with import.

Create an epoch verifier from validation proof and a flag indicating whether finality is required. Read more

Create a factory for building snapshot chunks and restoring from them. Returning None indicates that this engine doesn't support snapshot creation. Read more

Check whether the given new block is the best block, after finalization check.

The number of generations back that uncles can be.

Block transformation functions, before the transactions. epoch_begin set to true if this block kicks off an epoch. Read more

None means that it requires external input (e.g. PoW) to seal a block. Some(true) means the engine is currently prime for seal generation (i.e. node is the current validator). Some(false) means that the node might seal internally but is not qualified now. Read more

Attempt to seal the block internally. Read more

Phase 4 verification. Verify block header against potentially external data. Should only be called when register_client has been called previously. Read more

Genesis epoch data.

Whether an epoch change is signalled at the given header but will require finality. If a change can be enacted immediately then return No from this function but Yes from is_epoch_end. Read more

Whether a block is the end of an epoch. Read more

Handle any potential consensus messages; updating consensus state and potentially issuing a new one. Read more

Find out if the block is a proposal block and should not be inserted into the DB. Takes a header of a fully verified block. Read more

Register an account which signs consensus messages.

Sign using the EngineSigner, to be used for consensus tx signing.

Add Client which can be used for sealing, potentially querying the state and sending messages.

Trigger next step of the consensus engine.

Stops any services that the may hold the Engine and makes it safe to drop.

Whether this engine supports warp sync.

Return a new open block header timestamp based on the parent timestamp.

Check whether the parent timestamp is valid.

Important traits for Vec<u8>

Gather all ancestry actions. Called at the last stage when a block is committed. The Engine must guarantee that the ancestry exists. Read more

impl Machine for EthereumMachine
[src]

The block header type.

Block header with metadata information.

The live block type.

A handle to a blockchain client for this machine.

A description of needed auxiliary data.

Actions taken on ancestry blocks when commiting a new block.

Errors which can occur when querying or interacting with the machine.

impl<'a> LocalizedMachine<'a> for EthereumMachine
[src]

A context providing access to the state in a controlled capacity. Generally also provides verifiable proofs. Read more

Definition of auxiliary data associated to a specific block.

impl WithBalances for EthereumMachine
[src]

Get the balance, in base units, associated with an account. Extracts data from the live block. Read more

Increment the balance of an account in the state of the live block.

impl WithRewards for EthereumMachine
[src]

Note block rewards, traces each reward storing information about benefactor, amount and type of reward. Read more

Auto Trait Implementations

impl Send for EthereumMachine

impl Sync for EthereumMachine