Skip to content

Connect final eip-4844 networking parts#4894

Merged
g11tech merged 1 commit intounstablefrom
dapplion/eip-4844-wire-network
Dec 8, 2022
Merged

Connect final eip-4844 networking parts#4894
g11tech merged 1 commit intounstablefrom
dapplion/eip-4844-wire-network

Conversation

@dapplion
Copy link
Contributor

@dapplion dapplion commented Dec 8, 2022

Motivation

Description

  • Enable eip-4844 ReqResp handlers on fork
  • Enable eip-4844 gossip on fork
  • Persist genesis blob on test run
  • Clean up names

@dapplion dapplion requested a review from a team as a code owner December 8, 2022 14:48
@g11tech
Copy link
Contributor

g11tech commented Dec 8, 2022

looks good!

@g11tech g11tech enabled auto-merge (squash) December 8, 2022 14:55
@github-actions
Copy link
Contributor

github-actions bot commented Dec 8, 2022

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: fa68359 Previous: 7746f53 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.4770 ms/op 1.5568 ms/op 1.59
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 84.077 us/op 59.956 us/op 1.40
BLS verify - blst-native 2.1799 ms/op 2.1694 ms/op 1.00
BLS verifyMultipleSignatures 3 - blst-native 4.4987 ms/op 4.4856 ms/op 1.00
BLS verifyMultipleSignatures 8 - blst-native 9.7278 ms/op 9.6951 ms/op 1.00
BLS verifyMultipleSignatures 32 - blst-native 35.337 ms/op 35.234 ms/op 1.00
BLS aggregatePubkeys 32 - blst-native 46.826 us/op 46.571 us/op 1.01
BLS aggregatePubkeys 128 - blst-native 182.61 us/op 181.59 us/op 1.01
getAttestationsForBlock 89.648 ms/op 75.517 ms/op 1.19
isKnown best case - 1 super set check 515.00 ns/op 468.00 ns/op 1.10
isKnown normal case - 2 super set checks 509.00 ns/op 459.00 ns/op 1.11
isKnown worse case - 16 super set checks 506.00 ns/op 460.00 ns/op 1.10
CheckpointStateCache - add get delete 10.273 us/op 8.5960 us/op 1.20
validate gossip signedAggregateAndProof - struct 5.0295 ms/op 5.0360 ms/op 1.00
validate gossip attestation - struct 2.3780 ms/op 2.3753 ms/op 1.00
pickEth1Vote - no votes 2.5175 ms/op 2.3970 ms/op 1.05
pickEth1Vote - max votes 22.926 ms/op 17.767 ms/op 1.29
pickEth1Vote - Eth1Data hashTreeRoot value x2048 13.627 ms/op 11.902 ms/op 1.14
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 22.713 ms/op 18.199 ms/op 1.25
pickEth1Vote - Eth1Data fastSerialize value x2048 1.5210 ms/op 1.4479 ms/op 1.05
pickEth1Vote - Eth1Data fastSerialize tree x2048 15.708 ms/op 11.401 ms/op 1.38
bytes32 toHexString 1.1550 us/op 899.00 ns/op 1.28
bytes32 Buffer.toString(hex) 798.00 ns/op 763.00 ns/op 1.05
bytes32 Buffer.toString(hex) from Uint8Array 1.0530 us/op 984.00 ns/op 1.07
bytes32 Buffer.toString(hex) + 0x 820.00 ns/op 761.00 ns/op 1.08
Object access 1 prop 0.41800 ns/op 0.33900 ns/op 1.23
Map access 1 prop 0.33000 ns/op 0.30800 ns/op 1.07
Object get x1000 11.180 ns/op 11.496 ns/op 0.97
Map get x1000 1.0200 ns/op 0.94100 ns/op 1.08
Object set x1000 81.090 ns/op 69.675 ns/op 1.16
Map set x1000 53.657 ns/op 45.229 ns/op 1.19
Return object 10000 times 0.43340 ns/op 0.43330 ns/op 1.00
Throw Error 10000 times 6.3350 us/op 5.9897 us/op 1.06
fastMsgIdFn sha256 / 200 bytes 4.9120 us/op 4.7990 us/op 1.02
fastMsgIdFn h32 xxhash / 200 bytes 564.00 ns/op 584.00 ns/op 0.97
fastMsgIdFn h64 xxhash / 200 bytes 849.00 ns/op 726.00 ns/op 1.17
fastMsgIdFn sha256 / 1000 bytes 15.318 us/op 15.370 us/op 1.00
fastMsgIdFn h32 xxhash / 1000 bytes 733.00 ns/op 741.00 ns/op 0.99
fastMsgIdFn h64 xxhash / 1000 bytes 977.00 ns/op 820.00 ns/op 1.19
fastMsgIdFn sha256 / 10000 bytes 133.74 us/op 134.93 us/op 0.99
fastMsgIdFn h32 xxhash / 10000 bytes 2.6610 us/op 2.6130 us/op 1.02
fastMsgIdFn h64 xxhash / 10000 bytes 2.0000 us/op 1.8840 us/op 1.06
enrSubnets - fastDeserialize 64 bits 2.7740 us/op 2.5660 us/op 1.08
enrSubnets - ssz BitVector 64 bits 828.00 ns/op 805.00 ns/op 1.03
enrSubnets - fastDeserialize 4 bits 399.00 ns/op 359.00 ns/op 1.11
enrSubnets - ssz BitVector 4 bits 845.00 ns/op 790.00 ns/op 1.07
prioritizePeers score -10:0 att 32-0.1 sync 2-0 83.327 us/op 82.171 us/op 1.01
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 119.61 us/op 120.81 us/op 0.99
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 206.29 us/op 189.61 us/op 1.09
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 407.11 us/op 380.54 us/op 1.07
prioritizePeers score 0:0 att 64-1 sync 4-1 445.91 us/op 441.95 us/op 1.01
RateTracker 1000000 limit, 1 obj count per request 189.07 ns/op 181.90 ns/op 1.04
RateTracker 1000000 limit, 2 obj count per request 141.00 ns/op 133.10 ns/op 1.06
RateTracker 1000000 limit, 4 obj count per request 115.96 ns/op 108.91 ns/op 1.06
RateTracker 1000000 limit, 8 obj count per request 100.11 ns/op 96.500 ns/op 1.04
RateTracker with prune 4.0840 us/op 3.7910 us/op 1.08
array of 16000 items push then shift 51.618 us/op 51.585 us/op 1.00
LinkedList of 16000 items push then shift 12.756 ns/op 12.016 ns/op 1.06
array of 16000 items push then pop 214.84 ns/op 194.99 ns/op 1.10
LinkedList of 16000 items push then pop 12.475 ns/op 11.882 ns/op 1.05
array of 24000 items push then shift 77.390 us/op 77.346 us/op 1.00
LinkedList of 24000 items push then shift 12.946 ns/op 12.156 ns/op 1.06
array of 24000 items push then pop 193.51 ns/op 188.33 ns/op 1.03
LinkedList of 24000 items push then pop 12.400 ns/op 12.007 ns/op 1.03
intersect bitArray bitLen 8 10.917 ns/op 10.848 ns/op 1.01
intersect array and set length 8 157.58 ns/op 145.56 ns/op 1.08
intersect bitArray bitLen 128 57.987 ns/op 57.736 ns/op 1.00
intersect array and set length 128 1.9717 us/op 1.7183 us/op 1.15
Buffer.concat 32 items 1.8470 ns/op 1.6940 ns/op 1.09
pass gossip attestations to forkchoice per slot 3.8231 ms/op 5.0667 ms/op 0.75
computeDeltas 4.7457 ms/op 4.7331 ms/op 1.00
computeProposerBoostScoreFromBalances 804.04 us/op 803.58 us/op 1.00
altair processAttestation - 250000 vs - 7PWei normalcase 4.1790 ms/op 3.2501 ms/op 1.29
altair processAttestation - 250000 vs - 7PWei worstcase 5.9779 ms/op 5.9053 ms/op 1.01
altair processAttestation - setStatus - 1/6 committees join 195.16 us/op 188.74 us/op 1.03
altair processAttestation - setStatus - 1/3 committees join 375.87 us/op 369.08 us/op 1.02
altair processAttestation - setStatus - 1/2 committees join 524.36 us/op 528.19 us/op 0.99
altair processAttestation - setStatus - 2/3 committees join 677.94 us/op 676.78 us/op 1.00
altair processAttestation - setStatus - 4/5 committees join 966.96 us/op 946.39 us/op 1.02
altair processAttestation - setStatus - 100% committees join 1.1636 ms/op 1.1391 ms/op 1.02
altair processBlock - 250000 vs - 7PWei normalcase 27.604 ms/op 24.798 ms/op 1.11
altair processBlock - 250000 vs - 7PWei normalcase hashState 39.261 ms/op 36.234 ms/op 1.08
altair processBlock - 250000 vs - 7PWei worstcase 84.414 ms/op 82.118 ms/op 1.03
altair processBlock - 250000 vs - 7PWei worstcase hashState 106.59 ms/op 100.87 ms/op 1.06
phase0 processBlock - 250000 vs - 7PWei normalcase 3.7800 ms/op 3.2632 ms/op 1.16
phase0 processBlock - 250000 vs - 7PWei worstcase 52.780 ms/op 50.453 ms/op 1.05
altair processEth1Data - 250000 vs - 7PWei normalcase 984.50 us/op 825.33 us/op 1.19
vc - 250000 eb 1 eth1 1 we 0 wn 0 - smpl 15 6.7220 us/op 10.709 us/op 0.63
vc - 250000 eb 0.95 eth1 0.1 we 0.05 wn 0 - smpl 219 21.048 us/op 38.923 us/op 0.54
vc - 250000 eb 0.95 eth1 0.3 we 0.05 wn 0 - smpl 42 9.5110 us/op 13.645 us/op 0.70
vc - 250000 eb 0.95 eth1 0.7 we 0.05 wn 0 - smpl 18 6.7340 us/op 11.988 us/op 0.56
vc - 250000 eb 0.1 eth1 0.1 we 0 wn 0 - smpl 1020 91.055 us/op 91.562 us/op 0.99
vc - 250000 eb 0.03 eth1 0.03 we 0 wn 0 - smpl 11777 912.94 us/op 924.01 us/op 0.99
vc - 250000 eb 0.01 eth1 0.01 we 0 wn 0 - smpl 141069 12.410 ms/op 11.612 ms/op 1.07
vc - 250000 eb 0 eth1 0 we 0 wn 0 - smpl 250000 22.221 ms/op 21.344 ms/op 1.04
vc - 250000 eb 0 eth1 0 we 0 wn 0 nocache - smpl 250000 77.119 ms/op 72.281 ms/op 1.07
vc - 250000 eb 0 eth1 1 we 0 wn 0 - smpl 250000 39.284 ms/op 38.995 ms/op 1.01
vc - 250000 eb 0 eth1 1 we 0 wn 0 nocache - smpl 250000 124.49 ms/op 118.55 ms/op 1.05
Tree 40 250000 create 1.0377 s/op 672.72 ms/op 1.54
Tree 40 250000 get(125000) 249.06 ns/op 221.79 ns/op 1.12
Tree 40 250000 set(125000) 3.8977 us/op 2.0323 us/op 1.92
Tree 40 250000 toArray() 31.376 ms/op 24.897 ms/op 1.26
Tree 40 250000 iterate all - toArray() + loop 31.735 ms/op 26.268 ms/op 1.21
Tree 40 250000 iterate all - get(i) 118.59 ms/op 109.61 ms/op 1.08
MutableVector 250000 create 17.391 ms/op 13.942 ms/op 1.25
MutableVector 250000 get(125000) 10.984 ns/op 10.617 ns/op 1.03
MutableVector 250000 set(125000) 825.86 ns/op 562.89 ns/op 1.47
MutableVector 250000 toArray() 7.1785 ms/op 5.8093 ms/op 1.24
MutableVector 250000 iterate all - toArray() + loop 7.3901 ms/op 5.9912 ms/op 1.23
MutableVector 250000 iterate all - get(i) 2.7157 ms/op 2.7023 ms/op 1.00
Array 250000 create 7.1426 ms/op 5.6865 ms/op 1.26
Array 250000 clone - spread 4.6989 ms/op 3.4455 ms/op 1.36
Array 250000 get(125000) 1.8200 ns/op 1.5630 ns/op 1.16
Array 250000 set(125000) 2.0430 ns/op 1.5610 ns/op 1.31
Array 250000 iterate all - loop 154.21 us/op 153.86 us/op 1.00
effectiveBalanceIncrements clone Uint8Array 300000 218.11 us/op 137.15 us/op 1.59
effectiveBalanceIncrements clone MutableVector 300000 754.00 ns/op 668.00 ns/op 1.13
effectiveBalanceIncrements rw all Uint8Array 300000 247.51 us/op 247.47 us/op 1.00
effectiveBalanceIncrements rw all MutableVector 300000 190.87 ms/op 139.20 ms/op 1.37
phase0 afterProcessEpoch - 250000 vs - 7PWei 191.77 ms/op 187.54 ms/op 1.02
phase0 beforeProcessEpoch - 250000 vs - 7PWei 63.938 ms/op 56.750 ms/op 1.13
altair processEpoch - mainnet_e81889 601.43 ms/op 545.79 ms/op 1.10
mainnet_e81889 - altair beforeProcessEpoch 90.953 ms/op 121.66 ms/op 0.75
mainnet_e81889 - altair processJustificationAndFinalization 18.358 us/op 28.113 us/op 0.65
mainnet_e81889 - altair processInactivityUpdates 10.169 ms/op 8.7464 ms/op 1.16
mainnet_e81889 - altair processRewardsAndPenalties 146.99 ms/op 77.641 ms/op 1.89
mainnet_e81889 - altair processRegistryUpdates 2.4290 us/op 4.6050 us/op 0.53
mainnet_e81889 - altair processSlashings 571.00 ns/op 1.2900 us/op 0.44
mainnet_e81889 - altair processEth1DataReset 622.00 ns/op 1.3420 us/op 0.46
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.4741 ms/op 2.0531 ms/op 1.21
mainnet_e81889 - altair processSlashingsReset 4.6890 us/op 7.2800 us/op 0.64
mainnet_e81889 - altair processRandaoMixesReset 4.2240 us/op 5.5270 us/op 0.76
mainnet_e81889 - altair processHistoricalRootsUpdate 564.00 ns/op 1.1100 us/op 0.51
mainnet_e81889 - altair processParticipationFlagUpdates 2.2330 us/op 4.3820 us/op 0.51
mainnet_e81889 - altair processSyncCommitteeUpdates 559.00 ns/op 915.00 ns/op 0.61
mainnet_e81889 - altair afterProcessEpoch 200.36 ms/op 199.10 ms/op 1.01
phase0 processEpoch - mainnet_e58758 516.83 ms/op 479.09 ms/op 1.08
mainnet_e58758 - phase0 beforeProcessEpoch 197.61 ms/op 172.51 ms/op 1.15
mainnet_e58758 - phase0 processJustificationAndFinalization 17.348 us/op 32.764 us/op 0.53
mainnet_e58758 - phase0 processRewardsAndPenalties 79.033 ms/op 67.498 ms/op 1.17
mainnet_e58758 - phase0 processRegistryUpdates 7.9920 us/op 13.701 us/op 0.58
mainnet_e58758 - phase0 processSlashings 552.00 ns/op 1.1580 us/op 0.48
mainnet_e58758 - phase0 processEth1DataReset 581.00 ns/op 1.3720 us/op 0.42
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.6431 ms/op 1.7142 ms/op 0.96
mainnet_e58758 - phase0 processSlashingsReset 3.7310 us/op 6.2710 us/op 0.59
mainnet_e58758 - phase0 processRandaoMixesReset 4.1630 us/op 9.0380 us/op 0.46
mainnet_e58758 - phase0 processHistoricalRootsUpdate 656.00 ns/op 998.00 ns/op 0.66
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.4770 us/op 6.3970 us/op 0.54
mainnet_e58758 - phase0 afterProcessEpoch 166.75 ms/op 164.84 ms/op 1.01
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.9599 ms/op 2.0271 ms/op 0.97
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.1973 ms/op 2.4070 ms/op 0.91
altair processInactivityUpdates - 250000 normalcase 38.010 ms/op 33.093 ms/op 1.15
altair processInactivityUpdates - 250000 worstcase 38.465 ms/op 41.003 ms/op 0.94
phase0 processRegistryUpdates - 250000 normalcase 6.6420 us/op 10.184 us/op 0.65
phase0 processRegistryUpdates - 250000 badcase_full_deposits 382.48 us/op 567.09 us/op 0.67
phase0 processRegistryUpdates - 250000 worstcase 0.5 217.52 ms/op 172.72 ms/op 1.26
altair processRewardsAndPenalties - 250000 normalcase 83.187 ms/op 104.48 ms/op 0.80
altair processRewardsAndPenalties - 250000 worstcase 78.837 ms/op 72.240 ms/op 1.09
phase0 getAttestationDeltas - 250000 normalcase 14.873 ms/op 11.842 ms/op 1.26
phase0 getAttestationDeltas - 250000 worstcase 14.630 ms/op 12.066 ms/op 1.21
phase0 processSlashings - 250000 worstcase 5.8055 ms/op 5.5071 ms/op 1.05
altair processSyncCommitteeUpdates - 250000 307.20 ms/op 280.70 ms/op 1.09
BeaconState.hashTreeRoot - No change 559.00 ns/op 523.00 ns/op 1.07
BeaconState.hashTreeRoot - 1 full validator 75.683 us/op 71.100 us/op 1.06
BeaconState.hashTreeRoot - 32 full validator 782.63 us/op 683.97 us/op 1.14
BeaconState.hashTreeRoot - 512 full validator 7.5589 ms/op 8.7318 ms/op 0.87
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 93.382 us/op 88.372 us/op 1.06
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.5158 ms/op 1.2364 ms/op 1.23
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 17.501 ms/op 16.080 ms/op 1.09
BeaconState.hashTreeRoot - 1 balances 70.164 us/op 69.535 us/op 1.01
BeaconState.hashTreeRoot - 32 balances 713.16 us/op 642.45 us/op 1.11
BeaconState.hashTreeRoot - 512 balances 6.5765 ms/op 6.1842 ms/op 1.06
BeaconState.hashTreeRoot - 250000 balances 101.37 ms/op 102.73 ms/op 0.99
aggregationBits - 2048 els - zipIndexesInBitList 46.349 us/op 27.199 us/op 1.70
regular array get 100000 times 60.592 us/op 60.552 us/op 1.00
wrappedArray get 100000 times 60.618 us/op 60.574 us/op 1.00
arrayWithProxy get 100000 times 27.871 ms/op 27.719 ms/op 1.01
ssz.Root.equals 572.00 ns/op 459.00 ns/op 1.25
byteArrayEquals 478.00 ns/op 457.00 ns/op 1.05
shuffle list - 16384 els 11.404 ms/op 11.554 ms/op 0.99
shuffle list - 250000 els 169.00 ms/op 168.97 ms/op 1.00
processSlot - 1 slots 13.661 us/op 12.187 us/op 1.12
processSlot - 32 slots 2.0185 ms/op 1.8823 ms/op 1.07
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 386.75 us/op 355.83 us/op 1.09
getCommitteeAssignments - req 1 vs - 250000 vc 5.4781 ms/op 5.3661 ms/op 1.02
getCommitteeAssignments - req 100 vs - 250000 vc 8.0631 ms/op 7.8710 ms/op 1.02
getCommitteeAssignments - req 1000 vs - 250000 vc 8.6489 ms/op 8.4134 ms/op 1.03
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 7.9300 ns/op 8.0900 ns/op 0.98
state getBlockRootAtSlot - 250000 vs - 7PWei 1.2451 us/op 969.98 ns/op 1.28
computeProposers - vc 250000 18.558 ms/op 16.786 ms/op 1.11
computeEpochShuffling - vc 250000 173.18 ms/op 172.27 ms/op 1.01
getNextSyncCommittee - vc 250000 307.97 ms/op 275.50 ms/op 1.12

by benchmarkbot/action

@g11tech g11tech merged commit d1e5d25 into unstable Dec 8, 2022
@g11tech g11tech deleted the dapplion/eip-4844-wire-network branch December 8, 2022 15:03
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.

2 participants