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: track participants of produced aggregates #5750

Merged
merged 3 commits into from
Jul 14, 2023

Conversation

dapplion
Copy link
Contributor

@dapplion dapplion commented Jul 12, 2023

Motivation

Know the quality of produced aggregates for any API callee

Description

Added metrics:

name: "lodestar_produced_aggregate_participants",
help: "API impl produced aggregates histogram of participatns",

name: "lodestar_produced_sync_contribution_participants",
help: "API impl produced sync contribution histogram of participatns",

name: "lodestar_produced_sync_aggregate_participants",
help: "API impl produced sync aggregate histogram of participatns",

Considerations

This PR adds an extra step in block production hot path. 1 call per block to getTrueBitIndexes for a 512 bits SyncAggregate. I have added a benchmark and showed to it adds ~12us which is not a concern at all

  BitArray.trueBitCount
    ✔ bitArray.getTrueBitIndexes() bitLen 128                             298062.6 ops/s    3.355000 us/op        -      88220 runs  0.909 s
    ✔ bitArray.getTrueBitIndexes() bitLen 248                             155690.5 ops/s    6.423000 us/op        -      64211 runs  0.909 s
    ✔ bitArray.getTrueBitIndexes() bitLen 512                             82047.92 ops/s    12.18800 us/op        -      55888 runs   1.11 s

@dapplion dapplion requested a review from a team as a code owner July 12, 2023 10:47
@dapplion dapplion added the scope-metrics All issues with regards to the exposed metrics. label Jul 12, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Jul 12, 2023

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: a395803 Previous: fbe9beb Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 888.07 us/op 571.63 us/op 1.55
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 43.169 us/op 48.257 us/op 0.89
BLS verify - blst-native 1.1525 ms/op 1.2476 ms/op 0.92
BLS verifyMultipleSignatures 3 - blst-native 2.3374 ms/op 2.5390 ms/op 0.92
BLS verifyMultipleSignatures 8 - blst-native 5.2668 ms/op 5.4619 ms/op 0.96
BLS verifyMultipleSignatures 32 - blst-native 19.060 ms/op 19.862 ms/op 0.96
BLS aggregatePubkeys 32 - blst-native 25.811 us/op 26.620 us/op 0.97
BLS aggregatePubkeys 128 - blst-native 99.073 us/op 104.87 us/op 0.94
getAttestationsForBlock 62.865 ms/op 60.158 ms/op 1.04
isKnown best case - 1 super set check 245.00 ns/op 258.00 ns/op 0.95
isKnown normal case - 2 super set checks 244.00 ns/op 254.00 ns/op 0.96
isKnown worse case - 16 super set checks 249.00 ns/op 259.00 ns/op 0.96
CheckpointStateCache - add get delete 5.1990 us/op 6.0770 us/op 0.86
validate gossip signedAggregateAndProof - struct 2.7039 ms/op 2.9249 ms/op 0.92
validate gossip attestation - struct 1.2758 ms/op 1.4152 ms/op 0.90
pickEth1Vote - no votes 1.2866 ms/op 1.3916 ms/op 0.92
pickEth1Vote - max votes 11.600 ms/op 11.988 ms/op 0.97
pickEth1Vote - Eth1Data hashTreeRoot value x2048 8.5949 ms/op 9.9432 ms/op 0.86
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 16.581 ms/op 17.308 ms/op 0.96
pickEth1Vote - Eth1Data fastSerialize value x2048 684.17 us/op 812.93 us/op 0.84
pickEth1Vote - Eth1Data fastSerialize tree x2048 8.5754 ms/op 9.5941 ms/op 0.89
bytes32 toHexString 455.00 ns/op 688.00 ns/op 0.66
bytes32 Buffer.toString(hex) 325.00 ns/op 444.00 ns/op 0.73
bytes32 Buffer.toString(hex) from Uint8Array 530.00 ns/op 634.00 ns/op 0.84
bytes32 Buffer.toString(hex) + 0x 333.00 ns/op 412.00 ns/op 0.81
Object access 1 prop 0.16200 ns/op 0.20300 ns/op 0.80
Map access 1 prop 0.15500 ns/op 0.18000 ns/op 0.86
Object get x1000 6.4270 ns/op 6.7360 ns/op 0.95
Map get x1000 0.59400 ns/op 0.68700 ns/op 0.86
Object set x1000 49.230 ns/op 62.805 ns/op 0.78
Map set x1000 42.036 ns/op 54.677 ns/op 0.77
Return object 10000 times 0.22850 ns/op 0.24960 ns/op 0.92
Throw Error 10000 times 4.0568 us/op 4.2881 us/op 0.95
fastMsgIdFn sha256 / 200 bytes 3.3420 us/op 3.6660 us/op 0.91
fastMsgIdFn h32 xxhash / 200 bytes 269.00 ns/op 316.00 ns/op 0.85
fastMsgIdFn h64 xxhash / 200 bytes 368.00 ns/op 436.00 ns/op 0.84
fastMsgIdFn sha256 / 1000 bytes 11.301 us/op 12.205 us/op 0.93
fastMsgIdFn h32 xxhash / 1000 bytes 397.00 ns/op 476.00 ns/op 0.83
fastMsgIdFn h64 xxhash / 1000 bytes 464.00 ns/op 553.00 ns/op 0.84
fastMsgIdFn sha256 / 10000 bytes 102.93 us/op 106.21 us/op 0.97
fastMsgIdFn h32 xxhash / 10000 bytes 1.9230 us/op 2.0090 us/op 0.96
fastMsgIdFn h64 xxhash / 10000 bytes 1.3680 us/op 1.4940 us/op 0.92
enrSubnets - fastDeserialize 64 bits 1.2520 us/op 1.6430 us/op 0.76
enrSubnets - ssz BitVector 64 bits 465.00 ns/op 609.00 ns/op 0.76
enrSubnets - fastDeserialize 4 bits 170.00 ns/op 212.00 ns/op 0.80
enrSubnets - ssz BitVector 4 bits 470.00 ns/op 592.00 ns/op 0.79
prioritizePeers score -10:0 att 32-0.1 sync 2-0 105.96 us/op 110.67 us/op 0.96
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 124.30 us/op 151.15 us/op 0.82
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 174.30 us/op 183.87 us/op 0.95
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 316.07 us/op 344.26 us/op 0.92
prioritizePeers score 0:0 att 64-1 sync 4-1 364.57 us/op 439.47 us/op 0.83
array of 16000 items push then shift 1.6374 us/op 1.7629 us/op 0.93
LinkedList of 16000 items push then shift 8.8690 ns/op 9.2410 ns/op 0.96
array of 16000 items push then pop 89.816 ns/op 117.84 ns/op 0.76
LinkedList of 16000 items push then pop 8.6510 ns/op 9.1980 ns/op 0.94
array of 24000 items push then shift 2.4113 us/op 2.4496 us/op 0.98
LinkedList of 24000 items push then shift 12.033 ns/op 10.850 ns/op 1.11
array of 24000 items push then pop 80.124 ns/op 89.995 ns/op 0.89
LinkedList of 24000 items push then pop 8.6970 ns/op 9.3080 ns/op 0.93
intersect bitArray bitLen 8 13.122 ns/op 13.689 ns/op 0.96
intersect array and set length 8 75.194 ns/op 91.974 ns/op 0.82
intersect bitArray bitLen 128 43.956 ns/op 46.120 ns/op 0.95
intersect array and set length 128 1.0186 us/op 1.2560 us/op 0.81
bitArray.getTrueBitIndexes() bitLen 128 1.4510 us/op
bitArray.getTrueBitIndexes() bitLen 248 2.5540 us/op
bitArray.getTrueBitIndexes() bitLen 512 4.7810 us/op
Buffer.concat 32 items 2.6490 us/op 3.0220 us/op 0.88
Uint8Array.set 32 items 3.1030 us/op 2.4170 us/op 1.28
transfer serialized Status (84 B) 2.2770 us/op 2.2020 us/op 1.03
copy serialized Status (84 B) 1.8030 us/op 1.8000 us/op 1.00
transfer serialized SignedVoluntaryExit (112 B) 2.1530 us/op 2.2360 us/op 0.96
copy serialized SignedVoluntaryExit (112 B) 1.7190 us/op 1.8830 us/op 0.91
transfer serialized ProposerSlashing (416 B) 2.7290 us/op 2.4400 us/op 1.12
copy serialized ProposerSlashing (416 B) 2.6810 us/op 2.8640 us/op 0.94
transfer serialized Attestation (485 B) 3.2800 us/op 3.3610 us/op 0.98
copy serialized Attestation (485 B) 3.2170 us/op 2.8680 us/op 1.12
transfer serialized AttesterSlashing (33232 B) 3.5170 us/op 2.7360 us/op 1.29
copy serialized AttesterSlashing (33232 B) 6.6960 us/op 9.5560 us/op 0.70
transfer serialized Small SignedBeaconBlock (128000 B) 3.0710 us/op 3.1330 us/op 0.98
copy serialized Small SignedBeaconBlock (128000 B) 15.357 us/op 24.875 us/op 0.62
transfer serialized Avg SignedBeaconBlock (200000 B) 3.3300 us/op 3.6370 us/op 0.92
copy serialized Avg SignedBeaconBlock (200000 B) 22.101 us/op 36.402 us/op 0.61
transfer serialized BlobsSidecar (524380 B) 3.1980 us/op 4.0620 us/op 0.79
copy serialized BlobsSidecar (524380 B) 73.772 us/op 206.48 us/op 0.36
transfer serialized Big SignedBeaconBlock (1000000 B) 3.2330 us/op 4.3000 us/op 0.75
copy serialized Big SignedBeaconBlock (1000000 B) 361.11 us/op 383.32 us/op 0.94
pass gossip attestations to forkchoice per slot 2.6817 ms/op 2.8956 ms/op 0.93
forkChoice updateHead vc 100000 bc 64 eq 0 2.0449 ms/op 2.2986 ms/op 0.89
forkChoice updateHead vc 600000 bc 64 eq 0 11.553 ms/op 13.427 ms/op 0.86
forkChoice updateHead vc 1000000 bc 64 eq 0 18.668 ms/op 25.271 ms/op 0.74
forkChoice updateHead vc 600000 bc 320 eq 0 16.970 ms/op 18.044 ms/op 0.94
forkChoice updateHead vc 600000 bc 1200 eq 0 81.142 ms/op 92.221 ms/op 0.88
forkChoice updateHead vc 600000 bc 64 eq 1000 20.897 ms/op 22.144 ms/op 0.94
forkChoice updateHead vc 600000 bc 64 eq 10000 23.055 ms/op 23.963 ms/op 0.96
forkChoice updateHead vc 600000 bc 64 eq 300000 30.358 ms/op 40.440 ms/op 0.75
computeDeltas 3.8032 ms/op 3.1311 ms/op 1.21
computeProposerBoostScoreFromBalances 1.8361 ms/op 1.8330 ms/op 1.00
altair processAttestation - 250000 vs - 7PWei normalcase 2.6534 ms/op 2.5801 ms/op 1.03
altair processAttestation - 250000 vs - 7PWei worstcase 4.4374 ms/op 5.2014 ms/op 0.85
altair processAttestation - setStatus - 1/6 committees join 140.06 us/op 148.02 us/op 0.95
altair processAttestation - setStatus - 1/3 committees join 282.27 us/op 281.92 us/op 1.00
altair processAttestation - setStatus - 1/2 committees join 374.05 us/op 375.55 us/op 1.00
altair processAttestation - setStatus - 2/3 committees join 463.96 us/op 506.61 us/op 0.92
altair processAttestation - setStatus - 4/5 committees join 674.58 us/op 674.98 us/op 1.00
altair processAttestation - setStatus - 100% committees join 770.27 us/op 803.21 us/op 0.96
altair processBlock - 250000 vs - 7PWei normalcase 19.664 ms/op 18.653 ms/op 1.05
altair processBlock - 250000 vs - 7PWei normalcase hashState 29.448 ms/op 27.448 ms/op 1.07
altair processBlock - 250000 vs - 7PWei worstcase 58.125 ms/op 54.209 ms/op 1.07
altair processBlock - 250000 vs - 7PWei worstcase hashState 79.143 ms/op 70.489 ms/op 1.12
phase0 processBlock - 250000 vs - 7PWei normalcase 2.2015 ms/op 2.2575 ms/op 0.98
phase0 processBlock - 250000 vs - 7PWei worstcase 31.467 ms/op 30.753 ms/op 1.02
altair processEth1Data - 250000 vs - 7PWei normalcase 601.59 us/op 568.34 us/op 1.06
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 9.7740 us/op 8.6160 us/op 1.13
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 31.334 us/op 28.309 us/op 1.11
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 14.494 us/op 12.623 us/op 1.15
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 9.3650 us/op 10.083 us/op 0.93
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 125.58 us/op 108.90 us/op 1.15
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 666.36 us/op 744.90 us/op 0.89
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.0567 ms/op 942.63 us/op 1.12
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 917.38 us/op 976.21 us/op 0.94
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.4804 ms/op 3.0204 ms/op 0.82
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.5053 ms/op 1.5954 ms/op 0.94
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.8720 ms/op 8.8747 ms/op 0.55
Tree 40 250000 create 362.97 ms/op 498.50 ms/op 0.73
Tree 40 250000 get(125000) 198.40 ns/op 202.58 ns/op 0.98
Tree 40 250000 set(125000) 1.0338 us/op 1.0665 us/op 0.97
Tree 40 250000 toArray() 21.563 ms/op 22.305 ms/op 0.97
Tree 40 250000 iterate all - toArray() + loop 21.743 ms/op 22.511 ms/op 0.97
Tree 40 250000 iterate all - get(i) 73.160 ms/op 77.996 ms/op 0.94
MutableVector 250000 create 13.629 ms/op 13.565 ms/op 1.00
MutableVector 250000 get(125000) 6.4180 ns/op 6.9050 ns/op 0.93
MutableVector 250000 set(125000) 251.19 ns/op 300.33 ns/op 0.84
MutableVector 250000 toArray() 3.1347 ms/op 4.4380 ms/op 0.71
MutableVector 250000 iterate all - toArray() + loop 3.2925 ms/op 4.4368 ms/op 0.74
MutableVector 250000 iterate all - get(i) 1.5208 ms/op 1.6281 ms/op 0.93
Array 250000 create 2.6935 ms/op 4.3702 ms/op 0.62
Array 250000 clone - spread 1.1456 ms/op 1.6003 ms/op 0.72
Array 250000 get(125000) 0.56500 ns/op 1.2440 ns/op 0.45
Array 250000 set(125000) 0.64000 ns/op 1.1830 ns/op 0.54
Array 250000 iterate all - loop 82.792 us/op 90.221 us/op 0.92
effectiveBalanceIncrements clone Uint8Array 300000 24.955 us/op 36.354 us/op 0.69
effectiveBalanceIncrements clone MutableVector 300000 352.00 ns/op 361.00 ns/op 0.98
effectiveBalanceIncrements rw all Uint8Array 300000 170.25 us/op 172.47 us/op 0.99
effectiveBalanceIncrements rw all MutableVector 300000 82.679 ms/op 91.229 ms/op 0.91
phase0 afterProcessEpoch - 250000 vs - 7PWei 113.25 ms/op 117.82 ms/op 0.96
phase0 beforeProcessEpoch - 250000 vs - 7PWei 45.003 ms/op 42.162 ms/op 1.07
altair processEpoch - mainnet_e81889 336.53 ms/op 344.08 ms/op 0.98
mainnet_e81889 - altair beforeProcessEpoch 51.220 ms/op 51.321 ms/op 1.00
mainnet_e81889 - altair processJustificationAndFinalization 17.745 us/op 19.988 us/op 0.89
mainnet_e81889 - altair processInactivityUpdates 5.8379 ms/op 6.2892 ms/op 0.93
mainnet_e81889 - altair processRewardsAndPenalties 75.331 ms/op 66.302 ms/op 1.14
mainnet_e81889 - altair processRegistryUpdates 5.0730 us/op 3.1890 us/op 1.59
mainnet_e81889 - altair processSlashings 680.00 ns/op 482.00 ns/op 1.41
mainnet_e81889 - altair processEth1DataReset 593.00 ns/op 547.00 ns/op 1.08
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.5323 ms/op 1.2692 ms/op 1.21
mainnet_e81889 - altair processSlashingsReset 3.7960 us/op 5.2670 us/op 0.72
mainnet_e81889 - altair processRandaoMixesReset 4.4710 us/op 6.8580 us/op 0.65
mainnet_e81889 - altair processHistoricalRootsUpdate 1.0430 us/op 873.00 ns/op 1.19
mainnet_e81889 - altair processParticipationFlagUpdates 2.9910 us/op 2.4810 us/op 1.21
mainnet_e81889 - altair processSyncCommitteeUpdates 602.00 ns/op 462.00 ns/op 1.30
mainnet_e81889 - altair afterProcessEpoch 126.54 ms/op 121.85 ms/op 1.04
phase0 processEpoch - mainnet_e58758 400.50 ms/op 358.65 ms/op 1.12
mainnet_e58758 - phase0 beforeProcessEpoch 152.27 ms/op 138.21 ms/op 1.10
mainnet_e58758 - phase0 processJustificationAndFinalization 18.572 us/op 17.329 us/op 1.07
mainnet_e58758 - phase0 processRewardsAndPenalties 66.571 ms/op 59.644 ms/op 1.12
mainnet_e58758 - phase0 processRegistryUpdates 8.7000 us/op 9.1170 us/op 0.95
mainnet_e58758 - phase0 processSlashings 613.00 ns/op 665.00 ns/op 0.92
mainnet_e58758 - phase0 processEth1DataReset 552.00 ns/op 549.00 ns/op 1.01
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.3867 ms/op 1.0546 ms/op 1.31
mainnet_e58758 - phase0 processSlashingsReset 4.3650 us/op 4.2930 us/op 1.02
mainnet_e58758 - phase0 processRandaoMixesReset 7.6880 us/op 5.0020 us/op 1.54
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.1470 us/op 766.00 ns/op 1.50
mainnet_e58758 - phase0 processParticipationRecordUpdates 5.3110 us/op 4.4610 us/op 1.19
mainnet_e58758 - phase0 afterProcessEpoch 97.537 ms/op 101.53 ms/op 0.96
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.2597 ms/op 1.2714 ms/op 0.99
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.6034 ms/op 1.7047 ms/op 0.94
altair processInactivityUpdates - 250000 normalcase 25.824 ms/op 26.320 ms/op 0.98
altair processInactivityUpdates - 250000 worstcase 26.842 ms/op 27.595 ms/op 0.97
phase0 processRegistryUpdates - 250000 normalcase 7.4490 us/op 6.9620 us/op 1.07
phase0 processRegistryUpdates - 250000 badcase_full_deposits 347.94 us/op 273.16 us/op 1.27
phase0 processRegistryUpdates - 250000 worstcase 0.5 134.29 ms/op 126.75 ms/op 1.06
altair processRewardsAndPenalties - 250000 normalcase 74.802 ms/op 67.735 ms/op 1.10
altair processRewardsAndPenalties - 250000 worstcase 71.400 ms/op 71.755 ms/op 1.00
phase0 getAttestationDeltas - 250000 normalcase 6.9433 ms/op 6.9021 ms/op 1.01
phase0 getAttestationDeltas - 250000 worstcase 7.2016 ms/op 7.1005 ms/op 1.01
phase0 processSlashings - 250000 worstcase 3.4075 ms/op 3.7314 ms/op 0.91
altair processSyncCommitteeUpdates - 250000 194.14 ms/op 193.56 ms/op 1.00
BeaconState.hashTreeRoot - No change 276.00 ns/op 371.00 ns/op 0.74
BeaconState.hashTreeRoot - 1 full validator 55.586 us/op 55.355 us/op 1.00
BeaconState.hashTreeRoot - 32 full validator 549.89 us/op 549.40 us/op 1.00
BeaconState.hashTreeRoot - 512 full validator 5.9499 ms/op 5.4654 ms/op 1.09
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 65.610 us/op 63.821 us/op 1.03
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 917.92 us/op 910.72 us/op 1.01
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 12.093 ms/op 12.950 ms/op 0.93
BeaconState.hashTreeRoot - 1 balances 56.077 us/op 51.100 us/op 1.10
BeaconState.hashTreeRoot - 32 balances 487.18 us/op 497.99 us/op 0.98
BeaconState.hashTreeRoot - 512 balances 4.6019 ms/op 4.7530 ms/op 0.97
BeaconState.hashTreeRoot - 250000 balances 84.824 ms/op 78.766 ms/op 1.08
aggregationBits - 2048 els - zipIndexesInBitList 16.432 us/op 16.782 us/op 0.98
regular array get 100000 times 33.576 us/op 46.338 us/op 0.72
wrappedArray get 100000 times 33.528 us/op 49.849 us/op 0.67
arrayWithProxy get 100000 times 16.356 ms/op 16.756 ms/op 0.98
ssz.Root.equals 601.00 ns/op 658.00 ns/op 0.91
byteArrayEquals 584.00 ns/op 628.00 ns/op 0.93
shuffle list - 16384 els 6.9775 ms/op 7.9433 ms/op 0.88
shuffle list - 250000 els 102.04 ms/op 108.27 ms/op 0.94
processSlot - 1 slots 9.0430 us/op 9.9160 us/op 0.91
processSlot - 32 slots 1.3704 ms/op 1.5143 ms/op 0.90
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 38.331 ms/op 37.547 ms/op 1.02
getCommitteeAssignments - req 1 vs - 250000 vc 2.9588 ms/op 3.0665 ms/op 0.96
getCommitteeAssignments - req 100 vs - 250000 vc 4.2291 ms/op 4.2931 ms/op 0.99
getCommitteeAssignments - req 1000 vs - 250000 vc 4.5653 ms/op 5.7759 ms/op 0.79
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.8500 ns/op 5.5600 ns/op 0.87
state getBlockRootAtSlot - 250000 vs - 7PWei 998.86 ns/op 665.32 ns/op 1.50
computeProposers - vc 250000 11.316 ms/op 10.933 ms/op 1.04
computeEpochShuffling - vc 250000 106.01 ms/op 104.86 ms/op 1.01
getNextSyncCommittee - vc 250000 183.65 ms/op 196.35 ms/op 0.94
computeSigningRoot for AttestationData 13.553 us/op 14.122 us/op 0.96
hash AttestationData serialized data then Buffer.toString(base64) 2.5191 us/op 2.6096 us/op 0.97
toHexString serialized data 1.1855 us/op 1.2140 us/op 0.98
Buffer.toString(base64) 366.44 ns/op 322.86 ns/op 1.13

by benchmarkbot/action

@wemeetagain wemeetagain merged commit de00b80 into unstable Jul 14, 2023
11 checks passed
@wemeetagain wemeetagain deleted the dapplion/metrics-production-participants branch July 14, 2023 18:23
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.10.0 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
scope-metrics All issues with regards to the exposed metrics.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants