Commit Graph

281 Commits

Author SHA1 Message Date
6c91322251 feat(eth-wire): derive serde traits for eth-wire types (#348)
* 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
2022-12-06 18:05:22 -08:00
292f5f22bc docs: add review of erigon/akula 2022-12-06 18:02:04 -08:00
b34e2bfa45 docs: reth design decisions
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-12-06 18:02:04 -08:00
181954ec66 docs(contributing): make explicit that contribs are apache/mit 2022-12-06 18:02:04 -08:00
449321ddc4 refactor(db): separate transaction indexes from block body (#326) 2022-12-06 18:02:04 -08:00
925001e1ee move tokio utils to dev dep (#345) 2022-12-06 18:02:04 -08:00
ce8f61f0a5 Draft Layout for Reth walkthrough (#344) 2022-12-06 18:02:04 -08:00
a0a40a9c3d chore(db): change table macro tokens (#343) 2022-12-06 18:02:04 -08:00
9628d03871 feat(sync): headers commit threshold (#296)
* headers stream init

* fix tests

* return header if available regardless of control flow

* proper stream termination & docs

* upd headers stage to consume stream

* adjust response validation for stream

* use cursor.insert for headers

* wrap poll_next in a loop to bypass poking waker

* fix typo

* fix last td lookup

* Apply suggestions from code review

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>

* misc

* remove waker ref

* dedup response handling logic

* clippy

* add docs to poll

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-12-06 18:02:04 -08:00
2671cd1cb6 chore(primitives): impl serde traits for ForkId (#342) 2022-12-06 18:02:04 -08:00
4643f840d7 chore(deps): get rid of unused deps (#339) 2022-12-06 18:02:04 -08:00
5e37ef8226 style(net): use pin_project on eceis stream (#338) 2022-12-06 18:02:04 -08:00
0b8d50127c refactor(net): box ecies error (#337) 2022-12-06 18:02:04 -08:00
b40546b999 refactor(net): misc P2Pstream refactor (#336)
* refactor(net): misc P2Pstream refactor

* update note
2022-12-06 18:02:04 -08:00
074e69cafb chore(net): remove unused function (#335) 2022-12-06 18:02:04 -08:00
a4472ca1c6 chore(clippy): make clippy happy (#334) 2022-12-06 18:02:04 -08:00
a68cb3f357 feat(stage): Add execution stage (#287)
* Execution stage

* StorageProviderRef. cleanup, fmt/clippy

* block inclusion

* insert blocks for execution stage

* Sanity test for execution stage

* nits

* Update crates/stages/src/stages/execution.rs

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>

* Update crates/stages/Cargo.toml

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>

* Update crates/stages/src/stages/execution.rs

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>

* Update crates/stages/src/stages/execution.rs

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>

* feat(execution) Execution change diff. (#323)

* Insert to execution changediffs

* progress on exec stage unwind

* wip

* Remove tables:BlockBody from execution stage

* unwind passing

* Nits cleanup and refactoring

* DatabaseIntegrity errors

* KECCAK_EMPTY acc to None

* Update crates/interfaces/src/db/tables.rs

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>

* Update crates/interfaces/src/provider/block.rs

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>

* Update crates/stages/src/stages/execution.rs

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>

* nits

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-12-06 18:02:04 -08:00
75879b2027 chore(ecies): remove body size check (#328)
* remove body size check

* cargo fmt
2022-12-06 18:02:04 -08:00
13df80c1d1 chore(codecs): contain [Struct]Flags in a mod and import what's necessary (#329)
* contain StructFlags in a mod with its imports

* update code generation test
2022-12-06 18:02:04 -08:00
f65969e90f perf(net): exclude bootnodes from update stream (#319) 2022-12-06 18:02:04 -08:00
2b6ef0afcf fix(eth-wire): encode p2p message id as valid rlp (#324) 2022-12-06 18:02:04 -08:00
4f370e9ada docs: update readme 2022-12-06 18:02:04 -08:00
1668313d55 perf(disc): instantly lookup self in DHT (#314)
* perf(disc): instantly lookup self in DHT

* Update crates/net/discv4/src/lib.rs

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-12-06 18:02:04 -08:00
12212ec91a fix(disc): set trace target correctly (#315) 2022-12-06 18:02:04 -08:00
4c4357a1bc docs: expand readme (#316)
* wip

* link to warning

* update readme

* add more acknowledgments

* chore: fix typo in readme

* more readme

* refactor goals into the what is reth section

* clarify Reth is EL and make dir layout explicit
2022-12-06 18:02:01 -08:00
5300c83a50 feat(net): send full transactions to fraction of all peers (#272)
* refactor(net): use shared objects on a per peer basis

* feat(net): send full transactions to fraction of all peers

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-12-02 04:21:23 -08:00
debc87177c fix(eth-wire): handle 0x80 for DisconnectReason and P2PMessageID (#313)
* fix disconnect reason encoding

* move disconnect to own file

* add encoding test for 0x80 in list

 * rlp([0u8]) is a good test case to have because it is the RLP encoding
   of a DisconnectRequested p2p message

* fix disconnect encoding and decoding

 * directly decode the disconnect id to handle the 0x80 case of
   DisconnectRequested
 * the previous manual snappy encoding / decoding was incorrect - a
   snappy encoded disconnect message is 4 bytes, not 3 bytes. The tests
   and implementation are changed to reflect this.

* fix p2p message decoding

 * had a similar issue to disconnect reason decoding where it would not
   handle a 0x80 message id

* make invalid rlp header case more explicit

* cargo fmt
2022-12-02 04:21:00 -08:00
743b1bd6ba meta(txpool): fairer order function via timestamp (#281) 2022-12-02 03:58:21 -08:00
bb014eea25 codecs: "type specialization" for Compact on Vec<T> & Option<T> (#297)
* 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
2022-12-02 01:56:08 -08:00
c7ec4512c8 feat(db): cursor insert (#310) 2022-12-01 19:31:32 -08:00
bc3702ec42 chore(rlp): add comment on 0x80 decoding (#312)
* add comment on 0x80 decoding

 * decode 0x80 into zero explicitly

* add explicit 0x80 decoding for ethereum types
2022-12-01 21:27:33 -05:00
a3f9e28d71 chore: prepare main readme for oss (#302)
* chore: prepare main readme for oss

* fix: use correct tg url

* fix: use %5F instead of underscore

* chore: add build/security/contrib guidelines

* chore: cleanup

* feat: expand vision

* chore: apply suggestions from code review

Co-authored-by: joshieDo <93316087+joshieDo@users.noreply.github.com>

Co-authored-by: joshieDo <93316087+joshieDo@users.noreply.github.com>
2022-12-01 11:53:19 -08:00
04105ec82b test: add mainnet connection test (#306) 2022-12-01 17:59:52 +01:00
a0c35f1f48 refactor: replace reverse with HeadersDirection (#305) 2022-12-01 17:59:33 +01:00
53b1593849 add comment & test (#309) 2022-12-01 08:38:56 -08:00
3355b0c605 test(net): add e2e request body test (#304)
* test(net): add e2e request body test

* test(net): add e2e request header test
2022-12-01 15:35:14 +01:00
a267515a60 add a more complete description of the error (#303) 2022-12-01 01:41:09 -08:00
3541ebee9e docs: contributing (#290)
* initialized contributing doc based off of foundry

* chore: set new chatrooms

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-11-30 17:29:59 -08:00
6f0349a4b7 docs: basic security doc (#285) 2022-11-30 14:02:34 -08:00
b7a2951eaa docs: crude release workflow doc (#284)
* docs: crude release workflow checklist

* docs: add changelog

The changelog format is based on [Keep a Changelog][kac] and can
be somewhat automated.

[kac]: https://keepachangelog.com/en/1.0.0/
2022-11-30 14:02:17 -08:00
480097a7ca feat(net): add eth request handler (#293)
* feat(net): add block request manager

* refactor: change ommers type to Header

* feat: impl handlers

* rename to EthRequestHandler

* impl checks

* fix: skip as step

* chore: rustfmt
2022-11-30 21:19:50 +01:00
d0e9e6fe80 feat: add header by number provider fn (#299)
* feat: add header by number provider fn

* Update crates/interfaces/src/provider/block.rs

Co-authored-by: rakita <rakita@users.noreply.github.com>

Co-authored-by: rakita <rakita@users.noreply.github.com>
2022-11-30 14:05:46 +01:00
69b2adab1a docs(repo): add p2p architecture details in layout (#295)
* remove net/p2p docs as it only contains anchor currently, which is
   not integrated
2022-11-30 13:06:22 +01:00
267b857a8f refactor: change ommers type to Header (#292) 2022-11-30 00:13:52 +01:00
7879389059 chore(net): deny unused and cleanup (#289) 2022-11-29 20:57:40 +01:00
97ea20e9d5 feat(net): add swarm mermaid diagram (#288) 2022-11-29 20:15:17 +01:00
e53ed8ffc2 refactor(net): use shared objects on a per peer basis (#270) 2022-11-29 11:43:45 +01:00
d0b31bb074 feat: add issue templates (#282) 2022-11-29 11:36:09 +01:00
d12addefb9 docs: expand on status labels (#283) 2022-11-29 11:35:39 +01:00
8bbb9a71db docs: link to book (#286)
* docs: explain diff between `docs` and `book`

* docs: link to book
2022-11-29 11:33:50 +01:00