Add a generalized genesis config override facility for command line use. Only useful for string or integer config values, not object values.
Sample use - enable Istanbul fork on block 99 million
--override-genesis-config=istanbulFork=99000000
Overriding a value with an empty string unsets the value
Sample use - disable Istanbul fork by un-setting istanbulFork:
--override-genesis-config=istanbulFork=
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Ensure `plugin-api` module gets published at the correct maven path
* Move `plugins` to `plugin-api`
Signed-off-by: Edward Evans <edward.evans@consensys.net>
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Return plugin-api to the main repo
* Spotless
* Migrate all external plugin-api references to the project in this repo
* Add licence header
* Update repo reference for publish, even if commented
* Use real configuration for publishing plugin-api
This was tested with the
`:plugins:publishMavenJavaPublicationToMavenLocal` task and checking the
local Maven repo to make sure it was using the correct paths
Signed-off-by: Edward Evans <edward.evans@consensys.net>
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* update web3j 4.5.0 + use pantheon module in favour of core
* remove custom eea/privacy rpc calls -> use web3j instead
* overhaul the conditions -> web3j does the polling for receipts for us
* re-define a PrivacyNode - it is an object that holds a PantheonNode and an OrionTestHarness
* do not start OrionTestHarness prematurely - calling PrivacyNode.start() will start an Orion node followed by it's accompanying Pantheon node
* stop and close resources properly -> clean-up removes the created temporary directories correctly
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Interally we use a `BigInteger` for ChainID, but currently use an `int` for
NetworkID. Because the default for NetworkID is the same value as ChainID there
are some chains where this will be very problematic, and there is at least
one other long-living chain outside the 32 bit int value range.
This is a large commit because the type is baked fairly deep into some of
the other APIs and very much in the test code testing the type.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
This reverts commit b0238318f171078aa7097d3339988419d56592b5. Causes intermittency because of hard coded port 8545.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Change the blake validation errors from soft errors (empty data) to hard errors
(precompile failed).
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Add chain data resources
* Update tests for tracing to run on custom data, add test cases
* Regenerate test cases, update tests to be agnostic on key ordering
* Remove dead code
* Move to-be-implemented test cases to root trace directory
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Exposers a Json Rpc which allows "legacy" users to query for the
nonce of a given address, in a group of private users.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Rich Data for Events Plugin
* plugin-api -> api
* use BinaryData as a root and add getValue to UInt256Value
* bring rick data changes in line with proposed APIs.
Undo orthagonal naming changes.
* add size
* use log and transaction interfaces from rich data api
* update to released plugin api version and add new event listener.
* add tests
* fix acceptance tests
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Allow comment fields json import files. Use "secretKey" for consistency with reference tests.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
As part of the plugin events service we need to support adding and removing
listeners for events. TransactionPool only supports adding pending and dropped
transactions. To support removing we need to pass around the subscription id.
To make it consistent some APIs were renamed.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Undo the frame caching of balance for the SELFBALANCE operation.
We would need to keep the balance up to date for all value transfer calls, and
currently those happen at several orders of magnitude more often than
SELFBALANCE operation, so more CPU time would be spent updating a value that is
never read than could be saved by not going to the account trie.
We may revisit this later, but this is the quickest path to conformance.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* sweep state roots before child nodes
* Adds long removeAccountStateTrieNode(key) method to WorldStateStorage.Updater
* remove assertj assertions from `AbstractKeyValueStorageTest`
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
When an EVM operation is halted (for example, for out of gas) we don't log what
the operation would have been nor do we log the reason for the halt.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* [PAN-2842] Blake 2b tweaks
* Adjust endianess on byte payload
* f flag can have only 0 or 1
* Fewer successful vector tests
* Tests for failure and edge cases
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* remove deprecation warnings by moving to builder based scalars
* consolidate scalars into one class
* adjust test cases to expect improved error messages
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* making the tests easier to read
* updating tests to run inside a container so the goss executable works on osx
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Docker publish is after test and build parallel block
* Move Bintray upload condition into stage
* Parallelize the uploads
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Updated release notes for 1.2.1
* Updated release notes for 1.2.1
* Update version specification
* Update changelog
* Better changelog again
* Fix link
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Some auto-generated maven names cause collissions when used with the gradle
publish plugin, namely `core` and `util`. Rename two jars that have such
a colission so the colission doesn't occur.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Database Versioning: The behavior is to load the database at the existing version if it
already exists or create the newest version if it doesn't
* multi-column by default: This makes the separated world state storage column required by mark sweep on by default
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Istanbul is not ready. Disable the genesis configuration so it doesn't
accidentially get configured.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>