* Introduce ProtocolScheduleBuilder and use it for Clique, MainNet, IBFT and dev.
* Remove default milestone blocks and simplify MainnetProtocolSchedule. All milestone blocks must now be defined in the genesis file (previously ethash chains would get Mainnet milestone blocks by default).
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Make GenesisConfigFile responsible for handling all the content in the genesis config file and rename GenesisConfig to GenesisState as it is now just responsible for creating the initial state at genesis.
* In CliqueProtocolController, pass the network ID to EthProtocolManager instead of the chain ID and use downloader parallelism setting instead of network ID for the number of threads.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Fix corner case where Memory did not clear target destination if the new bytes to set was empty.
* Use BytesValue.EMPTY instead of Bytes32.EMPTY to make it clear that it's a 0 length BytesValues rather than 32 bytes of zeross.
* Treat outputLength for call operations as a maximum length - when the actual data to output is shorter than outputLength, do not zero out the tail end of the memory range.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Don't rely on sun.security.krb5.Confounder.bytes.
It's not reflected as part of the JDK platform and makes IDEs cranky.
* Use a better SecureRandom factory.
* spotless
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Introduce classes to wrap JSON config instead of accessing it directly in multiple places.
* Fix discrepancy in how CliqueProtocolSchedule and CliquePantheonController loaded the block period configuration.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Introduce createInMemoryBlockchain test utility and use it everywhere appropriate.
* Inject BlockchainStorage into DefaultMutableBlockchain.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Replace explicit usages of RocksDbKeyValueStorage with the more generic but now just as capable KeyValueStorage.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Includes a reusable OperationBenchmarkHelper to make writing EVM opcode benchmarks easier in future.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* EthGetWork Added with Unit and acceptance tests
* EthGetWork Added with Unit and acceptance tests
* EthGetWork Added with Unit and acceptance tests
* EthGetWork Added with Unit and acceptance tests
Debugged
* EthGetWork Added with Unit and acceptance tests
Debugged
Change Requests Actioned
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Take peer status messages down from info to debug
* Take P2P messages down from debug to trace
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* [NC-1752] Delegate calls to getOriginalAccount all the way to the actual store. Ensures we get the actual original value even when updaters are nested due to nested calls.
* Upgrade ethereum reference tests to include the new sstore tests.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Update to latest ethereum reference tests to pull and enable a bunch of Constantinople tests they fix.
* Blacklist test that consumes a huge amount of memory on Constantinople as well.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Upgrade ethereum reference tests
* Add support for sealEngine: NoProof by skipping PoW validation for ommer headers as well. Production code continues to always use full validation for ommers.
* Add Constantinople to reference test schedules ready for when we enable Constantinople tests.
* Blacklist the new reference tests that are failing while we investigate them.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Introduce MessageFrameTestFixture to make it easier to test EVM operations.
* Add unit tests for BlockHashOperation.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>