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>
* Treat release branches the same as master
* Move docker-only variables into DockerImage block
* Change default docker image to pegasyseng/pantheon:$VERSION
* Push extra docker tags
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>
Windows has some slightly different Java NIO semantics, regarding size
after writing and whether files are deleted on close (they aren not).
The first issue is we shouldn't be using Integer.SIZE when we mean
Integer.BYTES.
The second issue is we cannot count on these work files showing up or
being deleted from the file system consistently across platforms. The
ordering is consistent within platforms but not across. The test was
re-written to check the read and write file numbers instead.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Mark Sweep Pruner
* add `unload` method on Node interface, which is a noop everywhere but on `StoredNode`
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
The TransactionReceipt type is not stored and it's functionality is covered by
the TransactionReceiptFactory. The Root/Status values are divined by the
presence or absence of the state root value.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Retesteth will often request an in-process blockchain be rewound one block so
that it can attempt the same test with tweaked parameters. Add support for this.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* [PAN-2946] - changes in core JSON-RPC method to support ReTestEth
Some of the methods need to have a changeable reference to stuff like
blockchainqueries. For the impacted methods the solution is to wrap them
in a Supplier<> interface. This includes new constructors for re-used methods.
Also include the debug_accountRangeAt method as it's namespaced as debug.
Some features needed for retesteth are flag controlled to preserve current behaviors.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
it prenvets some pages like developer/ and community/ pages that are not linked
in the nav but we did not decided yet what to do with to appear in the doc
search.
Files like includes for test accounts also don't have any reason to be accessed
directly.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Retesteth requires support for mining without block rewards and without PoW.
No Proof simply requires exposing the nonce generator and using a special
EthHashSolver.
No Reward is supported via a flag in the ProtocolSpec, stating whether or not
to skip zero rewards. For frontier, homestead, and tangerine whistle (EIP150)
this flag is false. For all other forks and all other consensus engines the
flag is true, even when emulating EVM state from those three forks as all
non-PoW consensus engines never consider block rewards.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>