Istanbul is not ready. Disable the genesis configuration so it doesn't
accidentially get configured.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
The technique is to parse with comments disabled, and if a parse exception is
detected re-parse with comments allowed, and if successful complain at warn.
To turn this option off we just unwrap the try and delete the catch and update
the test.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Retesteh has some genesis file that specify a nonce in the relevant accounts.
Add support to the GenesisState class to pre-set nonces.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Initial EIP-1702 versioning code. Version internally is an `int` for Java
reasons. In the future if the versions become sparse or large we will create a
"proxy" version index by putting the standardized indexes into an enum and
using the enum ordinal instead.
Reference tests all pass (hence the WorldStateMock if block) and
GenesisStateTest has an explicit version test now.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Add the needed Istanbul configuration options to the genesis file and needed
hooks in the protocol specs for Istanbul.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Change all Stream<?> getX() and Stream<?> x() methods to Stream<?> streanX methods, such as `Stream<Peer> streamIdlePeers()`
* Update coding conventions to reflect this.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Make the contract size limit configurable in the genesis config, making it possible to override milestone based configurations in a private network.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Implement admin_nodeInfo RPC call. This involved bringing data from the
ethNetworkConfig and genesis json into the rpc call, so it had a lot of
testing side effects.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Two changes:
* Stream chains now take up less vertical lines, only breaking on
stream operations.
* Long annotations that span multiple lines no longer have a dangling
parentesis and indent 4 spaces.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* created fixed difficulty calculator.
* Use fixed calculator at the right spot.
* Use fixeddifficulty in the main dev.json file.
* Removed development difficulty calculators.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
With the advent of "IBFT 2.0" the config file parsing needed to be
updated such that both the original IBFT, and the new variant can be
uniquely identified at execution time.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* 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>
* 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>