395 Commits

Author SHA1 Message Date
Agnish Ghosh
eaf4b261c1 fix enr update issue 2024-09-23 14:09:16 +05:30
Agnish Ghosh
2ff165d304 fix enr advertising 2024-09-23 14:06:33 +05:30
Agnish Ghosh
2608c19a13 change lookupcsc logic 2024-09-19 15:02:41 +05:30
Agnish Ghosh
53af511488 add debug for lookupCscFromPeer 2024-09-18 16:34:53 +05:30
Agnish Ghosh
ee33ec0683 rework reconstruction publishing strategy 2024-09-12 11:59:59 +05:30
Agnish Ghosh
dc4a1df2d7
fix SSZ issues 2024-09-11 10:41:19 +05:30
Agnish Ghosh
c09d801fb2 all fixes related to enr 2024-09-09 22:09:10 +05:30
Agnish Ghosh
d461d3f25f revert Csc to big endian uint64 2024-09-09 02:27:59 +05:30
Agnish Ghosh
3aa85100f9 move lookupCscFromPeer to Eth2Network, add reqColumns check in data column sidecar range request 2024-09-02 16:45:10 +05:30
Agnish Ghosh
547abaacf7 have getLowSubnets accept only BitArrays 2024-08-27 22:17:50 +05:30
Agnish Ghosh
c2962b65c9
turned CscCount to uint8 according to the latest EF spec 2024-08-24 16:23:27 +05:30
Agnish Ghosh
6127bd6ed2 make all csc uint64 2024-08-22 18:34:26 +05:30
Agnish Ghosh
70029545ea added support for customisable custody subnet count on boot, from bn startup flags 2024-08-20 03:58:27 +05:30
Agnish Ghosh
75e1bb616b
handling reconstruction condition internally 2024-08-18 13:35:16 +05:30
Agnish Ghosh
e7610ece97
ignore peers with low csc 2024-08-18 13:10:21 +05:30
Agnish Ghosh
7c39d79e7e
remove metadata v3 call from handleStatus 2024-08-18 01:06:05 +05:30
Agnish Ghosh
cd5532c078 add filtering to peer pool and protocol, remove filtering from SyncManager level 2024-08-17 20:51:36 +05:30
Agnish Ghosh
cc21a2a630 fix: enr bitfield logic for custody subnet count 2024-08-14 16:29:28 +05:30
Agnish Ghosh
1ebba1fac4
add: metadata-v3 for custody subnet count (#6486)
* init: add metadatav3, save progress

* fix import issues

* fix spec version

* fix: metadata_v2 to return altair.MetaData

* update metata function backward compatible now
2024-08-12 21:27:37 +05:30
Agnish Ghosh
5265eeb6ea refactor: sync manager to range request only valid peers if not supernode 2024-07-22 19:04:04 +05:30
Agnish Ghosh
fa5b15436c
add: logic constructing valid set of peers 2024-07-19 13:58:26 +05:30
Agnish Ghosh
b33900bd35
added enr struct 2024-07-15 13:11:09 +05:30
Agnish Ghosh
791d2fb0d1
add: forward and backward syncing for data columns, broadcasting data columns created from blobs, added dc support to sync_queue 2024-06-24 17:32:06 +05:30
Agnish Ghosh
aa2ce79770
fixed upto electra 2024-05-27 18:10:00 +05:30
tersec
b56a671122
fix most ConvFromXtoItselfNotNeeded hints and unhide remaining ones (#6307) 2024-05-22 13:56:37 +02:00
Jacek Sieka
d191b35e2e
electra: attestatoin sending (#6296) 2024-05-17 17:34:46 +02:00
tersec
c1b9e82502
electra attestation gossip plumbing (#6287) 2024-05-14 19:01:26 +03:00
tersec
3f972a2ca5
add some support for electra aggregated attestations (#6283) 2024-05-14 06:12:35 +02:00
tersec
6b8061b5d6
automated consensus spec URL updating to v1.5.0-alpha.2 (#6279) 2024-05-09 05:03:10 +00:00
Eugene Kabanov
c9b54bf1aa
Enable IPv6 for discovery5 using dualstack support. (#6242)
* Make listen-address default to use dualstack.

* Use correct newProtocol().

* Bump nim-eth.

* Bump nim-eth one more time.

* Use `*` instead of IPv6 address for dualstack sockets.

* Bump chronos and nim-eth.

* Use new constructor.

* Fix listenAddress should be Opt[T] not Option[T].

* Fix options.md.
2024-05-01 19:29:39 +00:00
tersec
d139c92df9
explicitly scope AttesterSlashing and IndexedAttestation types to phase0 (#6224) 2024-04-21 05:49:11 +00:00
tersec
603c83522e
explicitly refer to phase0.{Attestation,TrustedAttestation} rather than sans module name (#6214) 2024-04-17 20:44:29 +00:00
tersec
867995acd1
some consensus spec v1.4.0 spec URL updates (#6208) 2024-04-17 05:51:16 +02:00
Etan Kissling
c57fcb426a
bump nim-libp2p to 89cad5a3ba9088cc721682469a10917903da25a0 (#6199)
- add support for setting protocol handlers with `{.raises.}` annotation
- fix: valueOr and withValue utilities
- fix: remove explicit param from GossipSubParams constructor
2024-04-12 11:12:44 +02:00
Etan Kissling
a561024d88
rank peers by their score instead of their memory address (#6149)
The `<` function to compare peers was not exported, leading to the same
peer be acquired over and over again until kick. `mixin` doesn't pull it
into `peerCmp` without `*` export, and with the export no mixin needed.
2024-04-10 14:09:37 +02:00
Etan Kissling
86a265308a
filter out nil values when iterating peers (#6151)
Iterating peers should only yield peers present in registry, otherwise
`nil` pointers are returned and depending on comparison function it will
break, see #6149.
2024-04-05 16:38:04 +02:00
tersec
13a70e9d69
rm built-in Goerli beacon chain support (#6057) 2024-04-03 23:25:36 +00:00
tersec
7fa32b7f02
add Electra to ConsensusFork enum (#6169)
* add Electra to ConsensusFork enum

* fix gnosis check
2024-04-03 16:43:43 +02:00
diegomrsantos
885989f3df
bump libp2p (#6148) 2024-03-27 15:53:02 +00:00
diegomrsantos
edad7c8a4c
bump libp2p (#6132) 2024-03-27 11:16:57 +01:00
tersec
21daaad754
support special characters in network metadata paths (#6141) 2024-03-26 22:47:42 +01:00
Etan Kissling
fc9bc1da3a
add branch discovery module for supporting chain stall situation (#6125)
In split view situation, the canonical chain may only be served by a
tiny amount of peers, and branches may span long durations. Minority
branches may still have a large weight from attestations and should
be discovered. To assist with that, add a branch discovery module that
assists in such a situation by specifically targeting peers with unknown
histories and downloading from them, in addition to sync manager work
which handles popular branches.
2024-03-24 08:41:47 +00:00
Etan Kissling
991e7cafbc
descore when opening connection fails, same as when reading fails (#6130)
`eth2_network` forgets to descore peers when opening connection times
out. It only descores when opening the connection succeeds and then
there is a subsequent error. The caller cannot distinguish the cases,
so ensure that the descore is also applied if the request fails during
its initial portion.
2024-03-24 05:37:47 +01:00
Etan Kissling
17ee40b39b
make blobs use less quota when other nodes sync from us (#6120)
Each individual blob currently uses as much quota from the network limit
as an entire block does, 128 items per second shared across all peers.
Blobs are 128 KB each instead of up to several MB and are simpler to
encode. There can be multiple per block (6 currently), so allow 2000
blobs per second across all peers. That decreases the cost per block
from `3125 + 3125 * blobs.len` quota (= `[3125, 21875]`) to a lower
`3125 + 200 * blobs.len` quota (= `[3125, 4325]`), accounting for the
slight increase in data transfer and encoding time.
2024-03-22 02:36:08 +01:00
Etan Kissling
9256db2265
use LPProtocol.new instead of LPProtocol() (#6117)
Avoid potenial issue with https://github.com/vacp2p/nim-libp2p/pull/1064#discussion_r1534021691
in a future dependency bump.
2024-03-21 17:53:59 +01:00
Jacek Sieka
032b91c631
extend seen ttl to cover 2 epochs (#6098)
this allows us to drop these useless messages earlier in the pipeline

https://github.com/ethereum/consensus-specs/pull/3627
2024-03-20 08:07:16 +01:00
tersec
0a6d189161
automated consensus spec URL updating to v1.4.0 (#6074) 2024-03-14 07:26:36 +01:00
tersec
55ba43592b
req/resp status message requires zero hash for genesis finalized epoch (#6053) 2024-03-08 21:33:59 +01:00
Etan Kissling
a0bc3fff86
fix /eth/v1/beacon/deposit_snapshot for EIP-4881 (#6038)
Fix the `/eth/v1/beacon/deposit_snapshot` API to produce proper EIP-4881
compatible `DepositTreeSnapshot` responses. The endpoint used to expose
a Nimbus-specific database internal format.

Also fix trusted node sync to consume properly formatted EIP-4881 data
with `--with-deposit-snapshot`, and `--finalized-deposit-tree-snapshot`
beacon node launch option to use the EIP-4881 data. Further ensure that
`ncli_testnet` produces EIP-4881 formatted data for interoperability.
2024-03-08 14:22:03 +01:00
Etan Kissling
a91366734b
remove unnecessary exports in eth2_discovery (#5987)
The exports in `eth2_discovery` produce deprecation warnings as they
refer to `close`, `closeWait` and so on. Turns out that they are not
necessary at all. The `Eth2DiscoveryProtocol` is even already exported
two lines above using `*` marker...
2024-02-28 13:34:16 +00:00