Make sure we cache the current cache segment with all of the data from
the beginning of the segment. Use a flip file approach since it will be
a partial file until done.
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
Co-authored-by: Abdelhamid Bakhta <45264458+abdelhamidbakhta@users.noreply.github.com>
* rename the method isPersistingState to isPersistingPrivateState because that is what it is used for
Signed-off-by: Stefan Pingel <stefan.pingel@consensys.net>
* rename the method isPersistingState to isPersistingPrivateState because that is what it is used for
Signed-off-by: Stefan Pingel <stefan.pingel@consensys.net>
* rename the method isPersistingState to isPersistingPrivateState because that is what it is used for
Signed-off-by: Stefan Pingel <stefan.pingel@consensys.net>
* Added known bug
Signed-off-by: Madeline <madeline.murray@consensys.net>
* Added another known bug
Signed-off-by: Madeline <madeline.murray@consensys.net>
* docker changelog
Signed-off-by: Ratan Rai Sur <ratan.r.sur@gmail.com>
* address comments
Signed-off-by: Ratan Rai Sur <ratan.r.sur@gmail.com>
Co-authored-by: MadelineMurray <43356962+MadelineMurray@users.noreply.github.com>
* pop flat trace context when handling halts
* Better detection of precompiled and non-executed contracts
* correct from address when calling in init code
* fix some exotic nesting cases
* correct from field for init code calls at depth >1
* correct cost on a non-call
* changelog and notes
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
- Correct Reporting of reverts in nested call
- correct reporting and handling of value transfer in nested calls
- correct handling of precompiles via DELEGATECALL & CALLCODE
- Addition of precompiled contract gas costs
- Re-work handling of storage writes
- Initial handling of gas refunds
- fix bug in DELEGATECALL tests, we don't need gas in the stack
* this has a cascading effect on balances in diff tests
- rework depth detection in flat trace
- two new tests blocks
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
* correct refund addresses
* correct returned memory from static precompiled calls.
* update integration test
* precompiles sometimes get plain old CALLs
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
Because of how the Log4J2 api works exception stack traces were not
being printed. Update to use the explicit "throwable" overloaded
methods.
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
This PR introduces functionality to conform with ECIP-1061
https://ecips.ethereumclassic.org/ECIPs/ecip-1061
Signed-off-by: edwardmack <ed@edwardmack.com>
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
Co-authored-by: Danno Ferrin <danno.ferrin@shemnon.com>
* Handle CREATE and CREATE2 in flat trace
* precompile calls don't generate traces
* Handle REVERT in output and result nodes.
* output doesn't need to be held behind a supplier
* Handle padded output values when end is past memory
* Store memory in vm trace for MLOADs
* CREATE and CREATE2 store memory in vm-trace
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
Allows for the setting of the timestamp in JSON block importer.
Ordinarily it is now and then 1 second for each block. The initial time
can now be set via CLI option `--start-time`, which defaults to now.
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
* Fix strategy for getting next nonce for sender in `PendingTransactions`.
Added test.
Signed-off-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>
* Introduced `TransactionsForSenderInfo` structure to have a less naive implementation, more robust against load testing.
A queue of gaps between used nonces is maintained.
`getNextNonceForSender` has been updated and have the following logic:
- if no infos corresponding to the nonce returns an empty optional
- if gap list is not empty returns the lowest nonce in the gap
- else returns the max nonce + 1
Signed-off-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>
* spotless
Signed-off-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>
* spotless
Signed-off-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>
* added test
Signed-off-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>
* spotless
Signed-off-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>
* Handle CREATE and CREATE2 in flat trace
Handle create and create2 operations. Some other tests also got adjusted
as the source accounts were running out of test ether. Bumping up the
value in the genesis caused the statediff values to also go up.
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
- Updated PicoCLI from version 3.9.6 to 4.1.4 and fixed test cases that were impacted by breaking changes of PicoCLI.
- Updated the command factory to fallback to the default factory, as directed in the PicoCli v.4.0.0 release notes.
Signed-off-by: Paul Harris <paul.harris@consensys.net>
The iterative look back mechanism flat trace was using was missing
many of the nesting subtlties, so a stack based calculation is used.
A new test case with two levels of calls is also introduced.
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
* Mark Plugins Data and Events as stable
Remove the @Unstable annotations form the data and BesuEvents services.
This means that no breaking changes (like removing methods or
changing signatures) will occur without proper notice and versioning
bumps.
* tweak build check
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
Co-authored-by: Tim Beiko <t.beiko23@gmail.com>
* Contributor Content: complete refactor
- Deleted contributor files now hosted in wiki,
(CLI-STYLE-GUIDE.md, CODE-OF-CONDUCT.md, CODING-CONVENTIONS.md,
ROADMAP.md, SECURITY.md).
- Deleted old docs files in /docs folder (except readme for redirect).
- Refactored the root README.md with relevant content.
- Refactored the CONTRIBUTING.md file to simplify it with links to wiki.
* added contact developer advocate link
* small updates on README and CONTRIBUTING MDs.
* README updated.
* unified links for docs, jira, etc
* updated suggestions from PR comments
* updated links from comments
* updated links that still pointed to internal /docs
* LF wording and links
Signed-off-by: Felipe Faraggi <felipefaraggi@gmail.com>
Co-authored-by: Nicolas MASSART <NicolasMassart@users.noreply.github.com>
Switch the EVM Memory to a copy on write structure, so when the trace
reads the memory they don't have to copy mutable bytes but can instead
simply use the value as immutable.
Also, fix a state diff bug when an account is deleted that was also just
created in the TX don't report it as an all equal diff, as well as new accounts storage diffs.
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
* In order to obtain free open source YourKit license we are asked to put the link to YourKit website.
Signed-off-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>
Following cli options are added to enable TLS client authentication and trusting client certificates.
--rpc-http-tls-client-auth-enabled - Enable TLS client authentication for the JSON-RPC HTTP service (default: false)
--rpc-http-tls-known-clients-file - Path to file containing client's certificate common name and fingerprint for client authentication.
--rpc-http-tls-ca-clients-enabled - Enable to accept clients certificate signed by a valid CA for client authentication (default: false)
If client-auth is enabled, then user must either enable CA signed clients OR provide a known-clients file. An error is reported if both CA signed clients is disabled and known-clients file is not specified.
Signed-off-by: Usman Saleem <usman@usmans.info>
When we calculate the cost of a SSTORE in trace we need to consider the
original value as of when the last transaction finished, not when the
whole block started.
To create a test for this the test blockchain also needed to be upgraded
to Istanbul. This resulted in a large number of cost only changes.
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>