* 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,
* no longer export action_params
* remove transaction, header, receipt re-rexports from common
* remove env_info and builtins re-exports from common
* remove everything but util export from common
* replace common usages with util, remove module
* add a prelude module for ethcore-bigint
* 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.
* State cache
* Reduced copying data between caches
Whitespace and optional symbols
* Reduced copying data between caches
Whitespace and optional symbols
* Set a limit on storage cache
* Style and docs
* Avoid cloning clean stuff
* Don't clone state when closing/locking blocks
* handle errors in commit
* revert `close_and_lock` changes
* defer state root update until post state commit
* Make the block header struct's internals private
Currently, this involves a lot of explicit cloning, but we
could migrate the return types of the get_* functions to
be copies rather than references since they are mostly copy
types anyway.
I opted to eliminate the constructor in favor of using
Default::default() plus calling a bunch of setters. This
is similar to the model that a Google Protobuf client uses
and I think it looks fine.
* Drop some unnecessary cloning by comparing references
* Fix compiler errors from callsites in tests.
* optionally use no mangling for accountdb
* add the recorder module
* get_recorded for tries, no virtual dispatch on readonly tries
* add recording test
* 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.
Soft-fork should only be primed to trigger if the gas-limit of
block #1760000 is at most 4,000,000.
To accomplish this we pass in the gas limit of that block to
EnvInfo so it can inform Schedule. This gets marshalled through
`OpenBlock`/`ClosedBlock` and the `enact` functions much like
`last_hashes`. `block.rs`'s `env_info()` takes care to ensure
that if the current block happens to be #1760000, then we
populate with the current `gas_limit`.