9391 Commits

Author SHA1 Message Date
Jacek Sieka
e4919d71d8
Update specs/phase0/p2p-interface.md
Co-authored-by: Pop Chunhapanya <haxx.pop@gmail.com>
2024-05-22 07:57:43 +02:00
Jacek Sieka
f349bfcddc
lint 2024-05-21 13:21:25 +02:00
Jacek Sieka
f97538719b
p2p: Deprecate TTFB, RESP_TIMEOUT, introduce rate limiting recommendations
As part of the discussions surrounding EIP-7594 (peerdas), it was
highlighted that during sampling and/or data requests, the sampler does
not have timing information for when a samplee will have data available.
It is desireable to not introduce a deadline, since this artificially
introduces latency for the typical scenario where data becomes available
earlier than an agreed-upon deadline.

Similarly, when a client issues a request for blocks, it does often not
know what rate limiting policy of the serving end and must either
pessimistically rate limit itself or run the risk of getting
disconnected for spamming the server - outcomes which lead to
unnecessarily slow syncing as well as testnet mess with peer scoring and
disconnection issues.

This PR solves both problems by:

* removing the time-to-first-byte and response timeouts allowing
requesters to optimistically queue requests - the timeouts have
historically not been implemented fully in clients to this date
* introducing a hard limit in the number of concurrent requests that a
client may issue, per protocol
* introducing a recommendation for rate limiting that allows optimal
bandwidth usage without protocol changes or additional messaging
roundtrips

On the server side, an "open" request does not consume significant
resources while it's resting, meaning that allowing the server to manage
resource allocation by slowing down data serving is safe, as long as
concurrency is adequately limited.

On the client side, clients must be prepared to handle slow servers
already and they can simply apply their existing strategy both to
uncertainty and rate-limiting scenarios (how long before timeout, what
to do in "slow peer" scenarios).

Token / leaky buckets are a classic option for rate limiting with
desireable properties both for the case when we're sending requests to
many clients concurrently (getting good burst performance) and when the
requestees are busy (by keeping long-term resource usage in check and
fairly serving clients)
2024-05-14 17:15:44 +02:00
George Kadianakis
fdeff744ff
EIP-7594: Add a missing check and a missing test vector (#3765) 2024-05-14 17:18:14 +03:00
George Kadianakis
e5813bd692
Merge pull request #3758 from jtraglia/improve-dup-cell-test
Change duplicate cell id test to use 65 cell ids
2024-05-14 17:14:56 +03:00
Hsiao-Wei Wang
5f48840f4d
Merge pull request #3760 from nisdas/patch-5
Provide Max Size For Columns By Range Request
2024-05-12 16:13:16 +08:00
Nishant Das
8f73a47423
Update p2p-interface.md 2024-05-09 16:14:52 +08:00
Nishant Das
b9befda08b
Update p2p-interface.md 2024-05-09 16:03:55 +08:00
Hsiao-Wei Wang
812ac2ce8f
Merge pull request #3759 from jtraglia/ext-aggregate-and-proof
Add electra version of AggregateAndProof
2024-05-08 20:25:06 +08:00
Justin Traglia
93c043a647 Revert moving IndexedAttestation
I'll do this in a separate PR.
2024-05-07 19:14:48 -05:00
Justin Traglia
f3d0a0e89b Move containers to validator.md 2024-05-07 19:13:24 -05:00
Justin Traglia
8aed03767a Change "new" to "modified" 2024-05-07 16:37:23 -05:00
Justin Traglia
0da03ab5ac Update TOC 2024-05-07 16:33:06 -05:00
Justin Traglia
99ccfe0163 Add electra version of AggregateAndProof 2024-05-07 16:29:49 -05:00
Justin Traglia
0891be24f6 Change cell -> cells 2024-05-07 13:34:35 -05:00
Justin Traglia
cd0f8a1201 Change duplicate cell id test to use 65 cell ids 2024-05-07 13:25:53 -05:00
Hsiao-Wei Wang
e96c0700fb
Merge pull request #3756 from ensi321/dev
Fix typo on CommitteeIndex in p2p spec
2024-05-08 01:21:14 +08:00
Hsiao-Wei Wang
b0cea87169
Merge pull request #3755 from ethereum/bump-version
bump version v1.5.0-alpha.2
2024-05-08 01:08:46 +08:00
Navie Chan
191833bd0a index from AttestationData 2024-05-07 19:00:55 +03:00
Hsiao-Wei Wang
2cef9ae076
bump version v1.5.0-alpha.2 2024-05-07 22:45:00 +08:00
Hsiao-Wei Wang
313a64e9c1
Merge pull request #3748 from ethereum/fix-get_custody_columns
Fix `get_custody_columns`
2024-05-07 22:43:46 +08:00
Hsiao-Wei Wang
c9e0e6d5df
Add a short node_id test 2024-05-07 21:47:16 +08:00
Hsiao-Wei Wang
1a5671d2f6
Merge pull request #3750 from ethereum/DataColumnSidecarsByRange
Add `DataColumnSidecarsByRange` v1 Req/Resp
2024-05-07 21:15:44 +08:00
Hsiao-Wei Wang
9ffd08a9dc
The return values MUST be sent in (slot, column_index) order. 2024-05-07 20:28:34 +08:00
Hsiao-Wei Wang
fdad206f3c
Apply @dankrad's suggestion 2024-05-07 20:26:56 +08:00
Hsiao-Wei Wang
950136c50d
Apply suggestions from code review
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2024-05-07 18:30:28 +08:00
Parithosh Jayanthi
84c4aebfa8
github runner overhaul (#3751)
-    More isolated per job
-    Moderate speed increase
-    Moderate Cost reduction
-    Better security as jobs and tasks are fully isolated and run on ephemeral instances
2024-05-07 10:34:25 +02:00
Hsiao-Wei Wang
34756a81c6
Add DataColumnSidecarsByRange v1 Req/Resp 2024-05-06 19:11:23 +08:00
Hsiao-Wei Wang
1c081a04d0
Merge pull request #3731 from ethereum/rng
Fix rng of tests
2024-05-06 17:28:27 +08:00
Hsiao-Wei Wang
9c1acbb5e5
Fix get_custody_columns 2024-05-06 17:25:47 +08:00
Hsiao-Wei Wang
871c772e3f
Merge pull request #3743 from fradamt/dev
Add .copy() where needed in tests
2024-05-06 15:49:57 +08:00
Hsiao-Wei Wang
bbb506ec75
Merge pull request #3741 from ethereum/fix-test_process_consolidation
Add decorator to all "invalid" test cases
2024-05-06 15:48:48 +08:00
fradamt
4487fb88c7
Merge branch 'ethereum:dev' into dev 2024-05-06 09:04:35 +02:00
Hsiao-Wei Wang
331f1e9a6a
Merge pull request #3736 from ethereum/hotfix-consolidation
Remove `test_consolidation.py` since they are not valid test vectors
2024-05-04 01:08:03 +08:00
George Kadianakis
2abf4ce4d1
Merge pull request #3745 from kevaundray/kw/pad-column-indices
chore: Pad column indices when calling `verify_cell_kzg_proof_batch`
2024-05-03 19:36:12 +03:00
Kevaundray Wedderburn
fa550212c7 lint 2024-05-03 17:10:08 +01:00
Kevaundray Wedderburn
a18c05e7e2 add assert 2024-05-03 17:06:09 +01:00
George Kadianakis
1ef75e0875 Be consistent between ids and indices 2024-05-03 19:00:51 +03:00
Kevaundray Wedderburn
5699eedd4d pad column_indices 2024-05-03 16:43:11 +01:00
fradamt
b237414910 add .copy() where needed in tests 2024-05-03 09:43:12 +02:00
Mikhail Kalinin
e0ee2808d8
Merge pull request #3740 from rkapka/get-committee-indices-typo
EIP-7549: Fix typo in `get_committee_indices`
2024-05-02 17:48:42 +06:00
Hsiao-Wei Wang
beea123b0f
Add decorator to all "invalid" test cases 2024-05-02 17:01:25 +08:00
rkapka
c4e8dc23f4 Fix typo in get_committee_indices 2024-05-02 16:54:17 +09:00
Hsiao-Wei Wang
e733388623
Remove since they are not valid test vectors 2024-04-30 21:55:45 +08:00
kevaundray
e7b49dc670
chore: Add type casts reducing the diff for #3697 (#3734) 2024-04-29 08:14:55 -05:00
Hsiao-Wei Wang
c2544435f4
Merge pull request #3733 from ethereum/dev
patch for v1.5.0-alpha.1 release
2024-04-27 16:40:51 +08:00
Hsiao-Wei Wang
186c9435dd
Merge pull request #3732 from ethereum/enable-eip7594-merkle-proof-testgen
Enable EIP7594 merkle proof testgen
2024-04-27 16:26:45 +08:00
Hsiao-Wei Wang
b681552cf3
Use bls.use_fastest() in default testgen 2024-04-27 16:23:08 +08:00
Hsiao-Wei Wang
fbccef319b
Enable EIP7594 merkle proof testgen 2024-04-27 15:41:32 +08:00
Hsiao-Wei Wang
594daf424d
Merge pull request #3725 from ethereum/dev
release v1.5.0-alpha.1
2024-04-27 15:14:15 +08:00