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

Merged
merged 8 commits into from
Sep 25, 2024

Conversation

ensi321
Copy link
Contributor

@ensi321 ensi321 commented Sep 19, 2024

Changes

Containers

  • 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 Light client containers to use Deneb execution payload

APIs

  • Update definition of engine_newPayloadV4 and engine_getPayloadV4 to include execution requests
  • Remove engine_getPayloadBodiesByRangeV2 and engine_getPayloadBodiesByHashV2

Light Client

  • Update fork upgrade flow to discard the deposit/withdrawal/consolidation requests from payload

Spec

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

This PR does not contain update to the builder flow. Will update it in the next PR.

Copy link
Contributor

github-actions bot commented Sep 19, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 1ca512d Previous: d0ba6bc Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.0758 ms/op 1.8246 ms/op 1.14
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 60.665 us/op 39.484 us/op 1.54
BLS verify - blst 949.97 us/op 862.76 us/op 1.10
BLS verifyMultipleSignatures 3 - blst 1.3084 ms/op 1.3026 ms/op 1.00
BLS verifyMultipleSignatures 8 - blst 1.8378 ms/op 2.0187 ms/op 0.91
BLS verifyMultipleSignatures 32 - blst 5.2758 ms/op 4.5021 ms/op 1.17
BLS verifyMultipleSignatures 64 - blst 9.6722 ms/op 8.3073 ms/op 1.16
BLS verifyMultipleSignatures 128 - blst 17.946 ms/op 16.029 ms/op 1.12
BLS deserializing 10000 signatures 680.79 ms/op 613.18 ms/op 1.11
BLS deserializing 100000 signatures 6.9703 s/op 6.1956 s/op 1.13
BLS verifyMultipleSignatures - same message - 3 - blst 957.30 us/op 935.53 us/op 1.02
BLS verifyMultipleSignatures - same message - 8 - blst 1.1473 ms/op 1.1021 ms/op 1.04
BLS verifyMultipleSignatures - same message - 32 - blst 1.7904 ms/op 1.6972 ms/op 1.05
BLS verifyMultipleSignatures - same message - 64 - blst 2.7190 ms/op 2.4111 ms/op 1.13
BLS verifyMultipleSignatures - same message - 128 - blst 4.4330 ms/op 3.9896 ms/op 1.11
BLS aggregatePubkeys 32 - blst 21.412 us/op 18.562 us/op 1.15
BLS aggregatePubkeys 128 - blst 74.206 us/op 64.596 us/op 1.15
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 60.415 ms/op 59.752 ms/op 1.01
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 54.986 ms/op 46.264 ms/op 1.19
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 36.814 ms/op 30.865 ms/op 1.19
getSlashingsAndExits - default max 115.19 us/op 68.761 us/op 1.68
getSlashingsAndExits - 2k 376.86 us/op 272.14 us/op 1.38
proposeBlockBody type=full, size=empty 6.1073 ms/op 5.1558 ms/op 1.18
isKnown best case - 1 super set check 483.00 ns/op 447.00 ns/op 1.08
isKnown normal case - 2 super set checks 501.00 ns/op 445.00 ns/op 1.13
isKnown worse case - 16 super set checks 472.00 ns/op 443.00 ns/op 1.07
InMemoryCheckpointStateCache - add get delete 3.1840 us/op 2.5840 us/op 1.23
updateUnfinalizedPubkeys - updating 10 pubkeys 1.5250 ms/op 1.0883 ms/op 1.40
updateUnfinalizedPubkeys - updating 100 pubkeys 4.4441 ms/op 2.7963 ms/op 1.59
updateUnfinalizedPubkeys - updating 1000 pubkeys 58.455 ms/op 37.082 ms/op 1.58
validate api signedAggregateAndProof - struct 1.5939 ms/op 1.8902 ms/op 0.84
validate gossip signedAggregateAndProof - struct 1.6164 ms/op 1.9869 ms/op 0.81
validate gossip attestation - vc 640000 983.40 us/op 968.93 us/op 1.01
batch validate gossip attestation - vc 640000 - chunk 32 142.16 us/op 116.35 us/op 1.22
batch validate gossip attestation - vc 640000 - chunk 64 126.45 us/op 103.07 us/op 1.23
batch validate gossip attestation - vc 640000 - chunk 128 119.62 us/op 98.654 us/op 1.21
batch validate gossip attestation - vc 640000 - chunk 256 117.18 us/op 97.880 us/op 1.20
pickEth1Vote - no votes 1.1674 ms/op 891.61 us/op 1.31
pickEth1Vote - max votes 7.4581 ms/op 5.6914 ms/op 1.31
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.066 ms/op 11.896 ms/op 1.18
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 20.096 ms/op 17.517 ms/op 1.15
pickEth1Vote - Eth1Data fastSerialize value x2048 467.76 us/op 385.90 us/op 1.21
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.7383 ms/op 2.9183 ms/op 0.94
bytes32 toHexString 494.00 ns/op 639.00 ns/op 0.77
bytes32 Buffer.toString(hex) 261.00 ns/op 481.00 ns/op 0.54
bytes32 Buffer.toString(hex) from Uint8Array 442.00 ns/op 536.00 ns/op 0.82
bytes32 Buffer.toString(hex) + 0x 260.00 ns/op 439.00 ns/op 0.59
Object access 1 prop 0.17500 ns/op 0.32500 ns/op 0.54
Map access 1 prop 0.14100 ns/op 0.32400 ns/op 0.44
Object get x1000 6.2210 ns/op 5.3870 ns/op 1.15
Map get x1000 6.9140 ns/op 5.9850 ns/op 1.16
Object set x1000 38.493 ns/op 26.993 ns/op 1.43
Map set x1000 27.679 ns/op 18.711 ns/op 1.48
Return object 10000 times 0.31230 ns/op 0.31260 ns/op 1.00
Throw Error 10000 times 3.3907 us/op 2.8628 us/op 1.18
toHex 150.69 ns/op 117.44 ns/op 1.28
Buffer.from 140.84 ns/op 111.69 ns/op 1.26
shared Buffer 96.144 ns/op 74.682 ns/op 1.29
fastMsgIdFn sha256 / 200 bytes 2.3600 us/op 2.0760 us/op 1.14
fastMsgIdFn h32 xxhash / 200 bytes 253.00 ns/op 439.00 ns/op 0.58
fastMsgIdFn h64 xxhash / 200 bytes 277.00 ns/op 491.00 ns/op 0.56
fastMsgIdFn sha256 / 1000 bytes 7.3440 us/op 5.9220 us/op 1.24
fastMsgIdFn h32 xxhash / 1000 bytes 377.00 ns/op 517.00 ns/op 0.73
fastMsgIdFn h64 xxhash / 1000 bytes 342.00 ns/op 509.00 ns/op 0.67
fastMsgIdFn sha256 / 10000 bytes 63.330 us/op 49.076 us/op 1.29
fastMsgIdFn h32 xxhash / 10000 bytes 1.8360 us/op 1.9590 us/op 0.94
fastMsgIdFn h64 xxhash / 10000 bytes 1.1810 us/op 1.3170 us/op 0.90
send data - 1000 256B messages 15.216 ms/op 11.083 ms/op 1.37
send data - 1000 512B messages 17.909 ms/op 13.596 ms/op 1.32
send data - 1000 1024B messages 26.506 ms/op 20.457 ms/op 1.30
send data - 1000 1200B messages 27.962 ms/op 24.838 ms/op 1.13
send data - 1000 2048B messages 32.209 ms/op 28.896 ms/op 1.11
send data - 1000 4096B messages 31.835 ms/op 26.751 ms/op 1.19
send data - 1000 16384B messages 72.868 ms/op 65.090 ms/op 1.12
send data - 1000 65536B messages 212.50 ms/op 237.16 ms/op 0.90
enrSubnets - fastDeserialize 64 bits 1.2210 us/op 1.1080 us/op 1.10
enrSubnets - ssz BitVector 64 bits 373.00 ns/op 499.00 ns/op 0.75
enrSubnets - fastDeserialize 4 bits 158.00 ns/op 330.00 ns/op 0.48
enrSubnets - ssz BitVector 4 bits 358.00 ns/op 509.00 ns/op 0.70
prioritizePeers score -10:0 att 32-0.1 sync 2-0 166.34 us/op 120.39 us/op 1.38
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 173.13 us/op 158.04 us/op 1.10
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 295.60 us/op 266.04 us/op 1.11
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 403.37 us/op 486.61 us/op 0.83
prioritizePeers score 0:0 att 64-1 sync 4-1 671.19 us/op 486.85 us/op 1.38
array of 16000 items push then shift 1.6631 us/op 1.2139 us/op 1.37
LinkedList of 16000 items push then shift 7.5900 ns/op 7.1630 ns/op 1.06
array of 16000 items push then pop 133.69 ns/op 85.684 ns/op 1.56
LinkedList of 16000 items push then pop 7.3880 ns/op 6.3320 ns/op 1.17
array of 24000 items push then shift 2.4148 us/op 1.7962 us/op 1.34
LinkedList of 24000 items push then shift 7.7040 ns/op 6.8420 ns/op 1.13
array of 24000 items push then pop 148.96 ns/op 129.04 ns/op 1.15
LinkedList of 24000 items push then pop 7.2760 ns/op 6.1520 ns/op 1.18
intersect bitArray bitLen 8 6.3460 ns/op 5.2640 ns/op 1.21
intersect array and set length 8 45.012 ns/op 38.338 ns/op 1.17
intersect bitArray bitLen 128 29.122 ns/op 25.628 ns/op 1.14
intersect array and set length 128 788.02 ns/op 555.47 ns/op 1.42
bitArray.getTrueBitIndexes() bitLen 128 2.0330 us/op 1.6720 us/op 1.22
bitArray.getTrueBitIndexes() bitLen 248 3.4420 us/op 2.7580 us/op 1.25
bitArray.getTrueBitIndexes() bitLen 512 6.8580 us/op 6.9320 us/op 0.99
Buffer.concat 32 items 982.00 ns/op 991.00 ns/op 0.99
Uint8Array.set 32 items 1.6560 us/op 1.6060 us/op 1.03
Buffer.copy 1.8160 us/op 1.7380 us/op 1.04
Uint8Array.set - with subarray 3.1860 us/op 2.1860 us/op 1.46
Uint8Array.set - without subarray 1.6370 us/op 1.6750 us/op 0.98
getUint32 - dataview 242.00 ns/op 433.00 ns/op 0.56
getUint32 - manual 173.00 ns/op 348.00 ns/op 0.50
Set add up to 64 items then delete first 2.2552 us/op 1.7323 us/op 1.30
OrderedSet add up to 64 items then delete first 3.3370 us/op 2.7074 us/op 1.23
Set add up to 64 items then delete last 2.5560 us/op 2.0101 us/op 1.27
OrderedSet add up to 64 items then delete last 3.6143 us/op 3.0933 us/op 1.17
Set add up to 64 items then delete middle 2.5462 us/op 2.2252 us/op 1.14
OrderedSet add up to 64 items then delete middle 5.1436 us/op 4.5639 us/op 1.13
Set add up to 128 items then delete first 5.1102 us/op 4.0241 us/op 1.27
OrderedSet add up to 128 items then delete first 8.8404 us/op 5.9425 us/op 1.49
Set add up to 128 items then delete last 5.2249 us/op 3.9572 us/op 1.32
OrderedSet add up to 128 items then delete last 7.6572 us/op 6.1667 us/op 1.24
Set add up to 128 items then delete middle 4.9465 us/op 3.9726 us/op 1.25
OrderedSet add up to 128 items then delete middle 13.953 us/op 11.667 us/op 1.20
Set add up to 256 items then delete first 10.749 us/op 7.8250 us/op 1.37
OrderedSet add up to 256 items then delete first 16.774 us/op 12.455 us/op 1.35
Set add up to 256 items then delete last 11.253 us/op 7.8511 us/op 1.43
OrderedSet add up to 256 items then delete last 16.697 us/op 12.920 us/op 1.29
Set add up to 256 items then delete middle 11.268 us/op 7.8068 us/op 1.44
OrderedSet add up to 256 items then delete middle 43.009 us/op 34.384 us/op 1.25
transfer serialized Status (84 B) 1.5520 us/op 1.3430 us/op 1.16
copy serialized Status (84 B) 1.2820 us/op 1.1930 us/op 1.07
transfer serialized SignedVoluntaryExit (112 B) 1.6780 us/op 1.4530 us/op 1.15
copy serialized SignedVoluntaryExit (112 B) 1.4320 us/op 1.2500 us/op 1.15
transfer serialized ProposerSlashing (416 B) 2.5320 us/op 1.9640 us/op 1.29
copy serialized ProposerSlashing (416 B) 1.8010 us/op 1.4530 us/op 1.24
transfer serialized Attestation (485 B) 2.4400 us/op 1.5470 us/op 1.58
copy serialized Attestation (485 B) 1.8160 us/op 1.3100 us/op 1.39
transfer serialized AttesterSlashing (33232 B) 2.2220 us/op 1.8490 us/op 1.20
copy serialized AttesterSlashing (33232 B) 5.3920 us/op 4.0820 us/op 1.32
transfer serialized Small SignedBeaconBlock (128000 B) 2.8020 us/op 1.7360 us/op 1.61
copy serialized Small SignedBeaconBlock (128000 B) 16.468 us/op 8.9870 us/op 1.83
transfer serialized Avg SignedBeaconBlock (200000 B) 3.6710 us/op 1.9060 us/op 1.93
copy serialized Avg SignedBeaconBlock (200000 B) 23.761 us/op 12.098 us/op 1.96
transfer serialized BlobsSidecar (524380 B) 3.0530 us/op 2.1440 us/op 1.42
copy serialized BlobsSidecar (524380 B) 84.684 us/op 102.50 us/op 0.83
transfer serialized Big SignedBeaconBlock (1000000 B) 3.0070 us/op 2.8200 us/op 1.07
copy serialized Big SignedBeaconBlock (1000000 B) 343.02 us/op 138.42 us/op 2.48
pass gossip attestations to forkchoice per slot 2.8165 ms/op 2.5122 ms/op 1.12
forkChoice updateHead vc 100000 bc 64 eq 0 567.01 us/op 624.42 us/op 0.91
forkChoice updateHead vc 600000 bc 64 eq 0 3.4730 ms/op 2.6399 ms/op 1.32
forkChoice updateHead vc 1000000 bc 64 eq 0 7.5754 ms/op 4.8231 ms/op 1.57
forkChoice updateHead vc 600000 bc 320 eq 0 3.1458 ms/op 2.6680 ms/op 1.18
forkChoice updateHead vc 600000 bc 1200 eq 0 3.1557 ms/op 2.7462 ms/op 1.15
forkChoice updateHead vc 600000 bc 7200 eq 0 3.5844 ms/op 3.3419 ms/op 1.07
forkChoice updateHead vc 600000 bc 64 eq 1000 10.631 ms/op 9.7921 ms/op 1.09
forkChoice updateHead vc 600000 bc 64 eq 10000 11.096 ms/op 9.5702 ms/op 1.16
forkChoice updateHead vc 600000 bc 64 eq 300000 15.082 ms/op 12.258 ms/op 1.23
computeDeltas 500000 validators 300 proto nodes 3.5346 ms/op 3.2164 ms/op 1.10
computeDeltas 500000 validators 1200 proto nodes 3.5060 ms/op 3.2430 ms/op 1.08
computeDeltas 500000 validators 7200 proto nodes 3.4850 ms/op 3.2622 ms/op 1.07
computeDeltas 750000 validators 300 proto nodes 5.1367 ms/op 5.0388 ms/op 1.02
computeDeltas 750000 validators 1200 proto nodes 5.2000 ms/op 4.6802 ms/op 1.11
computeDeltas 750000 validators 7200 proto nodes 5.2808 ms/op 4.7731 ms/op 1.11
computeDeltas 1400000 validators 300 proto nodes 9.8679 ms/op 8.5260 ms/op 1.16
computeDeltas 1400000 validators 1200 proto nodes 9.9178 ms/op 8.4091 ms/op 1.18
computeDeltas 1400000 validators 7200 proto nodes 10.100 ms/op 8.6127 ms/op 1.17
computeDeltas 2100000 validators 300 proto nodes 15.726 ms/op 13.579 ms/op 1.16
computeDeltas 2100000 validators 1200 proto nodes 15.509 ms/op 13.226 ms/op 1.17
computeDeltas 2100000 validators 7200 proto nodes 15.507 ms/op 12.912 ms/op 1.20
altair processAttestation - 250000 vs - 7PWei normalcase 1.9039 ms/op 2.0391 ms/op 0.93
altair processAttestation - 250000 vs - 7PWei worstcase 2.6180 ms/op 2.7321 ms/op 0.96
altair processAttestation - setStatus - 1/6 committees join 91.549 us/op 72.093 us/op 1.27
altair processAttestation - setStatus - 1/3 committees join 181.47 us/op 147.63 us/op 1.23
altair processAttestation - setStatus - 1/2 committees join 245.98 us/op 209.94 us/op 1.17
altair processAttestation - setStatus - 2/3 committees join 317.22 us/op 279.21 us/op 1.14
altair processAttestation - setStatus - 4/5 committees join 475.33 us/op 409.59 us/op 1.16
altair processAttestation - setStatus - 100% committees join 552.13 us/op 484.35 us/op 1.14
altair processBlock - 250000 vs - 7PWei normalcase 3.7419 ms/op 5.0885 ms/op 0.74
altair processBlock - 250000 vs - 7PWei normalcase hashState 27.678 ms/op 27.937 ms/op 0.99
altair processBlock - 250000 vs - 7PWei worstcase 34.814 ms/op 36.435 ms/op 0.96
altair processBlock - 250000 vs - 7PWei worstcase hashState 73.005 ms/op 80.202 ms/op 0.91
phase0 processBlock - 250000 vs - 7PWei normalcase 1.9120 ms/op 2.0246 ms/op 0.94
phase0 processBlock - 250000 vs - 7PWei worstcase 21.105 ms/op 22.982 ms/op 0.92
altair processEth1Data - 250000 vs - 7PWei normalcase 321.25 us/op 253.96 us/op 1.26
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.5180 us/op 5.0870 us/op 1.28
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 39.812 us/op 29.546 us/op 1.35
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 8.2040 us/op 5.0970 us/op 1.61
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 5.5110 us/op 5.3260 us/op 1.03
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 139.78 us/op 126.42 us/op 1.11
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.0594 ms/op 802.19 us/op 1.32
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.4392 ms/op 1.1703 ms/op 1.23
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.4450 ms/op 1.1073 ms/op 1.31
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.5674 ms/op 2.8483 ms/op 1.25
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.6097 ms/op 1.2553 ms/op 1.28
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.7145 ms/op 3.0827 ms/op 1.20
Tree 40 250000 create 245.72 ms/op 191.97 ms/op 1.28
Tree 40 250000 get(125000) 160.08 ns/op 124.31 ns/op 1.29
Tree 40 250000 set(125000) 788.09 ns/op 558.10 ns/op 1.41
Tree 40 250000 toArray() 20.719 ms/op 18.663 ms/op 1.11
Tree 40 250000 iterate all - toArray() + loop 20.290 ms/op 19.214 ms/op 1.06
Tree 40 250000 iterate all - get(i) 56.596 ms/op 49.217 ms/op 1.15
Array 250000 create 3.4582 ms/op 3.1645 ms/op 1.09
Array 250000 clone - spread 1.6877 ms/op 1.3737 ms/op 1.23
Array 250000 get(125000) 0.45200 ns/op 0.58400 ns/op 0.77
Array 250000 set(125000) 0.44600 ns/op 0.59200 ns/op 0.75
Array 250000 iterate all - loop 100.06 us/op 76.486 us/op 1.31
phase0 afterProcessEpoch - 250000 vs - 7PWei 90.266 ms/op 74.446 ms/op 1.21
Array.fill - length 1000000 3.6252 ms/op 2.6543 ms/op 1.37
Array push - length 1000000 18.325 ms/op 15.628 ms/op 1.17
Array.get 0.28981 ns/op 0.25966 ns/op 1.12
Uint8Array.get 0.44730 ns/op 0.34707 ns/op 1.29
phase0 beforeProcessEpoch - 250000 vs - 7PWei 19.309 ms/op 19.495 ms/op 0.99
altair processEpoch - mainnet_e81889 327.66 ms/op 332.71 ms/op 0.98
mainnet_e81889 - altair beforeProcessEpoch 19.685 ms/op 19.183 ms/op 1.03
mainnet_e81889 - altair processJustificationAndFinalization 13.511 us/op 13.294 us/op 1.02
mainnet_e81889 - altair processInactivityUpdates 5.5149 ms/op 6.2201 ms/op 0.89
mainnet_e81889 - altair processRewardsAndPenalties 45.820 ms/op 45.542 ms/op 1.01
mainnet_e81889 - altair processRegistryUpdates 1.8400 us/op 1.8170 us/op 1.01
mainnet_e81889 - altair processSlashings 404.00 ns/op 741.00 ns/op 0.55
mainnet_e81889 - altair processEth1DataReset 344.00 ns/op 733.00 ns/op 0.47
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.9380 ms/op 1.7048 ms/op 1.14
mainnet_e81889 - altair processSlashingsReset 2.5810 us/op 2.3920 us/op 1.08
mainnet_e81889 - altair processRandaoMixesReset 4.6310 us/op 2.8090 us/op 1.65
mainnet_e81889 - altair processHistoricalRootsUpdate 505.00 ns/op 724.00 ns/op 0.70
mainnet_e81889 - altair processParticipationFlagUpdates 1.9050 us/op 1.5670 us/op 1.22
mainnet_e81889 - altair processSyncCommitteeUpdates 406.00 ns/op 647.00 ns/op 0.63
mainnet_e81889 - altair afterProcessEpoch 94.777 ms/op 74.468 ms/op 1.27
capella processEpoch - mainnet_e217614 1.1486 s/op 911.27 ms/op 1.26
mainnet_e217614 - capella beforeProcessEpoch 69.036 ms/op 68.158 ms/op 1.01
mainnet_e217614 - capella processJustificationAndFinalization 15.723 us/op 7.3050 us/op 2.15
mainnet_e217614 - capella processInactivityUpdates 17.651 ms/op 17.477 ms/op 1.01
mainnet_e217614 - capella processRewardsAndPenalties 217.84 ms/op 255.18 ms/op 0.85
mainnet_e217614 - capella processRegistryUpdates 12.951 us/op 15.542 us/op 0.83
mainnet_e217614 - capella processSlashings 379.00 ns/op 841.00 ns/op 0.45
mainnet_e217614 - capella processEth1DataReset 322.00 ns/op 743.00 ns/op 0.43
mainnet_e217614 - capella processEffectiveBalanceUpdates 12.547 ms/op 14.588 ms/op 0.86
mainnet_e217614 - capella processSlashingsReset 3.3480 us/op 2.8900 us/op 1.16
mainnet_e217614 - capella processRandaoMixesReset 5.5970 us/op 3.0550 us/op 1.83
mainnet_e217614 - capella processHistoricalRootsUpdate 591.00 ns/op 808.00 ns/op 0.73
mainnet_e217614 - capella processParticipationFlagUpdates 1.8250 us/op 1.7010 us/op 1.07
mainnet_e217614 - capella afterProcessEpoch 237.70 ms/op 198.36 ms/op 1.20
phase0 processEpoch - mainnet_e58758 351.93 ms/op 366.46 ms/op 0.96
mainnet_e58758 - phase0 beforeProcessEpoch 81.061 ms/op 76.598 ms/op 1.06
mainnet_e58758 - phase0 processJustificationAndFinalization 13.621 us/op 12.620 us/op 1.08
mainnet_e58758 - phase0 processRewardsAndPenalties 34.915 ms/op 25.463 ms/op 1.37
mainnet_e58758 - phase0 processRegistryUpdates 7.3370 us/op 6.1270 us/op 1.20
mainnet_e58758 - phase0 processSlashings 337.00 ns/op 486.00 ns/op 0.69
mainnet_e58758 - phase0 processEth1DataReset 352.00 ns/op 649.00 ns/op 0.54
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.1984 ms/op 1.3694 ms/op 0.88
mainnet_e58758 - phase0 processSlashingsReset 3.0800 us/op 2.4050 us/op 1.28
mainnet_e58758 - phase0 processRandaoMixesReset 4.0300 us/op 2.8900 us/op 1.39
mainnet_e58758 - phase0 processHistoricalRootsUpdate 371.00 ns/op 562.00 ns/op 0.66
mainnet_e58758 - phase0 processParticipationRecordUpdates 2.9430 us/op 2.1610 us/op 1.36
mainnet_e58758 - phase0 afterProcessEpoch 77.249 ms/op 64.993 ms/op 1.19
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.8906 ms/op 958.26 us/op 1.97
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.4636 ms/op 1.4877 ms/op 1.66
altair processInactivityUpdates - 250000 normalcase 14.409 ms/op 17.715 ms/op 0.81
altair processInactivityUpdates - 250000 worstcase 14.412 ms/op 15.975 ms/op 0.90
phase0 processRegistryUpdates - 250000 normalcase 6.4790 us/op 5.4890 us/op 1.18
phase0 processRegistryUpdates - 250000 badcase_full_deposits 259.77 us/op 308.70 us/op 0.84
phase0 processRegistryUpdates - 250000 worstcase 0.5 110.07 ms/op 118.30 ms/op 0.93
altair processRewardsAndPenalties - 250000 normalcase 38.636 ms/op 43.533 ms/op 0.89
altair processRewardsAndPenalties - 250000 worstcase 38.355 ms/op 44.119 ms/op 0.87
phase0 getAttestationDeltas - 250000 normalcase 7.5640 ms/op 6.1857 ms/op 1.22
phase0 getAttestationDeltas - 250000 worstcase 7.5413 ms/op 6.5742 ms/op 1.15
phase0 processSlashings - 250000 worstcase 81.185 us/op 91.062 us/op 0.89
altair processSyncCommitteeUpdates - 250000 120.54 ms/op 102.93 ms/op 1.17
BeaconState.hashTreeRoot - No change 246.00 ns/op 450.00 ns/op 0.55
BeaconState.hashTreeRoot - 1 full validator 133.25 us/op 121.83 us/op 1.09
BeaconState.hashTreeRoot - 32 full validator 1.4019 ms/op 1.0620 ms/op 1.32
BeaconState.hashTreeRoot - 512 full validator 14.240 ms/op 11.434 ms/op 1.25
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 135.75 us/op 131.66 us/op 1.03
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.5996 ms/op 1.9370 ms/op 0.83
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 23.343 ms/op 25.958 ms/op 0.90
BeaconState.hashTreeRoot - 1 balances 94.018 us/op 111.31 us/op 0.84
BeaconState.hashTreeRoot - 32 balances 822.10 us/op 1.1280 ms/op 0.73
BeaconState.hashTreeRoot - 512 balances 7.2591 ms/op 9.1153 ms/op 0.80
BeaconState.hashTreeRoot - 250000 balances 132.29 ms/op 162.15 ms/op 0.82
aggregationBits - 2048 els - zipIndexesInBitList 23.346 us/op 22.568 us/op 1.03
byteArrayEquals 32 52.745 ns/op 47.099 ns/op 1.12
Buffer.compare 32 16.982 ns/op 15.478 ns/op 1.10
byteArrayEquals 1024 1.5624 us/op 1.2566 us/op 1.24
Buffer.compare 1024 25.264 ns/op 22.460 ns/op 1.12
byteArrayEquals 16384 24.955 us/op 20.004 us/op 1.25
Buffer.compare 16384 194.53 ns/op 201.08 ns/op 0.97
byteArrayEquals 123687377 187.33 ms/op 151.81 ms/op 1.23
Buffer.compare 123687377 6.1527 ms/op 3.9301 ms/op 1.57
byteArrayEquals 32 - diff last byte 51.683 ns/op 48.517 ns/op 1.07
Buffer.compare 32 - diff last byte 17.486 ns/op 16.285 ns/op 1.07
byteArrayEquals 1024 - diff last byte 1.5551 us/op 1.2505 us/op 1.24
Buffer.compare 1024 - diff last byte 25.746 ns/op 24.611 ns/op 1.05
byteArrayEquals 16384 - diff last byte 24.773 us/op 19.926 us/op 1.24
Buffer.compare 16384 - diff last byte 182.08 ns/op 192.08 ns/op 0.95
byteArrayEquals 123687377 - diff last byte 187.15 ms/op 150.69 ms/op 1.24
Buffer.compare 123687377 - diff last byte 6.6658 ms/op 4.5768 ms/op 1.46
byteArrayEquals 32 - random bytes 5.1680 ns/op 4.9410 ns/op 1.05
Buffer.compare 32 - random bytes 17.085 ns/op 16.792 ns/op 1.02
byteArrayEquals 1024 - random bytes 5.0360 ns/op 4.9260 ns/op 1.02
Buffer.compare 1024 - random bytes 16.958 ns/op 16.712 ns/op 1.01
byteArrayEquals 16384 - random bytes 5.0180 ns/op 4.9000 ns/op 1.02
Buffer.compare 16384 - random bytes 17.021 ns/op 16.695 ns/op 1.02
byteArrayEquals 123687377 - random bytes 6.4000 ns/op 7.8000 ns/op 0.82
Buffer.compare 123687377 - random bytes 18.520 ns/op 19.870 ns/op 0.93
regular array get 100000 times 40.142 us/op 30.779 us/op 1.30
wrappedArray get 100000 times 33.135 us/op 30.658 us/op 1.08
arrayWithProxy get 100000 times 13.436 ms/op 10.122 ms/op 1.33
ssz.Root.equals 45.551 ns/op 42.902 ns/op 1.06
byteArrayEquals 44.800 ns/op 42.165 ns/op 1.06
Buffer.compare 10.245 ns/op 9.7320 ns/op 1.05
shuffle list - 16384 els 6.2072 ms/op 5.4261 ms/op 1.14
shuffle list - 250000 els 89.692 ms/op 79.110 ms/op 1.13
processSlot - 1 slots 12.354 us/op 11.417 us/op 1.08
processSlot - 32 slots 3.0411 ms/op 2.3281 ms/op 1.31
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 37.519 ms/op 38.398 ms/op 0.98
getCommitteeAssignments - req 1 vs - 250000 vc 2.1187 ms/op 1.8116 ms/op 1.17
getCommitteeAssignments - req 100 vs - 250000 vc 4.1113 ms/op 3.5327 ms/op 1.16
getCommitteeAssignments - req 1000 vs - 250000 vc 4.4146 ms/op 3.8903 ms/op 1.13
findModifiedValidators - 10000 modified validators 264.89 ms/op 242.13 ms/op 1.09
findModifiedValidators - 1000 modified validators 190.08 ms/op 144.83 ms/op 1.31
findModifiedValidators - 100 modified validators 188.18 ms/op 148.85 ms/op 1.26
findModifiedValidators - 10 modified validators 162.32 ms/op 136.43 ms/op 1.19
findModifiedValidators - 1 modified validators 165.11 ms/op 131.78 ms/op 1.25
findModifiedValidators - no difference 166.49 ms/op 157.90 ms/op 1.05
compare ViewDUs 3.0735 s/op 3.0253 s/op 1.02
compare each validator Uint8Array 1.5037 s/op 1.6100 s/op 0.93
compare ViewDU to Uint8Array 940.53 ms/op 960.44 ms/op 0.98
migrate state 1000000 validators, 24 modified, 0 new 873.51 ms/op 804.28 ms/op 1.09
migrate state 1000000 validators, 1700 modified, 1000 new 1.1212 s/op 979.91 ms/op 1.14
migrate state 1000000 validators, 3400 modified, 2000 new 1.3231 s/op 1.2813 s/op 1.03
migrate state 1500000 validators, 24 modified, 0 new 897.16 ms/op 831.87 ms/op 1.08
migrate state 1500000 validators, 1700 modified, 1000 new 1.1106 s/op 1.0307 s/op 1.08
migrate state 1500000 validators, 3400 modified, 2000 new 1.3032 s/op 1.1981 s/op 1.09
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.2800 ns/op 6.1400 ns/op 0.70
state getBlockRootAtSlot - 250000 vs - 7PWei 428.98 ns/op 778.52 ns/op 0.55
computeProposers - vc 250000 6.5843 ms/op 6.1904 ms/op 1.06
computeEpochShuffling - vc 250000 91.818 ms/op 79.667 ms/op 1.15
getNextSyncCommittee - vc 250000 114.47 ms/op 103.99 ms/op 1.10
computeSigningRoot for AttestationData 15.887 us/op 16.058 us/op 0.99
hash AttestationData serialized data then Buffer.toString(base64) 1.5538 us/op 1.1216 us/op 1.39
toHexString serialized data 899.21 ns/op 742.26 ns/op 1.21
Buffer.toString(base64) 159.55 ns/op 123.68 ns/op 1.29
nodejs block root to RootHex using toHex 144.43 ns/op 108.31 ns/op 1.33
nodejs block root to RootHex using toRootHex 91.070 ns/op 71.957 ns/op 1.27
browser block root to RootHex using the deprecated toHexString 245.30 ns/op 204.22 ns/op 1.20
browser block root to RootHex using toHex 201.23 ns/op 164.03 ns/op 1.23
browser block root to RootHex using toRootHex 164.51 ns/op 145.51 ns/op 1.13

by benchmarkbot/action

Copy link

codecov bot commented Sep 23, 2024

Codecov Report

Attention: Patch coverage is 81.48148% with 5 lines in your changes missing coverage. Please review.

Project coverage is 50.82%. Comparing base (bb40ef7) to head (2aa7f08).
Report is 5 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #7094      +/-   ##
============================================
- Coverage     50.89%   50.82%   -0.07%     
============================================
  Files           595      597       +2     
  Lines         39652    39789     +137     
  Branches       2258     2055     -203     
============================================
+ Hits          20182    20224      +42     
- Misses        19470    19565      +95     

@ensi321 ensi321 marked this pull request as ready for review September 23, 2024 19:29
@ensi321 ensi321 requested a review from a team as a code owner September 23, 2024 19:29
Copy link
Member

@nflaig nflaig left a comment

Choose a reason for hiding this comment

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

LGTM

@ensi321 ensi321 merged commit ad4ec77 into unstable Sep 25, 2024
20 checks passed
@ensi321 ensi321 deleted the nc/decouple-requests branch September 25, 2024 01:33
philknows pushed a commit that referenced this pull request Sep 27, 2024
* Move requests from payload to block body

* Lint

* Add execution requests to engine api

* Remove engine_getPayloadBodies*V2

* Update spec test version

* Lint

* Fix unit test and polish

* Remove todo
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