forked from Consensys/teku
-
Notifications
You must be signed in to change notification settings - Fork 0
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
zilm13
wants to merge
74
commits into
temp-das-start
Choose a base branch
from
build-fix
base: temp-das-start
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
PeerDAS #1
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* 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 <[email protected]>
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 <[email protected]>
Signed-off-by: Paul Harris <[email protected]>
* 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
Gossip (part 1)
* Update GossipForkManager and Eth2P2PNetwork * Add CUSTODY_REQUIREMENT constant * Create DataColumnSidecarSubnetBackboneSubscriber
…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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
All DAS