* Added framework and start to draft for stages, stopping here to get feedback on approach before pushing forward
* Update README.md
Fixing some wording / grammar.
* Fixing grammar/wording.
* Added note about non-exhaustive stages list, fixed grammar, fixed State exectuion function name, updated language to reflect that the stream yields a SealedHeader and added language to describe that the initial header validation is only a basic validation.
* updated stages chapter, added bodies, senders, execution, next chapter prelude
* typo
* Added line numbers to code snippets for the stages chapter of the reth book
* address reverse header download + other nits
* add note about book hosting
* tweaked wording, formatting
* Address typo "staring"
* Address typo "HeadderDownloader"
* consolidated book.toml
* updating snippets in stages chapter to ignore errors
* template & removed empty fields from book.toml
* addressed build issues, added templating for source code
* only deploy on push to main
* using single quotes in github action if expression
Co-authored-by: Andrew Kirillov <andrew@paradigm.xyz>
Co-authored-by: Andrew Kirillov <20803092+akirillo@users.noreply.github.com>
* wip: start adding serde to stuff
* add serde traits to NewBlockHashes
* derive serde traits for the rest of the types
* derive serde traits for p2p subprotocol messages
* cargo fmt
* maybe_zero no longer necessary on bytecode_hash
* add alt impl for Compact to/from
* add some more docs
* add default vec impl on generator test
* use default trait impl
* rename from alternative to specialized
* chore: clean up `.gitignore`
* fix: make RO cursors `Send + Sync`
* feat(wip): bodies stage
* driveby: improve docs
* chore: don't panic if we're the first stage
* chore: use `Vec` for ommers
* feat: error handling in bodies downloader
* chore: remove stale comment
* chore: pascal-case stage id
* refactor: remove unused new fns
* refactor: distinguish downloaders with prefix
* refactor: move downloader errs to own module
* refactor: `stream_bodies` -> `bodies_stream`
* test: fix borked imports in header stage
* test: clean up header tests
* test: add basic body stage tests
* test: add 2 more body stage test skeletons
* test: move generator test utils to own module
* refactor: move proof functions to primitives crate
* feat: add block generator test utils
* test: more body stage tests
* chore: fix typo (`Cannonical*` -> `Canonical`)
* docs: document `bodies_to_download`
* test: more body stage tests
* test: more body stage tests
* refactor: clean up body stage tests a bit
* test: fix broken tests
* refactor: clean up body stage tests
* test: more body stage tests
* Switch stream type of ActiveSession to EthStream
* Start `StatusBuilder` for initializing the `Status` message required
for the handshake
* Add `Hardfork` for `Status` default forkid
* Add `MAINNET_GENESIS` constant
* finish `StatusBuilder`
* initialize eth streams in session
* add status, hello, and fork filter to session manager
* fix status builder example
* add status and hello to network config
* will probably remove
* removing status and hello from networkconfig
* move forkid to primitives
* change imports for forkid
* add hardfork to primitives
* remove hardfork and forkid from eth-wire
* fix remaining eth-wire forkid references
* put mainnet genesis in constants, remove NodeId
* replace NodeId with PeerId
* the only NodeId remaining is inherited from enr
* PeerId still needs to be documented
* also run cargo fmt
* replace loop with iter().any()
* ignore missing docs for hardforks
* use correct PeerId for Discv4::bind example test
* document PeerId as secp256k1 public key
* cargo fmt
* temporarily allow too_many_arguments
* the authenticate and start_pending_incoming_session methods have many
arguments, we can reconsider the lint or fix the methods at a later
point
* feat(consensus): Signer recovery and tx validation
* Signature hash and use seckp256k1 over k256
* use deref_more for transactions
* cleanup and fix for eip1559 hash
* fix hash calculation on decoding