Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PeerDAS #1

Draft
wants to merge 74 commits into
base: temp-das-start
Choose a base branch
from
Draft

PeerDAS #1

wants to merge 74 commits into from

Conversation

zilm13
Copy link
Owner

@zilm13 zilm13 commented May 17, 2024

All DAS

zilm13 and others added 30 commits April 9, 2024 12:24
* Skip EL part of graffiti when EL info not available (previously was NA0000)

* Change EL tracker to push either UNKNOWN (when failed) or valuable version
* Electra spec config and builder

There were fields missing for EIP-7251, and also some of the attestation fields. I added the entire diff from consensus-specs while I was going, it seemed easiest...

Signed-off-by: Paul Harris <paul.harris@consensys.net>
Added a development flag to allow us to set state regeneration timeout, with a 120 second timeout by default, and a tiny bit of sanity around the flag not being less than 1.

Signed-off-by: Paul Harris <paul.harris@consensys.net>
Signed-off-by: Paul Harris <paul.harris@consensys.net>
* Add KZG prefixes to all struct in the 'kzg' package to avoid further ambiguity
* Add DAS Ssz data structures and config constants
# Conflicts:
#	ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigElectraImpl.java
#	ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/builder/ElectraBuilder.java
#	ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/mainnet/electra.yaml
#	ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/minimal/electra.yaml
#	ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/swift/electra.yaml
#	ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigElectraTest.java
Replace DataColumnSidecarGossipManager with attestation like version
* Update GossipForkManager and Eth2P2PNetwork
* Add CUSTODY_REQUIREMENT constant
* Create DataColumnSidecarSubnetBackboneSubscriber
Nashatyrev and others added 29 commits May 3, 2024 14:00
…onsensys#34)

* Disable BlobSidecars availability check in the post Deneb milestones
* More accurate logging
…d sidecars (Consensys#35)

* Integrate DataColumnSidecarCustody for storing gossip inbound/outbound sidecars
* Add suitable sidecars only in DataColumnSidecarCustodyImpl
* Change initialization sequence
* Rename to BlockRootResolver
* Remove stinky comment :)
* Skip initing DasCustody if milestone is not supported
* eference tests 1.5.0.alpha.1 with EIP-7594 coverage activated
* computeCustodyColumnIndexes implemented
* verifyCellProofBatch implemented, it fails badly on some tests, so it's disabled. jc-kzg update should help I think
* Bump reference tests to 1.5.0.alpha.2 + jc-kzg usage update
* fix old import
* Add DiscoveryPeer.getNodeId()
* Use the correct NodeId (from Discovery) instead of wrong Libp2p PeerId when calculating DAS subnets
* Add Eth2Peer.getDiscoveryNodeId() method.
* Refactor:
  *  Make DasPeerCustodyCountSupplier a separate thing
  *  Move DataColumnSidecarRetriever interface to subpackage
* Add DataColumnPeerManagerImpl
* Add BatchDataColumnReqResp and implement it in DataColumnPeerManagerImpl
* Make DataColumnReqResp implementation on top of BatchDataColumnReqResp
* Add draft init code to create DasCustodySync in BeaconChainController
* Make the primitive triggering of SimpleSidecarRetriever: every 1 sec
* Fix GossipForkManager to subscribe currentDataColumnSidecarSubnets on startSubscriptions
* Use the right NodeId in the DataColumnPeerManagerImpl
* BeaconChainController.initDasCustody():
  * subscribe missing elements to slot channel events.
  * Add DasCustodySync start initiator
* Fix NodeRecordConverter.convertPublicKeyToNodeId() (would need more api from discovery to make it more or less nice)
* Align computeDataColumnSidecarBackboneSubnets with current spec
* Make DataColumnBlockRootResolver resolve only blocks with non-empty blob list: blocks without blobs have no columns so we are just ignoring them in the DAS subsystem
* Relax DataColumnSidecarsByRoot RPC slot range requirement for now: will return them back when adopt byRange method variant
* Fix bug in SimpleSidecarRetriever
* Fix something in DasCustodySync
* Fix updating DB firstIncompleteSlot
* spotless
* fix compiler warns
* make tests compile
* Implement GossipTopicDasPeerCustodyTracker
* Refactor DataColumnBlockRootResolver to move more logic from BeaconChainController to DataColumnSidecarCustodyImpl
* Fix the case when extra_column_subnets too large
* NUMBER_OF_COLUMNS is now in config, better to read it
* removed hardcode from fieldElementsPerCell as there is no more division by it
* Reduce MAX_REQUEST_DATA_COLUMN_SIDECARS const to 512
* Fix propagation of call exception to returned future
* Fix/refactor SimpleSidecarRetriever to respect maxRequestCount and the number of currently running requests per peer
* Fix compile error from prev PR
* FirstIncompleteSlot: 'complete' slot should be finalized
* Add logging of inbound DAS RPC requests
* Add more logging details to DataColumnSidecarDBImpl
* Add '[nyota]' prefix to all DAS related logs
* Switch to 'develop' libp2p version
* Add logs on peer connect/disconnect
* Log: fix nodeId output
* Better logging for disconnection reasons 
* request limit increase
* SimpleSidecarRetriever: Add more synchronized
* SimpleSidecarRetriever: add logging stats on the number of custody peers for columns
* P2PConfig.getDasExtraCustodySubnetCount: capped in place with Spec
* GossipTopicDasPeerCustodyTracker: track subscriptions periodically since right after cionnection it may fail as a remote peer didn't yest subscribed
* Cleanup totl/extraCustodySubnetCount mess
…ys#57)

* Implement long polling req/resp getDataColumnByRoot() method
* Add DataColumnIdentifier.createFromSidecar() factory method
@zilm13 zilm13 changed the title temp PeerDAS May 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants