Skip to content

Commit

Permalink
chore: add get_proposer_head check in fork choice spec test (#6814)
Browse files Browse the repository at this point in the history
* Check get_proposer_head

* Fix enum typo

* lint
  • Loading branch information
ensi321 authored May 24, 2024
1 parent 3471475 commit 7f63fab
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 3 deletions.
14 changes: 14 additions & 0 deletions packages/beacon-node/test/spec/presets/fork_choice.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,19 @@ const forkChoiceTest =
`Invalid finalized checkpoint at step ${i}`
);
}
if (step.checks.get_proposer_head) {
const currentSlot = Math.floor(tickTime / config.SECONDS_PER_SLOT);
const {proposerHead, notReorgedReason} = (chain.forkChoice as ForkChoice).getProposerHead(
head,
tickTime % config.SECONDS_PER_SLOT,
currentSlot
);
logger.debug(`Not reorged reason ${notReorgedReason} at step ${i}`);
expect(proposerHead.blockRoot).toEqualWithMessage(
step.checks.get_proposer_head,
`Invalid proposer head at step ${i}`
);
}
}

// None of the above
Expand Down Expand Up @@ -465,6 +478,7 @@ type Checks = {
justified_checkpoint?: SpecTestCheckpoint;
finalized_checkpoint?: SpecTestCheckpoint;
proposer_boost_root?: RootHex;
get_proposer_head?: string;
};
};

Expand Down
2 changes: 1 addition & 1 deletion packages/fork-choice/src/forkChoice/forkChoice.ts
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ export class ForkChoice implements IForkChoice {
const parentNode = this.protoArray.getNode(parentBlock.blockRoot);
// If parentNode is unavailable, give up reorg
if (parentNode === undefined || parentNode.weight <= parentThreshold) {
return {proposerHead, isHeadTimely, notReorgedReason: NotReorgedReason.ParentBlockIsStrong};
return {proposerHead, isHeadTimely, notReorgedReason: NotReorgedReason.ParentBlockNotStrong};
}

// Reorg if all above checks fail
Expand Down
2 changes: 1 addition & 1 deletion packages/fork-choice/src/forkChoice/interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ export enum NotReorgedReason {
ReorgMoreThanOneSlot,
ProposerBoostNotWornOff,
HeadBlockNotWeak,
ParentBlockIsStrong,
ParentBlockNotStrong,
NotProposingOnTime,
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ describe("Forkchoice / GetProposerHead", function () {
parentBlock: {...baseParentHeadBlock, weight: 211},
headBlock: {...baseHeadBlock},
expectReorg: false,
expectedNotReorgedReason: NotReorgedReason.ParentBlockIsStrong,
expectedNotReorgedReason: NotReorgedReason.ParentBlockNotStrong,
},
{
id: "No reorg if not proposing on time",
Expand Down

1 comment on commit 7f63fab

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Performance Alert ⚠️

Possible performance regression was detected for some benchmarks.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold.

Benchmark suite Current: 7f63fab Previous: 6c20dc2 Ratio
Buffer.compare 123687377 - diff last byte 18.647 ms/op 6.1353 ms/op 3.04
Full benchmark results
Benchmark suite Current: 7f63fab Previous: 6c20dc2 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 935.04 us/op 937.18 us/op 1.00
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 74.438 us/op 59.558 us/op 1.25
BLS verify - blst-native 1.2620 ms/op 1.2077 ms/op 1.04
BLS verifyMultipleSignatures 3 - blst-native 2.4241 ms/op 2.3369 ms/op 1.04
BLS verifyMultipleSignatures 8 - blst-native 5.2598 ms/op 5.0469 ms/op 1.04
BLS verifyMultipleSignatures 32 - blst-native 19.129 ms/op 18.335 ms/op 1.04
BLS verifyMultipleSignatures 64 - blst-native 36.598 ms/op 36.018 ms/op 1.02
BLS verifyMultipleSignatures 128 - blst-native 71.913 ms/op 71.419 ms/op 1.01
BLS deserializing 10000 signatures 865.84 ms/op 854.63 ms/op 1.01
BLS deserializing 100000 signatures 8.8332 s/op 9.2720 s/op 0.95
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.3446 ms/op 1.4046 ms/op 0.96
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.5385 ms/op 1.5175 ms/op 1.01
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.4211 ms/op 2.3688 ms/op 1.02
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.6586 ms/op 3.5393 ms/op 1.03
BLS verifyMultipleSignatures - same message - 128 - blst-native 6.2924 ms/op 5.8684 ms/op 1.07
BLS aggregatePubkeys 32 - blst-native 31.793 us/op 29.865 us/op 1.06
BLS aggregatePubkeys 128 - blst-native 117.95 us/op 116.12 us/op 1.02
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 64.882 ms/op 95.663 ms/op 0.68
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 60.113 ms/op 66.410 ms/op 0.91
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 40.329 ms/op 30.486 ms/op 1.32
getSlashingsAndExits - default max 402.99 us/op 206.38 us/op 1.95
getSlashingsAndExits - 2k 614.90 us/op 369.60 us/op 1.66
proposeBlockBody type=full, size=empty 8.8586 ms/op 5.7577 ms/op 1.54
isKnown best case - 1 super set check 852.00 ns/op 488.00 ns/op 1.75
isKnown normal case - 2 super set checks 867.00 ns/op 323.00 ns/op 2.68
isKnown worse case - 16 super set checks 808.00 ns/op 287.00 ns/op 2.82
InMemoryCheckpointStateCache - add get delete 8.3690 us/op 5.0530 us/op 1.66
validate api signedAggregateAndProof - struct 3.1297 ms/op 2.2557 ms/op 1.39
validate gossip signedAggregateAndProof - struct 2.6097 ms/op 2.2391 ms/op 1.17
validate gossip attestation - vc 640000 1.8117 ms/op 1.2916 ms/op 1.40
batch validate gossip attestation - vc 640000 - chunk 32 268.86 us/op 165.25 us/op 1.63
batch validate gossip attestation - vc 640000 - chunk 64 187.71 us/op 143.41 us/op 1.31
batch validate gossip attestation - vc 640000 - chunk 128 165.11 us/op 138.18 us/op 1.19
batch validate gossip attestation - vc 640000 - chunk 256 152.20 us/op 148.93 us/op 1.02
pickEth1Vote - no votes 1.2478 ms/op 1.2787 ms/op 0.98
pickEth1Vote - max votes 12.220 ms/op 10.733 ms/op 1.14
pickEth1Vote - Eth1Data hashTreeRoot value x2048 20.935 ms/op 19.716 ms/op 1.06
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 24.798 ms/op 26.017 ms/op 0.95
pickEth1Vote - Eth1Data fastSerialize value x2048 602.54 us/op 698.98 us/op 0.86
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.3352 ms/op 8.0512 ms/op 0.66
bytes32 toHexString 511.00 ns/op 832.00 ns/op 0.61
bytes32 Buffer.toString(hex) 290.00 ns/op 328.00 ns/op 0.88
bytes32 Buffer.toString(hex) from Uint8Array 445.00 ns/op 610.00 ns/op 0.73
bytes32 Buffer.toString(hex) + 0x 283.00 ns/op 303.00 ns/op 0.93
Object access 1 prop 0.19400 ns/op 0.21300 ns/op 0.91
Map access 1 prop 0.14200 ns/op 0.14400 ns/op 0.99
Object get x1000 7.7210 ns/op 9.2890 ns/op 0.83
Map get x1000 0.88200 ns/op 0.92200 ns/op 0.96
Object set x1000 50.453 ns/op 57.488 ns/op 0.88
Map set x1000 28.381 ns/op 37.150 ns/op 0.76
Return object 10000 times 0.26580 ns/op 0.28580 ns/op 0.93
Throw Error 10000 times 3.9401 us/op 3.8164 us/op 1.03
fastMsgIdFn sha256 / 200 bytes 2.7030 us/op 2.6890 us/op 1.01
fastMsgIdFn h32 xxhash / 200 bytes 350.00 ns/op 288.00 ns/op 1.22
fastMsgIdFn h64 xxhash / 200 bytes 413.00 ns/op 338.00 ns/op 1.22
fastMsgIdFn sha256 / 1000 bytes 8.4230 us/op 7.5380 us/op 1.12
fastMsgIdFn h32 xxhash / 1000 bytes 509.00 ns/op 395.00 ns/op 1.29
fastMsgIdFn h64 xxhash / 1000 bytes 491.00 ns/op 404.00 ns/op 1.22
fastMsgIdFn sha256 / 10000 bytes 72.076 us/op 66.237 us/op 1.09
fastMsgIdFn h32 xxhash / 10000 bytes 2.0880 us/op 2.0240 us/op 1.03
fastMsgIdFn h64 xxhash / 10000 bytes 1.4790 us/op 1.3620 us/op 1.09
send data - 1000 256B messages 15.947 ms/op 15.923 ms/op 1.00
send data - 1000 512B messages 23.864 ms/op 21.146 ms/op 1.13
send data - 1000 1024B messages 34.770 ms/op 30.791 ms/op 1.13
send data - 1000 1200B messages 34.601 ms/op 33.956 ms/op 1.02
send data - 1000 2048B messages 39.653 ms/op 37.447 ms/op 1.06
send data - 1000 4096B messages 39.254 ms/op 38.297 ms/op 1.02
send data - 1000 16384B messages 89.886 ms/op 82.036 ms/op 1.10
send data - 1000 65536B messages 329.08 ms/op 319.62 ms/op 1.03
enrSubnets - fastDeserialize 64 bits 1.5360 us/op 1.2920 us/op 1.19
enrSubnets - ssz BitVector 64 bits 546.00 ns/op 455.00 ns/op 1.20
enrSubnets - fastDeserialize 4 bits 209.00 ns/op 167.00 ns/op 1.25
enrSubnets - ssz BitVector 4 bits 586.00 ns/op 379.00 ns/op 1.55
prioritizePeers score -10:0 att 32-0.1 sync 2-0 231.25 us/op 193.76 us/op 1.19
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 305.91 us/op 244.99 us/op 1.25
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 384.73 us/op 383.85 us/op 1.00
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 612.37 us/op 523.60 us/op 1.17
prioritizePeers score 0:0 att 64-1 sync 4-1 713.77 us/op 612.29 us/op 1.17
array of 16000 items push then shift 1.8350 us/op 1.6637 us/op 1.10
LinkedList of 16000 items push then shift 8.0810 ns/op 6.6530 ns/op 1.21
array of 16000 items push then pop 158.00 ns/op 140.01 ns/op 1.13
LinkedList of 16000 items push then pop 8.1100 ns/op 6.6140 ns/op 1.23
array of 24000 items push then shift 2.9438 us/op 2.5648 us/op 1.15
LinkedList of 24000 items push then shift 8.8440 ns/op 6.7790 ns/op 1.30
array of 24000 items push then pop 200.47 ns/op 160.69 ns/op 1.25
LinkedList of 24000 items push then pop 7.2210 ns/op 6.7340 ns/op 1.07
intersect bitArray bitLen 8 6.4760 ns/op 6.0240 ns/op 1.08
intersect array and set length 8 60.656 ns/op 65.581 ns/op 0.92
intersect bitArray bitLen 128 36.651 ns/op 37.666 ns/op 0.97
intersect array and set length 128 782.28 ns/op 1.0549 us/op 0.74
bitArray.getTrueBitIndexes() bitLen 128 1.3560 us/op 1.7130 us/op 0.79
bitArray.getTrueBitIndexes() bitLen 248 2.2450 us/op 2.4220 us/op 0.93
bitArray.getTrueBitIndexes() bitLen 512 4.4420 us/op 5.6860 us/op 0.78
Buffer.concat 32 items 931.00 ns/op 992.00 ns/op 0.94
Uint8Array.set 32 items 1.5990 us/op 1.7930 us/op 0.89
Set add up to 64 items then delete first 2.3963 us/op 2.7480 us/op 0.87
OrderedSet add up to 64 items then delete first 3.5159 us/op 3.3258 us/op 1.06
Set add up to 64 items then delete last 2.6486 us/op 2.6245 us/op 1.01
OrderedSet add up to 64 items then delete last 4.1236 us/op 3.9686 us/op 1.04
Set add up to 64 items then delete middle 2.6023 us/op 2.7104 us/op 0.96
OrderedSet add up to 64 items then delete middle 5.5120 us/op 5.4421 us/op 1.01
Set add up to 128 items then delete first 5.4576 us/op 5.5713 us/op 0.98
OrderedSet add up to 128 items then delete first 7.8421 us/op 8.4572 us/op 0.93
Set add up to 128 items then delete last 5.4059 us/op 5.0793 us/op 1.06
OrderedSet add up to 128 items then delete last 8.0784 us/op 7.0846 us/op 1.14
Set add up to 128 items then delete middle 5.1041 us/op 4.7172 us/op 1.08
OrderedSet add up to 128 items then delete middle 13.649 us/op 12.638 us/op 1.08
Set add up to 256 items then delete first 11.286 us/op 10.329 us/op 1.09
OrderedSet add up to 256 items then delete first 15.924 us/op 15.986 us/op 1.00
Set add up to 256 items then delete last 10.499 us/op 9.5418 us/op 1.10
OrderedSet add up to 256 items then delete last 16.179 us/op 14.560 us/op 1.11
Set add up to 256 items then delete middle 10.031 us/op 9.1632 us/op 1.09
OrderedSet add up to 256 items then delete middle 38.638 us/op 35.473 us/op 1.09
transfer serialized Status (84 B) 1.6550 us/op 1.6440 us/op 1.01
copy serialized Status (84 B) 1.2460 us/op 1.1910 us/op 1.05
transfer serialized SignedVoluntaryExit (112 B) 1.7400 us/op 1.7200 us/op 1.01
copy serialized SignedVoluntaryExit (112 B) 1.2860 us/op 1.3740 us/op 0.94
transfer serialized ProposerSlashing (416 B) 1.8940 us/op 2.7730 us/op 0.68
copy serialized ProposerSlashing (416 B) 1.6270 us/op 2.6020 us/op 0.63
transfer serialized Attestation (485 B) 1.9990 us/op 2.9310 us/op 0.68
copy serialized Attestation (485 B) 1.9250 us/op 2.6170 us/op 0.74
transfer serialized AttesterSlashing (33232 B) 2.3870 us/op 2.5430 us/op 0.94
copy serialized AttesterSlashing (33232 B) 5.9230 us/op 5.9840 us/op 0.99
transfer serialized Small SignedBeaconBlock (128000 B) 2.4670 us/op 2.6940 us/op 0.92
copy serialized Small SignedBeaconBlock (128000 B) 12.895 us/op 13.860 us/op 0.93
transfer serialized Avg SignedBeaconBlock (200000 B) 2.7590 us/op 3.0650 us/op 0.90
copy serialized Avg SignedBeaconBlock (200000 B) 20.573 us/op 19.791 us/op 1.04
transfer serialized BlobsSidecar (524380 B) 2.8330 us/op 2.8600 us/op 0.99
copy serialized BlobsSidecar (524380 B) 86.884 us/op 91.928 us/op 0.95
transfer serialized Big SignedBeaconBlock (1000000 B) 3.0010 us/op 3.3250 us/op 0.90
copy serialized Big SignedBeaconBlock (1000000 B) 154.73 us/op 138.91 us/op 1.11
pass gossip attestations to forkchoice per slot 3.6920 ms/op 3.3776 ms/op 1.09
forkChoice updateHead vc 100000 bc 64 eq 0 560.50 us/op 518.75 us/op 1.08
forkChoice updateHead vc 600000 bc 64 eq 0 4.1433 ms/op 3.1824 ms/op 1.30
forkChoice updateHead vc 1000000 bc 64 eq 0 5.6967 ms/op 5.3981 ms/op 1.06
forkChoice updateHead vc 600000 bc 320 eq 0 3.2877 ms/op 3.1844 ms/op 1.03
forkChoice updateHead vc 600000 bc 1200 eq 0 3.4751 ms/op 3.2801 ms/op 1.06
forkChoice updateHead vc 600000 bc 7200 eq 0 4.7045 ms/op 4.3535 ms/op 1.08
forkChoice updateHead vc 600000 bc 64 eq 1000 11.752 ms/op 10.910 ms/op 1.08
forkChoice updateHead vc 600000 bc 64 eq 10000 11.403 ms/op 10.911 ms/op 1.05
forkChoice updateHead vc 600000 bc 64 eq 300000 16.370 ms/op 14.748 ms/op 1.11
computeDeltas 500000 validators 300 proto nodes 3.9521 ms/op 3.9809 ms/op 0.99
computeDeltas 500000 validators 1200 proto nodes 3.7725 ms/op 3.8178 ms/op 0.99
computeDeltas 500000 validators 7200 proto nodes 3.9283 ms/op 3.6483 ms/op 1.08
computeDeltas 750000 validators 300 proto nodes 6.0621 ms/op 5.4499 ms/op 1.11
computeDeltas 750000 validators 1200 proto nodes 6.4855 ms/op 5.4822 ms/op 1.18
computeDeltas 750000 validators 7200 proto nodes 7.0280 ms/op 5.4464 ms/op 1.29
computeDeltas 1400000 validators 300 proto nodes 12.747 ms/op 10.769 ms/op 1.18
computeDeltas 1400000 validators 1200 proto nodes 11.692 ms/op 10.606 ms/op 1.10
computeDeltas 1400000 validators 7200 proto nodes 12.297 ms/op 10.324 ms/op 1.19
computeDeltas 2100000 validators 300 proto nodes 18.585 ms/op 15.116 ms/op 1.23
computeDeltas 2100000 validators 1200 proto nodes 18.410 ms/op 15.352 ms/op 1.20
computeDeltas 2100000 validators 7200 proto nodes 18.009 ms/op 16.111 ms/op 1.12
altair processAttestation - 250000 vs - 7PWei normalcase 3.1102 ms/op 2.0572 ms/op 1.51
altair processAttestation - 250000 vs - 7PWei worstcase 3.4018 ms/op 3.4506 ms/op 0.99
altair processAttestation - setStatus - 1/6 committees join 180.73 us/op 152.63 us/op 1.18
altair processAttestation - setStatus - 1/3 committees join 337.01 us/op 290.31 us/op 1.16
altair processAttestation - setStatus - 1/2 committees join 464.30 us/op 363.96 us/op 1.28
altair processAttestation - setStatus - 2/3 committees join 497.65 us/op 477.94 us/op 1.04
altair processAttestation - setStatus - 4/5 committees join 790.83 us/op 638.26 us/op 1.24
altair processAttestation - setStatus - 100% committees join 914.23 us/op 756.06 us/op 1.21
altair processBlock - 250000 vs - 7PWei normalcase 9.1709 ms/op 9.8659 ms/op 0.93
altair processBlock - 250000 vs - 7PWei normalcase hashState 35.388 ms/op 33.916 ms/op 1.04
altair processBlock - 250000 vs - 7PWei worstcase 39.118 ms/op 32.134 ms/op 1.22
altair processBlock - 250000 vs - 7PWei worstcase hashState 97.692 ms/op 88.410 ms/op 1.10
phase0 processBlock - 250000 vs - 7PWei normalcase 3.7167 ms/op 2.2564 ms/op 1.65
phase0 processBlock - 250000 vs - 7PWei worstcase 37.562 ms/op 27.097 ms/op 1.39
altair processEth1Data - 250000 vs - 7PWei normalcase 682.20 us/op 315.08 us/op 2.17
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 17.563 us/op 11.978 us/op 1.47
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 85.598 us/op 67.985 us/op 1.26
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 17.487 us/op 16.390 us/op 1.07
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 15.543 us/op 12.253 us/op 1.27
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 224.18 us/op 160.28 us/op 1.40
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.5905 ms/op 962.52 us/op 1.65
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.2135 ms/op 1.6106 ms/op 1.37
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.4544 ms/op 1.4629 ms/op 1.68
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.1831 ms/op 3.2665 ms/op 1.28
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 3.4520 ms/op 2.3614 ms/op 1.46
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 6.4694 ms/op 4.2865 ms/op 1.51
Tree 40 250000 create 489.14 ms/op 217.88 ms/op 2.25
Tree 40 250000 get(125000) 171.73 ns/op 144.14 ns/op 1.19
Tree 40 250000 set(125000) 996.61 ns/op 636.31 ns/op 1.57
Tree 40 250000 toArray() 22.109 ms/op 19.257 ms/op 1.15
Tree 40 250000 iterate all - toArray() + loop 22.174 ms/op 19.101 ms/op 1.16
Tree 40 250000 iterate all - get(i) 62.390 ms/op 53.888 ms/op 1.16
MutableVector 250000 create 12.685 ms/op 10.501 ms/op 1.21
MutableVector 250000 get(125000) 7.3810 ns/op 6.2650 ns/op 1.18
MutableVector 250000 set(125000) 341.88 ns/op 246.99 ns/op 1.38
MutableVector 250000 toArray() 5.6275 ms/op 4.2363 ms/op 1.33
MutableVector 250000 iterate all - toArray() + loop 6.4933 ms/op 4.2740 ms/op 1.52
MutableVector 250000 iterate all - get(i) 1.6623 ms/op 1.5216 ms/op 1.09
Array 250000 create 5.9401 ms/op 3.8570 ms/op 1.54
Array 250000 clone - spread 3.3048 ms/op 1.6288 ms/op 2.03
Array 250000 get(125000) 2.7000 ns/op 1.1110 ns/op 2.43
Array 250000 set(125000) 3.6630 ns/op 1.3990 ns/op 2.62
Array 250000 iterate all - loop 192.06 us/op 172.04 us/op 1.12
effectiveBalanceIncrements clone Uint8Array 300000 80.474 us/op 33.337 us/op 2.41
effectiveBalanceIncrements clone MutableVector 300000 654.00 ns/op 412.00 ns/op 1.59
effectiveBalanceIncrements rw all Uint8Array 300000 222.71 us/op 206.04 us/op 1.08
effectiveBalanceIncrements rw all MutableVector 300000 142.22 ms/op 81.914 ms/op 1.74
phase0 afterProcessEpoch - 250000 vs - 7PWei 112.24 ms/op 91.221 ms/op 1.23
phase0 beforeProcessEpoch - 250000 vs - 7PWei 79.188 ms/op 41.881 ms/op 1.89
altair processEpoch - mainnet_e81889 606.44 ms/op 388.79 ms/op 1.56
mainnet_e81889 - altair beforeProcessEpoch 120.19 ms/op 66.480 ms/op 1.81
mainnet_e81889 - altair processJustificationAndFinalization 31.916 us/op 13.159 us/op 2.43
mainnet_e81889 - altair processInactivityUpdates 11.425 ms/op 5.2684 ms/op 2.17
mainnet_e81889 - altair processRewardsAndPenalties 72.806 ms/op 46.226 ms/op 1.58
mainnet_e81889 - altair processRegistryUpdates 9.7000 us/op 2.4340 us/op 3.99
mainnet_e81889 - altair processSlashings 1.5320 us/op 395.00 ns/op 3.88
mainnet_e81889 - altair processEth1DataReset 1.7160 us/op 624.00 ns/op 2.75
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.8253 ms/op 1.2437 ms/op 1.47
mainnet_e81889 - altair processSlashingsReset 9.7730 us/op 4.1300 us/op 2.37
mainnet_e81889 - altair processRandaoMixesReset 9.1280 us/op 5.3060 us/op 1.72
mainnet_e81889 - altair processHistoricalRootsUpdate 1.5240 us/op 914.00 ns/op 1.67
mainnet_e81889 - altair processParticipationFlagUpdates 3.2070 us/op 1.5540 us/op 2.06
mainnet_e81889 - altair processSyncCommitteeUpdates 1.1070 us/op 654.00 ns/op 1.69
mainnet_e81889 - altair afterProcessEpoch 106.80 ms/op 94.374 ms/op 1.13
capella processEpoch - mainnet_e217614 1.5637 s/op 1.4543 s/op 1.08
mainnet_e217614 - capella beforeProcessEpoch 290.22 ms/op 273.05 ms/op 1.06
mainnet_e217614 - capella processJustificationAndFinalization 27.337 us/op 16.897 us/op 1.62
mainnet_e217614 - capella processInactivityUpdates 18.467 ms/op 16.381 ms/op 1.13
mainnet_e217614 - capella processRewardsAndPenalties 275.83 ms/op 249.91 ms/op 1.10
mainnet_e217614 - capella processRegistryUpdates 30.872 us/op 17.286 us/op 1.79
mainnet_e217614 - capella processSlashings 752.00 ns/op 521.00 ns/op 1.44
mainnet_e217614 - capella processEth1DataReset 634.00 ns/op 399.00 ns/op 1.59
mainnet_e217614 - capella processEffectiveBalanceUpdates 12.810 ms/op 9.2958 ms/op 1.38
mainnet_e217614 - capella processSlashingsReset 4.9210 us/op 3.5940 us/op 1.37
mainnet_e217614 - capella processRandaoMixesReset 6.7710 us/op 4.2240 us/op 1.60
mainnet_e217614 - capella processHistoricalRootsUpdate 814.00 ns/op 337.00 ns/op 2.42
mainnet_e217614 - capella processParticipationFlagUpdates 1.9570 us/op 1.8210 us/op 1.07
mainnet_e217614 - capella afterProcessEpoch 270.68 ms/op 253.49 ms/op 1.07
phase0 processEpoch - mainnet_e58758 495.56 ms/op 436.53 ms/op 1.14
mainnet_e58758 - phase0 beforeProcessEpoch 144.76 ms/op 118.88 ms/op 1.22
mainnet_e58758 - phase0 processJustificationAndFinalization 20.126 us/op 15.522 us/op 1.30
mainnet_e58758 - phase0 processRewardsAndPenalties 23.073 ms/op 24.451 ms/op 0.94
mainnet_e58758 - phase0 processRegistryUpdates 13.486 us/op 8.8020 us/op 1.53
mainnet_e58758 - phase0 processSlashings 1.5680 us/op 372.00 ns/op 4.22
mainnet_e58758 - phase0 processEth1DataReset 687.00 ns/op 365.00 ns/op 1.88
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.2012 ms/op 1.1675 ms/op 1.03
mainnet_e58758 - phase0 processSlashingsReset 3.6000 us/op 3.2020 us/op 1.12
mainnet_e58758 - phase0 processRandaoMixesReset 10.988 us/op 4.8470 us/op 2.27
mainnet_e58758 - phase0 processHistoricalRootsUpdate 763.00 ns/op 577.00 ns/op 1.32
mainnet_e58758 - phase0 processParticipationRecordUpdates 5.0680 us/op 3.3330 us/op 1.52
mainnet_e58758 - phase0 afterProcessEpoch 86.621 ms/op 80.203 ms/op 1.08
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.5639 ms/op 1.1914 ms/op 1.31
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.2556 ms/op 1.5956 ms/op 1.41
altair processInactivityUpdates - 250000 normalcase 16.915 ms/op 15.015 ms/op 1.13
altair processInactivityUpdates - 250000 worstcase 17.664 ms/op 15.421 ms/op 1.15
phase0 processRegistryUpdates - 250000 normalcase 14.483 us/op 8.4910 us/op 1.71
phase0 processRegistryUpdates - 250000 badcase_full_deposits 429.19 us/op 321.79 us/op 1.33
phase0 processRegistryUpdates - 250000 worstcase 0.5 142.27 ms/op 119.03 ms/op 1.20
altair processRewardsAndPenalties - 250000 normalcase 55.437 ms/op 35.848 ms/op 1.55
altair processRewardsAndPenalties - 250000 worstcase 48.393 ms/op 36.365 ms/op 1.33
phase0 getAttestationDeltas - 250000 normalcase 9.6434 ms/op 7.7610 ms/op 1.24
phase0 getAttestationDeltas - 250000 worstcase 10.400 ms/op 7.7358 ms/op 1.34
phase0 processSlashings - 250000 worstcase 171.82 us/op 67.568 us/op 2.54
altair processSyncCommitteeUpdates - 250000 145.84 ms/op 126.08 ms/op 1.16
BeaconState.hashTreeRoot - No change 579.00 ns/op 321.00 ns/op 1.80
BeaconState.hashTreeRoot - 1 full validator 155.58 us/op 133.97 us/op 1.16
BeaconState.hashTreeRoot - 32 full validator 1.3223 ms/op 1.2564 ms/op 1.05
BeaconState.hashTreeRoot - 512 full validator 12.832 ms/op 13.280 ms/op 0.97
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 173.25 us/op 158.24 us/op 1.09
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.4827 ms/op 1.9596 ms/op 1.27
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 32.523 ms/op 24.082 ms/op 1.35
BeaconState.hashTreeRoot - 1 balances 140.25 us/op 117.82 us/op 1.19
BeaconState.hashTreeRoot - 32 balances 1.3798 ms/op 1.0879 ms/op 1.27
BeaconState.hashTreeRoot - 512 balances 12.588 ms/op 10.599 ms/op 1.19
BeaconState.hashTreeRoot - 250000 balances 219.83 ms/op 208.86 ms/op 1.05
aggregationBits - 2048 els - zipIndexesInBitList 34.863 us/op 22.201 us/op 1.57
byteArrayEquals 32 82.209 ns/op 74.333 ns/op 1.11
Buffer.compare 32 49.206 ns/op 44.566 ns/op 1.10
byteArrayEquals 1024 2.2630 us/op 2.0264 us/op 1.12
Buffer.compare 1024 57.047 ns/op 52.275 ns/op 1.09
byteArrayEquals 16384 36.989 us/op 32.262 us/op 1.15
Buffer.compare 16384 253.93 ns/op 235.54 ns/op 1.08
byteArrayEquals 123687377 278.29 ms/op 249.63 ms/op 1.11
Buffer.compare 123687377 8.0945 ms/op 6.0370 ms/op 1.34
byteArrayEquals 32 - diff last byte 83.744 ns/op 71.357 ns/op 1.17
Buffer.compare 32 - diff last byte 59.005 ns/op 48.657 ns/op 1.21
byteArrayEquals 1024 - diff last byte 2.3960 us/op 1.9901 us/op 1.20
Buffer.compare 1024 - diff last byte 62.021 ns/op 49.151 ns/op 1.26
byteArrayEquals 16384 - diff last byte 35.012 us/op 31.755 us/op 1.10
Buffer.compare 16384 - diff last byte 251.36 ns/op 228.00 ns/op 1.10
byteArrayEquals 123687377 - diff last byte 275.75 ms/op 247.19 ms/op 1.12
Buffer.compare 123687377 - diff last byte 18.647 ms/op 6.1353 ms/op 3.04
byteArrayEquals 32 - random bytes 5.4350 ns/op 5.1660 ns/op 1.05
Buffer.compare 32 - random bytes 50.074 ns/op 47.630 ns/op 1.05
byteArrayEquals 1024 - random bytes 5.9050 ns/op 5.1000 ns/op 1.16
Buffer.compare 1024 - random bytes 48.639 ns/op 45.863 ns/op 1.06
byteArrayEquals 16384 - random bytes 6.8740 ns/op 5.0870 ns/op 1.35
Buffer.compare 16384 - random bytes 49.516 ns/op 45.958 ns/op 1.08
byteArrayEquals 123687377 - random bytes 8.8000 ns/op 7.8200 ns/op 1.13
Buffer.compare 123687377 - random bytes 57.630 ns/op 48.750 ns/op 1.18
regular array get 100000 times 47.737 us/op 44.041 us/op 1.08
wrappedArray get 100000 times 48.515 us/op 43.881 us/op 1.11
arrayWithProxy get 100000 times 15.828 ms/op 13.740 ms/op 1.15
ssz.Root.equals 58.144 ns/op 52.427 ns/op 1.11
byteArrayEquals 56.021 ns/op 51.517 ns/op 1.09
Buffer.compare 11.441 ns/op 10.120 ns/op 1.13
shuffle list - 16384 els 6.8285 ms/op 6.2300 ms/op 1.10
shuffle list - 250000 els 99.890 ms/op 91.136 ms/op 1.10
processSlot - 1 slots 14.830 us/op 14.695 us/op 1.01
processSlot - 32 slots 2.8301 ms/op 3.2835 ms/op 0.86
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 60.792 ms/op 48.570 ms/op 1.25
getCommitteeAssignments - req 1 vs - 250000 vc 3.0766 ms/op 2.5969 ms/op 1.18
getCommitteeAssignments - req 100 vs - 250000 vc 4.4864 ms/op 3.7557 ms/op 1.19
getCommitteeAssignments - req 1000 vs - 250000 vc 4.8637 ms/op 4.0218 ms/op 1.21
findModifiedValidators - 10000 modified validators 435.00 ms/op 293.34 ms/op 1.48
findModifiedValidators - 1000 modified validators 326.53 ms/op 171.20 ms/op 1.91
findModifiedValidators - 100 modified validators 246.92 ms/op 165.27 ms/op 1.49
findModifiedValidators - 10 modified validators 276.03 ms/op 166.99 ms/op 1.65
findModifiedValidators - 1 modified validators 250.26 ms/op 162.43 ms/op 1.54
findModifiedValidators - no difference 328.95 ms/op 163.00 ms/op 2.02
compare ViewDUs 5.3943 s/op 3.1710 s/op 1.70
compare each validator Uint8Array 2.3888 s/op 1.3853 s/op 1.72
compare ViewDU to Uint8Array 1.3893 s/op 1.0554 s/op 1.32
migrate state 1000000 validators, 24 modified, 0 new 725.41 ms/op 626.22 ms/op 1.16
migrate state 1000000 validators, 1700 modified, 1000 new 1.2221 s/op 1.0041 s/op 1.22
migrate state 1000000 validators, 3400 modified, 2000 new 1.7632 s/op 1.3217 s/op 1.33
migrate state 1500000 validators, 24 modified, 0 new 804.28 ms/op 746.82 ms/op 1.08
migrate state 1500000 validators, 1700 modified, 1000 new 1.2296 s/op 1.1512 s/op 1.07
migrate state 1500000 validators, 3400 modified, 2000 new 1.8649 s/op 1.5550 s/op 1.20
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 6.6100 ns/op 5.4100 ns/op 1.22
state getBlockRootAtSlot - 250000 vs - 7PWei 856.62 ns/op 721.57 ns/op 1.19
computeProposers - vc 250000 9.7150 ms/op 8.6478 ms/op 1.12
computeEpochShuffling - vc 250000 120.27 ms/op 104.12 ms/op 1.16
getNextSyncCommittee - vc 250000 172.57 ms/op 167.42 ms/op 1.03
computeSigningRoot for AttestationData 32.718 us/op 33.859 us/op 0.97
hash AttestationData serialized data then Buffer.toString(base64) 2.0242 us/op 1.9064 us/op 1.06
toHexString serialized data 1.4132 us/op 1.2167 us/op 1.16
Buffer.toString(base64) 256.82 ns/op 231.98 ns/op 1.11

Please sign in to comment.