If we detect an EOF for the cache file switch over to an uncached query.
This is typically seen when filling a log filter and the new block has
not yet written out the log bloom cache to disk. Fixed#473
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
The EthQL API spec specifies pulledStates and knownStates in the
`syncing` query. Previously we always returned null. This plumbs through
the needed data so that the synchronization states can report the
fast sync progress via EthQL, as well as the `eth_syncing` JSON-RPC.
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
* Restore test generation of blocks.bin
Restore the ability to generate our blocks.bin as part of the build.
(a) a fixed start time was added
(b) nonces for blocks imported for test are deterministically chosen.
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
* more readable test files
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
* init trace_transaction api
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
* add test cases for trace_transaction api
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
* resolve the tests by checking only the presence of the blockHash field and not its value because it is different each time generateTestBlockchain is called
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
* clean code
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
* to allow the tests to work, we must put back the blocks.bin and no longer generate it during the build. adding the nonce to the blocks.json file should solve this problem
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
* clean code
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
* refactor add additional transaction part
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
* create file if logBloom-current.cache is missing
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
* update populateLatestSegment in order to resolve the missing logs issue
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
* add lock for populateLatestSegment
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
LogsQuery may get passed in addresses in lists and topics in lists that do
not tolerate being checked for null members. This is an unexpected and
subtle situation hence the long comment.
This new test covers this case as it passes in null-intolerant lists.
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
* remove max pivot block resets during fast sync
* increase max retry number and fix test
* change logs in the handleFailure method
* change logs related to suspicious number of retries
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
* Update SLOAD_GAS cost to 200 in Aztlan Gas Calculator
Change SLOAD_GAS cost in Aztlan Gas Calculator from 800 to 200 and
update functions that use SLOAD_GAS.
Signed-off-by: edwardmack <ed@edwardmack.com>
* Update SLOAD_GAS cost to 200 in Aztlan Gas Calculator
Change SLOAD_GAS cost in Aztlan Gas Calculator from 800 to 200 and
update functions that use SLOAD_GAS.
Signed-off-by: edwardmack <ed@edwardmack.com>
Signed-off-by: Edward Mack <ed@edwardmack.com>
* remove overrides
removed overrides of calculateStorageCost and
calculateStorageRefundAmount in AztlanGasCalculator because these were
causing aztlan fork not to sync with kotti testnet.
Signed-off-by: Edward Mack <ed@edwardmack.com>
* merge
Signed-off-by: Edward Mack <ed@edwardmack.com>
Do a cursory cache check at start up (file is present and correct size)
instead of re-generating the cache at startup.
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
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>
* 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>
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>
* 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>