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

feat: publish blobsidecars instead of blobssidecar #5662

Merged
merged 4 commits into from
Jun 19, 2023

Conversation

g11tech
Copy link
Contributor

@g11tech g11tech commented Jun 17, 2023

Continuing extraction from

This PR moves the publishing to blobsidecars from blobssidecar

@g11tech g11tech requested a review from a team as a code owner June 17, 2023 07:27
@g11tech g11tech enabled auto-merge (squash) June 17, 2023 07:28
@github-actions
Copy link
Contributor

github-actions bot commented Jun 17, 2023

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 2242737 Previous: 4313726 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 802.77 us/op 1.0310 ms/op 0.78
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 44.892 us/op 46.349 us/op 0.97
BLS verify - blst-native 1.2028 ms/op 1.2207 ms/op 0.99
BLS verifyMultipleSignatures 3 - blst-native 2.4502 ms/op 2.4751 ms/op 0.99
BLS verifyMultipleSignatures 8 - blst-native 5.1359 ms/op 5.3041 ms/op 0.97
BLS verifyMultipleSignatures 32 - blst-native 18.606 ms/op 19.276 ms/op 0.97
BLS aggregatePubkeys 32 - blst-native 25.065 us/op 25.579 us/op 0.98
BLS aggregatePubkeys 128 - blst-native 97.342 us/op 100.15 us/op 0.97
getAttestationsForBlock 52.022 ms/op 63.396 ms/op 0.82
isKnown best case - 1 super set check 248.00 ns/op 257.00 ns/op 0.96
isKnown normal case - 2 super set checks 243.00 ns/op 248.00 ns/op 0.98
isKnown worse case - 16 super set checks 244.00 ns/op 248.00 ns/op 0.98
CheckpointStateCache - add get delete 4.7880 us/op 4.8570 us/op 0.99
validate gossip signedAggregateAndProof - struct 2.7004 ms/op 2.7542 ms/op 0.98
validate gossip attestation - struct 1.2944 ms/op 1.2667 ms/op 1.02
pickEth1Vote - no votes 1.2303 ms/op 1.1723 ms/op 1.05
pickEth1Vote - max votes 11.440 ms/op 11.439 ms/op 1.00
pickEth1Vote - Eth1Data hashTreeRoot value x2048 8.8401 ms/op 9.0583 ms/op 0.98
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 12.941 ms/op 18.161 ms/op 0.71
pickEth1Vote - Eth1Data fastSerialize value x2048 627.16 us/op 616.64 us/op 1.02
pickEth1Vote - Eth1Data fastSerialize tree x2048 7.5500 ms/op 8.5149 ms/op 0.89
bytes32 toHexString 471.00 ns/op 462.00 ns/op 1.02
bytes32 Buffer.toString(hex) 337.00 ns/op 327.00 ns/op 1.03
bytes32 Buffer.toString(hex) from Uint8Array 519.00 ns/op 521.00 ns/op 1.00
bytes32 Buffer.toString(hex) + 0x 339.00 ns/op 326.00 ns/op 1.04
Object access 1 prop 0.16200 ns/op 0.16300 ns/op 0.99
Map access 1 prop 0.15600 ns/op 0.16400 ns/op 0.95
Object get x1000 6.3080 ns/op 6.3520 ns/op 0.99
Map get x1000 0.60800 ns/op 0.60600 ns/op 1.00
Object set x1000 51.292 ns/op 49.809 ns/op 1.03
Map set x1000 42.413 ns/op 42.169 ns/op 1.01
Return object 10000 times 0.23270 ns/op 0.23100 ns/op 1.01
Throw Error 10000 times 4.1080 us/op 4.0710 us/op 1.01
fastMsgIdFn sha256 / 200 bytes 3.3910 us/op 3.4040 us/op 1.00
fastMsgIdFn h32 xxhash / 200 bytes 272.00 ns/op 274.00 ns/op 0.99
fastMsgIdFn h64 xxhash / 200 bytes 384.00 ns/op 382.00 ns/op 1.01
fastMsgIdFn sha256 / 1000 bytes 11.322 us/op 11.390 us/op 0.99
fastMsgIdFn h32 xxhash / 1000 bytes 400.00 ns/op 401.00 ns/op 1.00
fastMsgIdFn h64 xxhash / 1000 bytes 453.00 ns/op 449.00 ns/op 1.01
fastMsgIdFn sha256 / 10000 bytes 99.954 us/op 101.60 us/op 0.98
fastMsgIdFn h32 xxhash / 10000 bytes 1.8080 us/op 1.8390 us/op 0.98
fastMsgIdFn h64 xxhash / 10000 bytes 1.2940 us/op 1.2940 us/op 1.00
enrSubnets - fastDeserialize 64 bits 1.2750 us/op 1.2150 us/op 1.05
enrSubnets - ssz BitVector 64 bits 478.00 ns/op 473.00 ns/op 1.01
enrSubnets - fastDeserialize 4 bits 170.00 ns/op 168.00 ns/op 1.01
enrSubnets - ssz BitVector 4 bits 482.00 ns/op 477.00 ns/op 1.01
prioritizePeers score -10:0 att 32-0.1 sync 2-0 105.19 us/op 107.18 us/op 0.98
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 128.11 us/op 133.70 us/op 0.96
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 157.56 us/op 162.91 us/op 0.97
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 291.67 us/op 290.51 us/op 1.00
prioritizePeers score 0:0 att 64-1 sync 4-1 361.69 us/op 351.86 us/op 1.03
array of 16000 items push then shift 1.6047 us/op 1.6126 us/op 1.00
LinkedList of 16000 items push then shift 8.5840 ns/op 8.6650 ns/op 0.99
array of 16000 items push then pop 79.059 ns/op 84.271 ns/op 0.94
LinkedList of 16000 items push then pop 8.4330 ns/op 8.4310 ns/op 1.00
array of 24000 items push then shift 2.3061 us/op 2.4227 us/op 0.95
LinkedList of 24000 items push then shift 8.6040 ns/op 10.630 ns/op 0.81
array of 24000 items push then pop 73.051 ns/op 70.438 ns/op 1.04
LinkedList of 24000 items push then pop 8.3060 ns/op 8.4430 ns/op 0.98
intersect bitArray bitLen 8 13.546 ns/op 13.246 ns/op 1.02
intersect array and set length 8 74.718 ns/op 75.517 ns/op 0.99
intersect bitArray bitLen 128 42.608 ns/op 43.896 ns/op 0.97
intersect array and set length 128 1.0069 us/op 1.0385 us/op 0.97
Buffer.concat 32 items 2.8540 us/op 2.7230 us/op 1.05
Uint8Array.set 32 items 2.8610 us/op 2.8840 us/op 0.99
transfer serialized Status (84 B) 1.9700 us/op 2.2070 us/op 0.89
copy serialized Status (84 B) 1.7270 us/op 1.9800 us/op 0.87
transfer serialized SignedVoluntaryExit (112 B) 2.1730 us/op 2.4220 us/op 0.90
copy serialized SignedVoluntaryExit (112 B) 1.7770 us/op 1.8340 us/op 0.97
transfer serialized ProposerSlashing (416 B) 2.5560 us/op 2.8620 us/op 0.89
copy serialized ProposerSlashing (416 B) 2.6860 us/op 3.3650 us/op 0.80
transfer serialized Attestation (485 B) 2.9610 us/op 2.8020 us/op 1.06
copy serialized Attestation (485 B) 2.6840 us/op 3.1770 us/op 0.84
transfer serialized AttesterSlashing (33232 B) 2.8260 us/op 2.7350 us/op 1.03
copy serialized AttesterSlashing (33232 B) 5.9330 us/op 5.1950 us/op 1.14
transfer serialized Small SignedBeaconBlock (128000 B) 3.0420 us/op 2.5900 us/op 1.17
copy serialized Small SignedBeaconBlock (128000 B) 20.013 us/op 13.168 us/op 1.52
transfer serialized Avg SignedBeaconBlock (200000 B) 3.2200 us/op 2.7510 us/op 1.17
copy serialized Avg SignedBeaconBlock (200000 B) 62.189 us/op 18.488 us/op 3.36
transfer serialized BlobsSidecar (524380 B) 3.1430 us/op 2.7140 us/op 1.16
copy serialized BlobsSidecar (524380 B) 130.38 us/op 83.201 us/op 1.57
transfer serialized Big SignedBeaconBlock (1000000 B) 3.3240 us/op 2.8740 us/op 1.16
copy serialized Big SignedBeaconBlock (1000000 B) 235.92 us/op 299.60 us/op 0.79
pass gossip attestations to forkchoice per slot 2.6004 ms/op 2.6476 ms/op 0.98
forkChoice updateHead vc 100000 bc 64 eq 0 2.0320 ms/op 2.0835 ms/op 0.98
forkChoice updateHead vc 600000 bc 64 eq 0 11.466 ms/op 11.231 ms/op 1.02
forkChoice updateHead vc 1000000 bc 64 eq 0 21.423 ms/op 18.242 ms/op 1.17
forkChoice updateHead vc 600000 bc 320 eq 0 16.356 ms/op 17.798 ms/op 0.92
forkChoice updateHead vc 600000 bc 1200 eq 0 79.555 ms/op 81.643 ms/op 0.97
forkChoice updateHead vc 600000 bc 64 eq 1000 20.299 ms/op 20.763 ms/op 0.98
forkChoice updateHead vc 600000 bc 64 eq 10000 22.576 ms/op 21.907 ms/op 1.03
forkChoice updateHead vc 600000 bc 64 eq 300000 30.707 ms/op 30.657 ms/op 1.00
computeDeltas 3.7980 ms/op 4.6420 ms/op 0.82
computeProposerBoostScoreFromBalances 1.7818 ms/op 1.7797 ms/op 1.00
altair processAttestation - 250000 vs - 7PWei normalcase 2.0961 ms/op 2.1247 ms/op 0.99
altair processAttestation - 250000 vs - 7PWei worstcase 3.2135 ms/op 3.3905 ms/op 0.95
altair processAttestation - setStatus - 1/6 committees join 137.91 us/op 136.53 us/op 1.01
altair processAttestation - setStatus - 1/3 committees join 272.00 us/op 270.04 us/op 1.01
altair processAttestation - setStatus - 1/2 committees join 362.13 us/op 359.02 us/op 1.01
altair processAttestation - setStatus - 2/3 committees join 460.89 us/op 442.38 us/op 1.04
altair processAttestation - setStatus - 4/5 committees join 635.25 us/op 640.89 us/op 0.99
altair processAttestation - setStatus - 100% committees join 745.58 us/op 743.85 us/op 1.00
altair processBlock - 250000 vs - 7PWei normalcase 15.776 ms/op 21.159 ms/op 0.75
altair processBlock - 250000 vs - 7PWei normalcase hashState 26.574 ms/op 30.534 ms/op 0.87
altair processBlock - 250000 vs - 7PWei worstcase 52.621 ms/op 60.376 ms/op 0.87
altair processBlock - 250000 vs - 7PWei worstcase hashState 66.288 ms/op 77.875 ms/op 0.85
phase0 processBlock - 250000 vs - 7PWei normalcase 1.9329 ms/op 2.1396 ms/op 0.90
phase0 processBlock - 250000 vs - 7PWei worstcase 27.421 ms/op 35.416 ms/op 0.77
altair processEth1Data - 250000 vs - 7PWei normalcase 452.05 us/op 474.65 us/op 0.95
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.6040 us/op 10.546 us/op 0.63
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 19.370 us/op 31.586 us/op 0.61
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 8.5900 us/op 12.971 us/op 0.66
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.2570 us/op 10.585 us/op 0.59
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 74.262 us/op 73.878 us/op 1.01
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 649.67 us/op 1.2283 ms/op 0.53
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 906.71 us/op 1.6555 ms/op 0.55
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 882.14 us/op 1.6308 ms/op 0.54
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.1746 ms/op 2.2448 ms/op 0.97
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.4498 ms/op 2.4602 ms/op 0.59
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.5290 ms/op 3.8000 ms/op 0.93
Tree 40 250000 create 281.23 ms/op 312.02 ms/op 0.90
Tree 40 250000 get(125000) 173.87 ns/op 184.07 ns/op 0.94
Tree 40 250000 set(125000) 890.54 ns/op 928.07 ns/op 0.96
Tree 40 250000 toArray() 18.218 ms/op 17.335 ms/op 1.05
Tree 40 250000 iterate all - toArray() + loop 17.988 ms/op 17.447 ms/op 1.03
Tree 40 250000 iterate all - get(i) 66.681 ms/op 69.928 ms/op 0.95
MutableVector 250000 create 9.5287 ms/op 14.320 ms/op 0.67
MutableVector 250000 get(125000) 6.4280 ns/op 6.2380 ns/op 1.03
MutableVector 250000 set(125000) 261.67 ns/op 243.57 ns/op 1.07
MutableVector 250000 toArray() 2.9382 ms/op 2.6480 ms/op 1.11
MutableVector 250000 iterate all - toArray() + loop 2.7206 ms/op 2.7037 ms/op 1.01
MutableVector 250000 iterate all - get(i) 1.4729 ms/op 1.4603 ms/op 1.01
Array 250000 create 2.4194 ms/op 2.4795 ms/op 0.98
Array 250000 clone - spread 1.0763 ms/op 1.1701 ms/op 0.92
Array 250000 get(125000) 0.52800 ns/op 0.58000 ns/op 0.91
Array 250000 set(125000) 0.59900 ns/op 0.65300 ns/op 0.92
Array 250000 iterate all - loop 80.127 us/op 83.573 us/op 0.96
effectiveBalanceIncrements clone Uint8Array 300000 26.234 us/op 27.817 us/op 0.94
effectiveBalanceIncrements clone MutableVector 300000 320.00 ns/op 372.00 ns/op 0.86
effectiveBalanceIncrements rw all Uint8Array 300000 163.88 us/op 168.08 us/op 0.97
effectiveBalanceIncrements rw all MutableVector 300000 74.850 ms/op 83.069 ms/op 0.90
phase0 afterProcessEpoch - 250000 vs - 7PWei 107.45 ms/op 114.74 ms/op 0.94
phase0 beforeProcessEpoch - 250000 vs - 7PWei 39.982 ms/op 46.786 ms/op 0.85
altair processEpoch - mainnet_e81889 321.32 ms/op 375.93 ms/op 0.85
mainnet_e81889 - altair beforeProcessEpoch 63.118 ms/op 68.990 ms/op 0.91
mainnet_e81889 - altair processJustificationAndFinalization 17.668 us/op 26.536 us/op 0.67
mainnet_e81889 - altair processInactivityUpdates 5.4296 ms/op 5.7125 ms/op 0.95
mainnet_e81889 - altair processRewardsAndPenalties 51.089 ms/op 87.646 ms/op 0.58
mainnet_e81889 - altair processRegistryUpdates 2.7890 us/op 4.2220 us/op 0.66
mainnet_e81889 - altair processSlashings 462.00 ns/op 855.00 ns/op 0.54
mainnet_e81889 - altair processEth1DataReset 483.00 ns/op 907.00 ns/op 0.53
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2351 ms/op 2.2860 ms/op 0.54
mainnet_e81889 - altair processSlashingsReset 4.8110 us/op 6.0920 us/op 0.79
mainnet_e81889 - altair processRandaoMixesReset 4.7970 us/op 7.1430 us/op 0.67
mainnet_e81889 - altair processHistoricalRootsUpdate 700.00 ns/op 1.7870 us/op 0.39
mainnet_e81889 - altair processParticipationFlagUpdates 2.8080 us/op 3.7640 us/op 0.75
mainnet_e81889 - altair processSyncCommitteeUpdates 505.00 ns/op 1.1370 us/op 0.44
mainnet_e81889 - altair afterProcessEpoch 123.57 ms/op 127.98 ms/op 0.97
phase0 processEpoch - mainnet_e58758 357.80 ms/op 408.91 ms/op 0.88
mainnet_e58758 - phase0 beforeProcessEpoch 135.99 ms/op 156.83 ms/op 0.87
mainnet_e58758 - phase0 processJustificationAndFinalization 16.698 us/op 26.018 us/op 0.64
mainnet_e58758 - phase0 processRewardsAndPenalties 67.176 ms/op 69.494 ms/op 0.97
mainnet_e58758 - phase0 processRegistryUpdates 7.8270 us/op 12.489 us/op 0.63
mainnet_e58758 - phase0 processSlashings 485.00 ns/op 797.00 ns/op 0.61
mainnet_e58758 - phase0 processEth1DataReset 488.00 ns/op 806.00 ns/op 0.61
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 943.42 us/op 1.8739 ms/op 0.50
mainnet_e58758 - phase0 processSlashingsReset 4.2830 us/op 7.0830 us/op 0.60
mainnet_e58758 - phase0 processRandaoMixesReset 4.6810 us/op 7.1570 us/op 0.65
mainnet_e58758 - phase0 processHistoricalRootsUpdate 652.00 ns/op 901.00 ns/op 0.72
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.2630 us/op 6.5020 us/op 0.66
mainnet_e58758 - phase0 afterProcessEpoch 93.715 ms/op 99.457 ms/op 0.94
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.2615 ms/op 1.1080 ms/op 1.14
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.4528 ms/op 1.4351 ms/op 1.01
altair processInactivityUpdates - 250000 normalcase 23.537 ms/op 33.989 ms/op 0.69
altair processInactivityUpdates - 250000 worstcase 25.498 ms/op 28.890 ms/op 0.88
phase0 processRegistryUpdates - 250000 normalcase 6.8720 us/op 9.2480 us/op 0.74
phase0 processRegistryUpdates - 250000 badcase_full_deposits 231.05 us/op 454.49 us/op 0.51
phase0 processRegistryUpdates - 250000 worstcase 0.5 125.38 ms/op 158.73 ms/op 0.79
altair processRewardsAndPenalties - 250000 normalcase 67.733 ms/op 75.637 ms/op 0.90
altair processRewardsAndPenalties - 250000 worstcase 67.282 ms/op 83.182 ms/op 0.81
phase0 getAttestationDeltas - 250000 normalcase 6.4692 ms/op 6.4303 ms/op 1.01
phase0 getAttestationDeltas - 250000 worstcase 6.4346 ms/op 6.6088 ms/op 0.97
phase0 processSlashings - 250000 worstcase 3.5998 ms/op 3.3808 ms/op 1.06
altair processSyncCommitteeUpdates - 250000 167.53 ms/op 181.34 ms/op 0.92
BeaconState.hashTreeRoot - No change 259.00 ns/op 265.00 ns/op 0.98
BeaconState.hashTreeRoot - 1 full validator 51.512 us/op 69.888 us/op 0.74
BeaconState.hashTreeRoot - 32 full validator 512.69 us/op 621.75 us/op 0.82
BeaconState.hashTreeRoot - 512 full validator 5.3295 ms/op 5.6108 ms/op 0.95
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 61.555 us/op 81.721 us/op 0.75
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 890.17 us/op 946.85 us/op 0.94
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 11.052 ms/op 14.512 ms/op 0.76
BeaconState.hashTreeRoot - 1 balances 50.662 us/op 56.811 us/op 0.89
BeaconState.hashTreeRoot - 32 balances 437.83 us/op 441.67 us/op 0.99
BeaconState.hashTreeRoot - 512 balances 4.4508 ms/op 5.4627 ms/op 0.81
BeaconState.hashTreeRoot - 250000 balances 73.653 ms/op 89.168 ms/op 0.83
aggregationBits - 2048 els - zipIndexesInBitList 14.876 us/op 15.736 us/op 0.95
regular array get 100000 times 32.242 us/op 33.361 us/op 0.97
wrappedArray get 100000 times 32.193 us/op 32.955 us/op 0.98
arrayWithProxy get 100000 times 15.422 ms/op 15.659 ms/op 0.98
ssz.Root.equals 541.00 ns/op 550.00 ns/op 0.98
byteArrayEquals 534.00 ns/op 542.00 ns/op 0.99
shuffle list - 16384 els 6.7329 ms/op 6.8852 ms/op 0.98
shuffle list - 250000 els 98.505 ms/op 101.00 ms/op 0.98
processSlot - 1 slots 9.2110 us/op 9.8250 us/op 0.94
processSlot - 32 slots 1.2646 ms/op 1.3413 ms/op 0.94
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 36.324 ms/op 43.828 ms/op 0.83
getCommitteeAssignments - req 1 vs - 250000 vc 2.8020 ms/op 2.9110 ms/op 0.96
getCommitteeAssignments - req 100 vs - 250000 vc 3.9603 ms/op 4.1366 ms/op 0.96
getCommitteeAssignments - req 1000 vs - 250000 vc 4.3767 ms/op 4.4676 ms/op 0.98
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.6200 ns/op 4.6400 ns/op 1.00
state getBlockRootAtSlot - 250000 vs - 7PWei 939.47 ns/op 1.1104 us/op 0.85
computeProposers - vc 250000 10.376 ms/op 10.989 ms/op 0.94
computeEpochShuffling - vc 250000 101.57 ms/op 102.12 ms/op 0.99
getNextSyncCommittee - vc 250000 165.11 ms/op 175.70 ms/op 0.94
computeSigningRoot for AttestationData 13.071 us/op 13.787 us/op 0.95
hash AttestationData serialized data then Buffer.toString(base64) 2.3998 us/op 2.4016 us/op 1.00
toHexString serialized data 1.0414 us/op 1.0677 us/op 0.98
Buffer.toString(base64) 308.25 ns/op 316.29 ns/op 0.97

by benchmarkbot/action

@g11tech g11tech merged commit 9a8a6f4 into unstable Jun 19, 2023
11 checks passed
@g11tech g11tech deleted the g11tech/publish-sidecars branch June 19, 2023 03:10
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.10.0 🎉

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.

None yet

3 participants