* ECIP 1041 - Remove Difficulty Bomb (#7905)
Enable difficulty bomb defusion at block:
- 5900000 on Ethereum Classic mainnet,
- 2300000 on morden testnet.
Reference:
https://github.com/ethereumproject/ECIPs/blob/master/ECIPs/ECIP-1041.md
* spec: Validate required divisor fields are not 0 (#7933)
* Add validate_non_zero function
It's used to validate that a Spec's uint field used as a divisor is not zero.
* Add deserialize_with to gas_limit_bound_divisor
Prevents panics due to divide-by-zero on the gas_limit_bound_divisor
field.
* Add deserialize_with to difficulty_bound_divisor
Prevents panics due to divide-by-zero on the difficulty_bound_divisor
field.
* Add validate_optional_non_zero function
Used to validate Option<Uint> divisor fields.
* Use deserialize_with on optional divisor fields.
* Add #[serde(default)] attribute to divisor fields
When using `#[serde(deserialize_with)]`, `#[serde(default)]` must be specified so that missing
fields can be deserialized with the deserializer for `None`.
* Kovan WASM fork code (#7849)
* kovan fork code
* introduce ethcore level vm_factory and let it fail
* fix json tests
* wasmcosts as option
* review changes
* wasm costs in parser
* fix evm tests
* review fixes
* fix test
* remove redundant json field
* update back-references more aggressively after answering from cache (#7578)
* Add new EF ropstens nodes. (#7824)
* Add new EF ropstens nodes.
* Fix tests
* Add a timeout for light client sync requests (#7848)
* Add a timeout for light client sync requests
* Adjusting timeout to number of headers
* Flush keyfiles. Resolves#7632 (#7868)
* Fix wallet import (#7873)
* rpc: generate new account id for imported wallets
* ethstore: handle duplicate wallet filenames
* ethstore: simplify deduplication of wallet file names
* ethstore: do not dedup wallet filenames on update
* ethstore: fix minor grumbles
* [WASM] mem_cmp added to the Wasm runtime (#7539)
* mem_cmp added to the Wasm runtime
* schedule.wasm.mem_copy to schedule.wasm.mem_cmp for mem_cmp
* [Wasm] memcmp fix and test added (#7590)
* [Wasm] memcmp fix and test added
* [Wasm] use reqrep_test! macro for memcmp test
* wasmi interpreter (#7796)
* adjust storage update evm-style (#7812)
* disable internal memory (#7842)
* 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
* separate modules for consensus snapshot chunks
* bulk of authority warp logic
* finish authority warp implementation
* squash warnings and enable authority snapshot mode
* test harness for PoA
* fiddle with harness
* epoch generation proof fixes
* update constructor code
* store epoch transition proof after block commit
* basic snap and restore test
* use keyvaluedb in state restoration
* decompress chunks
* fix encoding issues
* fixed-to-contract-to-contract test
* implement ancient block import
* restore genesis transition in PoW snapshot
* add format version method to snapshot components
* supported version numbers in snapshot_components
* allow returning of ancient epoch transitions
* genesis hash mismatch check
* remove commented code
* fixed naming of rlp modules
* RlpStream cleanup
* appending short rlp lists (0...55 bytes) is 25% faster
* RlpStream does not use bytes module, nor trait Stream
* removed unused code from rlp module
* compiling ethcore-util with new rlp serialization
* compiling parity with new rlp serialization
* fixed compiling ethcore-light with new rlp serialization
* fixed compiling ethsync with new rlp serialization
* removed redundant comment, print
* removed redundant double-space
* replace usage of WriteBytesExt with ByteOrder
* state backend trait mirroring state_db API
* minimal state backend trait
make state module public
* fix json tests
* return errors on database corruption
* fix tests, json tests
* fix remainder of build
* add Backend bound on state
* Return 0 instead of error with out of gas on estimate_gas
* Fix stuff up.
* Another estimate gas fix.
* Alter balance to maximum possible rather than GP=0.
* Only increase to amount strictly necessary.
* Improvements and optimisations to estimate_gas.
- Introduce proper error type
- Avoid building costly traces
* Fix tests.
* Actually fix testsActually fix tests