This update resolves an issue where StringSliceFlag would not be
rendered correctly in help output + mention that -H can be used multiple times
Co-authored-by: Martin Holst Swende <martin@swende.se>
Prior to this change, f.begin (and possibly end) stay negative, leading to strange results later in the code. With this change, filters using "safe" and "finalized" block produce results consistent w/ the overall behavior of this RPC method.
Co-authored-by: Martin Holst Swende <martin@swende.se>
* ethclient/gethclient: improve time-sensitive flaky test
* eth/catalyst: fix (?) flaky test
* core: stop blockchains in tests after use
* core: fix dangling blockchain instances
* core: rm whitespace
* eth/gasprice, eth/tracers, consensus/clique: stop dangling blockchains in tests
* all: address review concerns
* core: goimports
* eth/catalyst: fix another time-sensitive test
* consensus/clique: add snapshot test run function
* core: rename stop() to stopWithoutSaving()
Co-authored-by: Felix Lange <fjl@twurst.com>
This PR introduces a new mechanism in chain tracer for preventing creating too many trace states.
The workflow of chain tracer can be divided into several parts:
- state creator generates trace state in a thread
- state tracer retrieves the trace state and applies the tracing on top in another thread
- state collector gathers all result from state tracer and stream to users
It's basically a producer-consumer model here, while if we imagine that the state producer generates states too fast, then it will lead to accumulate lots of unused states in memory. Even worse, in path-based state scheme it will only keep the latest 128 states in memory, and the newly generated state will invalidate the oldest one by marking it as stale.
The solution for fixing it is to limit the speed of state generation. If there are over 128 states un-consumed in memory, then the creation will be paused until the states are be consumed properly.
Backwards compatibility warning: The result will from now on omit empty fields instead
of including a zero value (e.g. no more `balance: '0x'`).
The prestateTracer will now take an option `diffMode: bool`. In this mode
the tracer will output the pre state and post data for the modified parts of state.
Read-only accesses will be completely omitted. Creations (be it account or slot)
will be signified by omission in the `pre` list and inclusion in `post`. Whereas
deletion (be it account or slot) will be signified by inclusion in `pre` and omission
in `post` list.
Signed-off-by: Delweng <delweng@gmail.com>
This PR makes it so that the snap server responds to trie heal requests when possible, even if the snapshot does not exist. The idea being that it might prolong the lifetime of a state root, so we don't have to pivot quite as often.
This PR makes it possible to set custom headers, in particular for two scenarios:
- geth attach
- geth commands which can use --remotedb, e..g geth db inspect
The ability to use custom headers is typically useful for connecting to cloud-apis, e.g. providing an infura- or alchemy key, or for that matter access-keys for environments behind cloudflare.
Co-authored-by: Felix Lange <fjl@twurst.com>
* base setup for miner opentel
* version change
* modify ctx passing
* add attributes
* update fill txs span attributes
* fix: use common attributes for remote and local txs
* pass context in seal
* fix
* fix
* add traces to finalize and assemble
* fix
* use task ctx in result loop
* only start parent span if no error
* send nil tracer from Finalize
* clean up
* add sub function timings in span attribute
* modify span attributes
* set time attribute to milliseconds
* linters fix
* fix linters for consensus
* add nolint to worker
* fix testcase
* Added fillTransactions subTraces
* add traces in intermediate root hash function
* add traces in WriteBlockAndSetHead function, fix linters
* fix: linting errors
* fix: test cases
* fix: go.mod
* fix: testcase
* extract tracing package
* linters fix
* debug
* Revert "debug"
This reverts commit 2d68b7c7b1105080563a4e1a6949dabc10acaff8.
* fix: panic in NewTransactionsByPriceAndNonce iteration
* change heimdall version to develop
* miner/worker: fix duplicate call to tx ordering
* miner/worker: refactor tracing
* consensus/bor: use tracing package
* tracing: add more abstraction for spans
* tracing: set all attributes at once
* remove nested tracing from blockchain.WriteBlockAndSetHead function
* remove nested tracing from statedb.IntermediateRoot function
* handle end span in bor.Seal function
* fix: typo
* minor fixes
* fix: linters
* fix: remove nolint
* go mod tidy
Co-authored-by: Manav Darji <manavdarji.india@gmail.com>
Co-authored-by: Shivam Sharma <shivam691999@gmail.com>
Co-authored-by: Evgeny Danienko <6655321@bk.ru>
* Added script to generate config.toml fromstart.sh (#518)
* added go and bash script to get config out of start.sh and updated flagset.go
* changed 'requiredblocks' flag back to 'eth.requiredblocks'
* updated script
* changed 'requiredblocks' flag back to 'eth.requiredblocks'
* updated tests, and removed requiredblocks from json and hcl
* addressed comments
* internal/cli/server: fix flag behaviour (#529)
* remove setting maxpeers to 0 for nodiscover flag
* set default prometheus and open-collector endpoint
* skip building grpc address from pprof address and port
* fix: linters
* fix and improve tests
* use loopback address for prometheus and open-collector endpoint
* add logs for prometheus and open-collector setup
* updated the script to handle prometheus-addr
* updated builder/files/config.toml
Co-authored-by: Pratik Patil <pratikspatil024@gmail.com>
Co-authored-by: Manav Darji <manavdarji.india@gmail.com>
This PR reworks tx indexer a bit. Compared to the original version, one scenario is no longer handled - upgrading from legacy geth without indexer support.
The tx indexer was introduced in 2020 and have been present through hardforks, so it can be assumed that all Geth nodes have tx indexer already. So we can simplify the tx indexer logic a bit:
- If the tail flag is not present, it means node is just initialized may or may not with an ancient store attached. In this case all blocks are regarded as unindexed
- If the tail flag is present, it means blocks below tail are unindexed, blocks above tail are indexed
This change also address some weird cornercases that could make the indexer not work after a crash.