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

Support EIP-4844 - WIP #4774

Closed
wants to merge 6 commits into from
Closed

Support EIP-4844 - WIP #4774

wants to merge 6 commits into from

Conversation

dapplion
Copy link
Contributor

@dapplion dapplion commented Nov 16, 2022

Motivation

Full implementation of the EIP-4844 hard-fork logic. EIP-4844 rationale -> B L O B S P A C E

Description

Implementation list:

  • Add params, config and types Add capella hardfork and types #4568
  • Make c-kzg library available for Lodestar. Add native bindings for ethereum/c-kzg-eip4844 NodeJS bindings dankrad/c-kzg#3
  • Block proposing
    • Add new engine API engine_getBlobsV1
    • Cache returned blobs in beacon to not modify validator cycle code
    • Publish to gossip topic, depending on fork
  • Block processing / import
    • Update chain processBlock to take block + (maybe) blobs pair
    • Validate blobs is_data_available, running KZG crypto
    • Store blobs to database + migrate from hot to cold on finalization + prune old blobs < MIN_EPOCHS_FOR_BLOBS_SIDECARS_REQUESTS
  • Add p2p ResResp methods BeaconBlockAndBlobsSidecarByRoot + BlobsSidecarsByRange
    • Update register / unregister logic to active those topics only post-eip4844
  • Add p2p gossip topic beacon_block_and_blobs_sidecar

Test list:

@CLAassistant
Copy link

CLAassistant commented Nov 16, 2022

CLA assistant check
All committers have signed the CLA.

await this.db.block.add(block);

if (this.config.getForkSeq(block.message.slot) >= ForkSeq.eip4844) {
if (!blobs) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this extraction and error throw be before forkChoice.onBlock...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, our import block flow is unsafe because it can end up in an inconsistent state

@@ -22,6 +27,9 @@ export function computeNewStateRoot(
const postState = stateTransition(
state,
blockEmptySig,
// ExecutionPayloadStatus.valid: Assume payload valid, it has been produced by a trusted EL
// DataAvailableStatus.available: Assume the blobs to be available, have just been produced by trusted EL
{executionPayloadStatus: ExecutionPayloadStatus.valid, dataAvailableStatus: DataAvailableStatus.available},
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we generally use ExecutionStatus from forkchoice outside the engine module

@github-actions
Copy link
Contributor

github-actions bot commented Nov 17, 2022

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 086aa6a Previous: 6793305 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 937.12 us/op 518.29 us/op 1.81
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 60.116 us/op 46.398 us/op 1.30
BLS verify - blst-native 1.2918 ms/op 1.2119 ms/op 1.07
BLS verifyMultipleSignatures 3 - blst-native 2.5822 ms/op 2.4720 ms/op 1.04
BLS verifyMultipleSignatures 8 - blst-native 5.4583 ms/op 5.3799 ms/op 1.01
BLS verifyMultipleSignatures 32 - blst-native 20.214 ms/op 19.388 ms/op 1.04
BLS aggregatePubkeys 32 - blst-native 27.233 us/op 26.034 us/op 1.05
BLS aggregatePubkeys 128 - blst-native 107.34 us/op 101.77 us/op 1.05
getAttestationsForBlock 62.957 ms/op 55.973 ms/op 1.12
isKnown best case - 1 super set check 283.00 ns/op 274.00 ns/op 1.03
isKnown normal case - 2 super set checks 272.00 ns/op 264.00 ns/op 1.03
isKnown worse case - 16 super set checks 270.00 ns/op 263.00 ns/op 1.03
CheckpointStateCache - add get delete 6.1690 us/op 6.0110 us/op 1.03
validate gossip signedAggregateAndProof - struct 2.8863 ms/op 2.7958 ms/op 1.03
validate gossip attestation - struct 1.3703 ms/op 1.3385 ms/op 1.02
pickEth1Vote - no votes 1.4062 ms/op 1.3523 ms/op 1.04
pickEth1Vote - max votes 11.389 ms/op 9.7881 ms/op 1.16
pickEth1Vote - Eth1Data hashTreeRoot value x2048 9.7373 ms/op 8.8528 ms/op 1.10
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 15.699 ms/op 14.371 ms/op 1.09
pickEth1Vote - Eth1Data fastSerialize value x2048 798.70 us/op 662.21 us/op 1.21
pickEth1Vote - Eth1Data fastSerialize tree x2048 6.1565 ms/op 4.7295 ms/op 1.30
bytes32 toHexString 740.00 ns/op 503.00 ns/op 1.47
bytes32 Buffer.toString(hex) 434.00 ns/op 354.00 ns/op 1.23
bytes32 Buffer.toString(hex) from Uint8Array 653.00 ns/op 576.00 ns/op 1.13
bytes32 Buffer.toString(hex) + 0x 427.00 ns/op 348.00 ns/op 1.23
Object access 1 prop 0.21000 ns/op 0.17600 ns/op 1.19
Map access 1 prop 0.17600 ns/op 0.16500 ns/op 1.07
Object get x1000 6.9160 ns/op 6.9600 ns/op 0.99
Map get x1000 0.62000 ns/op 0.64800 ns/op 0.96
Object set x1000 73.732 ns/op 55.808 ns/op 1.32
Map set x1000 57.987 ns/op 45.509 ns/op 1.27
Return object 10000 times 0.26030 ns/op 0.24060 ns/op 1.08
Throw Error 10000 times 4.4285 us/op 4.1654 us/op 1.06
fastMsgIdFn sha256 / 200 bytes 3.6260 us/op 3.5030 us/op 1.04
fastMsgIdFn h32 xxhash / 200 bytes 326.00 ns/op 294.00 ns/op 1.11
fastMsgIdFn h64 xxhash / 200 bytes 476.00 ns/op 407.00 ns/op 1.17
fastMsgIdFn sha256 / 1000 bytes 12.627 us/op 11.786 us/op 1.07
fastMsgIdFn h32 xxhash / 1000 bytes 471.00 ns/op 435.00 ns/op 1.08
fastMsgIdFn h64 xxhash / 1000 bytes 578.00 ns/op 490.00 ns/op 1.18
fastMsgIdFn sha256 / 10000 bytes 112.55 us/op 104.91 us/op 1.07
fastMsgIdFn h32 xxhash / 10000 bytes 2.1250 us/op 1.9850 us/op 1.07
fastMsgIdFn h64 xxhash / 10000 bytes 1.5010 us/op 1.3830 us/op 1.09
enrSubnets - fastDeserialize 64 bits 2.0760 us/op 1.2830 us/op 1.62
enrSubnets - ssz BitVector 64 bits 668.00 ns/op 490.00 ns/op 1.36
enrSubnets - fastDeserialize 4 bits 232.00 ns/op 176.00 ns/op 1.32
enrSubnets - ssz BitVector 4 bits 666.00 ns/op 496.00 ns/op 1.34
prioritizePeers score -10:0 att 32-0.1 sync 2-0 129.20 us/op 97.228 us/op 1.33
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 146.51 us/op 134.17 us/op 1.09
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 229.96 us/op 190.41 us/op 1.21
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 400.21 us/op 362.76 us/op 1.10
prioritizePeers score 0:0 att 64-1 sync 4-1 425.01 us/op 414.90 us/op 1.02
array of 16000 items push then shift 1.8946 us/op 1.6785 us/op 1.13
LinkedList of 16000 items push then shift 12.930 ns/op 9.1830 ns/op 1.41
array of 16000 items push then pop 143.15 ns/op 115.78 ns/op 1.24
LinkedList of 16000 items push then pop 12.043 ns/op 9.0360 ns/op 1.33
array of 24000 items push then shift 2.7733 us/op 2.3943 us/op 1.16
LinkedList of 24000 items push then shift 12.390 ns/op 9.2490 ns/op 1.34
array of 24000 items push then pop 114.80 ns/op 85.502 ns/op 1.34
LinkedList of 24000 items push then pop 10.600 ns/op 9.0480 ns/op 1.17
intersect bitArray bitLen 8 17.828 ns/op 13.187 ns/op 1.35
intersect array and set length 8 123.89 ns/op 89.776 ns/op 1.38
intersect bitArray bitLen 128 50.683 ns/op 44.007 ns/op 1.15
intersect array and set length 128 1.5808 us/op 1.2529 us/op 1.26
Buffer.concat 32 items 3.2660 us/op 2.7550 us/op 1.19
Uint8Array.set 32 items 3.3990 us/op 2.3090 us/op 1.47
pass gossip attestations to forkchoice per slot 3.2121 ms/op 4.1862 ms/op 0.77
computeDeltas 4.1245 ms/op 3.0512 ms/op 1.35
computeProposerBoostScoreFromBalances 2.0875 ms/op 1.8142 ms/op 1.15
altair processAttestation - 250000 vs - 7PWei normalcase 3.7312 ms/op 2.5599 ms/op 1.46
altair processAttestation - 250000 vs - 7PWei worstcase 5.7150 ms/op 3.9573 ms/op 1.44
altair processAttestation - setStatus - 1/6 committees join 154.01 us/op 140.25 us/op 1.10
altair processAttestation - setStatus - 1/3 committees join 314.20 us/op 279.63 us/op 1.12
altair processAttestation - setStatus - 1/2 committees join 437.00 us/op 372.66 us/op 1.17
altair processAttestation - setStatus - 2/3 committees join 518.38 us/op 464.64 us/op 1.12
altair processAttestation - setStatus - 4/5 committees join 729.21 us/op 646.82 us/op 1.13
altair processAttestation - setStatus - 100% committees join 855.80 us/op 759.52 us/op 1.13
altair processBlock - 250000 vs - 7PWei normalcase 20.406 ms/op 16.388 ms/op 1.25
altair processBlock - 250000 vs - 7PWei normalcase hashState 31.289 ms/op 24.709 ms/op 1.27
altair processBlock - 250000 vs - 7PWei worstcase 60.425 ms/op 49.659 ms/op 1.22
altair processBlock - 250000 vs - 7PWei worstcase hashState 82.159 ms/op 63.062 ms/op 1.30
phase0 processBlock - 250000 vs - 7PWei normalcase 2.7961 ms/op 1.9034 ms/op 1.47
phase0 processBlock - 250000 vs - 7PWei worstcase 33.994 ms/op 27.749 ms/op 1.23
altair processEth1Data - 250000 vs - 7PWei normalcase 648.04 us/op 446.19 us/op 1.45
vc - 250000 eb 1 eth1 1 we 0 wn 0 - smpl 15 13.473 us/op 6.9670 us/op 1.93
vc - 250000 eb 0.95 eth1 0.1 we 0.05 wn 0 - smpl 219 37.664 us/op 20.343 us/op 1.85
vc - 250000 eb 0.95 eth1 0.3 we 0.05 wn 0 - smpl 42 17.951 us/op 8.2660 us/op 2.17
vc - 250000 eb 0.95 eth1 0.7 we 0.05 wn 0 - smpl 18 14.569 us/op 7.1890 us/op 2.03
vc - 250000 eb 0.1 eth1 0.1 we 0 wn 0 - smpl 1020 128.28 us/op 80.662 us/op 1.59
vc - 250000 eb 0.03 eth1 0.03 we 0 wn 0 - smpl 11777 897.00 us/op 636.55 us/op 1.41
vc - 250000 eb 0.01 eth1 0.01 we 0 wn 0 - smpl 16384 1.2789 ms/op 894.89 us/op 1.43
vc - 250000 eb 0 eth1 0 we 0 wn 0 - smpl 16384 984.42 us/op 854.96 us/op 1.15
vc - 250000 eb 0 eth1 0 we 0 wn 0 nocache - smpl 16384 2.7435 ms/op 2.2896 ms/op 1.20
vc - 250000 eb 0 eth1 1 we 0 wn 0 - smpl 16384 2.2412 ms/op 1.5219 ms/op 1.47
vc - 250000 eb 0 eth1 1 we 0 wn 0 nocache - smpl 16384 5.9929 ms/op 3.8296 ms/op 1.56
Tree 40 250000 create 631.45 ms/op 289.24 ms/op 2.18
Tree 40 250000 get(125000) 216.18 ns/op 177.83 ns/op 1.22
Tree 40 250000 set(125000) 2.0884 us/op 889.25 ns/op 2.35
Tree 40 250000 toArray() 29.476 ms/op 17.563 ms/op 1.68
Tree 40 250000 iterate all - toArray() + loop 27.608 ms/op 17.659 ms/op 1.56
Tree 40 250000 iterate all - get(i) 81.977 ms/op 65.891 ms/op 1.24
MutableVector 250000 create 12.955 ms/op 10.877 ms/op 1.19
MutableVector 250000 get(125000) 7.4160 ns/op 6.2750 ns/op 1.18
MutableVector 250000 set(125000) 522.49 ns/op 279.07 ns/op 1.87
MutableVector 250000 toArray() 4.6674 ms/op 3.0755 ms/op 1.52
MutableVector 250000 iterate all - toArray() + loop 5.4422 ms/op 3.4278 ms/op 1.59
MutableVector 250000 iterate all - get(i) 1.9038 ms/op 1.4983 ms/op 1.27
Array 250000 create 4.9184 ms/op 2.7139 ms/op 1.81
Array 250000 clone - spread 1.6268 ms/op 1.0748 ms/op 1.51
Array 250000 get(125000) 1.0220 ns/op 0.52800 ns/op 1.94
Array 250000 set(125000) 1.2280 ns/op 0.59800 ns/op 2.05
Array 250000 iterate all - loop 146.27 us/op 109.33 us/op 1.34
effectiveBalanceIncrements clone Uint8Array 300000 54.566 us/op 27.912 us/op 1.95
effectiveBalanceIncrements clone MutableVector 300000 375.00 ns/op 314.00 ns/op 1.19
effectiveBalanceIncrements rw all Uint8Array 300000 205.15 us/op 164.46 us/op 1.25
effectiveBalanceIncrements rw all MutableVector 300000 149.97 ms/op 76.221 ms/op 1.97
phase0 afterProcessEpoch - 250000 vs - 7PWei 137.21 ms/op 110.98 ms/op 1.24
phase0 beforeProcessEpoch - 250000 vs - 7PWei 67.133 ms/op 43.363 ms/op 1.55
altair processEpoch - mainnet_e81889 352.52 ms/op 310.90 ms/op 1.13
mainnet_e81889 - altair beforeProcessEpoch 72.954 ms/op 52.134 ms/op 1.40
mainnet_e81889 - altair processJustificationAndFinalization 22.188 us/op 19.173 us/op 1.16
mainnet_e81889 - altair processInactivityUpdates 6.2851 ms/op 5.8954 ms/op 1.07
mainnet_e81889 - altair processRewardsAndPenalties 76.002 ms/op 68.933 ms/op 1.10
mainnet_e81889 - altair processRegistryUpdates 4.2680 us/op 2.5200 us/op 1.69
mainnet_e81889 - altair processSlashings 693.00 ns/op 871.00 ns/op 0.80
mainnet_e81889 - altair processEth1DataReset 1.0470 us/op 566.00 ns/op 1.85
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.3854 ms/op 1.2343 ms/op 1.12
mainnet_e81889 - altair processSlashingsReset 6.1340 us/op 4.9820 us/op 1.23
mainnet_e81889 - altair processRandaoMixesReset 12.988 us/op 6.4100 us/op 2.03
mainnet_e81889 - altair processHistoricalRootsUpdate 1.8410 us/op 1.0560 us/op 1.74
mainnet_e81889 - altair processParticipationFlagUpdates 7.2970 us/op 3.0650 us/op 2.38
mainnet_e81889 - altair processSyncCommitteeUpdates 1.3460 us/op 831.00 ns/op 1.62
mainnet_e81889 - altair afterProcessEpoch 141.76 ms/op 129.64 ms/op 1.09
phase0 processEpoch - mainnet_e58758 598.52 ms/op 453.30 ms/op 1.32
mainnet_e58758 - phase0 beforeProcessEpoch 235.73 ms/op 139.36 ms/op 1.69
mainnet_e58758 - phase0 processJustificationAndFinalization 38.162 us/op 17.670 us/op 2.16
mainnet_e58758 - phase0 processRewardsAndPenalties 57.558 ms/op 65.780 ms/op 0.88
mainnet_e58758 - phase0 processRegistryUpdates 17.441 us/op 9.9490 us/op 1.75
mainnet_e58758 - phase0 processSlashings 1.5960 us/op 550.00 ns/op 2.90
mainnet_e58758 - phase0 processEth1DataReset 1.6380 us/op 616.00 ns/op 2.66
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.1275 ms/op 1.0018 ms/op 2.12
mainnet_e58758 - phase0 processSlashingsReset 11.764 us/op 3.6040 us/op 3.26
mainnet_e58758 - phase0 processRandaoMixesReset 13.449 us/op 4.3220 us/op 3.11
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.9570 us/op 546.00 ns/op 3.58
mainnet_e58758 - phase0 processParticipationRecordUpdates 11.658 us/op 4.0130 us/op 2.91
mainnet_e58758 - phase0 afterProcessEpoch 126.24 ms/op 99.063 ms/op 1.27
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.1464 ms/op 1.2388 ms/op 1.73
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.9002 ms/op 1.5176 ms/op 1.91
altair processInactivityUpdates - 250000 normalcase 41.394 ms/op 19.940 ms/op 2.08
altair processInactivityUpdates - 250000 worstcase 44.283 ms/op 27.064 ms/op 1.64
phase0 processRegistryUpdates - 250000 normalcase 14.835 us/op 7.1780 us/op 2.07
phase0 processRegistryUpdates - 250000 badcase_full_deposits 481.01 us/op 269.31 us/op 1.79
phase0 processRegistryUpdates - 250000 worstcase 0.5 209.82 ms/op 114.01 ms/op 1.84
altair processRewardsAndPenalties - 250000 normalcase 91.490 ms/op 66.560 ms/op 1.37
altair processRewardsAndPenalties - 250000 worstcase 95.986 ms/op 85.659 ms/op 1.12
phase0 getAttestationDeltas - 250000 normalcase 10.948 ms/op 13.268 ms/op 0.83
phase0 getAttestationDeltas - 250000 worstcase 12.083 ms/op 11.472 ms/op 1.05
phase0 processSlashings - 250000 worstcase 5.5197 ms/op 5.2295 ms/op 1.06
altair processSyncCommitteeUpdates - 250000 232.66 ms/op 267.11 ms/op 0.87
BeaconState.hashTreeRoot - No change 310.00 ns/op 272.00 ns/op 1.14
BeaconState.hashTreeRoot - 1 full validator 56.887 us/op 56.044 us/op 1.02
BeaconState.hashTreeRoot - 32 full validator 748.37 us/op 555.32 us/op 1.35
BeaconState.hashTreeRoot - 512 full validator 8.4820 ms/op 5.1107 ms/op 1.66
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 95.103 us/op 64.968 us/op 1.46
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.0952 ms/op 900.49 us/op 1.22
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 15.548 ms/op 12.402 ms/op 1.25
BeaconState.hashTreeRoot - 1 balances 70.183 us/op 49.128 us/op 1.43
BeaconState.hashTreeRoot - 32 balances 588.31 us/op 483.02 us/op 1.22
BeaconState.hashTreeRoot - 512 balances 6.0270 ms/op 4.8514 ms/op 1.24
BeaconState.hashTreeRoot - 250000 balances 95.314 ms/op 77.197 ms/op 1.23
aggregationBits - 2048 els - zipIndexesInBitList 30.135 us/op 18.213 us/op 1.65
regular array get 100000 times 36.731 us/op 40.968 us/op 0.90
wrappedArray get 100000 times 36.785 us/op 33.735 us/op 1.09
arrayWithProxy get 100000 times 17.514 ms/op 15.639 ms/op 1.12
ssz.Root.equals 713.00 ns/op 611.00 ns/op 1.17
byteArrayEquals 734.00 ns/op 587.00 ns/op 1.25
shuffle list - 16384 els 7.7256 ms/op 6.8495 ms/op 1.13
shuffle list - 250000 els 112.04 ms/op 100.60 ms/op 1.11
processSlot - 1 slots 9.3630 us/op 9.1180 us/op 1.03
processSlot - 32 slots 1.5106 ms/op 1.3833 ms/op 1.09
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 235.42 us/op 204.65 us/op 1.15
getCommitteeAssignments - req 1 vs - 250000 vc 3.0617 ms/op 2.9448 ms/op 1.04
getCommitteeAssignments - req 100 vs - 250000 vc 4.3143 ms/op 4.1345 ms/op 1.04
getCommitteeAssignments - req 1000 vs - 250000 vc 4.6973 ms/op 4.4733 ms/op 1.05
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.0700 ns/op 4.9600 ns/op 1.02
state getBlockRootAtSlot - 250000 vs - 7PWei 751.21 ns/op 1.0615 us/op 0.71
computeProposers - vc 250000 11.691 ms/op 10.780 ms/op 1.08
computeEpochShuffling - vc 250000 108.56 ms/op 102.74 ms/op 1.06
getNextSyncCommittee - vc 250000 193.11 ms/op 171.52 ms/op 1.13

by benchmarkbot/action

@dapplion
Copy link
Contributor Author

@nazarhussain sim tests failed with

file:///home/runner/work/lodestar/lodestar/packages/utils/src/sleep.ts:24
      reject(new ErrorAborted());
             ^
ErrorAborted: Aborted 
    at AbortSignal.onAbort (file:///home/runner/work/lodestar/lodestar/packages/utils/src/sleep.ts:24:14)
    at AbortSignal.[nodejs.internal.kHybridDispatch] (node:internal/event_target:736:20)
    at AbortSignal.dispatchEvent (node:internal/event_target:678:26)
    at abortSignal (node:internal/abort_controller:292:10)
    at AbortController.abort (node:internal/abort_controller:323:5)
    at SimulationEnvironment.stop (file:///home/runner/work/lodestar/lodestar/packages/cli/test/utils/simulation/SimulationEnvironment.ts:210:29)
    at Timeout._onTimeout (file:///home/runner/work/lodestar/lodestar/packages/cli/test/utils/simulation/SimulationEnvironment.ts:140:20)
    at listOnTimeout (node:internal/timers:559:17)
    at processTimers (node:internal/timers:502:7)

after apparently completing successfully, can you look into it?

@nazarhussain nazarhussain mentioned this pull request Nov 17, 2022
@nazarhussain
Copy link
Contributor

@dapplion This one failed because the nodes could not sync and tests run out of expected timeout.

Simulation environment "multi-fork" is stopping: On timeout

@dapplion
Copy link
Contributor Author

Note: https://github.com/Inphi/eip4844-interop repo uses a modified minimal preset (SLOTS_PER_EPOCH = 3) which breaks a bunch a tests here

// Finalized tram of blobs
// TODO EIP-4844: Should the finalized block be included here or below?

if (endSlot <= finalizedSlot) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

startSlot

@@ -35,6 +36,9 @@ export async function createNodejsLibp2p(options: ILibp2pOptions): Promise<Libp2
peerDiscovery.push(new MulticastDNS());
}
}

const yamuxInstance = yamux()();
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note to self: do not merge this change, yamux must be tested and merged on its own

@g11tech g11tech force-pushed the dapplion/eip-4844 branch 3 times, most recently from eea89f7 to 52c1761 Compare December 29, 2022 07:10
@dapplion dapplion mentioned this pull request Jan 4, 2023
10 tasks
@g11tech g11tech force-pushed the dapplion/eip-4844 branch 2 times, most recently from e252d89 to 0053a51 Compare January 25, 2023 18:17
dapplion and others added 4 commits February 2, 2023 17:27
commit f1e4aaa
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Dec 1 15:31:01 2022 +0700

    Fix get state for attestation verification logic

commit ad2c300
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Dec 1 15:14:14 2022 +0700

    Add eip4844 sim test

commit 6bf2e62
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Dec 1 14:54:45 2022 +0700

    Fix typo in gossipsub coreTopicsAtFork

commit 2e565a8
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Dec 1 14:54:08 2022 +0700

    Fix typo in updateSyncState currentEpoch

commit 4169498
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Dec 1 14:53:54 2022 +0700

    Create valid blobs in mock

commit 0f22a80
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Dec 1 00:50:08 2022 +0700

    Debug failing sim tests with more better progress logs

commit 32b1779
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Wed Nov 30 22:19:54 2022 +0700

    Don't create invalid mock data

commit d77e741
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Wed Nov 30 15:52:08 2022 +0700

    Allow to run mock EL in sim tests

commit 6fd5d46
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Wed Nov 30 15:51:25 2022 +0700

    Log chain config on start

commit fb58663
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Wed Nov 30 15:50:36 2022 +0700

    Add disabledWithdrawals

commit ad9b478
Author: gajinder <develop@g11tech.io>
Date:   Wed Nov 30 13:25:52 2022 +0530

    add eip4844 interop

commit 74287e3
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Wed Nov 30 00:22:36 2022 +0700

    Skip blobs validation if from gossip

commit b30aa71
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Wed Nov 30 00:09:16 2022 +0700

    Use enum for BlockImport

commit 4bf587d
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Sun Nov 27 12:38:07 2022 +0700

    Add note on reorg blobs

commit ccdb9bb
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Sun Nov 27 09:33:29 2022 +0700

    Prune producedBlobsSidecarCache

commit ebf0eae
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Sun Nov 27 09:28:05 2022 +0700

    Subscribe beacon_block_and_blobs_sidecar on fork

commit 8614743
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Sun Nov 27 09:27:51 2022 +0700

    Simplify blobsSidecar cache type

commit 58c595a
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Sun Nov 27 02:00:47 2022 +0700

    Fix rebase issues

commit 804887d
Merge: 22d1f85 c1ab090
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Sun Nov 27 01:56:37 2022 +0700

    Merge remote-tracking branch 'origin/unstable' into dapplion/eip-4844

commit 22d1f85
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Sat Nov 26 23:51:21 2022 +0700

    Fix types

commit 0216099
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Sat Nov 26 23:40:57 2022 +0700

    fix rebase issues

commit 6796207
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Sat Nov 26 23:40:28 2022 +0700

    Subscribe to reqresp methods on forks

commit 99cf400
Merge: d33472b 798ec16
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Sat Nov 26 21:35:52 2022 +0700

    Merge remote-tracking branch 'origin/unstable' into dapplion/eip-4844

commit d33472b
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Sat Nov 26 11:05:06 2022 +0700

    Mock blobs WIP

commit 1dd5e74
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Fri Nov 25 00:02:41 2022 +0300

    Enable blobs reqresp

commit 9c0a0e6
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Fri Nov 25 00:02:18 2022 +0300

    Add yamux

commit 0427435
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Sat Nov 19 01:45:11 2022 +0100

    Temp change FIELD_ELEMENTS_PER_BLOB

commit 370c733
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Sat Nov 19 01:44:30 2022 +0100

    Ensure correct sizes on blob bundle

commit 90f0d4c
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Sat Nov 19 00:57:47 2022 +0100

    Fix verifyKzgCommitmentsAgainstTransactions math

commit 5a6652b
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Fri Nov 18 23:12:46 2022 +0100

    Check allVersionedHashes length

commit 37f3387
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Fri Nov 18 22:40:36 2022 +0100

    Skip verifyAggregateKzgProof is empty blobs

commit e5d6f4f
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Fri Nov 18 22:15:30 2022 +0100

    Set SLOTS_PER_EPOCH: 3 for interop tests

commit 8f18bd8
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Fri Nov 18 21:51:06 2022 +0100

    Move trusted setup file out of src

commit 8d0f1c0
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Fri Nov 18 02:01:19 2022 +0100

    Revert fork-choice changes

commit 3b82bd7
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Fri Nov 18 01:57:44 2022 +0100

    Only line JSON

commit b47162b
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Fri Nov 18 01:49:29 2022 +0100

    Revert preset changes

commit c34e969
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Fri Nov 18 01:18:23 2022 +0100

    Fix test bellatrix/fork_choice/on_merge_block/pyspec_tests/all_valid

commit 9ea8348
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Fri Nov 18 00:43:16 2022 +0100

    Fix test Should subscribe to gossip core topics on demand

commit 58fb922
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Fri Nov 18 00:40:26 2022 +0100

    Fix test utils / params / assertEqualParams

commit 0d49fa4
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 23:33:37 2022 +0100

    Fix gossipsub test

commit 7ae69de
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 23:29:23 2022 +0100

    Fix UnknownBlockSync test

commit 4e2a63a
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 23:29:12 2022 +0100

    Remove useless test

commit 4f544df
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 23:23:25 2022 +0100

    Fix enrForkID.nextForkVersion test

commit a3f479e
Author: Lion - dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 19:09:15 2022 +0100

    Disable parallel for spec tests (#4776)

commit e7eba90
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 19:28:26 2022 +0100

    Fix assertLinearChainSegment

commit 864b7d3
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 18:06:13 2022 +0100

    Review PR

commit 6963c1c
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 16:23:00 2022 +0100

    FIx readme checks

commit ece46f0
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 15:43:03 2022 +0100

    Fix tests

commit 6c878e5
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 14:55:05 2022 +0100

    Fix topic test

commit 0f44e49
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 14:54:05 2022 +0100

    Move kzg test to beacon-node

commit 3f7a0ad
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 14:46:30 2022 +0100

    Fix types

commit 27e503f
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 14:46:15 2022 +0100

    Remove old trusted setup

commit fdeb4f5
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 14:36:35 2022 +0100

    Review PR pt.2

commit 7da555e
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 12:10:04 2022 +0100

    Remove   DOMAIN_BLOBS_SIDECAR

commit ceea759
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 12:06:59 2022 +0100

    Ensure forks are not scheduled in presets

commit 4148785
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 12:06:09 2022 +0100

    Review Dan PR

commit e969457
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 11:03:44 2022 +0100

    Fix types

commit e16a699
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 09:53:17 2022 +0100

    Implement blobsSidecar pruning

commit c90f0fb
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 09:42:05 2022 +0100

    Archive blobs

commit 4632bcf
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Thu Nov 17 09:41:54 2022 +0100

    Fix types

commit 46f58a4
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Wed Nov 16 23:35:37 2022 +0100

    Clean up changes

commit 3d86a02
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Wed Nov 16 21:00:33 2022 +0100

    WIP import block+blobs coupled

commit d268815
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Wed Nov 16 18:57:22 2022 +0100

    WIP block processing

commit 175117d
Merge: ffb6336 bfe5da8
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Wed Nov 16 11:44:02 2022 +0100

    Merge remote-tracking branch 'origin/unstable' into dapplion/eip-4844

commit ffb6336
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Tue Nov 15 21:27:30 2022 +0100

    WIP

commit 611a609
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Tue Nov 15 15:36:42 2022 +0100

    Fix script name

commit 26a0794
Author: dapplion <35266934+dapplion@users.noreply.github.com>
Date:   Tue Nov 15 15:33:38 2022 +0100

    De-couple block production

commit 513b873
Author: dancoffman <coffman@coinbase.com>
Date:   Wed Nov 9 10:30:54 2022 -0800

    Bump c-kzg to version that handles empty array of blobs -- remove application code special-case

commit a63b043
Author: dancoffman <coffman@coinbase.com>
Date:   Tue Nov 8 13:00:57 2022 -0800

    Update version of c-kzg to one which does not crash for blobs arrays of length 0 and 1

commit 6a8d536
Author: dancoffman <coffman@coinbase.com>
Date:   Mon Nov 7 23:33:02 2022 -0800

    Delete unused polynomialCommitments file

commit 656b7d3
Author: dancoffman <coffman@coinbase.com>
Date:   Mon Nov 7 23:26:44 2022 -0800

    processBlocks for 4844 blocks. Do not compute aggregate proof for empty array (it crashes)

commit aee7d95
Author: dancoffman <coffman@coinbase.com>
Date:   Mon Nov 7 16:53:02 2022 -0800

    Bump c-kzg again

commit b992fc6
Author: dancoffman <coffman@coinbase.com>
Date:   Mon Nov 7 16:52:09 2022 -0800

    Add unit test just to verify the c-kzg library works

commit 054cfb6
Author: dancoffman <coffman@coinbase.com>
Date:   Mon Nov 7 15:17:50 2022 -0800

    Fix trusted_setup file path

commit 7e8f3ab
Author: dancoffman <coffman@coinbase.com>
Date:   Mon Nov 7 11:55:34 2022 -0800

    Load KZG setup

commit 513e277
Author: dancoffman <coffman@coinbase.com>
Date:   Mon Nov 7 11:51:04 2022 -0800

    Bump c-kzg to the version that compiles on Linux

commit 78220ef
Author: dancoffman <coffman@coinbase.com>
Date:   Mon Nov 7 11:32:30 2022 -0800

    Bump @types/node

commit 3db4f57
Author: dancoffman <coffman@coinbase.com>
Date:   Sat Nov 5 01:17:08 2022 -0700

    Use computeAggregateKzgProof from the c-kzg package and delete all the code it encapsulates

commit 2fe076b
Author: dancoffman <coffman@coinbase.com>
Date:   Mon Oct 31 17:36:49 2022 -0700

    Drill blobs all the way through

commit ad1a62f
Author: dancoffman <coffman@coinbase.com>
Date:   Mon Oct 31 16:10:33 2022 -0700

    Use SSZ object correctly

commit 28e9f8a
Author: dancoffman <coffman@coinbase.com>
Date:   Mon Oct 31 15:11:59 2022 -0700

    publishBlockWithBlobs implementation. A lot more moon math scaffolding that will be removed.

commit d1e3e4b
Author: dancoffman <coffman@coinbase.com>
Date:   Sat Oct 29 00:23:42 2022 -0700

    Scaffold block proposing w/ KZG commitments

commit f3cedf9
Author: dancoffman <coffman@coinbase.com>
Date:   Fri Oct 28 22:28:22 2022 -0700

    Add a couple more of the polynomial commitment types

commit 2e9e41a
Author: dancoffman <coffman@coinbase.com>
Date:   Fri Oct 28 16:32:14 2022 -0700

    Add chain config constants and validator types

commit b166387
Author: dancoffman <coffman@coinbase.com>
Date:   Fri Oct 28 15:28:25 2022 -0700

    Fix assigning excessDataGas to ExecutionPayload

commit 2a4bedb
Author: dancoffman <coffman@coinbase.com>
Date:   Fri Oct 28 12:09:21 2022 -0700

    Revert Capella ssz type change

commit 89c43bf
Author: dancoffman <coffman@coinbase.com>
Date:   Fri Oct 28 12:08:00 2022 -0700

    Revert upgradeStateToCapella

commit 87ecaaf
Author: dancoffman <coffman@coinbase.com>
Date:   Fri Oct 28 11:57:55 2022 -0700

    Fix allForks SSZ types

commit e6c13e6
Author: dancoffman <coffman@coinbase.com>
Date:   Fri Oct 28 12:13:17 2022 -0700

    Add beacon_block_and_blobs_sidecar gossip type

commit f5c8cfa
Author: dancoffman <coffman@coinbase.com>
Date:   Fri Oct 21 11:54:04 2022 -0700

    Fix: Accidentally removed assigning execution payload to block

commit 78996a9
Author: dancoffman <coffman@coinbase.com>
Date:   Thu Oct 20 15:56:08 2022 -0700

    Fix state upgrade and patch blocks with missing fields when necessary

commit a83df9e
Author: dancoffman <coffman@coinbase.com>
Date:   Thu Oct 20 09:42:02 2022 -0700

    When producing a block to propose, assign blobKzgCommitments from Engine API getBlobsBundle response

commit 6a7630f
Author: dancoffman <coffman@coinbase.com>
Date:   Wed Oct 19 16:33:41 2022 -0700

    Add engine_getBlobsBundleV1 Engine API call

commit 9de5e10
Author: dancoffman <coffman@coinbase.com>
Date:   Wed Oct 19 15:11:08 2022 -0700

    Capella and 4844 state upgrades

commit 71e7e0b
Author: dancoffman <coffman@coinbase.com>
Date:   Wed Oct 19 12:08:06 2022 -0700

    Add DOMAIN_BLOBS_SIDECAR

commit d3fe373
Author: dancoffman <coffman@coinbase.com>
Date:   Wed Oct 19 12:05:04 2022 -0700

    Beacon chain types complete

commit 451f6e9
Author: dancoffman <coffman@coinbase.com>
Date:   Wed Oct 19 11:21:07 2022 -0700

    Spec-matching configs and presets

commit 266ba7a
Author: dancoffman <coffman@coinbase.com>
Date:   Tue Oct 18 18:56:33 2022 -0700

    Sketch out EIP-4844 types

commit 002d850
Author: dancoffman <coffman@coinbase.com>
Date:   Mon Oct 17 15:21:10 2022 -0700

    Updates to allow test:spec-min|main work, some edits to contributing instructions

fix build

Remove duplicate mentions of beacon_block_and_blobs_sidecar

Remove duplicate beaconBlockAndBlobsSidecarByRoot

Remove unwanted diff

run with withdrawals include

Fix sim tests types

Update command

update package

fix port

update the run

merge interop image update

move to time

Remove unwanted diff

Fix merge issue with sim tests

Fix code issue during merge conflicts

Remove a duplicate function decleration

remove bls-to-execution-change empty assignment

lint

fix issues
@dapplion
Copy link
Contributor Author

Closing, base eip4844 features already merged.

@dapplion dapplion closed this May 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
spec-deneb Issues targeting the Deneb spec version
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants