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: process deposit requests at epoch processing #7131

Merged
merged 9 commits into from
Oct 11, 2024

Conversation

ensi321
Copy link
Contributor

@ensi321 ensi321 commented Oct 7, 2024

Description

  • Rename pending balance deposit to pending deposit
  • processDeposit in block processing now adds deposits to pending queue instead of being processed immediately
  • Deposits in the pending queue will only be dequeued if deposit.slot is finalized.

Remaining item

  • Unfinalized pub key cache will be removed in a separate PR

Spec PR: ethereum/consensus-specs#3818

Copy link

codecov bot commented Oct 7, 2024

Codecov Report

Attention: Patch coverage is 17.79141% with 134 lines in your changes missing coverage. Please review.

Please upload report for BASE (nc/devnet-4@f2b96ff). Learn more about missing BASE report.

Additional details and impacted files
@@              Coverage Diff               @@
##             nc/devnet-4    #7131   +/-   ##
==============================================
  Coverage               ?   49.00%           
==============================================
  Files                  ?      596           
  Lines                  ?    39795           
  Branches               ?     2059           
==============================================
  Hits                   ?    19502           
  Misses                 ?    20252           
  Partials               ?       41           

Copy link
Contributor

github-actions bot commented Oct 7, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 698a9b8 Previous: 1fa3f37 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.1616 ms/op 2.0172 ms/op 1.07
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 55.712 us/op 58.150 us/op 0.96
BLS verify - blst 1.0872 ms/op 826.20 us/op 1.32
BLS verifyMultipleSignatures 3 - blst 1.4094 ms/op 1.3240 ms/op 1.06
BLS verifyMultipleSignatures 8 - blst 2.3891 ms/op 1.7245 ms/op 1.39
BLS verifyMultipleSignatures 32 - blst 6.8252 ms/op 5.1644 ms/op 1.32
BLS verifyMultipleSignatures 64 - blst 10.920 ms/op 9.3538 ms/op 1.17
BLS verifyMultipleSignatures 128 - blst 20.795 ms/op 17.259 ms/op 1.20
BLS deserializing 10000 signatures 772.04 ms/op 689.31 ms/op 1.12
BLS deserializing 100000 signatures 8.1839 s/op 6.8879 s/op 1.19
BLS verifyMultipleSignatures - same message - 3 - blst 1.1149 ms/op 1.0142 ms/op 1.10
BLS verifyMultipleSignatures - same message - 8 - blst 1.3487 ms/op 1.0981 ms/op 1.23
BLS verifyMultipleSignatures - same message - 32 - blst 2.1362 ms/op 1.8210 ms/op 1.17
BLS verifyMultipleSignatures - same message - 64 - blst 3.2765 ms/op 2.6986 ms/op 1.21
BLS verifyMultipleSignatures - same message - 128 - blst 5.4640 ms/op 4.4333 ms/op 1.23
BLS aggregatePubkeys 32 - blst 24.831 us/op 19.834 us/op 1.25
BLS aggregatePubkeys 128 - blst 86.798 us/op 70.185 us/op 1.24
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 83.950 ms/op 57.937 ms/op 1.45
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 62.870 ms/op 47.134 ms/op 1.33
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 50.782 ms/op 31.711 ms/op 1.60
getSlashingsAndExits - default max 104.95 us/op 86.446 us/op 1.21
getSlashingsAndExits - 2k 322.59 us/op 246.82 us/op 1.31
proposeBlockBody type=full, size=empty 7.2732 ms/op 5.6835 ms/op 1.28
isKnown best case - 1 super set check 478.00 ns/op 263.00 ns/op 1.82
isKnown normal case - 2 super set checks 413.00 ns/op 260.00 ns/op 1.59
isKnown worse case - 16 super set checks 381.00 ns/op 261.00 ns/op 1.46
InMemoryCheckpointStateCache - add get delete 3.5750 us/op 2.6570 us/op 1.35
updateUnfinalizedPubkeys - updating 10 pubkeys 1.4408 ms/op 730.36 us/op 1.97
updateUnfinalizedPubkeys - updating 100 pubkeys 5.2874 ms/op 3.2337 ms/op 1.64
updateUnfinalizedPubkeys - updating 1000 pubkeys 65.536 ms/op 49.970 ms/op 1.31
validate api signedAggregateAndProof - struct 2.1445 ms/op 1.3633 ms/op 1.57
validate gossip signedAggregateAndProof - struct 2.3389 ms/op 1.3258 ms/op 1.76
batch validate gossip attestation - vc 640000 - chunk 32 179.67 us/op 121.74 us/op 1.48
batch validate gossip attestation - vc 640000 - chunk 64 193.90 us/op 110.23 us/op 1.76
batch validate gossip attestation - vc 640000 - chunk 128 146.13 us/op 102.37 us/op 1.43
batch validate gossip attestation - vc 640000 - chunk 256 125.21 us/op 101.11 us/op 1.24
pickEth1Vote - no votes 1.5989 ms/op 1.0565 ms/op 1.51
pickEth1Vote - max votes 7.7901 ms/op 5.2073 ms/op 1.50
pickEth1Vote - Eth1Data hashTreeRoot value x2048 16.961 ms/op 11.423 ms/op 1.48
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 22.897 ms/op 14.885 ms/op 1.54
pickEth1Vote - Eth1Data fastSerialize value x2048 555.48 us/op 461.27 us/op 1.20
pickEth1Vote - Eth1Data fastSerialize tree x2048 3.2136 ms/op 3.6871 ms/op 0.87
bytes32 toHexString 562.00 ns/op 412.00 ns/op 1.36
bytes32 Buffer.toString(hex) 323.00 ns/op 251.00 ns/op 1.29
bytes32 Buffer.toString(hex) from Uint8Array 476.00 ns/op 381.00 ns/op 1.25
bytes32 Buffer.toString(hex) + 0x 318.00 ns/op 252.00 ns/op 1.26
Object access 1 prop 0.19600 ns/op 0.14100 ns/op 1.39
Map access 1 prop 0.17000 ns/op 0.14100 ns/op 1.21
Object get x1000 7.6650 ns/op 5.7810 ns/op 1.33
Map get x1000 8.1290 ns/op 6.5040 ns/op 1.25
Object set x1000 41.976 ns/op 32.685 ns/op 1.28
Map set x1000 30.128 ns/op 21.589 ns/op 1.40
Return object 10000 times 0.36150 ns/op 0.28730 ns/op 1.26
Throw Error 10000 times 4.1158 us/op 3.3067 us/op 1.24
toHex 177.55 ns/op 151.73 ns/op 1.17
Buffer.from 164.85 ns/op 133.31 ns/op 1.24
shared Buffer 104.66 ns/op 91.784 ns/op 1.14
fastMsgIdFn sha256 / 200 bytes 2.4700 us/op 2.2070 us/op 1.12
fastMsgIdFn h32 xxhash / 200 bytes 266.00 ns/op 234.00 ns/op 1.14
fastMsgIdFn h64 xxhash / 200 bytes 306.00 ns/op 270.00 ns/op 1.13
fastMsgIdFn sha256 / 1000 bytes 8.6710 us/op 7.2030 us/op 1.20
fastMsgIdFn h32 xxhash / 1000 bytes 440.00 ns/op 364.00 ns/op 1.21
fastMsgIdFn h64 xxhash / 1000 bytes 393.00 ns/op 339.00 ns/op 1.16
fastMsgIdFn sha256 / 10000 bytes 75.003 us/op 63.185 us/op 1.19
fastMsgIdFn h32 xxhash / 10000 bytes 2.0830 us/op 1.8310 us/op 1.14
fastMsgIdFn h64 xxhash / 10000 bytes 1.3710 us/op 1.1790 us/op 1.16
send data - 1000 256B messages 13.764 ms/op 11.900 ms/op 1.16
send data - 1000 512B messages 20.017 ms/op 16.250 ms/op 1.23
send data - 1000 1024B messages 31.720 ms/op 25.370 ms/op 1.25
send data - 1000 1200B messages 23.205 ms/op 25.966 ms/op 0.89
send data - 1000 2048B messages 37.562 ms/op 31.003 ms/op 1.21
send data - 1000 4096B messages 35.857 ms/op 32.252 ms/op 1.11
send data - 1000 16384B messages 80.321 ms/op 68.866 ms/op 1.17
send data - 1000 65536B messages 234.20 ms/op 218.41 ms/op 1.07
enrSubnets - fastDeserialize 64 bits 1.2650 us/op 1.1470 us/op 1.10
enrSubnets - ssz BitVector 64 bits 397.00 ns/op 379.00 ns/op 1.05
enrSubnets - fastDeserialize 4 bits 163.00 ns/op 169.00 ns/op 0.96
enrSubnets - ssz BitVector 4 bits 392.00 ns/op 371.00 ns/op 1.06
prioritizePeers score -10:0 att 32-0.1 sync 2-0 194.29 us/op 149.59 us/op 1.30
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 201.71 us/op 152.74 us/op 1.32
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 389.29 us/op 290.23 us/op 1.34
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 751.09 us/op 400.12 us/op 1.88
prioritizePeers score 0:0 att 64-1 sync 4-1 902.94 us/op 655.26 us/op 1.38
array of 16000 items push then shift 1.7855 us/op 1.6114 us/op 1.11
LinkedList of 16000 items push then shift 7.9140 ns/op 6.8890 ns/op 1.15
array of 16000 items push then pop 124.09 ns/op 119.44 ns/op 1.04
LinkedList of 16000 items push then pop 7.7900 ns/op 6.8170 ns/op 1.14
array of 24000 items push then shift 2.6193 us/op 2.3942 us/op 1.09
LinkedList of 24000 items push then shift 8.3860 ns/op 7.2700 ns/op 1.15
array of 24000 items push then pop 148.23 ns/op 152.84 ns/op 0.97
LinkedList of 24000 items push then pop 7.7000 ns/op 6.9130 ns/op 1.11
intersect bitArray bitLen 8 7.2320 ns/op 6.3780 ns/op 1.13
intersect array and set length 8 51.777 ns/op 49.151 ns/op 1.05
intersect bitArray bitLen 128 33.818 ns/op 29.589 ns/op 1.14
intersect array and set length 128 753.52 ns/op 695.74 ns/op 1.08
bitArray.getTrueBitIndexes() bitLen 128 2.9720 us/op 1.6460 us/op 1.81
bitArray.getTrueBitIndexes() bitLen 248 3.7570 us/op 3.3130 us/op 1.13
bitArray.getTrueBitIndexes() bitLen 512 9.0590 us/op 7.4000 us/op 1.22
Buffer.concat 32 items 1.0020 us/op 917.00 ns/op 1.09
Uint8Array.set 32 items 1.7270 us/op 1.6620 us/op 1.04
Buffer.copy 2.6320 us/op 1.8020 us/op 1.46
Uint8Array.set - with subarray 3.6680 us/op 2.9470 us/op 1.24
Uint8Array.set - without subarray 1.9720 us/op 1.6640 us/op 1.19
getUint32 - dataview 244.00 ns/op 255.00 ns/op 0.96
getUint32 - manual 158.00 ns/op 177.00 ns/op 0.89
Set add up to 64 items then delete first 2.2302 us/op 2.3034 us/op 0.97
OrderedSet add up to 64 items then delete first 3.5177 us/op 3.3536 us/op 1.05
Set add up to 64 items then delete last 2.6818 us/op 2.4722 us/op 1.08
OrderedSet add up to 64 items then delete last 3.9208 us/op 4.0447 us/op 0.97
Set add up to 64 items then delete middle 2.7046 us/op 2.7233 us/op 0.99
OrderedSet add up to 64 items then delete middle 5.6254 us/op 5.6456 us/op 1.00
Set add up to 128 items then delete first 5.4341 us/op 5.3742 us/op 1.01
OrderedSet add up to 128 items then delete first 8.4549 us/op 8.5667 us/op 0.99
Set add up to 128 items then delete last 5.2897 us/op 5.1059 us/op 1.04
OrderedSet add up to 128 items then delete last 7.7701 us/op 7.4032 us/op 1.05
Set add up to 128 items then delete middle 5.1955 us/op 5.1625 us/op 1.01
OrderedSet add up to 128 items then delete middle 14.753 us/op 15.680 us/op 0.94
Set add up to 256 items then delete first 10.949 us/op 12.066 us/op 0.91
OrderedSet add up to 256 items then delete first 17.264 us/op 17.365 us/op 0.99
Set add up to 256 items then delete last 10.327 us/op 10.185 us/op 1.01
OrderedSet add up to 256 items then delete last 15.571 us/op 16.063 us/op 0.97
Set add up to 256 items then delete middle 10.255 us/op 9.7160 us/op 1.06
OrderedSet add up to 256 items then delete middle 44.560 us/op 43.832 us/op 1.02
transfer serialized Status (84 B) 1.6480 us/op 1.3450 us/op 1.23
copy serialized Status (84 B) 1.2590 us/op 1.1650 us/op 1.08
transfer serialized SignedVoluntaryExit (112 B) 1.6020 us/op 1.4340 us/op 1.12
copy serialized SignedVoluntaryExit (112 B) 1.2750 us/op 1.1910 us/op 1.07
transfer serialized ProposerSlashing (416 B) 1.6000 us/op 1.5900 us/op 1.01
copy serialized ProposerSlashing (416 B) 1.8850 us/op 1.8550 us/op 1.02
transfer serialized Attestation (485 B) 2.0410 us/op 2.0470 us/op 1.00
copy serialized Attestation (485 B) 1.7730 us/op 1.8070 us/op 0.98
transfer serialized AttesterSlashing (33232 B) 2.2280 us/op 2.7270 us/op 0.82
copy serialized AttesterSlashing (33232 B) 4.6510 us/op 6.2860 us/op 0.74
transfer serialized Small SignedBeaconBlock (128000 B) 2.2070 us/op 2.8190 us/op 0.78
copy serialized Small SignedBeaconBlock (128000 B) 13.631 us/op 16.020 us/op 0.85
transfer serialized Avg SignedBeaconBlock (200000 B) 3.1470 us/op 3.4820 us/op 0.90
copy serialized Avg SignedBeaconBlock (200000 B) 19.501 us/op 22.600 us/op 0.86
transfer serialized BlobsSidecar (524380 B) 2.4510 us/op 3.2910 us/op 0.74
copy serialized BlobsSidecar (524380 B) 79.420 us/op 82.110 us/op 0.97
transfer serialized Big SignedBeaconBlock (1000000 B) 2.5600 us/op 3.1300 us/op 0.82
copy serialized Big SignedBeaconBlock (1000000 B) 187.74 us/op 150.36 us/op 1.25
pass gossip attestations to forkchoice per slot 3.1316 ms/op 2.7438 ms/op 1.14
forkChoice updateHead vc 100000 bc 64 eq 0 568.37 us/op 476.15 us/op 1.19
forkChoice updateHead vc 600000 bc 64 eq 0 3.9436 ms/op 3.6242 ms/op 1.09
forkChoice updateHead vc 1000000 bc 64 eq 0 5.8994 ms/op 5.2970 ms/op 1.11
forkChoice updateHead vc 600000 bc 320 eq 0 3.3798 ms/op 3.2402 ms/op 1.04
forkChoice updateHead vc 600000 bc 1200 eq 0 3.2521 ms/op 3.2064 ms/op 1.01
forkChoice updateHead vc 600000 bc 7200 eq 0 4.4449 ms/op 3.9092 ms/op 1.14
forkChoice updateHead vc 600000 bc 64 eq 1000 11.748 ms/op 10.543 ms/op 1.11
forkChoice updateHead vc 600000 bc 64 eq 10000 11.678 ms/op 10.557 ms/op 1.11
forkChoice updateHead vc 600000 bc 64 eq 300000 15.281 ms/op 14.776 ms/op 1.03
computeDeltas 500000 validators 300 proto nodes 3.8603 ms/op 3.5239 ms/op 1.10
computeDeltas 500000 validators 1200 proto nodes 3.8323 ms/op 3.7181 ms/op 1.03
computeDeltas 500000 validators 7200 proto nodes 3.8786 ms/op 3.7360 ms/op 1.04
computeDeltas 750000 validators 300 proto nodes 5.8336 ms/op 5.2222 ms/op 1.12
computeDeltas 750000 validators 1200 proto nodes 5.9252 ms/op 5.4100 ms/op 1.10
computeDeltas 750000 validators 7200 proto nodes 5.7994 ms/op 5.2883 ms/op 1.10
computeDeltas 1400000 validators 300 proto nodes 11.113 ms/op 10.343 ms/op 1.07
computeDeltas 1400000 validators 1200 proto nodes 11.585 ms/op 10.700 ms/op 1.08
computeDeltas 1400000 validators 7200 proto nodes 12.006 ms/op 12.212 ms/op 0.98
computeDeltas 2100000 validators 300 proto nodes 19.258 ms/op 19.939 ms/op 0.97
computeDeltas 2100000 validators 1200 proto nodes 19.262 ms/op 21.536 ms/op 0.89
computeDeltas 2100000 validators 7200 proto nodes 19.630 ms/op 24.362 ms/op 0.81
altair processAttestation - 250000 vs - 7PWei normalcase 2.5483 ms/op 3.1713 ms/op 0.80
altair processAttestation - 250000 vs - 7PWei worstcase 3.3940 ms/op 5.4530 ms/op 0.62
altair processAttestation - setStatus - 1/6 committees join 123.67 us/op 112.78 us/op 1.10
altair processAttestation - setStatus - 1/3 committees join 259.65 us/op 226.03 us/op 1.15
altair processAttestation - setStatus - 1/2 committees join 359.78 us/op 311.20 us/op 1.16
altair processAttestation - setStatus - 2/3 committees join 528.66 us/op 430.95 us/op 1.23
altair processAttestation - setStatus - 4/5 committees join 666.68 us/op 674.76 us/op 0.99
altair processAttestation - setStatus - 100% committees join 756.52 us/op 795.99 us/op 0.95
altair processBlock - 250000 vs - 7PWei normalcase 9.0794 ms/op 7.9027 ms/op 1.15
altair processBlock - 250000 vs - 7PWei normalcase hashState 45.808 ms/op 33.531 ms/op 1.37
altair processBlock - 250000 vs - 7PWei worstcase 48.494 ms/op 50.909 ms/op 0.95
altair processBlock - 250000 vs - 7PWei worstcase hashState 97.414 ms/op 92.487 ms/op 1.05
phase0 processBlock - 250000 vs - 7PWei normalcase 3.0725 ms/op 3.6781 ms/op 0.84
phase0 processBlock - 250000 vs - 7PWei worstcase 29.062 ms/op 30.284 ms/op 0.96
altair processEth1Data - 250000 vs - 7PWei normalcase 515.52 us/op 631.17 us/op 0.82
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.3100 us/op 10.560 us/op 0.60
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 32.608 us/op 55.943 us/op 0.58
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 14.552 us/op 19.020 us/op 0.77
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 7.1500 us/op 10.529 us/op 0.68
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 151.90 us/op 191.39 us/op 0.79
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.8070 ms/op 1.3299 ms/op 1.36
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.8434 ms/op 1.7020 ms/op 1.08
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.3987 ms/op 1.6355 ms/op 1.47
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 5.2907 ms/op 4.7193 ms/op 1.12
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.4124 ms/op 2.3928 ms/op 1.01
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.9963 ms/op 4.9005 ms/op 1.02
Tree 40 250000 create 363.42 ms/op 289.58 ms/op 1.25
Tree 40 250000 get(125000) 235.52 ns/op 159.12 ns/op 1.48
Tree 40 250000 set(125000) 952.03 ns/op 751.76 ns/op 1.27
Tree 40 250000 toArray() 25.859 ms/op 20.190 ms/op 1.28
Tree 40 250000 iterate all - toArray() + loop 23.690 ms/op 19.603 ms/op 1.21
Tree 40 250000 iterate all - get(i) 74.021 ms/op 60.703 ms/op 1.22
Array 250000 create 4.3585 ms/op 3.8430 ms/op 1.13
Array 250000 clone - spread 1.9289 ms/op 1.5148 ms/op 1.27
Array 250000 get(125000) 0.55400 ns/op 0.43300 ns/op 1.28
Array 250000 set(125000) 0.59600 ns/op 0.47000 ns/op 1.27
Array 250000 iterate all - loop 134.66 us/op 102.21 us/op 1.32
phase0 afterProcessEpoch - 250000 vs - 7PWei 146.07 ms/op 92.600 ms/op 1.58
Array.fill - length 1000000 6.3970 ms/op 4.5891 ms/op 1.39
Array push - length 1000000 24.658 ms/op 29.449 ms/op 0.84
Array.get 0.35535 ns/op 0.28780 ns/op 1.23
Uint8Array.get 0.62832 ns/op 0.46010 ns/op 1.37
phase0 beforeProcessEpoch - 250000 vs - 7PWei 25.266 ms/op 22.916 ms/op 1.10
altair processEpoch - mainnet_e81889 425.38 ms/op 311.32 ms/op 1.37
mainnet_e81889 - altair beforeProcessEpoch 24.030 ms/op 20.962 ms/op 1.15
mainnet_e81889 - altair processJustificationAndFinalization 24.882 us/op 18.624 us/op 1.34
mainnet_e81889 - altair processInactivityUpdates 7.6827 ms/op 7.5044 ms/op 1.02
mainnet_e81889 - altair processRewardsAndPenalties 56.531 ms/op 40.596 ms/op 1.39
mainnet_e81889 - altair processRegistryUpdates 2.6660 us/op 2.8480 us/op 0.94
mainnet_e81889 - altair processSlashings 473.00 ns/op 460.00 ns/op 1.03
mainnet_e81889 - altair processEth1DataReset 361.00 ns/op 391.00 ns/op 0.92
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.7349 ms/op 1.9389 ms/op 1.41
mainnet_e81889 - altair processSlashingsReset 3.7400 us/op 5.5260 us/op 0.68
mainnet_e81889 - altair processRandaoMixesReset 5.1930 us/op 4.6590 us/op 1.11
mainnet_e81889 - altair processHistoricalRootsUpdate 634.00 ns/op 672.00 ns/op 0.94
mainnet_e81889 - altair processParticipationFlagUpdates 4.2310 us/op 5.1480 us/op 0.82
mainnet_e81889 - altair processSyncCommitteeUpdates 724.00 ns/op 751.00 ns/op 0.96
mainnet_e81889 - altair afterProcessEpoch 105.88 ms/op 99.151 ms/op 1.07
capella processEpoch - mainnet_e217614 1.3010 s/op 1.2481 s/op 1.04
mainnet_e217614 - capella beforeProcessEpoch 74.527 ms/op 67.855 ms/op 1.10
mainnet_e217614 - capella processJustificationAndFinalization 20.486 us/op 16.994 us/op 1.21
mainnet_e217614 - capella processInactivityUpdates 17.926 ms/op 18.001 ms/op 1.00
mainnet_e217614 - capella processRewardsAndPenalties 263.99 ms/op 225.46 ms/op 1.17
mainnet_e217614 - capella processRegistryUpdates 21.611 us/op 13.989 us/op 1.54
mainnet_e217614 - capella processSlashings 655.00 ns/op 363.00 ns/op 1.80
mainnet_e217614 - capella processEth1DataReset 486.00 ns/op 417.00 ns/op 1.17
mainnet_e217614 - capella processEffectiveBalanceUpdates 6.3372 ms/op 13.398 ms/op 0.47
mainnet_e217614 - capella processSlashingsReset 6.0090 us/op 3.1200 us/op 1.93
mainnet_e217614 - capella processRandaoMixesReset 6.2740 us/op 4.2600 us/op 1.47
mainnet_e217614 - capella processHistoricalRootsUpdate 673.00 ns/op 501.00 ns/op 1.34
mainnet_e217614 - capella processParticipationFlagUpdates 2.2880 us/op 1.9870 us/op 1.15
mainnet_e217614 - capella afterProcessEpoch 254.11 ms/op 234.53 ms/op 1.08
phase0 processEpoch - mainnet_e58758 427.14 ms/op 357.30 ms/op 1.20
mainnet_e58758 - phase0 beforeProcessEpoch 92.288 ms/op 71.168 ms/op 1.30
mainnet_e58758 - phase0 processJustificationAndFinalization 20.226 us/op 15.084 us/op 1.34
mainnet_e58758 - phase0 processRewardsAndPenalties 43.858 ms/op 32.845 ms/op 1.34
mainnet_e58758 - phase0 processRegistryUpdates 6.7510 us/op 7.5760 us/op 0.89
mainnet_e58758 - phase0 processSlashings 590.00 ns/op 404.00 ns/op 1.46
mainnet_e58758 - phase0 processEth1DataReset 482.00 ns/op 322.00 ns/op 1.50
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.9211 ms/op 1.2266 ms/op 2.38
mainnet_e58758 - phase0 processSlashingsReset 4.4580 us/op 3.5640 us/op 1.25
mainnet_e58758 - phase0 processRandaoMixesReset 6.8080 us/op 4.6440 us/op 1.47
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.1380 us/op 399.00 ns/op 2.85
mainnet_e58758 - phase0 processParticipationRecordUpdates 5.3470 us/op 5.1290 us/op 1.04
mainnet_e58758 - phase0 afterProcessEpoch 81.073 ms/op 77.208 ms/op 1.05
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3185 ms/op 1.5624 ms/op 0.84
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.1154 ms/op 2.4424 ms/op 0.87
altair processInactivityUpdates - 250000 normalcase 23.648 ms/op 15.429 ms/op 1.53
altair processInactivityUpdates - 250000 worstcase 23.628 ms/op 16.751 ms/op 1.41
phase0 processRegistryUpdates - 250000 normalcase 6.4510 us/op 7.3380 us/op 0.88
phase0 processRegistryUpdates - 250000 badcase_full_deposits 445.01 us/op 296.72 us/op 1.50
phase0 processRegistryUpdates - 250000 worstcase 0.5 134.68 ms/op 120.78 ms/op 1.12
altair processRewardsAndPenalties - 250000 normalcase 45.543 ms/op 42.651 ms/op 1.07
altair processRewardsAndPenalties - 250000 worstcase 48.313 ms/op 39.636 ms/op 1.22
phase0 getAttestationDeltas - 250000 normalcase 7.7388 ms/op 8.7105 ms/op 0.89
phase0 getAttestationDeltas - 250000 worstcase 7.4679 ms/op 8.2911 ms/op 0.90
phase0 processSlashings - 250000 worstcase 122.75 us/op 104.22 us/op 1.18
altair processSyncCommitteeUpdates - 250000 132.29 ms/op 132.98 ms/op 0.99
BeaconState.hashTreeRoot - No change 241.00 ns/op 259.00 ns/op 0.93
BeaconState.hashTreeRoot - 1 full validator 137.74 us/op 112.35 us/op 1.23
BeaconState.hashTreeRoot - 32 full validator 1.4827 ms/op 913.95 us/op 1.62
BeaconState.hashTreeRoot - 512 full validator 13.900 ms/op 11.074 ms/op 1.26
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 165.03 us/op 116.58 us/op 1.42
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.0804 ms/op 1.9509 ms/op 1.07
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 29.671 ms/op 31.574 ms/op 0.94
BeaconState.hashTreeRoot - 1 balances 131.41 us/op 128.68 us/op 1.02
BeaconState.hashTreeRoot - 32 balances 995.27 us/op 869.41 us/op 1.14
BeaconState.hashTreeRoot - 512 balances 10.311 ms/op 7.2797 ms/op 1.42
BeaconState.hashTreeRoot - 250000 balances 197.86 ms/op 198.74 ms/op 1.00
aggregationBits - 2048 els - zipIndexesInBitList 24.537 us/op 29.931 us/op 0.82
byteArrayEquals 32 54.920 ns/op 57.910 ns/op 0.95
Buffer.compare 32 18.288 ns/op 19.150 ns/op 0.95
byteArrayEquals 1024 1.6268 us/op 1.6482 us/op 0.99
Buffer.compare 1024 27.471 ns/op 26.395 ns/op 1.04
byteArrayEquals 16384 25.855 us/op 27.746 us/op 0.93
Buffer.compare 16384 271.60 ns/op 190.34 ns/op 1.43
byteArrayEquals 123687377 200.69 ms/op 198.21 ms/op 1.01
Buffer.compare 123687377 6.2132 ms/op 8.3986 ms/op 0.74
byteArrayEquals 32 - diff last byte 55.108 ns/op 52.646 ns/op 1.05
Buffer.compare 32 - diff last byte 18.411 ns/op 17.036 ns/op 1.08
byteArrayEquals 1024 - diff last byte 1.6533 us/op 1.5902 us/op 1.04
Buffer.compare 1024 - diff last byte 26.830 ns/op 26.412 ns/op 1.02
byteArrayEquals 16384 - diff last byte 26.541 us/op 25.582 us/op 1.04
Buffer.compare 16384 - diff last byte 222.22 ns/op 205.99 ns/op 1.08
byteArrayEquals 123687377 - diff last byte 197.34 ms/op 193.83 ms/op 1.02
Buffer.compare 123687377 - diff last byte 6.1377 ms/op 10.112 ms/op 0.61
byteArrayEquals 32 - random bytes 5.3320 ns/op 5.4920 ns/op 0.97
Buffer.compare 32 - random bytes 18.047 ns/op 17.594 ns/op 1.03
byteArrayEquals 1024 - random bytes 5.3400 ns/op 5.2390 ns/op 1.02
Buffer.compare 1024 - random bytes 18.043 ns/op 16.963 ns/op 1.06
byteArrayEquals 16384 - random bytes 5.2920 ns/op 5.2040 ns/op 1.02
Buffer.compare 16384 - random bytes 18.052 ns/op 17.249 ns/op 1.05
byteArrayEquals 123687377 - random bytes 6.5900 ns/op 6.5400 ns/op 1.01
Buffer.compare 123687377 - random bytes 19.200 ns/op 19.540 ns/op 0.98
regular array get 100000 times 35.125 us/op 43.041 us/op 0.82
wrappedArray get 100000 times 33.786 us/op 33.120 us/op 1.02
arrayWithProxy get 100000 times 13.931 ms/op 13.227 ms/op 1.05
ssz.Root.equals 47.447 ns/op 46.352 ns/op 1.02
byteArrayEquals 46.730 ns/op 45.626 ns/op 1.02
Buffer.compare 10.779 ns/op 10.537 ns/op 1.02
shuffle list - 16384 els 6.5377 ms/op 7.1106 ms/op 0.92
shuffle list - 250000 els 96.172 ms/op 95.573 ms/op 1.01
processSlot - 1 slots 15.190 us/op 14.749 us/op 1.03
processSlot - 32 slots 3.0574 ms/op 3.3153 ms/op 0.92
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 44.361 ms/op 42.351 ms/op 1.05
getCommitteeAssignments - req 1 vs - 250000 vc 2.2139 ms/op 2.1625 ms/op 1.02
getCommitteeAssignments - req 100 vs - 250000 vc 4.3332 ms/op 4.2040 ms/op 1.03
getCommitteeAssignments - req 1000 vs - 250000 vc 4.6469 ms/op 4.4082 ms/op 1.05
findModifiedValidators - 10000 modified validators 259.71 ms/op 277.39 ms/op 0.94
findModifiedValidators - 1000 modified validators 181.91 ms/op 170.70 ms/op 1.07
findModifiedValidators - 100 modified validators 155.54 ms/op 158.15 ms/op 0.98
findModifiedValidators - 10 modified validators 151.89 ms/op 147.52 ms/op 1.03
findModifiedValidators - 1 modified validators 155.23 ms/op 142.68 ms/op 1.09
findModifiedValidators - no difference 161.98 ms/op 165.41 ms/op 0.98
compare ViewDUs 3.1574 s/op 3.3283 s/op 0.95
compare each validator Uint8Array 1.8472 s/op 1.3650 s/op 1.35
compare ViewDU to Uint8Array 986.26 ms/op 1.0911 s/op 0.90
migrate state 1000000 validators, 24 modified, 0 new 943.03 ms/op 887.26 ms/op 1.06
migrate state 1000000 validators, 1700 modified, 1000 new 1.1971 s/op 1.1518 s/op 1.04
migrate state 1000000 validators, 3400 modified, 2000 new 1.4511 s/op 1.3457 s/op 1.08
migrate state 1500000 validators, 24 modified, 0 new 1.0598 s/op 957.34 ms/op 1.11
migrate state 1500000 validators, 1700 modified, 1000 new 1.2045 s/op 1.2070 s/op 1.00
migrate state 1500000 validators, 3400 modified, 2000 new 1.5092 s/op 1.4176 s/op 1.06
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.7300 ns/op 4.6700 ns/op 1.23
state getBlockRootAtSlot - 250000 vs - 7PWei 1.0059 us/op 521.28 ns/op 1.93
computeProposers - vc 250000 10.078 ms/op 7.2309 ms/op 1.39
computeEpochShuffling - vc 250000 118.72 ms/op 92.561 ms/op 1.28
getNextSyncCommittee - vc 250000 158.55 ms/op 124.28 ms/op 1.28
computeSigningRoot for AttestationData 23.540 us/op 17.886 us/op 1.32
hash AttestationData serialized data then Buffer.toString(base64) 1.9204 us/op 1.5967 us/op 1.20
toHexString serialized data 1.0750 us/op 985.77 ns/op 1.09
Buffer.toString(base64) 212.71 ns/op 196.17 ns/op 1.08
nodejs block root to RootHex using toHex 179.36 ns/op 165.46 ns/op 1.08
nodejs block root to RootHex using toRootHex 111.00 ns/op 101.87 ns/op 1.09
browser block root to RootHex using the deprecated toHexString 273.88 ns/op 245.24 ns/op 1.12
browser block root to RootHex using toHex 216.00 ns/op 197.83 ns/op 1.09
browser block root to RootHex using toRootHex 193.65 ns/op 169.20 ns/op 1.14

by benchmarkbot/action

@ensi321 ensi321 changed the base branch from unstable to nc/devnet-4 October 7, 2024 23:56
@ensi321 ensi321 marked this pull request as ready for review October 8, 2024 02:03
@ensi321 ensi321 requested a review from a team as a code owner October 8, 2024 02:03
Copy link
Contributor

@twoeths twoeths left a comment

Choose a reason for hiding this comment

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

lgtm, dropped some minor comments

@ensi321 ensi321 merged commit 2a0a535 into nc/devnet-4 Oct 11, 2024
15 of 17 checks passed
@ensi321 ensi321 deleted the nc/delay-deposits branch October 11, 2024 03:14
@ensi321 ensi321 mentioned this pull request Oct 17, 2024
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.23.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.

4 participants