* move common forks and parameters to common params
* port specs over to new format
* fix RPC tests
* parity-machine skeleton
* remove block type
* extract out ethereum-specific methods into EthereumMachine
* beginning to integrate Machine into engines. dealing with stale transitions in Ethash
* initial porting to machine
* move block reward back into engine
* abstract block reward logic
* move last hash and DAO HF logic into machine
* begin making engine function parameters generic
* abstract epoch verifier and ethash block reward logic
* instantiate special ethereummachine for ethash in spec
* optional full verification in verify_block_family
* re-instate tx_filter in a way that works for all engines
* fix warnings
* fix most tests, further generalize engine trait
* uncomment nullengine, get ethcore tests compiling
* fix warnings
* update a bunch of specs
* re-enable engine signer, validator set, and transition handler
* migrate basic_authority engine
* move last hashes into executedblock
* port tendermint
* make all ethcore tests pass
* json-tests compilation
* fix RPC tests: change in gas limit for new block changed PoW hash
* fix minor grumbles
* validate chainspecs
* fix broken import
* fix transaction verification for pre-homestead
* Ethereum Classic Monetary Policy
Create a new parameter `ecip1017EraRounds`. When the block number
passes one era rounds, the reward is reduced by 20%.
See https://github.com/ethereumproject/ECIPs/blob/master/ECIPs/ECIP-1017.md
* Update rewards for uncle miners for ECIP1017
In the monetary policy, the rewards are changed from "up to 7/8 of the
reward" to "1/32 of the reward".
* Fix an off-by-one error in ECIP1017 era calculation
According to
https://github.com/ethereumproject/ECIPs/blob/master/ECIPs/ECIP-1017.md,
when in block number 5,000,000, it should still be in Era 1 (which in
our code `era == 0`). So we need to check whether the `rem` equals to
zero and act accordingly when calculating the era.
* `ecip1017_era_rounds` missing from EthashParams when run in build bot
* strip out ecip1017_eras_block_reward function and add unit test
* Add info on forks.
* Add new registry ABI
* Import registry2 & fix exports
* Select ABI based on code hash
* Render new event types (owner not available)
* New registry.
* Rename old chain.
* Fix test.
* Another fix.
* Finish rename.
* The front-end for each hard-fork, also EIP-160.
* Address EIP161 a/c
* Include EIP-161b
* EIP-161 part d.
* Fix test build.
* Fix one test, add another.
* Fix use of bloom & renaming.
* Initial groundwork for EIP-155
* Fix minor bug.
* Fix all tests finally.
* Rest of EIP-155.
* Add tests for EIP-155 algorithm.
Update transaction tests validation.
* Minor reformat.
* Address grumbles.
* Remove unused code.
* Fix SUICIDE gas mechanism and add consensus tests.
* Remove commented code.
* Set Frontier hardfork block number
* Fix warning.
* Transaction tests,
* Add support for Expanse.
* Fix build.
* Refactor to be able to alter the eth subprotocol name
* Fix JSON.
* Support exp hardfork.
* Fix exp json again.
* Fixed test
* Fix tests.
* Add Ethereum Classic support
(Rename homestead-dogmatic -> classic)
* Additional change needed.
* More needed changes.
* Separate database path for known forks.
* Address minor grumble.
* Minor additions to allow resetting of code.
* Add test.
* Provisional DAO hard-fork proposal.
* Change to reflect latest HF spec.
* Include extradata restrictions and overrides.
* Introduce new tests.
* Update tests to new spec format.
* Allow JSON chain spec fields to be optional.
* Remove superfluous definitions. Fix overflow risk.
* Fix build.
* Add missing file.
* Remove old flag.
* Update to latest address set.
* Update tests and test spec to latest.
Change the mining default to release only on own transactions.
Soft-fork will remain default behaviour, but you can now disable
either the whole mechanism (you'll lose money if you mine with this
when the majority network doesn't) or just vote against it but
otherwise go with the flow.
* Groundwork for basic VM tracing.
* RPC endpoint for VM tracing and ser/de types ready.
* Create VMTracer trait.
* Rearchitected VM tracing to reflect existing tracing.
Should more or less work now.
* Integrated VM tracing into JSONRPC.
* Fix ethcore module tests.
* Add tests for VM tracing.
* Fix consensus test code.
* Fix mock tests.
* Added VM trace information for post-execution stuff.
* Fix max-value calls and add "creates" field to getTransaction.
* Tests for VM tracing.
* Don't implement the trait with unimplemented.
* Remove invlaid comment.
* Fix tests.
* Firt commit.
* First non-functional but correct implementation of BasicAuthority.
Still needs:
- Sealing infrastructure.
* Punch a hole to give miner access to key store.
* Fix test built.
* Basic version of synchronous mining.
This will seal a block whenever a new transaction comes through.
To be made better we need a timer which will wait for one second after the
last block before sealing a new one - better still would be to cooperatively
interleave blocks with other sealing nodes.
* Add tests.
* Fix minor issues from repotting.
* Address grumbles.