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

fix: add workaround to fix compatibility with go-eth2-client #6953

Merged
merged 4 commits into from
Jul 15, 2024

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Jul 15, 2024

Motivation

There is a compatibility issue (attestantio/go-eth2-client#144) with any software that uses go-eth2-client with a version less than v0.21.6.

While this has been fixed over a month ago by attestantio/go-eth2-client#145, upstream software using the client have not yet updated it and cut a release.

This workaround is to avoid compatiblity issues with our stable release and can hopefully be removed in our next release.

Description

Force beacon api server to return JSON if client uses go-eth2-client as determined by user-agent header.

The user agents I have checked are for

  • charon (based on testing)
  • ssv (based on code)
  • vouch (based on code)
  • checkpointz (based on code)
  • did I miss any?

It seems like that only Vouch overrides the default header but I haven't tested this for all others yet.

Also we can skip this check for produce block api (and others) as go-eth2-client supports handling SSZ data in response for these endpoints.

Copy link

codecov bot commented Jul 15, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 62.52%. Comparing base (c3d7f2f) to head (a94d252).

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6953   +/-   ##
=========================================
  Coverage     62.52%   62.52%           
=========================================
  Files           575      575           
  Lines         61055    61055           
  Branches       2135     2139    +4     
=========================================
+ Hits          38174    38175    +1     
+ Misses        22842    22841    -1     
  Partials         39       39           

@nflaig nflaig marked this pull request as ready for review July 15, 2024 19:55
@nflaig nflaig requested a review from a team as a code owner July 15, 2024 19:55
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 2511461 Previous: c3d7f2f Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 497.69 us/op 873.20 us/op 0.57
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 41.300 us/op 73.494 us/op 0.56
BLS verify - blst-native 1.0852 ms/op 1.2964 ms/op 0.84
BLS verifyMultipleSignatures 3 - blst-native 2.3103 ms/op 2.7415 ms/op 0.84
BLS verifyMultipleSignatures 8 - blst-native 5.0977 ms/op 6.0214 ms/op 0.85
BLS verifyMultipleSignatures 32 - blst-native 18.893 ms/op 22.173 ms/op 0.85
BLS verifyMultipleSignatures 64 - blst-native 37.472 ms/op 45.334 ms/op 0.83
BLS verifyMultipleSignatures 128 - blst-native 73.830 ms/op 88.078 ms/op 0.84
BLS deserializing 10000 signatures 759.79 ms/op 921.25 ms/op 0.82
BLS deserializing 100000 signatures 7.8894 s/op 9.0813 s/op 0.87
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.1076 ms/op 1.2559 ms/op 0.88
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.2467 ms/op 1.4237 ms/op 0.88
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.2593 ms/op 2.5101 ms/op 0.90
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.6489 ms/op 3.3364 ms/op 1.09
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.0573 ms/op 6.5103 ms/op 0.78
BLS aggregatePubkeys 32 - blst-native 23.139 us/op 26.590 us/op 0.87
BLS aggregatePubkeys 128 - blst-native 89.272 us/op 98.660 us/op 0.90
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 55.533 ms/op 63.621 ms/op 0.87
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 55.480 ms/op 61.172 ms/op 0.91
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 36.561 ms/op 30.428 ms/op 1.20
getSlashingsAndExits - default max 83.582 us/op 95.314 us/op 0.88
getSlashingsAndExits - 2k 261.00 us/op 267.01 us/op 0.98
proposeBlockBody type=full, size=empty 5.1603 ms/op 5.7328 ms/op 0.90
isKnown best case - 1 super set check 563.00 ns/op 289.00 ns/op 1.95
isKnown normal case - 2 super set checks 504.00 ns/op 281.00 ns/op 1.79
isKnown worse case - 16 super set checks 483.00 ns/op 275.00 ns/op 1.76
InMemoryCheckpointStateCache - add get delete 6.1390 us/op 4.9280 us/op 1.25
validate api signedAggregateAndProof - struct 2.3402 ms/op 2.6283 ms/op 0.89
validate gossip signedAggregateAndProof - struct 2.3770 ms/op 2.6180 ms/op 0.91
validate gossip attestation - vc 640000 1.1566 ms/op 1.2291 ms/op 0.94
batch validate gossip attestation - vc 640000 - chunk 32 138.19 us/op 146.09 us/op 0.95
batch validate gossip attestation - vc 640000 - chunk 64 124.02 us/op 131.35 us/op 0.94
batch validate gossip attestation - vc 640000 - chunk 128 114.07 us/op 121.10 us/op 0.94
batch validate gossip attestation - vc 640000 - chunk 256 105.37 us/op 121.35 us/op 0.87
pickEth1Vote - no votes 837.12 us/op 1.0357 ms/op 0.81
pickEth1Vote - max votes 8.3021 ms/op 7.8916 ms/op 1.05
pickEth1Vote - Eth1Data hashTreeRoot value x2048 10.598 ms/op 17.014 ms/op 0.62
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 13.741 ms/op 18.899 ms/op 0.73
pickEth1Vote - Eth1Data fastSerialize value x2048 383.51 us/op 519.49 us/op 0.74
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.3601 ms/op 6.2480 ms/op 0.86
bytes32 toHexString 605.00 ns/op 436.00 ns/op 1.39
bytes32 Buffer.toString(hex) 449.00 ns/op 252.00 ns/op 1.78
bytes32 Buffer.toString(hex) from Uint8Array 616.00 ns/op 374.00 ns/op 1.65
bytes32 Buffer.toString(hex) + 0x 465.00 ns/op 255.00 ns/op 1.82
Object access 1 prop 0.37900 ns/op 0.13700 ns/op 2.77
Map access 1 prop 0.32200 ns/op 0.13300 ns/op 2.42
Object get x1000 5.0200 ns/op 5.9550 ns/op 0.84
Map get x1000 5.7600 ns/op 6.5580 ns/op 0.88
Object set x1000 24.961 ns/op 33.130 ns/op 0.75
Map set x1000 21.844 ns/op 22.717 ns/op 0.96
Return object 10000 times 0.29900 ns/op 0.28920 ns/op 1.03
Throw Error 10000 times 2.7611 us/op 3.4076 us/op 0.81
fastMsgIdFn sha256 / 200 bytes 2.0590 us/op 2.3020 us/op 0.89
fastMsgIdFn h32 xxhash / 200 bytes 474.00 ns/op 235.00 ns/op 2.02
fastMsgIdFn h64 xxhash / 200 bytes 474.00 ns/op 270.00 ns/op 1.76
fastMsgIdFn sha256 / 1000 bytes 6.0300 us/op 7.3530 us/op 0.82
fastMsgIdFn h32 xxhash / 1000 bytes 605.00 ns/op 366.00 ns/op 1.65
fastMsgIdFn h64 xxhash / 1000 bytes 543.00 ns/op 342.00 ns/op 1.59
fastMsgIdFn sha256 / 10000 bytes 49.627 us/op 63.968 us/op 0.78
fastMsgIdFn h32 xxhash / 10000 bytes 1.9600 us/op 1.8450 us/op 1.06
fastMsgIdFn h64 xxhash / 10000 bytes 1.3190 us/op 1.2170 us/op 1.08
send data - 1000 256B messages 11.159 ms/op 12.490 ms/op 0.89
send data - 1000 512B messages 13.132 ms/op 17.732 ms/op 0.74
send data - 1000 1024B messages 22.819 ms/op 26.356 ms/op 0.87
send data - 1000 1200B messages 25.278 ms/op 27.329 ms/op 0.92
send data - 1000 2048B messages 30.109 ms/op 32.461 ms/op 0.93
send data - 1000 4096B messages 26.723 ms/op 32.443 ms/op 0.82
send data - 1000 16384B messages 68.601 ms/op 72.552 ms/op 0.95
send data - 1000 65536B messages 258.06 ms/op 214.42 ms/op 1.20
enrSubnets - fastDeserialize 64 bits 1.1510 us/op 1.0650 us/op 1.08
enrSubnets - ssz BitVector 64 bits 545.00 ns/op 355.00 ns/op 1.54
enrSubnets - fastDeserialize 4 bits 357.00 ns/op 165.00 ns/op 2.16
enrSubnets - ssz BitVector 4 bits 547.00 ns/op 404.00 ns/op 1.35
prioritizePeers score -10:0 att 32-0.1 sync 2-0 129.83 us/op 139.74 us/op 0.93
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 142.66 us/op 183.22 us/op 0.78
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 252.27 us/op 271.63 us/op 0.93
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 438.36 us/op 412.84 us/op 1.06
prioritizePeers score 0:0 att 64-1 sync 4-1 608.47 us/op 621.13 us/op 0.98
array of 16000 items push then shift 1.2649 us/op 1.6376 us/op 0.77
LinkedList of 16000 items push then shift 7.3940 ns/op 7.5080 ns/op 0.98
array of 16000 items push then pop 102.92 ns/op 110.05 ns/op 0.94
LinkedList of 16000 items push then pop 6.2260 ns/op 7.3790 ns/op 0.84
array of 24000 items push then shift 1.8254 us/op 2.4538 us/op 0.74
LinkedList of 24000 items push then shift 6.7590 ns/op 7.2760 ns/op 0.93
array of 24000 items push then pop 121.01 ns/op 144.58 ns/op 0.84
LinkedList of 24000 items push then pop 6.0920 ns/op 7.2700 ns/op 0.84
intersect bitArray bitLen 8 5.3450 ns/op 6.3950 ns/op 0.84
intersect array and set length 8 37.653 ns/op 46.139 ns/op 0.82
intersect bitArray bitLen 128 25.890 ns/op 29.516 ns/op 0.88
intersect array and set length 128 566.52 ns/op 673.20 ns/op 0.84
bitArray.getTrueBitIndexes() bitLen 128 2.0930 us/op 1.6890 us/op 1.24
bitArray.getTrueBitIndexes() bitLen 248 3.0400 us/op 3.3560 us/op 0.91
bitArray.getTrueBitIndexes() bitLen 512 7.1920 us/op 7.9290 us/op 0.91
Buffer.concat 32 items 1.0310 us/op 926.00 ns/op 1.11
Uint8Array.set 32 items 1.8000 us/op 1.4730 us/op 1.22
Buffer.copy 1.9810 us/op 1.6720 us/op 1.18
Uint8Array.set - with subarray 2.3110 us/op 2.4870 us/op 0.93
Uint8Array.set - without subarray 1.4520 us/op 1.5600 us/op 0.93
getUint32 - dataview 403.00 ns/op 258.00 ns/op 1.56
getUint32 - manual 346.00 ns/op 166.00 ns/op 2.08
Set add up to 64 items then delete first 1.7610 us/op 2.2195 us/op 0.79
OrderedSet add up to 64 items then delete first 2.7868 us/op 3.5483 us/op 0.79
Set add up to 64 items then delete last 2.0512 us/op 2.6984 us/op 0.76
OrderedSet add up to 64 items then delete last 3.2089 us/op 3.8264 us/op 0.84
Set add up to 64 items then delete middle 2.0725 us/op 2.6165 us/op 0.79
OrderedSet add up to 64 items then delete middle 4.5979 us/op 5.4828 us/op 0.84
Set add up to 128 items then delete first 3.9787 us/op 5.1915 us/op 0.77
OrderedSet add up to 128 items then delete first 6.0028 us/op 8.1625 us/op 0.74
Set add up to 128 items then delete last 3.9613 us/op 5.3592 us/op 0.74
OrderedSet add up to 128 items then delete last 6.1678 us/op 7.4766 us/op 0.82
Set add up to 128 items then delete middle 3.9544 us/op 5.4946 us/op 0.72
OrderedSet add up to 128 items then delete middle 11.681 us/op 15.907 us/op 0.73
Set add up to 256 items then delete first 7.7876 us/op 11.106 us/op 0.70
OrderedSet add up to 256 items then delete first 11.856 us/op 16.446 us/op 0.72
Set add up to 256 items then delete last 7.8159 us/op 10.008 us/op 0.78
OrderedSet add up to 256 items then delete last 12.223 us/op 15.092 us/op 0.81
Set add up to 256 items then delete middle 7.7148 us/op 10.328 us/op 0.75
OrderedSet add up to 256 items then delete middle 34.581 us/op 42.659 us/op 0.81
transfer serialized Status (84 B) 1.4890 us/op 1.3660 us/op 1.09
copy serialized Status (84 B) 1.2510 us/op 1.2210 us/op 1.02
transfer serialized SignedVoluntaryExit (112 B) 1.4530 us/op 1.4550 us/op 1.00
copy serialized SignedVoluntaryExit (112 B) 1.2830 us/op 1.2300 us/op 1.04
transfer serialized ProposerSlashing (416 B) 1.5850 us/op 1.6240 us/op 0.98
copy serialized ProposerSlashing (416 B) 1.9410 us/op 1.4460 us/op 1.34
transfer serialized Attestation (485 B) 2.0430 us/op 1.6090 us/op 1.27
copy serialized Attestation (485 B) 1.5110 us/op 1.6820 us/op 0.90
transfer serialized AttesterSlashing (33232 B) 1.6790 us/op 1.7930 us/op 0.94
copy serialized AttesterSlashing (33232 B) 3.4440 us/op 5.7180 us/op 0.60
transfer serialized Small SignedBeaconBlock (128000 B) 1.9950 us/op 3.0540 us/op 0.65
copy serialized Small SignedBeaconBlock (128000 B) 14.167 us/op 22.544 us/op 0.63
transfer serialized Avg SignedBeaconBlock (200000 B) 3.5670 us/op 3.0890 us/op 1.15
copy serialized Avg SignedBeaconBlock (200000 B) 22.049 us/op 26.348 us/op 0.84
transfer serialized BlobsSidecar (524380 B) 3.3050 us/op 3.0430 us/op 1.09
copy serialized BlobsSidecar (524380 B) 110.87 us/op 80.461 us/op 1.38
transfer serialized Big SignedBeaconBlock (1000000 B) 3.4940 us/op 3.3450 us/op 1.04
copy serialized Big SignedBeaconBlock (1000000 B) 145.26 us/op 142.18 us/op 1.02
pass gossip attestations to forkchoice per slot 2.7106 ms/op 3.3305 ms/op 0.81
forkChoice updateHead vc 100000 bc 64 eq 0 425.59 us/op 500.40 us/op 0.85
forkChoice updateHead vc 600000 bc 64 eq 0 2.4837 ms/op 3.4725 ms/op 0.72
forkChoice updateHead vc 1000000 bc 64 eq 0 4.3242 ms/op 5.4989 ms/op 0.79
forkChoice updateHead vc 600000 bc 320 eq 0 2.5077 ms/op 3.0706 ms/op 0.82
forkChoice updateHead vc 600000 bc 1200 eq 0 2.6654 ms/op 3.1700 ms/op 0.84
forkChoice updateHead vc 600000 bc 7200 eq 0 2.9142 ms/op 3.9176 ms/op 0.74
forkChoice updateHead vc 600000 bc 64 eq 1000 9.5995 ms/op 10.790 ms/op 0.89
forkChoice updateHead vc 600000 bc 64 eq 10000 9.4487 ms/op 10.833 ms/op 0.87
forkChoice updateHead vc 600000 bc 64 eq 300000 11.747 ms/op 14.486 ms/op 0.81
computeDeltas 500000 validators 300 proto nodes 2.9458 ms/op 3.7149 ms/op 0.79
computeDeltas 500000 validators 1200 proto nodes 2.9784 ms/op 3.7450 ms/op 0.80
computeDeltas 500000 validators 7200 proto nodes 2.9710 ms/op 3.8113 ms/op 0.78
computeDeltas 750000 validators 300 proto nodes 4.5171 ms/op 5.5646 ms/op 0.81
computeDeltas 750000 validators 1200 proto nodes 4.5420 ms/op 5.5699 ms/op 0.82
computeDeltas 750000 validators 7200 proto nodes 4.7168 ms/op 5.5700 ms/op 0.85
computeDeltas 1400000 validators 300 proto nodes 8.4172 ms/op 11.226 ms/op 0.75
computeDeltas 1400000 validators 1200 proto nodes 8.0833 ms/op 12.758 ms/op 0.63
computeDeltas 1400000 validators 7200 proto nodes 8.3227 ms/op 12.045 ms/op 0.69
computeDeltas 2100000 validators 300 proto nodes 12.500 ms/op 17.407 ms/op 0.72
computeDeltas 2100000 validators 1200 proto nodes 12.720 ms/op 18.533 ms/op 0.69
computeDeltas 2100000 validators 7200 proto nodes 12.752 ms/op 17.001 ms/op 0.75
altair processAttestation - 250000 vs - 7PWei normalcase 1.4624 ms/op 1.8577 ms/op 0.79
altair processAttestation - 250000 vs - 7PWei worstcase 2.4915 ms/op 2.7603 ms/op 0.90
altair processAttestation - setStatus - 1/6 committees join 69.308 us/op 103.71 us/op 0.67
altair processAttestation - setStatus - 1/3 committees join 145.10 us/op 209.34 us/op 0.69
altair processAttestation - setStatus - 1/2 committees join 214.17 us/op 274.66 us/op 0.78
altair processAttestation - setStatus - 2/3 committees join 266.34 us/op 413.52 us/op 0.64
altair processAttestation - setStatus - 4/5 committees join 403.81 us/op 632.28 us/op 0.64
altair processAttestation - setStatus - 100% committees join 557.57 us/op 625.39 us/op 0.89
altair processBlock - 250000 vs - 7PWei normalcase 3.5138 ms/op 5.1528 ms/op 0.68
altair processBlock - 250000 vs - 7PWei normalcase hashState 20.866 ms/op 22.886 ms/op 0.91
altair processBlock - 250000 vs - 7PWei worstcase 35.834 ms/op 39.327 ms/op 0.91
altair processBlock - 250000 vs - 7PWei worstcase hashState 66.906 ms/op 74.469 ms/op 0.90
phase0 processBlock - 250000 vs - 7PWei normalcase 1.5763 ms/op 1.6546 ms/op 0.95
phase0 processBlock - 250000 vs - 7PWei worstcase 25.517 ms/op 28.935 ms/op 0.88
altair processEth1Data - 250000 vs - 7PWei normalcase 247.51 us/op 331.29 us/op 0.75
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 5.7830 us/op 7.5430 us/op 0.77
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 18.775 us/op 26.459 us/op 0.71
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 7.5730 us/op 8.2400 us/op 0.92
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.2830 us/op 6.2570 us/op 1.00
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 82.877 us/op 105.90 us/op 0.78
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 801.47 us/op 716.42 us/op 1.12
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.0532 ms/op 1.0039 ms/op 1.05
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.1321 ms/op 931.89 us/op 1.21
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.0432 ms/op 2.6111 ms/op 0.78
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.1724 ms/op 1.8360 ms/op 0.64
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 2.8605 ms/op 4.4334 ms/op 0.65
Tree 40 250000 create 190.79 ms/op 275.76 ms/op 0.69
Tree 40 250000 get(125000) 126.79 ns/op 161.26 ns/op 0.79
Tree 40 250000 set(125000) 559.10 ns/op 773.20 ns/op 0.72
Tree 40 250000 toArray() 10.679 ms/op 21.330 ms/op 0.50
Tree 40 250000 iterate all - toArray() + loop 9.6914 ms/op 24.169 ms/op 0.40
Tree 40 250000 iterate all - get(i) 38.941 ms/op 65.405 ms/op 0.60
MutableVector 250000 create 7.8650 ms/op 8.6971 ms/op 0.90
MutableVector 250000 get(125000) 6.3230 ns/op 10.973 ns/op 0.58
MutableVector 250000 set(125000) 183.05 ns/op 222.20 ns/op 0.82
MutableVector 250000 toArray() 2.6513 ms/op 4.1372 ms/op 0.64
MutableVector 250000 iterate all - toArray() + loop 2.7858 ms/op 4.4539 ms/op 0.63
MutableVector 250000 iterate all - get(i) 1.4861 ms/op 1.6299 ms/op 0.91
Array 250000 create 2.2950 ms/op 3.9106 ms/op 0.59
Array 250000 clone - spread 1.2356 ms/op 1.5107 ms/op 0.82
Array 250000 get(125000) 0.57700 ns/op 0.46300 ns/op 1.25
Array 250000 set(125000) 0.58800 ns/op 0.47900 ns/op 1.23
Array 250000 iterate all - loop 76.625 us/op 105.21 us/op 0.73
effectiveBalanceIncrements clone Uint8Array 300000 13.990 us/op 41.913 us/op 0.33
effectiveBalanceIncrements clone MutableVector 300000 315.00 ns/op 143.00 ns/op 2.20
effectiveBalanceIncrements rw all Uint8Array 300000 166.21 us/op 223.24 us/op 0.74
effectiveBalanceIncrements rw all MutableVector 300000 56.197 ms/op 105.39 ms/op 0.53
phase0 afterProcessEpoch - 250000 vs - 7PWei 76.316 ms/op 102.02 ms/op 0.75
phase0 beforeProcessEpoch - 250000 vs - 7PWei 35.958 ms/op 48.937 ms/op 0.73
altair processEpoch - mainnet_e81889 326.11 ms/op 463.01 ms/op 0.70
mainnet_e81889 - altair beforeProcessEpoch 62.176 ms/op 63.574 ms/op 0.98
mainnet_e81889 - altair processJustificationAndFinalization 13.650 us/op 20.457 us/op 0.67
mainnet_e81889 - altair processInactivityUpdates 5.8970 ms/op 8.3877 ms/op 0.70
mainnet_e81889 - altair processRewardsAndPenalties 43.536 ms/op 46.121 ms/op 0.94
mainnet_e81889 - altair processRegistryUpdates 2.4650 us/op 4.4340 us/op 0.56
mainnet_e81889 - altair processSlashings 751.00 ns/op 1.1150 us/op 0.67
mainnet_e81889 - altair processEth1DataReset 844.00 ns/op 653.00 ns/op 1.29
mainnet_e81889 - altair processEffectiveBalanceUpdates 806.85 us/op 1.4510 ms/op 0.56
mainnet_e81889 - altair processSlashingsReset 3.2870 us/op 12.708 us/op 0.26
mainnet_e81889 - altair processRandaoMixesReset 3.3040 us/op 9.6080 us/op 0.34
mainnet_e81889 - altair processHistoricalRootsUpdate 670.00 ns/op 905.00 ns/op 0.74
mainnet_e81889 - altair processParticipationFlagUpdates 1.9460 us/op 2.7630 us/op 0.70
mainnet_e81889 - altair processSyncCommitteeUpdates 878.00 ns/op 618.00 ns/op 1.42
mainnet_e81889 - altair afterProcessEpoch 80.983 ms/op 103.85 ms/op 0.78
capella processEpoch - mainnet_e217614 1.1932 s/op 1.6726 s/op 0.71
mainnet_e217614 - capella beforeProcessEpoch 262.59 ms/op 361.94 ms/op 0.73
mainnet_e217614 - capella processJustificationAndFinalization 14.985 us/op 22.232 us/op 0.67
mainnet_e217614 - capella processInactivityUpdates 15.319 ms/op 23.756 ms/op 0.64
mainnet_e217614 - capella processRewardsAndPenalties 251.17 ms/op 273.14 ms/op 0.92
mainnet_e217614 - capella processRegistryUpdates 14.500 us/op 17.491 us/op 0.83
mainnet_e217614 - capella processSlashings 745.00 ns/op 447.00 ns/op 1.67
mainnet_e217614 - capella processEth1DataReset 891.00 ns/op 372.00 ns/op 2.40
mainnet_e217614 - capella processEffectiveBalanceUpdates 13.845 ms/op 12.641 ms/op 1.10
mainnet_e217614 - capella processSlashingsReset 2.8280 us/op 3.2110 us/op 0.88
mainnet_e217614 - capella processRandaoMixesReset 3.2460 us/op 4.7740 us/op 0.68
mainnet_e217614 - capella processHistoricalRootsUpdate 712.00 ns/op 1.5050 us/op 0.47
mainnet_e217614 - capella processParticipationFlagUpdates 931.00 ns/op 2.7260 us/op 0.34
mainnet_e217614 - capella afterProcessEpoch 241.10 ms/op 315.16 ms/op 0.77
phase0 processEpoch - mainnet_e58758 329.12 ms/op 418.26 ms/op 0.79
mainnet_e58758 - phase0 beforeProcessEpoch 100.84 ms/op 124.40 ms/op 0.81
mainnet_e58758 - phase0 processJustificationAndFinalization 13.878 us/op 20.099 us/op 0.69
mainnet_e58758 - phase0 processRewardsAndPenalties 33.083 ms/op 37.344 ms/op 0.89
mainnet_e58758 - phase0 processRegistryUpdates 6.8100 us/op 15.534 us/op 0.44
mainnet_e58758 - phase0 processSlashings 753.00 ns/op 734.00 ns/op 1.03
mainnet_e58758 - phase0 processEth1DataReset 655.00 ns/op 780.00 ns/op 0.84
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.1141 ms/op 1.5606 ms/op 0.71
mainnet_e58758 - phase0 processSlashingsReset 3.6980 us/op 7.2100 us/op 0.51
mainnet_e58758 - phase0 processRandaoMixesReset 3.4100 us/op 10.276 us/op 0.33
mainnet_e58758 - phase0 processHistoricalRootsUpdate 883.00 ns/op 825.00 ns/op 1.07
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.7380 us/op 5.5270 us/op 0.68
mainnet_e58758 - phase0 afterProcessEpoch 67.798 ms/op 85.635 ms/op 0.79
phase0 processEffectiveBalanceUpdates - 250000 normalcase 773.62 us/op 1.2680 ms/op 0.61
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.4052 ms/op 2.2679 ms/op 0.62
altair processInactivityUpdates - 250000 normalcase 17.888 ms/op 18.633 ms/op 0.96
altair processInactivityUpdates - 250000 worstcase 15.142 ms/op 16.910 ms/op 0.90
phase0 processRegistryUpdates - 250000 normalcase 5.6740 us/op 6.8540 us/op 0.83
phase0 processRegistryUpdates - 250000 badcase_full_deposits 312.35 us/op 294.92 us/op 1.06
phase0 processRegistryUpdates - 250000 worstcase 0.5 113.75 ms/op 110.88 ms/op 1.03
altair processRewardsAndPenalties - 250000 normalcase 43.410 ms/op 44.260 ms/op 0.98
altair processRewardsAndPenalties - 250000 worstcase 39.688 ms/op 39.717 ms/op 1.00
phase0 getAttestationDeltas - 250000 normalcase 6.5695 ms/op 7.4141 ms/op 0.89
phase0 getAttestationDeltas - 250000 worstcase 6.1831 ms/op 8.4811 ms/op 0.73
phase0 processSlashings - 250000 worstcase 90.276 us/op 87.235 us/op 1.03
altair processSyncCommitteeUpdates - 250000 115.39 ms/op 129.96 ms/op 0.89
BeaconState.hashTreeRoot - No change 649.00 ns/op 277.00 ns/op 2.34
BeaconState.hashTreeRoot - 1 full validator 128.55 us/op 87.490 us/op 1.47
BeaconState.hashTreeRoot - 32 full validator 1.1706 ms/op 926.16 us/op 1.26
BeaconState.hashTreeRoot - 512 full validator 12.427 ms/op 9.0472 ms/op 1.37
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 136.72 us/op 107.70 us/op 1.27
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.7053 ms/op 1.4286 ms/op 1.19
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 26.660 ms/op 18.079 ms/op 1.47
BeaconState.hashTreeRoot - 1 balances 104.89 us/op 82.907 us/op 1.27
BeaconState.hashTreeRoot - 32 balances 962.28 us/op 755.62 us/op 1.27
BeaconState.hashTreeRoot - 512 balances 10.352 ms/op 7.0247 ms/op 1.47
BeaconState.hashTreeRoot - 250000 balances 144.28 ms/op 145.46 ms/op 0.99
aggregationBits - 2048 els - zipIndexesInBitList 19.879 us/op 24.138 us/op 0.82
byteArrayEquals 32 48.413 ns/op 54.373 ns/op 0.89
Buffer.compare 32 16.852 ns/op 17.660 ns/op 0.95
byteArrayEquals 1024 1.2613 us/op 1.6110 us/op 0.78
Buffer.compare 1024 24.481 ns/op 25.277 ns/op 0.97
byteArrayEquals 16384 20.136 us/op 25.692 us/op 0.78
Buffer.compare 16384 201.43 ns/op 192.73 ns/op 1.05
byteArrayEquals 123687377 151.64 ms/op 194.08 ms/op 0.78
Buffer.compare 123687377 5.5782 ms/op 7.4372 ms/op 0.75
byteArrayEquals 32 - diff last byte 45.627 ns/op 54.750 ns/op 0.83
Buffer.compare 32 - diff last byte 15.224 ns/op 17.945 ns/op 0.85
byteArrayEquals 1024 - diff last byte 1.2147 us/op 1.6317 us/op 0.74
Buffer.compare 1024 - diff last byte 23.834 ns/op 27.285 ns/op 0.87
byteArrayEquals 16384 - diff last byte 19.818 us/op 25.572 us/op 0.77
Buffer.compare 16384 - diff last byte 174.49 ns/op 183.66 ns/op 0.95
byteArrayEquals 123687377 - diff last byte 150.75 ms/op 192.33 ms/op 0.78
Buffer.compare 123687377 - diff last byte 5.1581 ms/op 6.5061 ms/op 0.79
byteArrayEquals 32 - random bytes 4.9320 ns/op 5.1600 ns/op 0.96
Buffer.compare 32 - random bytes 15.847 ns/op 17.322 ns/op 0.91
byteArrayEquals 1024 - random bytes 4.9780 ns/op 5.1590 ns/op 0.96
Buffer.compare 1024 - random bytes 15.724 ns/op 20.180 ns/op 0.78
byteArrayEquals 16384 - random bytes 5.0080 ns/op 5.1150 ns/op 0.98
Buffer.compare 16384 - random bytes 15.719 ns/op 17.292 ns/op 0.91
byteArrayEquals 123687377 - random bytes 8.0200 ns/op 6.4200 ns/op 1.25
Buffer.compare 123687377 - random bytes 18.990 ns/op 18.410 ns/op 1.03
regular array get 100000 times 30.937 us/op 44.073 us/op 0.70
wrappedArray get 100000 times 30.888 us/op 33.107 us/op 0.93
arrayWithProxy get 100000 times 10.151 ms/op 14.533 ms/op 0.70
ssz.Root.equals 43.662 ns/op 46.097 ns/op 0.95
byteArrayEquals 44.968 ns/op 45.215 ns/op 0.99
Buffer.compare 9.0720 ns/op 10.347 ns/op 0.88
shuffle list - 16384 els 5.7320 ms/op 6.2902 ms/op 0.91
shuffle list - 250000 els 83.128 ms/op 92.747 ms/op 0.90
processSlot - 1 slots 15.474 us/op 13.393 us/op 1.16
processSlot - 32 slots 3.3830 ms/op 3.0733 ms/op 1.10
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 38.806 ms/op 35.619 ms/op 1.09
getCommitteeAssignments - req 1 vs - 250000 vc 1.7915 ms/op 2.3523 ms/op 0.76
getCommitteeAssignments - req 100 vs - 250000 vc 3.5434 ms/op 4.2300 ms/op 0.84
getCommitteeAssignments - req 1000 vs - 250000 vc 3.8210 ms/op 4.5603 ms/op 0.84
findModifiedValidators - 10000 modified validators 281.72 ms/op 281.79 ms/op 1.00
findModifiedValidators - 1000 modified validators 177.65 ms/op 192.51 ms/op 0.92
findModifiedValidators - 100 modified validators 179.02 ms/op 234.41 ms/op 0.76
findModifiedValidators - 10 modified validators 177.83 ms/op 237.55 ms/op 0.75
findModifiedValidators - 1 modified validators 164.14 ms/op 224.63 ms/op 0.73
findModifiedValidators - no difference 193.40 ms/op 231.58 ms/op 0.84
compare ViewDUs 3.2200 s/op 3.4849 s/op 0.92
compare each validator Uint8Array 1.5264 s/op 1.6013 s/op 0.95
compare ViewDU to Uint8Array 757.83 ms/op 1.3759 s/op 0.55
migrate state 1000000 validators, 24 modified, 0 new 582.12 ms/op 770.10 ms/op 0.76
migrate state 1000000 validators, 1700 modified, 1000 new 754.67 ms/op 956.19 ms/op 0.79
migrate state 1000000 validators, 3400 modified, 2000 new 957.55 ms/op 1.1201 s/op 0.85
migrate state 1500000 validators, 24 modified, 0 new 531.89 ms/op 560.33 ms/op 0.95
migrate state 1500000 validators, 1700 modified, 1000 new 719.74 ms/op 789.53 ms/op 0.91
migrate state 1500000 validators, 3400 modified, 2000 new 1.1005 s/op 1.0029 s/op 1.10
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 6.7800 ns/op 4.3000 ns/op 1.58
state getBlockRootAtSlot - 250000 vs - 7PWei 747.38 ns/op 863.35 ns/op 0.87
computeProposers - vc 250000 6.1432 ms/op 7.1646 ms/op 0.86
computeEpochShuffling - vc 250000 84.058 ms/op 91.610 ms/op 0.92
getNextSyncCommittee - vc 250000 95.756 ms/op 117.56 ms/op 0.81
computeSigningRoot for AttestationData 16.803 us/op 21.953 us/op 0.77
hash AttestationData serialized data then Buffer.toString(base64) 1.1873 us/op 1.4940 us/op 0.79
toHexString serialized data 789.27 ns/op 873.41 ns/op 0.90
Buffer.toString(base64) 131.66 ns/op 187.55 ns/op 0.70

by benchmarkbot/action

@wemeetagain wemeetagain merged commit 7489135 into unstable Jul 15, 2024
19 of 20 checks passed
@wemeetagain wemeetagain deleted the nflaig/add-goclient-workaround branch July 15, 2024 19:57
wemeetagain pushed a commit that referenced this pull request Jul 15, 2024
* fix: add workaround to fix compatibility with go-eth2-client

* Skip more endpoints

* Move comments around

* Fix assertion
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.20.1 🎉

@wemeetagain
Copy link
Member

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

2 participants