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: add arm64 binary support #6707

Merged
merged 4 commits into from
Apr 26, 2024
Merged

feat: add arm64 binary support #6707

merged 4 commits into from
Apr 26, 2024

Conversation

jeluard
Copy link
Contributor

@jeluard jeluard commented Apr 25, 2024

Motivation

Add arm64 binary support. Those binaries are generated and published during a release publication.
Tested on linux arm64, works fine. A test binary can be found here

@jeluard jeluard requested a review from a team as a code owner April 25, 2024 11:05
Copy link

codecov bot commented Apr 25, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 61.87%. Comparing base (09e4b9c) to head (52de601).
Report is 7 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6707   +/-   ##
=========================================
  Coverage     61.87%   61.87%           
=========================================
  Files           557      562    +5     
  Lines         59209    59301   +92     
  Branches       1915     1916    +1     
=========================================
+ Hits          36635    36695   +60     
- Misses        22531    22563   +32     
  Partials         43       43           

Copy link
Contributor

github-actions bot commented Apr 25, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 2a74a3a Previous: e1bc926 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.1396 ms/op 1.1203 ms/op 1.02
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 94.801 us/op 119.50 us/op 0.79
BLS verify - blst-native 1.3174 ms/op 1.3233 ms/op 1.00
BLS verifyMultipleSignatures 3 - blst-native 2.5126 ms/op 2.5253 ms/op 0.99
BLS verifyMultipleSignatures 8 - blst-native 5.3840 ms/op 5.3955 ms/op 1.00
BLS verifyMultipleSignatures 32 - blst-native 19.927 ms/op 19.586 ms/op 1.02
BLS verifyMultipleSignatures 64 - blst-native 38.671 ms/op 38.329 ms/op 1.01
BLS verifyMultipleSignatures 128 - blst-native 75.885 ms/op 76.210 ms/op 1.00
BLS deserializing 10000 signatures 890.10 ms/op 895.54 ms/op 0.99
BLS deserializing 100000 signatures 8.9411 s/op 8.9673 s/op 1.00
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.3373 ms/op 1.3323 ms/op 1.00
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.5070 ms/op 1.5062 ms/op 1.00
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.3340 ms/op 2.3657 ms/op 0.99
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.4342 ms/op 3.5534 ms/op 0.97
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.6345 ms/op 5.7959 ms/op 0.97
BLS aggregatePubkeys 32 - blst-native 28.842 us/op 30.095 us/op 0.96
BLS aggregatePubkeys 128 - blst-native 111.84 us/op 113.00 us/op 0.99
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 66.738 ms/op 61.098 ms/op 1.09
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 69.335 ms/op 75.638 ms/op 0.92
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 36.071 ms/op 37.285 ms/op 0.97
getSlashingsAndExits - default max 280.53 us/op 194.55 us/op 1.44
getSlashingsAndExits - 2k 451.53 us/op 597.71 us/op 0.76
proposeBlockBody type=full, size=empty 5.6375 ms/op 6.3240 ms/op 0.89
isKnown best case - 1 super set check 357.00 ns/op 548.00 ns/op 0.65
isKnown normal case - 2 super set checks 337.00 ns/op 601.00 ns/op 0.56
isKnown worse case - 16 super set checks 383.00 ns/op 582.00 ns/op 0.66
InMemoryCheckpointStateCache - add get delete 6.2950 us/op 7.9930 us/op 0.79
validate api signedAggregateAndProof - struct 2.4072 ms/op 2.4577 ms/op 0.98
validate gossip signedAggregateAndProof - struct 2.3889 ms/op 2.4946 ms/op 0.96
validate gossip attestation - vc 640000 1.3756 ms/op 1.4302 ms/op 0.96
batch validate gossip attestation - vc 640000 - chunk 32 164.49 us/op 177.76 us/op 0.93
batch validate gossip attestation - vc 640000 - chunk 64 144.56 us/op 158.08 us/op 0.91
batch validate gossip attestation - vc 640000 - chunk 128 140.95 us/op 157.64 us/op 0.89
batch validate gossip attestation - vc 640000 - chunk 256 135.31 us/op 154.37 us/op 0.88
pickEth1Vote - no votes 1.2669 ms/op 1.4003 ms/op 0.90
pickEth1Vote - max votes 8.2387 ms/op 12.469 ms/op 0.66
pickEth1Vote - Eth1Data hashTreeRoot value x2048 15.815 ms/op 22.857 ms/op 0.69
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 23.869 ms/op 32.452 ms/op 0.74
pickEth1Vote - Eth1Data fastSerialize value x2048 696.53 us/op 815.40 us/op 0.85
pickEth1Vote - Eth1Data fastSerialize tree x2048 4.7135 ms/op 5.8754 ms/op 0.80
bytes32 toHexString 573.00 ns/op 895.00 ns/op 0.64
bytes32 Buffer.toString(hex) 317.00 ns/op 323.00 ns/op 0.98
bytes32 Buffer.toString(hex) from Uint8Array 505.00 ns/op 589.00 ns/op 0.86
bytes32 Buffer.toString(hex) + 0x 298.00 ns/op 343.00 ns/op 0.87
Object access 1 prop 0.18500 ns/op 0.22600 ns/op 0.82
Map access 1 prop 0.15400 ns/op 0.17200 ns/op 0.90
Object get x1000 7.4360 ns/op 8.5980 ns/op 0.86
Map get x1000 0.80600 ns/op 0.93100 ns/op 0.87
Object set x1000 57.219 ns/op 73.009 ns/op 0.78
Map set x1000 43.125 ns/op 56.855 ns/op 0.76
Return object 10000 times 0.24560 ns/op 0.25730 ns/op 0.95
Throw Error 10000 times 3.9347 us/op 4.0551 us/op 0.97
fastMsgIdFn sha256 / 200 bytes 3.3980 us/op 3.5930 us/op 0.95
fastMsgIdFn h32 xxhash / 200 bytes 295.00 ns/op 361.00 ns/op 0.82
fastMsgIdFn h64 xxhash / 200 bytes 352.00 ns/op 442.00 ns/op 0.80
fastMsgIdFn sha256 / 1000 bytes 11.710 us/op 12.038 us/op 0.97
fastMsgIdFn h32 xxhash / 1000 bytes 437.00 ns/op 503.00 ns/op 0.87
fastMsgIdFn h64 xxhash / 1000 bytes 432.00 ns/op 513.00 ns/op 0.84
fastMsgIdFn sha256 / 10000 bytes 103.76 us/op 106.31 us/op 0.98
fastMsgIdFn h32 xxhash / 10000 bytes 1.9680 us/op 2.0500 us/op 0.96
fastMsgIdFn h64 xxhash / 10000 bytes 1.3290 us/op 1.4510 us/op 0.92
send data - 1000 256B messages 19.385 ms/op 26.444 ms/op 0.73
send data - 1000 512B messages 26.890 ms/op 27.568 ms/op 0.98
send data - 1000 1024B messages 48.016 ms/op 47.254 ms/op 1.02
send data - 1000 1200B messages 25.064 ms/op 46.171 ms/op 0.54
send data - 1000 2048B messages 48.115 ms/op 53.782 ms/op 0.89
send data - 1000 4096B messages 45.832 ms/op 46.971 ms/op 0.98
send data - 1000 16384B messages 123.16 ms/op 121.17 ms/op 1.02
send data - 1000 65536B messages 518.20 ms/op 485.87 ms/op 1.07
enrSubnets - fastDeserialize 64 bits 1.4150 us/op 1.2720 us/op 1.11
enrSubnets - ssz BitVector 64 bits 501.00 ns/op 443.00 ns/op 1.13
enrSubnets - fastDeserialize 4 bits 244.00 ns/op 176.00 ns/op 1.39
enrSubnets - ssz BitVector 4 bits 583.00 ns/op 451.00 ns/op 1.29
prioritizePeers score -10:0 att 32-0.1 sync 2-0 249.72 us/op 235.82 us/op 1.06
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 328.08 us/op 299.39 us/op 1.10
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 406.30 us/op 398.78 us/op 1.02
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 699.56 us/op 624.14 us/op 1.12
prioritizePeers score 0:0 att 64-1 sync 4-1 809.54 us/op 730.21 us/op 1.11
array of 16000 items push then shift 1.6739 us/op 1.6789 us/op 1.00
LinkedList of 16000 items push then shift 9.4190 ns/op 9.5980 ns/op 0.98
array of 16000 items push then pop 107.36 ns/op 110.00 ns/op 0.98
LinkedList of 16000 items push then pop 9.3880 ns/op 9.0450 ns/op 1.04
array of 24000 items push then shift 2.6490 us/op 2.5623 us/op 1.03
LinkedList of 24000 items push then shift 9.3130 ns/op 9.6570 ns/op 0.96
array of 24000 items push then pop 140.56 ns/op 154.00 ns/op 0.91
LinkedList of 24000 items push then pop 8.9380 ns/op 8.7710 ns/op 1.02
intersect bitArray bitLen 8 5.9500 ns/op 5.8720 ns/op 1.01
intersect array and set length 8 67.266 ns/op 63.452 ns/op 1.06
intersect bitArray bitLen 128 36.540 ns/op 35.642 ns/op 1.03
intersect array and set length 128 997.28 ns/op 878.53 ns/op 1.14
bitArray.getTrueBitIndexes() bitLen 128 1.6120 us/op 1.5660 us/op 1.03
bitArray.getTrueBitIndexes() bitLen 248 2.9530 us/op 2.7460 us/op 1.08
bitArray.getTrueBitIndexes() bitLen 512 6.2690 us/op 6.0810 us/op 1.03
Buffer.concat 32 items 1.0890 us/op 1.0560 us/op 1.03
Uint8Array.set 32 items 1.9690 us/op 1.9290 us/op 1.02
Set add up to 64 items then delete first 5.0674 us/op 4.9368 us/op 1.03
OrderedSet add up to 64 items then delete first 6.9410 us/op 6.7410 us/op 1.03
Set add up to 64 items then delete last 5.5472 us/op 5.2878 us/op 1.05
OrderedSet add up to 64 items then delete last 7.1641 us/op 6.0619 us/op 1.18
Set add up to 64 items then delete middle 5.5270 us/op 4.9312 us/op 1.12
OrderedSet add up to 64 items then delete middle 8.9030 us/op 7.5483 us/op 1.18
Set add up to 128 items then delete first 10.540 us/op 10.489 us/op 1.00
OrderedSet add up to 128 items then delete first 15.546 us/op 14.393 us/op 1.08
Set add up to 128 items then delete last 10.614 us/op 10.833 us/op 0.98
OrderedSet add up to 128 items then delete last 13.731 us/op 12.191 us/op 1.13
Set add up to 128 items then delete middle 10.396 us/op 9.3318 us/op 1.11
OrderedSet add up to 128 items then delete middle 19.946 us/op 18.877 us/op 1.06
Set add up to 256 items then delete first 21.367 us/op 19.332 us/op 1.11
OrderedSet add up to 256 items then delete first 28.660 us/op 25.585 us/op 1.12
Set add up to 256 items then delete last 20.041 us/op 21.456 us/op 0.93
OrderedSet add up to 256 items then delete last 25.108 us/op 24.659 us/op 1.02
Set add up to 256 items then delete middle 21.208 us/op 19.801 us/op 1.07
OrderedSet add up to 256 items then delete middle 50.934 us/op 49.481 us/op 1.03
transfer serialized Status (84 B) 1.9540 us/op 1.8620 us/op 1.05
copy serialized Status (84 B) 1.4760 us/op 1.4580 us/op 1.01
transfer serialized SignedVoluntaryExit (112 B) 2.1170 us/op 1.9770 us/op 1.07
copy serialized SignedVoluntaryExit (112 B) 1.5310 us/op 1.4170 us/op 1.08
transfer serialized ProposerSlashing (416 B) 2.3490 us/op 2.1420 us/op 1.10
copy serialized ProposerSlashing (416 B) 2.8370 us/op 2.0090 us/op 1.41
transfer serialized Attestation (485 B) 3.4440 us/op 2.4450 us/op 1.41
copy serialized Attestation (485 B) 2.9350 us/op 2.0360 us/op 1.44
transfer serialized AttesterSlashing (33232 B) 3.0400 us/op 2.2340 us/op 1.36
copy serialized AttesterSlashing (33232 B) 10.176 us/op 7.8520 us/op 1.30
transfer serialized Small SignedBeaconBlock (128000 B) 3.4310 us/op 2.6490 us/op 1.30
copy serialized Small SignedBeaconBlock (128000 B) 27.411 us/op 21.836 us/op 1.26
transfer serialized Avg SignedBeaconBlock (200000 B) 3.3520 us/op 3.5300 us/op 0.95
copy serialized Avg SignedBeaconBlock (200000 B) 26.164 us/op 31.074 us/op 0.84
transfer serialized BlobsSidecar (524380 B) 3.4650 us/op 3.7080 us/op 0.93
copy serialized BlobsSidecar (524380 B) 96.491 us/op 120.87 us/op 0.80
transfer serialized Big SignedBeaconBlock (1000000 B) 3.6100 us/op 4.2850 us/op 0.84
copy serialized Big SignedBeaconBlock (1000000 B) 180.52 us/op 181.91 us/op 0.99
pass gossip attestations to forkchoice per slot 4.0451 ms/op 4.7392 ms/op 0.85
forkChoice updateHead vc 100000 bc 64 eq 0 722.69 us/op 756.99 us/op 0.95
forkChoice updateHead vc 600000 bc 64 eq 0 5.1685 ms/op 6.9367 ms/op 0.75
forkChoice updateHead vc 1000000 bc 64 eq 0 7.6079 ms/op 7.8579 ms/op 0.97
forkChoice updateHead vc 600000 bc 320 eq 0 4.3179 ms/op 4.4736 ms/op 0.97
forkChoice updateHead vc 600000 bc 1200 eq 0 4.5654 ms/op 4.5946 ms/op 0.99
forkChoice updateHead vc 600000 bc 7200 eq 0 5.7603 ms/op 5.8008 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 1000 12.021 ms/op 11.646 ms/op 1.03
forkChoice updateHead vc 600000 bc 64 eq 10000 12.436 ms/op 13.484 ms/op 0.92
forkChoice updateHead vc 600000 bc 64 eq 300000 16.994 ms/op 22.424 ms/op 0.76
computeDeltas 500000 validators 300 proto nodes 7.0240 ms/op 7.6478 ms/op 0.92
computeDeltas 500000 validators 1200 proto nodes 7.0118 ms/op 7.0795 ms/op 0.99
computeDeltas 500000 validators 7200 proto nodes 6.7211 ms/op 6.8581 ms/op 0.98
computeDeltas 750000 validators 300 proto nodes 9.9661 ms/op 10.019 ms/op 0.99
computeDeltas 750000 validators 1200 proto nodes 9.8085 ms/op 9.9164 ms/op 0.99
computeDeltas 750000 validators 7200 proto nodes 9.8173 ms/op 9.9342 ms/op 0.99
computeDeltas 1400000 validators 300 proto nodes 18.479 ms/op 18.558 ms/op 1.00
computeDeltas 1400000 validators 1200 proto nodes 18.547 ms/op 19.851 ms/op 0.93
computeDeltas 1400000 validators 7200 proto nodes 18.373 ms/op 20.013 ms/op 0.92
computeDeltas 2100000 validators 300 proto nodes 27.631 ms/op 28.851 ms/op 0.96
computeDeltas 2100000 validators 1200 proto nodes 27.328 ms/op 29.614 ms/op 0.92
computeDeltas 2100000 validators 7200 proto nodes 28.139 ms/op 28.543 ms/op 0.99
altair processAttestation - 250000 vs - 7PWei normalcase 2.3605 ms/op 2.7828 ms/op 0.85
altair processAttestation - 250000 vs - 7PWei worstcase 3.6920 ms/op 4.5102 ms/op 0.82
altair processAttestation - setStatus - 1/6 committees join 185.31 us/op 208.66 us/op 0.89
altair processAttestation - setStatus - 1/3 committees join 370.50 us/op 399.80 us/op 0.93
altair processAttestation - setStatus - 1/2 committees join 492.79 us/op 502.51 us/op 0.98
altair processAttestation - setStatus - 2/3 committees join 638.38 us/op 649.02 us/op 0.98
altair processAttestation - setStatus - 4/5 committees join 882.96 us/op 866.44 us/op 1.02
altair processAttestation - setStatus - 100% committees join 957.62 us/op 1.0783 ms/op 0.89
altair processBlock - 250000 vs - 7PWei normalcase 8.4564 ms/op 8.9681 ms/op 0.94
altair processBlock - 250000 vs - 7PWei normalcase hashState 41.103 ms/op 36.494 ms/op 1.13
altair processBlock - 250000 vs - 7PWei worstcase 44.920 ms/op 47.454 ms/op 0.95
altair processBlock - 250000 vs - 7PWei worstcase hashState 90.402 ms/op 94.505 ms/op 0.96
phase0 processBlock - 250000 vs - 7PWei normalcase 2.4278 ms/op 2.7337 ms/op 0.89
phase0 processBlock - 250000 vs - 7PWei worstcase 30.727 ms/op 32.340 ms/op 0.95
altair processEth1Data - 250000 vs - 7PWei normalcase 525.99 us/op 573.83 us/op 0.92
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 12.224 us/op 17.466 us/op 0.70
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 73.067 us/op 83.299 us/op 0.88
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 18.308 us/op 24.354 us/op 0.75
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 10.002 us/op 18.497 us/op 0.54
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 182.44 us/op 272.20 us/op 0.67
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.5024 ms/op 1.8580 ms/op 0.81
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.5399 ms/op 2.2505 ms/op 0.68
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.8438 ms/op 2.5309 ms/op 0.73
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.8056 ms/op 3.8619 ms/op 0.99
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.8222 ms/op 3.0729 ms/op 0.92
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.8170 ms/op 6.4759 ms/op 0.74
Tree 40 250000 create 341.23 ms/op 693.74 ms/op 0.49
Tree 40 250000 get(125000) 199.54 ns/op 223.97 ns/op 0.89
Tree 40 250000 set(125000) 1.0512 us/op 1.2973 us/op 0.81
Tree 40 250000 toArray() 21.058 ms/op 23.771 ms/op 0.89
Tree 40 250000 iterate all - toArray() + loop 20.732 ms/op 24.888 ms/op 0.83
Tree 40 250000 iterate all - get(i) 70.885 ms/op 82.777 ms/op 0.86
MutableVector 250000 create 11.556 ms/op 19.502 ms/op 0.59
MutableVector 250000 get(125000) 6.7160 ns/op 7.0760 ns/op 0.95
MutableVector 250000 set(125000) 294.79 ns/op 336.60 ns/op 0.88
MutableVector 250000 toArray() 3.6327 ms/op 3.8228 ms/op 0.95
MutableVector 250000 iterate all - toArray() + loop 3.5726 ms/op 4.1505 ms/op 0.86
MutableVector 250000 iterate all - get(i) 1.5344 ms/op 1.7203 ms/op 0.89
Array 250000 create 3.0959 ms/op 3.8479 ms/op 0.80
Array 250000 clone - spread 1.4616 ms/op 1.5510 ms/op 0.94
Array 250000 get(125000) 1.1710 ns/op 1.3250 ns/op 0.88
Array 250000 set(125000) 4.3050 ns/op 4.8440 ns/op 0.89
Array 250000 iterate all - loop 169.97 us/op 170.22 us/op 1.00
effectiveBalanceIncrements clone Uint8Array 300000 36.487 us/op 42.643 us/op 0.86
effectiveBalanceIncrements clone MutableVector 300000 474.00 ns/op 463.00 ns/op 1.02
effectiveBalanceIncrements rw all Uint8Array 300000 204.77 us/op 209.49 us/op 0.98
effectiveBalanceIncrements rw all MutableVector 300000 98.283 ms/op 102.29 ms/op 0.96
phase0 afterProcessEpoch - 250000 vs - 7PWei 114.83 ms/op 121.75 ms/op 0.94
phase0 beforeProcessEpoch - 250000 vs - 7PWei 53.504 ms/op 62.490 ms/op 0.86
altair processEpoch - mainnet_e81889 491.14 ms/op 525.15 ms/op 0.94
mainnet_e81889 - altair beforeProcessEpoch 61.313 ms/op 88.546 ms/op 0.69
mainnet_e81889 - altair processJustificationAndFinalization 18.064 us/op 17.258 us/op 1.05
mainnet_e81889 - altair processInactivityUpdates 7.6536 ms/op 5.9194 ms/op 1.29
mainnet_e81889 - altair processRewardsAndPenalties 76.694 ms/op 86.144 ms/op 0.89
mainnet_e81889 - altair processRegistryUpdates 3.7910 us/op 2.4490 us/op 1.55
mainnet_e81889 - altair processSlashings 610.00 ns/op 583.00 ns/op 1.05
mainnet_e81889 - altair processEth1DataReset 805.00 ns/op 472.00 ns/op 1.71
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.8219 ms/op 1.5867 ms/op 1.15
mainnet_e81889 - altair processSlashingsReset 3.8340 us/op 4.0850 us/op 0.94
mainnet_e81889 - altair processRandaoMixesReset 9.2530 us/op 7.2810 us/op 1.27
mainnet_e81889 - altair processHistoricalRootsUpdate 1.2000 us/op 749.00 ns/op 1.60
mainnet_e81889 - altair processParticipationFlagUpdates 3.5210 us/op 1.6460 us/op 2.14
mainnet_e81889 - altair processSyncCommitteeUpdates 989.00 ns/op 777.00 ns/op 1.27
mainnet_e81889 - altair afterProcessEpoch 124.72 ms/op 121.79 ms/op 1.02
capella processEpoch - mainnet_e217614 2.6700 s/op 2.4277 s/op 1.10
mainnet_e217614 - capella beforeProcessEpoch 572.53 ms/op 498.83 ms/op 1.15
mainnet_e217614 - capella processJustificationAndFinalization 25.554 us/op 17.702 us/op 1.44
mainnet_e217614 - capella processInactivityUpdates 19.364 ms/op 22.341 ms/op 0.87
mainnet_e217614 - capella processRewardsAndPenalties 624.34 ms/op 559.97 ms/op 1.11
mainnet_e217614 - capella processRegistryUpdates 31.470 us/op 21.769 us/op 1.45
mainnet_e217614 - capella processSlashings 1.0980 us/op 553.00 ns/op 1.99
mainnet_e217614 - capella processEth1DataReset 1.0460 us/op 516.00 ns/op 2.03
mainnet_e217614 - capella processEffectiveBalanceUpdates 6.6906 ms/op 7.9661 ms/op 0.84
mainnet_e217614 - capella processSlashingsReset 7.0050 us/op 3.4460 us/op 2.03
mainnet_e217614 - capella processRandaoMixesReset 13.143 us/op 4.2390 us/op 3.10
mainnet_e217614 - capella processHistoricalRootsUpdate 1.1420 us/op 670.00 ns/op 1.70
mainnet_e217614 - capella processParticipationFlagUpdates 3.1770 us/op 1.4250 us/op 2.23
mainnet_e217614 - capella afterProcessEpoch 399.92 ms/op 316.89 ms/op 1.26
phase0 processEpoch - mainnet_e58758 584.18 ms/op 521.49 ms/op 1.12
mainnet_e58758 - phase0 beforeProcessEpoch 167.63 ms/op 134.71 ms/op 1.24
mainnet_e58758 - phase0 processJustificationAndFinalization 21.824 us/op 16.007 us/op 1.36
mainnet_e58758 - phase0 processRewardsAndPenalties 63.820 ms/op 69.606 ms/op 0.92
mainnet_e58758 - phase0 processRegistryUpdates 16.769 us/op 14.387 us/op 1.17
mainnet_e58758 - phase0 processSlashings 635.00 ns/op 767.00 ns/op 0.83
mainnet_e58758 - phase0 processEth1DataReset 666.00 ns/op 556.00 ns/op 1.20
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.1654 ms/op 1.3065 ms/op 0.89
mainnet_e58758 - phase0 processSlashingsReset 4.0400 us/op 3.9930 us/op 1.01
mainnet_e58758 - phase0 processRandaoMixesReset 8.6820 us/op 7.6160 us/op 1.14
mainnet_e58758 - phase0 processHistoricalRootsUpdate 786.00 ns/op 954.00 ns/op 0.82
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.7370 us/op 4.8770 us/op 0.97
mainnet_e58758 - phase0 afterProcessEpoch 112.95 ms/op 102.16 ms/op 1.11
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.4034 ms/op 1.9390 ms/op 0.72
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.1539 ms/op 1.5096 ms/op 1.43
altair processInactivityUpdates - 250000 normalcase 33.037 ms/op 34.890 ms/op 0.95
altair processInactivityUpdates - 250000 worstcase 26.935 ms/op 29.297 ms/op 0.92
phase0 processRegistryUpdates - 250000 normalcase 12.395 us/op 13.274 us/op 0.93
phase0 processRegistryUpdates - 250000 badcase_full_deposits 495.50 us/op 496.81 us/op 1.00
phase0 processRegistryUpdates - 250000 worstcase 0.5 170.36 ms/op 154.90 ms/op 1.10
altair processRewardsAndPenalties - 250000 normalcase 74.713 ms/op 93.881 ms/op 0.80
altair processRewardsAndPenalties - 250000 worstcase 71.906 ms/op 69.186 ms/op 1.04
phase0 getAttestationDeltas - 250000 normalcase 12.469 ms/op 9.9947 ms/op 1.25
phase0 getAttestationDeltas - 250000 worstcase 11.716 ms/op 9.8642 ms/op 1.19
phase0 processSlashings - 250000 worstcase 114.74 us/op 94.494 us/op 1.21
altair processSyncCommitteeUpdates - 250000 171.06 ms/op 171.20 ms/op 1.00
BeaconState.hashTreeRoot - No change 283.00 ns/op 735.00 ns/op 0.39
BeaconState.hashTreeRoot - 1 full validator 148.36 us/op 178.67 us/op 0.83
BeaconState.hashTreeRoot - 32 full validator 1.6325 ms/op 1.5230 ms/op 1.07
BeaconState.hashTreeRoot - 512 full validator 18.648 ms/op 16.386 ms/op 1.14
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 193.71 us/op 180.11 us/op 1.08
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.6374 ms/op 2.5968 ms/op 1.02
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 33.902 ms/op 35.223 ms/op 0.96
BeaconState.hashTreeRoot - 1 balances 142.70 us/op 165.92 us/op 0.86
BeaconState.hashTreeRoot - 32 balances 1.3306 ms/op 1.5656 ms/op 0.85
BeaconState.hashTreeRoot - 512 balances 14.948 ms/op 14.922 ms/op 1.00
BeaconState.hashTreeRoot - 250000 balances 222.08 ms/op 226.61 ms/op 0.98
aggregationBits - 2048 els - zipIndexesInBitList 44.308 us/op 32.563 us/op 1.36
byteArrayEquals 32 83.717 ns/op 84.114 ns/op 1.00
Buffer.compare 32 62.133 ns/op 59.203 ns/op 1.05
byteArrayEquals 1024 2.2434 us/op 2.1418 us/op 1.05
Buffer.compare 1024 83.115 ns/op 71.892 ns/op 1.16
byteArrayEquals 16384 36.802 us/op 34.669 us/op 1.06
Buffer.compare 16384 281.38 ns/op 263.80 ns/op 1.07
byteArrayEquals 123687377 266.93 ms/op 271.47 ms/op 0.98
Buffer.compare 123687377 10.730 ms/op 10.845 ms/op 0.99
byteArrayEquals 32 - diff last byte 79.985 ns/op 76.029 ns/op 1.05
Buffer.compare 32 - diff last byte 61.773 ns/op 59.018 ns/op 1.05
byteArrayEquals 1024 - diff last byte 2.1602 us/op 2.3970 us/op 0.90
Buffer.compare 1024 - diff last byte 77.709 ns/op 74.676 ns/op 1.04
byteArrayEquals 16384 - diff last byte 34.614 us/op 34.415 us/op 1.01
Buffer.compare 16384 - diff last byte 279.09 ns/op 290.66 ns/op 0.96
byteArrayEquals 123687377 - diff last byte 266.61 ms/op 283.27 ms/op 0.94
Buffer.compare 123687377 - diff last byte 10.322 ms/op 9.0192 ms/op 1.14
byteArrayEquals 32 - random bytes 7.0040 ns/op 6.5690 ns/op 1.07
Buffer.compare 32 - random bytes 66.427 ns/op 64.829 ns/op 1.02
byteArrayEquals 1024 - random bytes 6.9480 ns/op 6.6690 ns/op 1.04
Buffer.compare 1024 - random bytes 65.953 ns/op 64.668 ns/op 1.02
byteArrayEquals 16384 - random bytes 6.9700 ns/op 6.7320 ns/op 1.04
Buffer.compare 16384 - random bytes 65.344 ns/op 65.066 ns/op 1.00
byteArrayEquals 123687377 - random bytes 14.410 ns/op 10.910 ns/op 1.32
Buffer.compare 123687377 - random bytes 79.910 ns/op 74.600 ns/op 1.07
regular array get 100000 times 48.403 us/op 47.009 us/op 1.03
wrappedArray get 100000 times 47.454 us/op 46.996 us/op 1.01
arrayWithProxy get 100000 times 15.101 ms/op 14.800 ms/op 1.02
ssz.Root.equals 58.474 ns/op 55.693 ns/op 1.05
byteArrayEquals 60.911 ns/op 56.502 ns/op 1.08
Buffer.compare 12.888 ns/op 13.024 ns/op 0.99
shuffle list - 16384 els 9.4726 ms/op 9.6550 ms/op 0.98
shuffle list - 250000 els 134.26 ms/op 131.52 ms/op 1.02
processSlot - 1 slots 21.289 us/op 19.910 us/op 1.07
processSlot - 32 slots 4.8539 ms/op 3.5677 ms/op 1.36
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 73.904 ms/op 69.698 ms/op 1.06
getCommitteeAssignments - req 1 vs - 250000 vc 2.9282 ms/op 2.9163 ms/op 1.00
getCommitteeAssignments - req 100 vs - 250000 vc 4.4196 ms/op 4.1051 ms/op 1.08
getCommitteeAssignments - req 1000 vs - 250000 vc 4.6558 ms/op 4.5100 ms/op 1.03
findModifiedValidators - 10000 modified validators 504.22 ms/op 415.09 ms/op 1.21
findModifiedValidators - 1000 modified validators 389.70 ms/op 239.76 ms/op 1.63
findModifiedValidators - 100 modified validators 305.13 ms/op 302.08 ms/op 1.01
findModifiedValidators - 10 modified validators 257.06 ms/op 277.77 ms/op 0.93
findModifiedValidators - 1 modified validators 244.90 ms/op 263.35 ms/op 0.93
findModifiedValidators - no difference 321.60 ms/op 332.13 ms/op 0.97
compare ViewDUs 5.0270 s/op 5.8522 s/op 0.86
compare each validator Uint8Array 1.5976 s/op 1.6977 s/op 0.94
compare ViewDU to Uint8Array 1.4101 s/op 1.5546 s/op 0.91
migrate state 1000000 validators, 24 modified, 0 new 853.42 ms/op 995.02 ms/op 0.86
migrate state 1000000 validators, 1700 modified, 1000 new 1.3880 s/op 1.3296 s/op 1.04
migrate state 1000000 validators, 3400 modified, 2000 new 1.6794 s/op 1.6944 s/op 0.99
migrate state 1500000 validators, 24 modified, 0 new 813.41 ms/op 954.89 ms/op 0.85
migrate state 1500000 validators, 1700 modified, 1000 new 1.4797 s/op 1.4351 s/op 1.03
migrate state 1500000 validators, 3400 modified, 2000 new 1.7952 s/op 1.7685 s/op 1.02
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.1900 ns/op 5.0300 ns/op 1.03
state getBlockRootAtSlot - 250000 vs - 7PWei 723.80 ns/op 784.93 ns/op 0.92
computeProposers - vc 250000 11.012 ms/op 10.264 ms/op 1.07
computeEpochShuffling - vc 250000 137.21 ms/op 133.83 ms/op 1.03
getNextSyncCommittee - vc 250000 170.90 ms/op 174.24 ms/op 0.98
computeSigningRoot for AttestationData 29.875 us/op 29.321 us/op 1.02
hash AttestationData serialized data then Buffer.toString(base64) 2.6424 us/op 2.5152 us/op 1.05
toHexString serialized data 1.4140 us/op 1.3027 us/op 1.09
Buffer.toString(base64) 252.02 ns/op 248.10 ns/op 1.02

by benchmarkbot/action

Copy link
Member

@nflaig nflaig left a comment

Choose a reason for hiding this comment

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

Did you test the binary on one of our arm64 servers?

- name: Install yarn
if: matrix.arch == 'arm64'
run: |-
curl -fsSL --create-dirs -o $HOME/bin/yarn \
Copy link
Member

Choose a reason for hiding this comment

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

why is this required for arm64?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's a limitation of the current arm64 runner image

@jeluard jeluard marked this pull request as draft April 25, 2024 14:05
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v4
# Install yarn for arm64 as currently it's not part of the provided image
# See https://github.com/github-early-access/arm-runners-beta/issues/5
Copy link
Member

Choose a reason for hiding this comment

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

I don't have access to this link, just getting a 404

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Right, you have to be part of the private beta. Keeping it here for future reference.
Once it moves out of beta I would expect yarn to be installed by default.

@jeluard jeluard force-pushed the jeluard/binary-arm64 branch 12 times, most recently from a0e9db7 to 2259bb0 Compare April 26, 2024 11:59
@jeluard jeluard marked this pull request as ready for review April 26, 2024 12:40
Copy link
Member

@nflaig nflaig left a comment

Choose a reason for hiding this comment

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

LGTM

@jeluard jeluard merged commit 766c8fd into unstable Apr 26, 2024
21 checks passed
@jeluard jeluard deleted the jeluard/binary-arm64 branch April 26, 2024 18:47
wemeetagain added a commit that referenced this pull request Jun 7, 2024
* chore: n-historical state - track state persist count per epoch (#6699)

* feat: add lodestar binaries to release (#6666)

* feat: added binaries creation support

* feat: added sanity checks

* chore: define reusable workflow

* chore: fix sanity check,; disable arm64

* chore: added workflow_dispatch

* fix: needs cleanup

* chore: update old space size

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: address comments

* chore: address comments

* chore: fixed typo

* chore: typo

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: address comments

* chore: wording

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: use frozen lock file

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* feat: switch bls to napi rebuild (#6616)

* chore: update package.json deps and run yarn

* feat: remove unused blst config from vitest.browser.*.config.ts

* test: move G2@INF test to base blst repo.  No longer exported.

* fix: add Uint8Array.from for Buffer return value in unit test so type matches for toEqual

* refactor: update imports of CoordType to use bls instead of blst

* feat: add blsAddVerificationRandomness cli option

* feat: add randomBytesNonZero to utils

* feat: implement verification randomness for same message

* feat: implement napi blst and switch to libuv worker pool

* chore: lint

* fix: update comments for availableParallelism

* feat: set UV_THREADPOOL_SIZE for perf tests

* feat: set UV_THREADPOOL_SIZE=$(nproc) in lodestar entrance script

* feat: remove case for serialized PublicKey in deserializeSet

* feat: add back workBusy count logic to canAcceptWork

* feat: automatically set threadpool size in beaconHandler

* refactor: rename flag to disableSameMessageVerificationRandomness

* fix: remove UV_THREADPOOL_SIZE from ./lodestar

* docs: add TODO about updating metrics

* fix: make benchmark multi threading cross-compatible

* chore: add bls@8.0.0

* feat: default to added randomness

* feat: add warning for no same message randomness

* fix: passing to updated bls functions

* feat: add blst peerDep

* fix: default to same message randomness

* chore: update yarn.lock

* chore: remove unused function to clear lint

* feat: break out setThreadPoolSize

* docs: update packages/cli/src/cmds/beacon/setThreadPoolSize.ts

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: update location for blst dep

* chore: run lint again

* fix: remove peerDep from light-client

* test: fix browser based tests

* fix: bad relative imports

* docs: add note to readme about switchable bls

* docs: typo

* chore: lint readme

* fix: light-client unit tests

* fix: light-client e2e test

* feat: remove disableSameMessageVerificationRandomness

* refactor: remove unused type

* docs: update wordlist

* fix: e2e tests

* Lint package.json

* Revert "fix: e2e tests"

This reverts commit f71acd7.

* Revert "fix: light-client e2e test"

This reverts commit 23c11f0.

* Revert "fix: light-client unit tests"

This reverts commit fa7893e.

* Revert "test: fix browser based tests"

This reverts commit 98d04ab.

* docs: update readme to remove switchable bls argument

* fix: replace optimizeDeps in vitest.browser.config

* chore: updated to bls 8.1.0

* feat: move setting threadpool size and warnings to applyPreset.ts

* fix: remove setThreadpoolSize from beacon handler

* feat: move libuv size logging into handler to use logger

* refactor: rename applyPreset to preInitialization

* refactor: logging about pool size

* Update packages/cli/src/options/globalOptions.ts

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* refactor: rename prover applyPreset

* docs: change comment in cli/index

* fix: update logging for

* fix: throw error for invalid uvThreadpoolSize

* Update packages/cli/src/preInitialization.ts

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* Fix lint issues

* Remove unused import

* refactor: move bls pool logging back to multithread.ts

* fix: log of threadcount

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: update references to consensus spec to v1.4.0 (#6704)

* chore: update references to consensus spec to v1.4.0

* Remove unintended formatting changes

* chore: update consensus spec version in README (#6705)

* docs: correct plausible url (#6709)

fix: correct plausible url

* docs: incorrect scripts location (#6710)

fix: incorrect scripts location

* docs: no more broken images (#6708)

* fix: no more broken images

* fix: incorrect paths

* feat: check aggregationBits length of `SignedAggregateAndProof` in gossip validation (#6700)

* Add unit test

* Update packages/beacon-node/src/chain/validation/aggregateAndProof.ts

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* feat: add and track blob source for metrics (#6628)

* feat: add and track blob source for metrics

* adding blobsSource for blobsPromise

* address feedback

* apply feedback

* updates

* only allow non blobspromise blocks to be imported

* feat: add support for browser bundle for lightclient (#6673)

* Reorganize the code so it is accessible from one package

* Add support for browser build for lightclient

* Update the build config

* Improve the bls vite plugin

* Restructure the vite and vitest scripts

* Simplify vite config

* Remove unused polyfill

* Fix the doc lint error

* Add support for bundle test

* Update the package json files

* Add dist build to default build task

* Fix spelling in the docs

* Fix the lint error

* Fix type error

* Disable eslint errors

* Increase the timeout for bundle test

* Fix eslint bundle

* Fix lint warning

* Remove the unused config

* Add the default export to bundle

* Enable compression on th build

* Update packages/light-client/README.md

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* Increase timeout for one test

* Optimize package build task

* Update the readme

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* docs: fix plausible domain (#6712)

* ci: add paths-ignore to workflows (#6713)

* chore: added paths-ignore

* chore: address comments

* feat: add arm64 binary support (#6707)

* feat: add arm64 binary support

* chore: workaround yarn

* chore: add comment

* chore: workaround runner limitations

* ci: publish binaries for release candidates (#6714)

* feat: add types support to esm bundle for lightclient (#6685)

* Add vite dts plugin

* Restructure types export

* Update vite build config

* Remove unused file

* Update the build process

* Fix doc formatting

* Build the dist for type tests

* chore: update vitest (#6718)

Update vitest

* chore: do not build all binaries atomically (#6719)

* feat: update libp2p deps (#6711)

* feat: update libp2p deps

* chore: fix linter/type errors

* chore(deps): bump ejs from 3.1.9 to 3.1.10 (#6721)

Bumps [ejs](https://github.com/mde/ejs) from 3.1.9 to 3.1.10.
- [Release notes](https://github.com/mde/ejs/releases)
- [Commits](mde/ejs@v3.1.9...v3.1.10)

---
updated-dependencies:
- dependency-name: ejs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: revert "ci: add paths-ignore to workflows (#6713)" (#6730)

Revert "ci: add paths-ignore to workflows (#6713)"

This reverts commit e460bb1.

* docs: restore docs pages lost during docusaurus migration (#6725)

* ci: fix incorrect build caching (#6731)

fix: incorrect build caching

* fix: build error log during esm bundle build (#6737)

Fix build error

* chore: update fastify to v4.27.0 (#6740)

* deps: upgrade vitest minor version (#6745)

Upgrade vitest

* chore: warn when heap limit is too low (#6722)

* chore: warn when heap limit is too low

* chore: units

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: address comments

* chore: added faq element

* chore: address comments

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: address comments

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: address comments

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* feat: disable flood publish (#6755)

* feat: disable flood publish

* feat: add network.disableFloodPublish cli flag

* chore: address PR comments

* test: allow compact diff for test failures (#6783)

* Allow the compact diff for tests

* Update the doc

* Update docs/pages/contribution/testing/index.md

Co-authored-by: Julien <jeluard@users.noreply.github.com>

* Fix linting on docs

* Fix linting

---------

Co-authored-by: Julien <jeluard@users.noreply.github.com>

* chore: upgrade classic-level (#6793)

* chore: upgrade classic-level

* chore: address comments

* feat(prover): support non-mutated verification provider in prover (#6727)

* Restructure the assertions

* Add an inspector to run the logic to detect providers

* Update web3 provdier logic to use inspetor

* Fix the types for proxy

* Make the default type for mutation

* Rename elrpc to elrpcprovider

* Apply suggestions from code review

Co-authored-by: Julien <jeluard@users.noreply.github.com>

* Fix build error

* Update the readme doc

* Apply suggestions from code review

Co-authored-by: Julien <jeluard@users.noreply.github.com>

* Fix the docs linting

* Add missing words

---------

Co-authored-by: Julien <jeluard@users.noreply.github.com>

* docs: added debugging section (#6743)

* docs: added debugging section

* chore: spell checks

* chore: added extra docs

* chore: address comments

* chore: added extra configuration

* chore: updated docs

* chore: added extra configuration

* chore: fix lint

* chore: fix typos

* chore: .gitignore

* chore: address comments

* chore: address comments

* chore: review debugging section PR (#6807)

* chore: update the naming conventions used in sim tests (#6805)

* Rename simulation test to crucible

* Rename SimulationEnvironment to Simulation

* Use consistent function names

* Update readme

* Rename interfaces for consistent pattern

* Fix lint error

* feat: recognize grandine from agentVersion (#6808)

* Add grandine

* add grandine to wordlist

* chore: refactor event loop interactions (#6806)

* chore: refactor sleep(0) usage

* chore: refactor setTimeout

* chore: address comments

* chore: cleanup

* Apply suggestions from code review

---------

Co-authored-by: Cayman <caymannava@gmail.com>

* chore: fix broken docker (#6813)

* chore: log newPayload engine api (#6810)

* chore: add `get_proposer_head` check in fork choice spec test (#6814)

* Check get_proposer_head

* Fix enum typo

* lint

* chore: consolidate classic-level usage (#6795)

* chore: do not rely on leveldown

* chore: replace level with classic-level

* chore: added docker support for osx (#6696)

* chore: added docker support for osx

* chore: address comments

* chore: address comments

* Update docker-compose.yml

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: address comments

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: fix vitest performance with spec tests artifacts in place (#6817)

Fix vitest performance with spec tests in place

* chore: clean up yarn lockfile (#6816)

* feat: disable flood publish by default (#6815)

* feat: use @chainsafe/blst directly (#6706)

* feat: use @chainsafe/blst directly

* chore: update to blst@1.0.1

* refactor: remove randomBytesNonZero and user blst exported version

* chore: update blst references

* test: catch invalid deserialization in spec tests and return false

* feat: create signatureFromBytes and signatureFromBytesNoCheck in utils package

* feat: implement signatureFromBytes from utils package

* feat: implement signatureFromBytes everywhere

* fix: light-client empty module for blst

---------

Co-authored-by: matthewkeil <me@matthewkeil.com>

* fix: avoid Buffer.from copies (#6723)

* fix: avoid Buffer.from copies

* chore: simplify shuffling

* fix: use subarray instead of slice in shuffling

* chore: remove unnecessary devDependencies

* chore: rely on fastify 4.x behavior

* chore: avoid copy in verifyMerkleBranch

* use toBase64

* relax assertions in shuffle function

* Update packages/state-transition/src/util/shuffle.ts

Co-authored-by: twoeths <tuyen@chainsafe.io>

---------

Co-authored-by: twoeths <tuyen@chainsafe.io>

* chore: update nodejs to latest 22 (#6729)

* Upgrade node js version to 22

* Update node types

* Revert action config

* Add package from git hash

* Fix the build error

* Update the docs for node-22

* Update docker version for Nodejs to 22

* Update package.json

* Update package.json

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* Update readme docs

* Add word in dictionary

* Add word in dictionary

---------

Co-authored-by: Cayman <caymannava@gmail.com>
Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* deps: update systeminformation to 5.22.9 (#6823)

* chore: add distutils to build phase of Dockerfile (#6845)

* test: increase timeout of keystore tests (#6846)

* test: increase timeout of keystore cache tests

* Increase hook timeout

* Consistent number formatting

* chore: only log warning if media type is not supported (415) (#6847)

* fix: revert napi bls (#6853)

* Revert "feat: use @chainsafe/blst directly (#6706)"

This reverts commit 66fe753.

* Revert "feat: switch bls to napi rebuild (#6616)"

This reverts commit 97d9aa8.

* chore: bump package versions to 1.19.0

* chore: bump @chainsafe/blst to v0.2.11 (#6856)

* fix: arm64 binaries creation issue (#6858)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: tuyennhv <tuyen@chainsafe.io>
Co-authored-by: Julien <jeluard@users.noreply.github.com>
Co-authored-by: Nico Flaig <nflaig@protonmail.com>
Co-authored-by: Matthew Keil <me@matthewkeil.com>
Co-authored-by: NC <adrninistrator1@protonmail.com>
Co-authored-by: g11tech <develop@g11tech.io>
Co-authored-by: Nazar Hussain <nazarhussain@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@wemeetagain
Copy link
Member

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

None yet

3 participants