Matthias Seitz
4318a54f59
feat(net): integrate TaskExecutor ( #369 )
2022-12-09 09:47:18 -08:00
Matthias Seitz
b0149f0b9f
fix(net): prevent bad loop if no peers available ( #359 )
...
* fix(net): prevent bad loop if no peers available
* test: add poll fetcher test
2022-12-09 12:39:08 +01:00
Matthias Seitz
2f73345696
misc(net): unify naming ( #358 )
2022-12-08 09:12:58 -08:00
Matthias Seitz
70635b7282
feat(rpc): add eth_pubsub skeleton ( #354 )
2022-12-08 13:55:56 +01:00
Roman Krasiuk
ba758c5f54
chore(sync): remove timeout from downloader ( #356 )
2022-12-08 04:53:56 -08:00
Georgios Konstantopoulos
4d718bbf33
s/foundry-rs/paradigmxyz
2022-12-07 00:00:45 -08:00
Dan Cline
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
Roman Krasiuk
925001e1ee
move tokio utils to dev dep ( #345 )
2022-12-06 18:02:04 -08:00
Roman Krasiuk
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
Matthias Seitz
4643f840d7
chore(deps): get rid of unused deps ( #339 )
2022-12-06 18:02:04 -08:00
Matthias Seitz
5e37ef8226
style(net): use pin_project on eceis stream ( #338 )
2022-12-06 18:02:04 -08:00
Matthias Seitz
0b8d50127c
refactor(net): box ecies error ( #337 )
2022-12-06 18:02:04 -08:00
Matthias Seitz
b40546b999
refactor(net): misc P2Pstream refactor ( #336 )
...
* refactor(net): misc P2Pstream refactor
* update note
2022-12-06 18:02:04 -08:00
Matthias Seitz
074e69cafb
chore(net): remove unused function ( #335 )
2022-12-06 18:02:04 -08:00
Matthias Seitz
a4472ca1c6
chore(clippy): make clippy happy ( #334 )
2022-12-06 18:02:04 -08:00
Dan Cline
75879b2027
chore(ecies): remove body size check ( #328 )
...
* remove body size check
* cargo fmt
2022-12-06 18:02:04 -08:00
Matthias Seitz
f65969e90f
perf(net): exclude bootnodes from update stream ( #319 )
2022-12-06 18:02:04 -08:00
Dan Cline
2b6ef0afcf
fix(eth-wire): encode p2p message id as valid rlp ( #324 )
2022-12-06 18:02:04 -08:00
Matthias Seitz
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
Matthias Seitz
12212ec91a
fix(disc): set trace target correctly ( #315 )
2022-12-06 18:02:04 -08:00
Matthias Seitz
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
Dan Cline
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
Matthias Seitz
04105ec82b
test: add mainnet connection test ( #306 )
2022-12-01 17:59:52 +01:00
Matthias Seitz
a0c35f1f48
refactor: replace reverse with HeadersDirection ( #305 )
2022-12-01 17:59:33 +01:00
Matthias Seitz
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
Matthias Seitz
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
Matthias Seitz
7879389059
chore(net): deny unused and cleanup ( #289 )
2022-11-29 20:57:40 +01:00
Matthias Seitz
97ea20e9d5
feat(net): add swarm mermaid diagram ( #288 )
2022-11-29 20:15:17 +01:00
Matthias Seitz
e53ed8ffc2
refactor(net): use shared objects on a per peer basis ( #270 )
2022-11-29 11:43:45 +01:00
Matthias Seitz
b5300aafec
feat(net): add request timeout ( #273 )
2022-11-28 14:41:39 -08:00
Matthias Seitz
a43a6cba8c
feat(rpc): add new engine V2 types and routes ( #274 )
2022-11-28 14:18:43 +01:00
Matthias Seitz
b30e8241ce
docs(rpc): improve eth rpc docs ( #275 )
2022-11-28 14:16:19 +01:00
Matthias Seitz
0e436ae543
feat(net): add missing report on bad response ( #271 )
2022-11-27 23:33:04 -08:00
joshieDo
3efc6ee67e
feat(db): Make TransactionSigned compactable ( #252 )
2022-11-27 23:29:30 -08:00
Matthias Seitz
b02a5c4bbf
perf(net): import loop order in transactions manager ( #269 )
2022-11-26 10:44:30 -08:00
Matthias Seitz
7db61eeadb
misc(net): discovery docs and renames ( #268 )
2022-11-26 14:46:57 +01:00
Matthias Seitz
a744676302
misc(net): add peers commands ( #267 )
2022-11-26 14:46:49 +01:00
Matthias Seitz
fd840e1c66
refactor: bodies client API ( #257 )
...
* refactor: bodies client API
* chore: fix errors
2022-11-26 10:04:42 +01:00
Dan Cline
6da140ce1b
chore(eth-wire): remove TODO about capability Ord ( #263 )
...
* chore(eth-wire): remove TODO about capability Ord
* orderings should be consistent with geth, see updated comment
* move down string doc link
2022-11-25 22:17:57 -08:00
Matthias Seitz
6232505b94
fix(net): substract from correct var ( #262 )
2022-11-26 00:35:51 +01:00
Matthias Seitz
b6d9fe87b9
feat(net): propagate new transactions ( #256 )
2022-11-25 22:13:20 +01:00
Matthias Seitz
37809ce774
feat(net): add session limits ( #253 )
2022-11-25 18:56:49 +01:00
Matthias Seitz
fb2861f112
feat(net): integrate HeadersClient ( #251 )
...
* refactor: headers client
* chore: rustfmt
* chore(clippy): make clippy happy
* feat(net): integrate HeadersClient
* fix: parse td as U256 with from_little_endian
* conflicts
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
2022-11-25 14:26:43 +01:00
Matthias Seitz
dda8df7341
refactor: headers client ( #249 )
...
* refactor: headers client
* chore: rustfmt
* chore(clippy): make clippy happy
* address comments
* use Error instead
* fix(sync): headers test client & stage tests (#255 )
* headers test client & stage tests
* fix timeout test
* fix import
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com >
2022-11-25 14:00:06 +01:00
Matthias Seitz
2e3c220104
fix: fix flaky test ( #250 )
2022-11-24 13:26:22 -08:00
Matthias Seitz
f4dbeddc97
refactor: rename FetchClient and move to submodule ( #245 )
...
* refactor: rename FetchClient and move to submodule
* chore(clippy): make clippy happy
2022-11-24 11:43:05 +01:00
Matthias Seitz
8966daad9d
feat(net): reputation system and peer reporting ( #239 )
...
* refactor: move to module
* feat(net): reputation system and peer reporting
* be specific in test
* use saturating sub
2022-11-24 10:14:50 +01:00
Matthias Seitz
d6a11c7f48
chore(deps): bump ethers + ethereum types + revm ( #228 )
...
* chore(deps): bump ethers + ethereum types
* bump revm
* chore(clippy): make clippy happy
2022-11-23 11:54:54 +01:00
Matthias Seitz
0f45f16455
test(net): add Testnet implementation for testing ( #232 )
...
* test(net): add Testnet implementation for testing
* test(net): add testnet type and test
2022-11-22 19:33:01 -05:00
Bjerg
a523cb7024
feat: finish concurrent body downloader ( #220 )
...
* refactor: remove timeout config from downloader
The timeout should be controlled by the client
implementation.
* feat: downloader request retries
* test: add concurrent body downloader tests
* chore: fmt
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
2022-11-22 21:06:49 +01:00