Struct ethcore::engines::Tendermint [] [src]

pub struct Tendermint { /* fields omitted */ }

Engine using Tendermint consensus algorithm, suitable for EVM chain.

Methods

impl Tendermint
[src]

Create a new instance of Tendermint engine

Trait Implementations

impl Engine for Tendermint
[src]

The name of this engine.

The version of this engine. Should be of the form

(consensus view, proposal signature, authority signatures)

Get the general parameters of the chain.

Builtin-contracts we would like to see in the chain. (In principle these are just hints for the engine since that has the last word on them.) Read more

Maximum number of uncles a block is allowed to declare.

The number of generations back that uncles can be.

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

Get the EVM schedule for the given env_info.

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. Read more

Should this node participate.

Attempt to seal generate a proposal seal.

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

Apply the block reward on finalisation of the block.

Phase 1 quick block verification. Only does checks that are cheap. block (the header's full block) may be provided for additional checks. Returns either a null Ok or a general error detailing the problem with import. Read more

Phase 2 verification. Perform costly checks such as transaction signatures. block (the header's full block) may be provided for additional checks. Returns either a null Ok or a general error detailing the problem with import. Read more

Phase 3 verification. Check block information against parent and uncles. block (the header's full block) may be provided for additional checks. Returns either a null Ok or a general error detailing the problem with import. Read more

Register an account which signs consensus messages.

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

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, querying the state and sending messages.

Additional information.

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

The nonce with which accounts begin.

Block transformation functions, before the transactions.

Checks if default address is able to seal.

Additional verification for transactions in blocks.

Verify a particular transaction is valid.

The network ID that transactions should be signed with.

Verify the seal of a block. This is an auxilliary method that actually just calls other verify_ methods to get the job done. By default it must pass verify_basic and verify_block_unordered. If more or fewer methods are needed for an Engine, this may be overridden. Read more

Determine whether a particular address is a builtin contract.

Determine the code execution cost of the builtin contract with address a. Panics if is_builtin(a) is not true. Read more

Execution the builtin contract a on input and return output. Panics if is_builtin(a) is not true. Read more