- Rename the function
- Add more docs explaining the supported formats
- Remove support for empty string (just use an `Option`),
and remove support for `:` (should be considered a typo)
- Reduce allocations of strings
* feat: `reth stage` command
* refactor(bin): move init utils to separate file
* feat(bin): scaffold stage command for one stage
* fix: correctly set from/to for stage range
* fix(stage-tool): add unwind before execute to re-exec
otherwise we're double executing stuff
* fix(stage-tool): use max commit threshold avail
* chore: rm unused vars
* fix(genesis-init): take a write tx only if needed
this avoids blocking by accident if we took a write tx expecting
that init_genesis would immediately return the hash
* feat(stage-tool): add bodies stage
Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me>
* use B256, B160 and U256 from revm
* fix U256 from_str
* use U256::ZERO
* use temporary commit for revm and interpreter
* more U256::ZERO
* more changes for revm/ruint types
* clippy
* change revm and revm-interpreter repo
* remove H160 wrap
* minor cleanup
* remove unused
* fix MIN_PROTOCOL_BASE_FEE
* Add preferred nodes to config
* Add preferred nodes on boot
* Add flag in config for trusted only mode
* Add preferred nodes configuration to config
* Fix comment
* Add preferred nodes to config file
* Rename preferred_nodes to trusted_nodes
* Change preferred to trusted
I renamed preferred_nodes to trusted_nodes in various places.
Seems I missed quite a bit of them.
* Pull trusted_only from config
* Rename DiscoveryConfig to PeersConfig
* Fix last commit
Now actually renamed DiscoveryConfig
* Rename trusted_only to connect_trusted_nodes_only
* Add helper function
* Use HashSet for boot_nodes and trusted_nodes
* Change trusted nodes functions in ConfigBuilder
* Move trusted peers from discv4 to network config
* Add trusted nodes to peers on Manager creation
* Use NodeRecord in trusted_nodes config
* Fix comment
* Move trusted_nodes config to PeersConfig
* Add trusted nodes directly to peers
* Move network_config to Config impl
* Move start_network to NetworkConfig impl
* replaced template blocks with code blocks in stages chapter
* replaced template blocks with code blocks in network chapter
* moved book sections to docs
* fix indentation in recover_signer codeblock
* remove unnecessary TODO comment in network.md
* WIP FOR DRAFT PR
* WIP draft, walking through usage in pipeline
* diving deeper into instantiation of NetworkHandle & FetchClient
* WIP network management task & eth requests task done (ish)
* address pr comments: networkmanager as standalone task, networkconfig as main entrypoint for setup
* complete draft of the crate docs
* restructured, starts w/ expl of
* added more snippets/anchors
* using ignore flag on code blocks, brief explanation of struct
* typos addressed
`require_tip` could only be determined by the headers stage,
and it signalled that we have all of the headers to sync all
the way to the chain tip. Some stages may wait to execute
until the tip is reached, e.g. the stage that checks the
stage root, but there are a few problems:
- On initial sync, `reached_tip` would be `true`, but by
the time we reach the hashing stage, this would actually
no longer be the case: the other stages have spent
enough time for us to be "out of sync". This means
that the optimization here is lost, and the additional
logic is added for nothing.
- When we are not doing our initial sync, `reached_tip` would
always be `true` for each subsequent block we sync.
The same logic applies as above, i.e. the extra logic
is there for nothing.
In other words, `reached_tip` would *always* be `true` once
we leave the header stage, making the extra logic entirely
redundant.