This commit adds the clique specific implementation of the Miner
executor.
It is responsible for starting a clique mining operation when
requested. It also supplies the functionality to blend vanity data
with validator data etc. in the extra data field.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
The EthHashMinerExecutor is comprised of both EthHash specific
functions as well as common functions which will be useful to other
consensus mechanisms.
As such the common functionality has been extracted to a parent class,
leaving ethhash specific functionality in the child.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Responsible for mining a block if the local node address
is a validator, and has not recently mined a block.
This has necessitated a slight rework of helper functions,
and shuffling of tests.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
The EthHashBlockMiner contains both the generic mining capabilities
and the EthHash JSON specific API.
The generic capabilities have been extracted into a base class which
can be reused for Clique (or other) consensus mechanisms.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Clique Block Scheduler has been reworked to prevent high rate blocks
being created when the parent block's timestamp is behind the system
clock.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>