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: move requests from execution payload to beacon block body #7094

Draft
wants to merge 2 commits into
base: unstable
Choose a base branch
from

Conversation

ensi321
Copy link
Contributor

@ensi321 ensi321 commented Sep 19, 2024

  • Remove deposit, withdrawal and consolidation requests from execution payload
  • Define new container ExecutionRequests to encapsulate the three requests
  • Add ExecutionRequests to beacon block body
  • Update definition of engine_newPayloadV4 and engine_getPayloadV4 to include execution requests
  • Update Light client containers to use Deneb execution payload

Waiting for next spec test release and ethereum/execution-apis#587 to be finalized

Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: db4afe0 Previous: bb40ef7 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.7443 ms/op 1.9819 ms/op 0.88
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 38.099 us/op 48.475 us/op 0.79
BLS verify - blst 876.71 us/op 1.0266 ms/op 0.85
BLS verifyMultipleSignatures 3 - blst 1.2702 ms/op 1.3525 ms/op 0.94
BLS verifyMultipleSignatures 8 - blst 2.0741 ms/op 2.1102 ms/op 0.98
BLS verifyMultipleSignatures 32 - blst 4.4385 ms/op 6.6228 ms/op 0.67
BLS verifyMultipleSignatures 64 - blst 8.2699 ms/op 10.977 ms/op 0.75
BLS verifyMultipleSignatures 128 - blst 15.710 ms/op 17.663 ms/op 0.89
BLS deserializing 10000 signatures 594.14 ms/op 682.25 ms/op 0.87
BLS deserializing 100000 signatures 5.9621 s/op 6.9150 s/op 0.86
BLS verifyMultipleSignatures - same message - 3 - blst 963.87 us/op 1.0821 ms/op 0.89
BLS verifyMultipleSignatures - same message - 8 - blst 1.0402 ms/op 1.1089 ms/op 0.94
BLS verifyMultipleSignatures - same message - 32 - blst 1.6259 ms/op 1.8012 ms/op 0.90
BLS verifyMultipleSignatures - same message - 64 - blst 2.4293 ms/op 2.7281 ms/op 0.89
BLS verifyMultipleSignatures - same message - 128 - blst 4.0108 ms/op 4.3597 ms/op 0.92
BLS aggregatePubkeys 32 - blst 17.565 us/op 19.575 us/op 0.90
BLS aggregatePubkeys 128 - blst 60.395 us/op 70.147 us/op 0.86
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 50.490 ms/op 70.245 ms/op 0.72
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 42.264 ms/op 69.885 ms/op 0.60
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 29.056 ms/op 39.012 ms/op 0.74
getSlashingsAndExits - default max 69.456 us/op 98.465 us/op 0.71
getSlashingsAndExits - 2k 235.88 us/op 304.24 us/op 0.78
proposeBlockBody type=full, size=empty 4.9347 ms/op 6.1662 ms/op 0.80
isKnown best case - 1 super set check 428.00 ns/op 331.00 ns/op 1.29
isKnown normal case - 2 super set checks 427.00 ns/op 304.00 ns/op 1.40
isKnown worse case - 16 super set checks 433.00 ns/op 312.00 ns/op 1.39
InMemoryCheckpointStateCache - add get delete 3.1230 us/op 2.9090 us/op 1.07
updateUnfinalizedPubkeys - updating 10 pubkeys 751.87 us/op 1.5418 ms/op 0.49
updateUnfinalizedPubkeys - updating 100 pubkeys 2.6571 ms/op 4.2937 ms/op 0.62
updateUnfinalizedPubkeys - updating 1000 pubkeys 38.481 ms/op 56.575 ms/op 0.68
validate api signedAggregateAndProof - struct 1.5470 ms/op 1.6026 ms/op 0.97
validate gossip signedAggregateAndProof - struct 1.4936 ms/op 1.6909 ms/op 0.88
validate gossip attestation - vc 640000 970.59 us/op 1.0663 ms/op 0.91
batch validate gossip attestation - vc 640000 - chunk 32 121.42 us/op 149.63 us/op 0.81
batch validate gossip attestation - vc 640000 - chunk 64 103.13 us/op 131.01 us/op 0.79
batch validate gossip attestation - vc 640000 - chunk 128 95.195 us/op 125.54 us/op 0.76
batch validate gossip attestation - vc 640000 - chunk 256 91.789 us/op 124.48 us/op 0.74
pickEth1Vote - no votes 786.16 us/op 1.2091 ms/op 0.65
pickEth1Vote - max votes 5.4313 ms/op 8.8825 ms/op 0.61
pickEth1Vote - Eth1Data hashTreeRoot value x2048 13.972 ms/op 14.882 ms/op 0.94
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 18.706 ms/op 21.231 ms/op 0.88
pickEth1Vote - Eth1Data fastSerialize value x2048 363.74 us/op 579.61 us/op 0.63
pickEth1Vote - Eth1Data fastSerialize tree x2048 3.1160 ms/op 4.5053 ms/op 0.69
bytes32 toHexString 586.00 ns/op 506.00 ns/op 1.16
bytes32 Buffer.toString(hex) 432.00 ns/op 272.00 ns/op 1.59
bytes32 Buffer.toString(hex) from Uint8Array 514.00 ns/op 465.00 ns/op 1.11
bytes32 Buffer.toString(hex) + 0x 432.00 ns/op 267.00 ns/op 1.62
Object access 1 prop 0.30900 ns/op 0.15600 ns/op 1.98
Map access 1 prop 0.30900 ns/op 0.13300 ns/op 2.32
Object get x1000 5.1890 ns/op 6.2810 ns/op 0.83
Map get x1000 5.8220 ns/op 6.9350 ns/op 0.84
Object set x1000 22.296 ns/op 39.276 ns/op 0.57
Map set x1000 18.699 ns/op 26.151 ns/op 0.72
Return object 10000 times 0.29590 ns/op 0.33060 ns/op 0.90
Throw Error 10000 times 2.7613 us/op 3.8156 us/op 0.72
toHex 109.93 ns/op 162.48 ns/op 0.68
Buffer.from 103.27 ns/op 148.25 ns/op 0.70
shared Buffer 71.709 ns/op 106.21 ns/op 0.68
fastMsgIdFn sha256 / 200 bytes 1.9740 us/op 2.4600 us/op 0.80
fastMsgIdFn h32 xxhash / 200 bytes 400.00 ns/op 288.00 ns/op 1.39
fastMsgIdFn h64 xxhash / 200 bytes 455.00 ns/op 295.00 ns/op 1.54
fastMsgIdFn sha256 / 1000 bytes 5.8870 us/op 7.5690 us/op 0.78
fastMsgIdFn h32 xxhash / 1000 bytes 523.00 ns/op 419.00 ns/op 1.25
fastMsgIdFn h64 xxhash / 1000 bytes 518.00 ns/op 377.00 ns/op 1.37
fastMsgIdFn sha256 / 10000 bytes 49.176 us/op 68.718 us/op 0.72
fastMsgIdFn h32 xxhash / 10000 bytes 1.8840 us/op 1.9820 us/op 0.95
fastMsgIdFn h64 xxhash / 10000 bytes 1.3340 us/op 1.3070 us/op 1.02
send data - 1000 256B messages 9.6965 ms/op 14.693 ms/op 0.66
send data - 1000 512B messages 12.805 ms/op 20.004 ms/op 0.64
send data - 1000 1024B messages 20.389 ms/op 31.382 ms/op 0.65
send data - 1000 1200B messages 23.006 ms/op 33.126 ms/op 0.69
send data - 1000 2048B messages 28.213 ms/op 39.297 ms/op 0.72
send data - 1000 4096B messages 25.002 ms/op 37.175 ms/op 0.67
send data - 1000 16384B messages 67.308 ms/op 77.705 ms/op 0.87
send data - 1000 65536B messages 246.52 ms/op 245.52 ms/op 1.00
enrSubnets - fastDeserialize 64 bits 1.1070 us/op 1.2950 us/op 0.85
enrSubnets - ssz BitVector 64 bits 503.00 ns/op 468.00 ns/op 1.07
enrSubnets - fastDeserialize 4 bits 346.00 ns/op 211.00 ns/op 1.64
enrSubnets - ssz BitVector 4 bits 520.00 ns/op 473.00 ns/op 1.10
prioritizePeers score -10:0 att 32-0.1 sync 2-0 135.43 us/op 186.81 us/op 0.72
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 136.53 us/op 188.93 us/op 0.72
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 241.34 us/op 457.17 us/op 0.53
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 471.64 us/op 546.38 us/op 0.86
prioritizePeers score 0:0 att 64-1 sync 4-1 550.76 us/op 1.0111 ms/op 0.54
array of 16000 items push then shift 1.3459 us/op 1.9126 us/op 0.70
LinkedList of 16000 items push then shift 6.5010 ns/op 10.118 ns/op 0.64
array of 16000 items push then pop 119.14 ns/op 167.66 ns/op 0.71
LinkedList of 16000 items push then pop 6.4730 ns/op 9.7150 ns/op 0.67
array of 24000 items push then shift 1.8539 us/op 2.9853 us/op 0.62
LinkedList of 24000 items push then shift 7.1600 ns/op 9.5450 ns/op 0.75
array of 24000 items push then pop 140.03 ns/op 196.25 ns/op 0.71
LinkedList of 24000 items push then pop 6.6270 ns/op 8.7520 ns/op 0.76
intersect bitArray bitLen 8 5.5870 ns/op 7.7050 ns/op 0.73
intersect array and set length 8 41.466 ns/op 90.206 ns/op 0.46
intersect bitArray bitLen 128 26.146 ns/op 32.921 ns/op 0.79
intersect array and set length 128 588.85 ns/op 1.0748 us/op 0.55
bitArray.getTrueBitIndexes() bitLen 128 2.6200 us/op 3.0360 us/op 0.86
bitArray.getTrueBitIndexes() bitLen 248 3.1960 us/op 5.0690 us/op 0.63
bitArray.getTrueBitIndexes() bitLen 512 7.7320 us/op 13.678 us/op 0.57
Buffer.concat 32 items 1.0100 us/op 1.3060 us/op 0.77
Uint8Array.set 32 items 1.4300 us/op 2.5370 us/op 0.56
Buffer.copy 1.5310 us/op 3.1780 us/op 0.48
Uint8Array.set - with subarray 2.3930 us/op 3.9240 us/op 0.61
Uint8Array.set - without subarray 1.8640 us/op 1.9910 us/op 0.94
getUint32 - dataview 387.00 ns/op 343.00 ns/op 1.13
getUint32 - manual 334.00 ns/op 284.00 ns/op 1.18
Set add up to 64 items then delete first 1.7967 us/op 3.1384 us/op 0.57
OrderedSet add up to 64 items then delete first 2.7182 us/op 5.4223 us/op 0.50
Set add up to 64 items then delete last 2.0066 us/op 4.2805 us/op 0.47
OrderedSet add up to 64 items then delete last 2.9378 us/op 5.1915 us/op 0.57
Set add up to 64 items then delete middle 1.9161 us/op 3.6497 us/op 0.52
OrderedSet add up to 64 items then delete middle 4.5213 us/op 7.9798 us/op 0.57
Set add up to 128 items then delete first 3.9902 us/op 8.0303 us/op 0.50
OrderedSet add up to 128 items then delete first 6.2505 us/op 15.008 us/op 0.42
Set add up to 128 items then delete last 3.8829 us/op 7.7626 us/op 0.50
OrderedSet add up to 128 items then delete last 5.8469 us/op 11.758 us/op 0.50
Set add up to 128 items then delete middle 3.8604 us/op 7.4560 us/op 0.52
OrderedSet add up to 128 items then delete middle 11.451 us/op 19.736 us/op 0.58
Set add up to 256 items then delete first 7.8307 us/op 16.186 us/op 0.48
OrderedSet add up to 256 items then delete first 12.337 us/op 23.622 us/op 0.52
Set add up to 256 items then delete last 7.5818 us/op 14.717 us/op 0.52
OrderedSet add up to 256 items then delete last 11.659 us/op 25.876 us/op 0.45
Set add up to 256 items then delete middle 7.5357 us/op 15.320 us/op 0.49
OrderedSet add up to 256 items then delete middle 34.564 us/op 57.070 us/op 0.61
transfer serialized Status (84 B) 1.4930 us/op 1.7920 us/op 0.83
copy serialized Status (84 B) 1.3180 us/op 1.6600 us/op 0.79
transfer serialized SignedVoluntaryExit (112 B) 1.6500 us/op 1.8910 us/op 0.87
copy serialized SignedVoluntaryExit (112 B) 1.3170 us/op 1.6060 us/op 0.82
transfer serialized ProposerSlashing (416 B) 2.3270 us/op 2.9520 us/op 0.79
copy serialized ProposerSlashing (416 B) 1.9690 us/op 2.4450 us/op 0.81
transfer serialized Attestation (485 B) 2.1510 us/op 2.5250 us/op 0.85
copy serialized Attestation (485 B) 1.8710 us/op 2.3420 us/op 0.80
transfer serialized AttesterSlashing (33232 B) 2.3940 us/op 2.3800 us/op 1.01
copy serialized AttesterSlashing (33232 B) 5.2500 us/op 9.1950 us/op 0.57
transfer serialized Small SignedBeaconBlock (128000 B) 2.4230 us/op 3.5160 us/op 0.69
copy serialized Small SignedBeaconBlock (128000 B) 8.4650 us/op 29.514 us/op 0.29
transfer serialized Avg SignedBeaconBlock (200000 B) 1.9660 us/op 4.1430 us/op 0.47
copy serialized Avg SignedBeaconBlock (200000 B) 11.451 us/op 42.536 us/op 0.27
transfer serialized BlobsSidecar (524380 B) 2.1890 us/op 4.6950 us/op 0.47
copy serialized BlobsSidecar (524380 B) 69.847 us/op 144.42 us/op 0.48
transfer serialized Big SignedBeaconBlock (1000000 B) 2.7940 us/op 5.6410 us/op 0.50
copy serialized Big SignedBeaconBlock (1000000 B) 226.41 us/op 267.15 us/op 0.85
pass gossip attestations to forkchoice per slot 2.3325 ms/op 3.3300 ms/op 0.70
forkChoice updateHead vc 100000 bc 64 eq 0 371.48 us/op 564.80 us/op 0.66
forkChoice updateHead vc 600000 bc 64 eq 0 2.4420 ms/op 4.2735 ms/op 0.57
forkChoice updateHead vc 1000000 bc 64 eq 0 4.1370 ms/op 6.7732 ms/op 0.61
forkChoice updateHead vc 600000 bc 320 eq 0 2.2865 ms/op 3.5246 ms/op 0.65
forkChoice updateHead vc 600000 bc 1200 eq 0 2.5432 ms/op 3.7537 ms/op 0.68
forkChoice updateHead vc 600000 bc 7200 eq 0 2.7411 ms/op 4.7980 ms/op 0.57
forkChoice updateHead vc 600000 bc 64 eq 1000 9.6105 ms/op 12.947 ms/op 0.74
forkChoice updateHead vc 600000 bc 64 eq 10000 9.4142 ms/op 12.071 ms/op 0.78
forkChoice updateHead vc 600000 bc 64 eq 300000 11.535 ms/op 17.849 ms/op 0.65
computeDeltas 500000 validators 300 proto nodes 2.9929 ms/op 5.1500 ms/op 0.58
computeDeltas 500000 validators 1200 proto nodes 2.9396 ms/op 4.7981 ms/op 0.61
computeDeltas 500000 validators 7200 proto nodes 2.9103 ms/op 4.9189 ms/op 0.59
computeDeltas 750000 validators 300 proto nodes 4.3426 ms/op 7.3694 ms/op 0.59
computeDeltas 750000 validators 1200 proto nodes 4.2466 ms/op 7.2950 ms/op 0.58
computeDeltas 750000 validators 7200 proto nodes 4.3233 ms/op 6.7431 ms/op 0.64
computeDeltas 1400000 validators 300 proto nodes 8.1484 ms/op 12.514 ms/op 0.65
computeDeltas 1400000 validators 1200 proto nodes 8.0404 ms/op 12.107 ms/op 0.66
computeDeltas 1400000 validators 7200 proto nodes 8.0646 ms/op 11.524 ms/op 0.70
computeDeltas 2100000 validators 300 proto nodes 12.216 ms/op 18.069 ms/op 0.68
computeDeltas 2100000 validators 1200 proto nodes 12.309 ms/op 17.369 ms/op 0.71
computeDeltas 2100000 validators 7200 proto nodes 12.098 ms/op 17.746 ms/op 0.68
altair processAttestation - 250000 vs - 7PWei normalcase 1.3878 ms/op 2.2313 ms/op 0.62
altair processAttestation - 250000 vs - 7PWei worstcase 2.1301 ms/op 3.0812 ms/op 0.69
altair processAttestation - setStatus - 1/6 committees join 62.773 us/op 104.67 us/op 0.60
altair processAttestation - setStatus - 1/3 committees join 124.21 us/op 209.31 us/op 0.59
altair processAttestation - setStatus - 1/2 committees join 178.54 us/op 293.02 us/op 0.61
altair processAttestation - setStatus - 2/3 committees join 244.67 us/op 368.48 us/op 0.66
altair processAttestation - setStatus - 4/5 committees join 378.63 us/op 530.27 us/op 0.71
altair processAttestation - setStatus - 100% committees join 454.80 us/op 704.55 us/op 0.65
altair processBlock - 250000 vs - 7PWei normalcase 3.3173 ms/op 5.1921 ms/op 0.64
altair processBlock - 250000 vs - 7PWei normalcase hashState 27.069 ms/op 30.098 ms/op 0.90
altair processBlock - 250000 vs - 7PWei worstcase 36.037 ms/op 42.046 ms/op 0.86
altair processBlock - 250000 vs - 7PWei worstcase hashState 75.685 ms/op 92.813 ms/op 0.82
phase0 processBlock - 250000 vs - 7PWei normalcase 1.9638 ms/op 2.6002 ms/op 0.76
phase0 processBlock - 250000 vs - 7PWei worstcase 21.191 ms/op 27.396 ms/op 0.77
altair processEth1Data - 250000 vs - 7PWei normalcase 230.41 us/op 380.53 us/op 0.61
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 4.2940 us/op 7.5610 us/op 0.57
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 32.286 us/op 40.297 us/op 0.80
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 8.0880 us/op 12.957 us/op 0.62
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 4.6110 us/op 8.3260 us/op 0.55
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 77.562 us/op 139.59 us/op 0.56
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 810.27 us/op 1.6916 ms/op 0.48
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.1128 ms/op 2.8928 ms/op 0.38
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.1604 ms/op 1.6729 ms/op 0.69
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.8802 ms/op 3.6708 ms/op 0.78
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.0764 ms/op 2.3037 ms/op 0.47
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 2.9978 ms/op 3.8951 ms/op 0.77
Tree 40 250000 create 180.00 ms/op 234.63 ms/op 0.77
Tree 40 250000 get(125000) 116.71 ns/op 167.57 ns/op 0.70
Tree 40 250000 set(125000) 511.03 ns/op 799.54 ns/op 0.64
Tree 40 250000 toArray() 9.5432 ms/op 20.598 ms/op 0.46
Tree 40 250000 iterate all - toArray() + loop 9.5876 ms/op 22.045 ms/op 0.43
Tree 40 250000 iterate all - get(i) 39.128 ms/op 67.872 ms/op 0.58
Array 250000 create 2.2666 ms/op 3.9375 ms/op 0.58
Array 250000 clone - spread 1.2180 ms/op 1.6473 ms/op 0.74
Array 250000 get(125000) 0.58600 ns/op 0.44100 ns/op 1.33
Array 250000 set(125000) 0.58600 ns/op 0.46200 ns/op 1.27
Array 250000 iterate all - loop 77.082 us/op 104.11 us/op 0.74
phase0 afterProcessEpoch - 250000 vs - 7PWei 68.900 ms/op 99.668 ms/op 0.69
Array.fill - length 1000000 2.3915 ms/op 5.1340 ms/op 0.47
Array push - length 1000000 14.043 ms/op 19.208 ms/op 0.73
Array.get 0.26387 ns/op 0.32048 ns/op 0.82
Uint8Array.get 0.34226 ns/op 0.47165 ns/op 0.73
phase0 beforeProcessEpoch - 250000 vs - 7PWei 12.120 ms/op 19.317 ms/op 0.63
altair processEpoch - mainnet_e81889 293.13 ms/op 344.36 ms/op 0.85
mainnet_e81889 - altair beforeProcessEpoch 15.654 ms/op 20.025 ms/op 0.78
mainnet_e81889 - altair processJustificationAndFinalization 9.7720 us/op 17.193 us/op 0.57
mainnet_e81889 - altair processInactivityUpdates 3.9920 ms/op 5.7576 ms/op 0.69
mainnet_e81889 - altair processRewardsAndPenalties 54.779 ms/op 55.128 ms/op 0.99
mainnet_e81889 - altair processRegistryUpdates 2.0540 us/op 3.7270 us/op 0.55
mainnet_e81889 - altair processSlashings 716.00 ns/op 591.00 ns/op 1.21
mainnet_e81889 - altair processEth1DataReset 644.00 ns/op 333.00 ns/op 1.93
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.6790 ms/op 1.9343 ms/op 0.87
mainnet_e81889 - altair processSlashingsReset 2.5450 us/op 5.0700 us/op 0.50
mainnet_e81889 - altair processRandaoMixesReset 2.6590 us/op 7.3920 us/op 0.36
mainnet_e81889 - altair processHistoricalRootsUpdate 676.00 ns/op 793.00 ns/op 0.85
mainnet_e81889 - altair processParticipationFlagUpdates 906.00 ns/op 1.9700 us/op 0.46
mainnet_e81889 - altair processSyncCommitteeUpdates 706.00 ns/op 693.00 ns/op 1.02
mainnet_e81889 - altair afterProcessEpoch 77.675 ms/op 101.90 ms/op 0.76
capella processEpoch - mainnet_e217614 957.32 ms/op 1.2677 s/op 0.76
mainnet_e217614 - capella beforeProcessEpoch 63.397 ms/op 69.011 ms/op 0.92
mainnet_e217614 - capella processJustificationAndFinalization 8.0500 us/op 22.114 us/op 0.36
mainnet_e217614 - capella processInactivityUpdates 12.793 ms/op 19.118 ms/op 0.67
mainnet_e217614 - capella processRewardsAndPenalties 227.36 ms/op 269.55 ms/op 0.84
mainnet_e217614 - capella processRegistryUpdates 9.7460 us/op 16.006 us/op 0.61
mainnet_e217614 - capella processSlashings 690.00 ns/op 416.00 ns/op 1.66
mainnet_e217614 - capella processEth1DataReset 650.00 ns/op 318.00 ns/op 2.04
mainnet_e217614 - capella processEffectiveBalanceUpdates 5.9325 ms/op 13.756 ms/op 0.43
mainnet_e217614 - capella processSlashingsReset 2.9990 us/op 3.1480 us/op 0.95
mainnet_e217614 - capella processRandaoMixesReset 3.5640 us/op 7.0780 us/op 0.50
mainnet_e217614 - capella processHistoricalRootsUpdate 683.00 ns/op 507.00 ns/op 1.35
mainnet_e217614 - capella processParticipationFlagUpdates 4.9770 us/op 1.8200 us/op 2.73
mainnet_e217614 - capella afterProcessEpoch 200.50 ms/op 247.11 ms/op 0.81
phase0 processEpoch - mainnet_e58758 383.74 ms/op 460.89 ms/op 0.83
mainnet_e58758 - phase0 beforeProcessEpoch 69.997 ms/op 98.938 ms/op 0.71
mainnet_e58758 - phase0 processJustificationAndFinalization 12.953 us/op 20.880 us/op 0.62
mainnet_e58758 - phase0 processRewardsAndPenalties 30.982 ms/op 33.745 ms/op 0.92
mainnet_e58758 - phase0 processRegistryUpdates 5.5020 us/op 7.8900 us/op 0.70
mainnet_e58758 - phase0 processSlashings 716.00 ns/op 425.00 ns/op 1.68
mainnet_e58758 - phase0 processEth1DataReset 656.00 ns/op 556.00 ns/op 1.18
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.0564 ms/op 1.5574 ms/op 1.32
mainnet_e58758 - phase0 processSlashingsReset 2.6040 us/op 3.0490 us/op 0.85
mainnet_e58758 - phase0 processRandaoMixesReset 3.4430 us/op 4.9660 us/op 0.69
mainnet_e58758 - phase0 processHistoricalRootsUpdate 695.00 ns/op 693.00 ns/op 1.00
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.1040 us/op 6.1460 us/op 0.51
mainnet_e58758 - phase0 afterProcessEpoch 63.768 ms/op 93.483 ms/op 0.68
phase0 processEffectiveBalanceUpdates - 250000 normalcase 990.72 us/op 2.3220 ms/op 0.43
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.6924 ms/op 2.7812 ms/op 0.61
altair processInactivityUpdates - 250000 normalcase 15.162 ms/op 20.484 ms/op 0.74
altair processInactivityUpdates - 250000 worstcase 15.364 ms/op 19.346 ms/op 0.79
phase0 processRegistryUpdates - 250000 normalcase 6.9810 us/op 10.546 us/op 0.66
phase0 processRegistryUpdates - 250000 badcase_full_deposits 308.87 us/op 366.53 us/op 0.84
phase0 processRegistryUpdates - 250000 worstcase 0.5 113.19 ms/op 144.62 ms/op 0.78
altair processRewardsAndPenalties - 250000 normalcase 48.383 ms/op 44.294 ms/op 1.09
altair processRewardsAndPenalties - 250000 worstcase 36.819 ms/op 46.858 ms/op 0.79
phase0 getAttestationDeltas - 250000 normalcase 6.1105 ms/op 11.960 ms/op 0.51
phase0 getAttestationDeltas - 250000 worstcase 5.8105 ms/op 12.489 ms/op 0.47
phase0 processSlashings - 250000 worstcase 80.137 us/op 110.96 us/op 0.72
altair processSyncCommitteeUpdates - 250000 100.57 ms/op 154.29 ms/op 0.65
BeaconState.hashTreeRoot - No change 432.00 ns/op 448.00 ns/op 0.96
BeaconState.hashTreeRoot - 1 full validator 106.11 us/op 135.63 us/op 0.78
BeaconState.hashTreeRoot - 32 full validator 1.0234 ms/op 1.2190 ms/op 0.84
BeaconState.hashTreeRoot - 512 full validator 11.366 ms/op 16.398 ms/op 0.69
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 140.53 us/op 163.47 us/op 0.86
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.8702 ms/op 3.0442 ms/op 0.61
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 24.311 ms/op 46.331 ms/op 0.52
BeaconState.hashTreeRoot - 1 balances 100.85 us/op 187.56 us/op 0.54
BeaconState.hashTreeRoot - 32 balances 996.76 us/op 1.4102 ms/op 0.71
BeaconState.hashTreeRoot - 512 balances 8.2326 ms/op 13.905 ms/op 0.59
BeaconState.hashTreeRoot - 250000 balances 171.84 ms/op 222.11 ms/op 0.77
aggregationBits - 2048 els - zipIndexesInBitList 20.104 us/op 36.180 us/op 0.56
byteArrayEquals 32 45.186 ns/op 62.570 ns/op 0.72
Buffer.compare 32 14.584 ns/op 19.089 ns/op 0.76
byteArrayEquals 1024 1.2002 us/op 1.7836 us/op 0.67
Buffer.compare 1024 21.326 ns/op 28.090 ns/op 0.76
byteArrayEquals 16384 19.084 us/op 27.260 us/op 0.70
Buffer.compare 16384 190.59 ns/op 220.47 ns/op 0.86
byteArrayEquals 123687377 147.00 ms/op 218.39 ms/op 0.67
Buffer.compare 123687377 3.6247 ms/op 10.260 ms/op 0.35
byteArrayEquals 32 - diff last byte 45.160 ns/op 58.625 ns/op 0.77
Buffer.compare 32 - diff last byte 14.500 ns/op 20.344 ns/op 0.71
byteArrayEquals 1024 - diff last byte 1.1628 us/op 1.7945 us/op 0.65
Buffer.compare 1024 - diff last byte 20.924 ns/op 30.815 ns/op 0.68
byteArrayEquals 16384 - diff last byte 18.475 us/op 28.208 us/op 0.65
Buffer.compare 16384 - diff last byte 143.57 ns/op 203.70 ns/op 0.70
byteArrayEquals 123687377 - diff last byte 142.80 ms/op 208.00 ms/op 0.69
Buffer.compare 123687377 - diff last byte 5.3045 ms/op 9.6462 ms/op 0.55
byteArrayEquals 32 - random bytes 4.7030 ns/op 6.3780 ns/op 0.74
Buffer.compare 32 - random bytes 15.146 ns/op 19.543 ns/op 0.78
byteArrayEquals 1024 - random bytes 4.6980 ns/op 5.5610 ns/op 0.84
Buffer.compare 1024 - random bytes 14.714 ns/op 18.745 ns/op 0.78
byteArrayEquals 16384 - random bytes 4.7150 ns/op 5.5350 ns/op 0.85
Buffer.compare 16384 - random bytes 14.780 ns/op 18.241 ns/op 0.81
byteArrayEquals 123687377 - random bytes 7.5500 ns/op 6.8700 ns/op 1.10
Buffer.compare 123687377 - random bytes 17.520 ns/op 20.230 ns/op 0.87
regular array get 100000 times 29.360 us/op 40.928 us/op 0.72
wrappedArray get 100000 times 29.361 us/op 37.994 us/op 0.77
arrayWithProxy get 100000 times 9.1941 ms/op 14.464 ms/op 0.64
ssz.Root.equals 41.888 ns/op 51.942 ns/op 0.81
byteArrayEquals 40.872 ns/op 49.604 ns/op 0.82
Buffer.compare 8.5530 ns/op 12.653 ns/op 0.68
shuffle list - 16384 els 5.4599 ms/op 8.2827 ms/op 0.66
shuffle list - 250000 els 80.883 ms/op 109.83 ms/op 0.74
processSlot - 1 slots 14.519 us/op 19.059 us/op 0.76
processSlot - 32 slots 2.5134 ms/op 3.5220 ms/op 0.71
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 40.020 ms/op 42.796 ms/op 0.94
getCommitteeAssignments - req 1 vs - 250000 vc 1.8230 ms/op 2.6644 ms/op 0.68
getCommitteeAssignments - req 100 vs - 250000 vc 3.5888 ms/op 5.0722 ms/op 0.71
getCommitteeAssignments - req 1000 vs - 250000 vc 3.8749 ms/op 5.3373 ms/op 0.73
findModifiedValidators - 10000 modified validators 249.58 ms/op 268.23 ms/op 0.93
findModifiedValidators - 1000 modified validators 196.15 ms/op 176.98 ms/op 1.11
findModifiedValidators - 100 modified validators 148.60 ms/op 190.44 ms/op 0.78
findModifiedValidators - 10 modified validators 168.72 ms/op 163.37 ms/op 1.03
findModifiedValidators - 1 modified validators 163.09 ms/op 177.11 ms/op 0.92
findModifiedValidators - no difference 161.03 ms/op 248.14 ms/op 0.65
compare ViewDUs 3.1038 s/op 3.4711 s/op 0.89
compare each validator Uint8Array 1.8575 s/op 1.3499 s/op 1.38
compare ViewDU to Uint8Array 657.42 ms/op 1.3222 s/op 0.50
migrate state 1000000 validators, 24 modified, 0 new 583.62 ms/op 670.74 ms/op 0.87
migrate state 1000000 validators, 1700 modified, 1000 new 851.43 ms/op 954.61 ms/op 0.89
migrate state 1000000 validators, 3400 modified, 2000 new 1.0352 s/op 1.1845 s/op 0.87
migrate state 1500000 validators, 24 modified, 0 new 609.58 ms/op 787.90 ms/op 0.77
migrate state 1500000 validators, 1700 modified, 1000 new 840.91 ms/op 1.0710 s/op 0.79
migrate state 1500000 validators, 3400 modified, 2000 new 1.0340 s/op 1.4247 s/op 0.73
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.7600 ns/op 6.2900 ns/op 0.92
state getBlockRootAtSlot - 250000 vs - 7PWei 659.25 ns/op 1.2018 us/op 0.55
computeProposers - vc 250000 6.1467 ms/op 11.480 ms/op 0.54
computeEpochShuffling - vc 250000 78.838 ms/op 113.61 ms/op 0.69
getNextSyncCommittee - vc 250000 101.03 ms/op 193.74 ms/op 0.52
computeSigningRoot for AttestationData 21.061 us/op 33.125 us/op 0.64
hash AttestationData serialized data then Buffer.toString(base64) 1.1725 us/op 2.3510 us/op 0.50
toHexString serialized data 777.43 ns/op 1.9590 us/op 0.40
Buffer.toString(base64) 124.49 ns/op 302.29 ns/op 0.41
nodejs block root to RootHex using toHex 107.05 ns/op 242.33 ns/op 0.44
nodejs block root to RootHex using toRootHex 71.692 ns/op 151.37 ns/op 0.47
browser block root to RootHex using the deprecated toHexString 202.47 ns/op 473.43 ns/op 0.43
browser block root to RootHex using toHex 162.31 ns/op 394.34 ns/op 0.41
browser block root to RootHex using toRootHex 145.82 ns/op 202.64 ns/op 0.72

by benchmarkbot/action

},
{typeName: "ExecutionPayloadAndBlobsBundle", jsonCase: "eth2"}
);
// export const ExecutionPayloadAndBlobsBundle = new ContainerType(
Copy link
Member

Choose a reason for hiding this comment

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

execution_requests are part of bundle now, see here

blsToExecutionChanges: capellaSsz.BeaconBlockBody.fields.blsToExecutionChanges,
blobKzgCommitments: denebSsz.BeaconBlockBody.fields.blobKzgCommitments,
executionRequests: ExecutionRequests, // New in ELECTRA:EIP7251
Copy link
Member

Choose a reason for hiding this comment

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

BlindedBeaconBlockBody needs to be updated with execution_requests_root, see here

will be required to pass blinded data structures test

it("should have the same number of fields as non-blinded", () => {

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