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: avoid Buffer.from copies #6723

Merged
merged 10 commits into from
May 24, 2024
Merged

fix: avoid Buffer.from copies #6723

merged 10 commits into from
May 24, 2024

Conversation

wemeetagain
Copy link
Member

@wemeetagain wemeetagain commented May 1, 2024

Motivation

Description

  • Avoid Buffer.from copies in performance sensitive code, beacon-node, validator and dependencies (test folders left untouched)
  • Replace buffer-xor dependency with a vendored Uint8Array variant (also avoids unnecessary allocation)
  • Some Buffers didn't need to be Buffer, can just be Uint8Array, Remove the Buffer.from wrapper entirely
  • Some Buffers need to be Buffer, Use the extended form of Buffer.from that avoids binary data copy
  • Avoid Buffer-specific API where possible, eg: convert Buffer#copy to Uint8Array#set

@wemeetagain wemeetagain requested a review from a team as a code owner May 1, 2024 21:00
Copy link

codecov bot commented May 1, 2024

Codecov Report

Attention: Patch coverage is 42.85714% with 24 lines in your changes are missing coverage. Please review.

Project coverage is 62.20%. Comparing base (3c5bb15) to head (1c687b7).
Report is 6 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #6723      +/-   ##
============================================
- Coverage     62.20%   62.20%   -0.01%     
============================================
  Files           570      571       +1     
  Lines         59987    60025      +38     
  Branches       1977     1982       +5     
============================================
+ Hits          37316    37338      +22     
- Misses        22628    22643      +15     
- Partials         43       44       +1     

packages/api/src/beacon/server/beacon.ts Outdated Show resolved Hide resolved
packages/state-transition/package.json Outdated Show resolved Hide resolved
packages/state-transition/src/util/shuffle.ts Outdated Show resolved Hide resolved
Copy link
Contributor

github-actions bot commented May 1, 2024

⚠️ 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: bbf146f Previous: 6c20dc2 Ratio
forkChoice updateHead vc 600000 bc 64 eq 300000 47.757 ms/op 14.748 ms/op 3.24
Full benchmark results
Benchmark suite Current: bbf146f Previous: 6c20dc2 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 981.99 us/op 937.18 us/op 1.05
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 121.92 us/op 59.558 us/op 2.05
BLS verify - blst-native 1.2980 ms/op 1.2077 ms/op 1.07
BLS verifyMultipleSignatures 3 - blst-native 2.5062 ms/op 2.3369 ms/op 1.07
BLS verifyMultipleSignatures 8 - blst-native 5.4072 ms/op 5.0469 ms/op 1.07
BLS verifyMultipleSignatures 32 - blst-native 19.988 ms/op 18.335 ms/op 1.09
BLS verifyMultipleSignatures 64 - blst-native 38.335 ms/op 36.018 ms/op 1.06
BLS verifyMultipleSignatures 128 - blst-native 74.965 ms/op 71.419 ms/op 1.05
BLS deserializing 10000 signatures 898.69 ms/op 854.63 ms/op 1.05
BLS deserializing 100000 signatures 9.1303 s/op 9.2720 s/op 0.98
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.3487 ms/op 1.4046 ms/op 0.96
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.5377 ms/op 1.5175 ms/op 1.01
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.4523 ms/op 2.3688 ms/op 1.04
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.5982 ms/op 3.5393 ms/op 1.02
BLS verifyMultipleSignatures - same message - 128 - blst-native 6.2220 ms/op 5.8684 ms/op 1.06
BLS aggregatePubkeys 32 - blst-native 29.635 us/op 29.865 us/op 0.99
BLS aggregatePubkeys 128 - blst-native 117.11 us/op 116.12 us/op 1.01
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 78.117 ms/op 95.663 ms/op 0.82
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 84.644 ms/op 66.410 ms/op 1.27
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 38.165 ms/op 30.486 ms/op 1.25
getSlashingsAndExits - default max 322.10 us/op 206.38 us/op 1.56
getSlashingsAndExits - 2k 599.12 us/op 369.60 us/op 1.62
proposeBlockBody type=full, size=empty 5.9585 ms/op 5.7577 ms/op 1.03
isKnown best case - 1 super set check 637.00 ns/op 488.00 ns/op 1.31
isKnown normal case - 2 super set checks 698.00 ns/op 323.00 ns/op 2.16
isKnown worse case - 16 super set checks 631.00 ns/op 287.00 ns/op 2.20
InMemoryCheckpointStateCache - add get delete 7.0220 us/op 5.0530 us/op 1.39
validate api signedAggregateAndProof - struct 2.4469 ms/op 2.2557 ms/op 1.08
validate gossip signedAggregateAndProof - struct 2.3306 ms/op 2.2391 ms/op 1.04
validate gossip attestation - vc 640000 1.3539 ms/op 1.2916 ms/op 1.05
batch validate gossip attestation - vc 640000 - chunk 32 171.45 us/op 165.25 us/op 1.04
batch validate gossip attestation - vc 640000 - chunk 64 160.38 us/op 143.41 us/op 1.12
batch validate gossip attestation - vc 640000 - chunk 128 157.42 us/op 138.18 us/op 1.14
batch validate gossip attestation - vc 640000 - chunk 256 134.15 us/op 148.93 us/op 0.90
pickEth1Vote - no votes 1.1052 ms/op 1.2787 ms/op 0.86
pickEth1Vote - max votes 9.5867 ms/op 10.733 ms/op 0.89
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.050 ms/op 19.716 ms/op 0.71
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 18.192 ms/op 26.017 ms/op 0.70
pickEth1Vote - Eth1Data fastSerialize value x2048 520.64 us/op 698.98 us/op 0.74
pickEth1Vote - Eth1Data fastSerialize tree x2048 6.3475 ms/op 8.0512 ms/op 0.79
bytes32 toHexString 442.00 ns/op 832.00 ns/op 0.53
bytes32 Buffer.toString(hex) 272.00 ns/op 328.00 ns/op 0.83
bytes32 Buffer.toString(hex) from Uint8Array 411.00 ns/op 610.00 ns/op 0.67
bytes32 Buffer.toString(hex) + 0x 281.00 ns/op 303.00 ns/op 0.93
Object access 1 prop 0.14700 ns/op 0.21300 ns/op 0.69
Map access 1 prop 0.12900 ns/op 0.14400 ns/op 0.90
Object get x1000 6.9210 ns/op 9.2890 ns/op 0.75
Map get x1000 0.72300 ns/op 0.92200 ns/op 0.78
Object set x1000 37.288 ns/op 57.488 ns/op 0.65
Map set x1000 20.334 ns/op 37.150 ns/op 0.55
Return object 10000 times 0.24090 ns/op 0.28580 ns/op 0.84
Throw Error 10000 times 3.4160 us/op 3.8164 us/op 0.90
fastMsgIdFn sha256 / 200 bytes 2.3440 us/op 2.6890 us/op 0.87
fastMsgIdFn h32 xxhash / 200 bytes 247.00 ns/op 288.00 ns/op 0.86
fastMsgIdFn h64 xxhash / 200 bytes 317.00 ns/op 338.00 ns/op 0.94
fastMsgIdFn sha256 / 1000 bytes 7.5330 us/op 7.5380 us/op 1.00
fastMsgIdFn h32 xxhash / 1000 bytes 404.00 ns/op 395.00 ns/op 1.02
fastMsgIdFn h64 xxhash / 1000 bytes 400.00 ns/op 404.00 ns/op 0.99
fastMsgIdFn sha256 / 10000 bytes 66.204 us/op 66.237 us/op 1.00
fastMsgIdFn h32 xxhash / 10000 bytes 1.9650 us/op 2.0240 us/op 0.97
fastMsgIdFn h64 xxhash / 10000 bytes 1.3520 us/op 1.3620 us/op 0.99
send data - 1000 256B messages 13.138 ms/op 15.923 ms/op 0.83
send data - 1000 512B messages 17.457 ms/op 21.146 ms/op 0.83
send data - 1000 1024B messages 28.144 ms/op 30.791 ms/op 0.91
send data - 1000 1200B messages 26.723 ms/op 33.956 ms/op 0.79
send data - 1000 2048B messages 36.201 ms/op 37.447 ms/op 0.97
send data - 1000 4096B messages 40.837 ms/op 38.297 ms/op 1.07
send data - 1000 16384B messages 83.512 ms/op 82.036 ms/op 1.02
send data - 1000 65536B messages 291.22 ms/op 319.62 ms/op 0.91
enrSubnets - fastDeserialize 64 bits 1.5960 us/op 1.2920 us/op 1.24
enrSubnets - ssz BitVector 64 bits 528.00 ns/op 455.00 ns/op 1.16
enrSubnets - fastDeserialize 4 bits 183.00 ns/op 167.00 ns/op 1.10
enrSubnets - ssz BitVector 4 bits 498.00 ns/op 379.00 ns/op 1.31
prioritizePeers score -10:0 att 32-0.1 sync 2-0 183.05 us/op 193.76 us/op 0.94
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 273.44 us/op 244.99 us/op 1.12
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 334.24 us/op 383.85 us/op 0.87
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 520.21 us/op 523.60 us/op 0.99
prioritizePeers score 0:0 att 64-1 sync 4-1 574.71 us/op 612.29 us/op 0.94
array of 16000 items push then shift 1.7640 us/op 1.6637 us/op 1.06
LinkedList of 16000 items push then shift 7.4280 ns/op 6.6530 ns/op 1.12
array of 16000 items push then pop 142.11 ns/op 140.01 ns/op 1.02
LinkedList of 16000 items push then pop 7.2760 ns/op 6.6140 ns/op 1.10
array of 24000 items push then shift 2.6497 us/op 2.5648 us/op 1.03
LinkedList of 24000 items push then shift 7.5260 ns/op 6.7790 ns/op 1.11
array of 24000 items push then pop 192.28 ns/op 160.69 ns/op 1.20
LinkedList of 24000 items push then pop 7.1800 ns/op 6.7340 ns/op 1.07
intersect bitArray bitLen 8 6.1660 ns/op 6.0240 ns/op 1.02
intersect array and set length 8 75.776 ns/op 65.581 ns/op 1.16
intersect bitArray bitLen 128 36.037 ns/op 37.666 ns/op 0.96
intersect array and set length 128 959.05 ns/op 1.0549 us/op 0.91
bitArray.getTrueBitIndexes() bitLen 128 1.4270 us/op 1.7130 us/op 0.83
bitArray.getTrueBitIndexes() bitLen 248 2.5770 us/op 2.4220 us/op 1.06
bitArray.getTrueBitIndexes() bitLen 512 5.1290 us/op 5.6860 us/op 0.90
Buffer.concat 32 items 952.00 ns/op 992.00 ns/op 0.96
Uint8Array.set 32 items 1.7390 us/op 1.7930 us/op 0.97
Buffer.copy 2.0110 us/op
Uint8Array.set - with subarray 2.9230 us/op
Uint8Array.set - without subarray 1.5720 us/op
Set add up to 64 items then delete first 2.2059 us/op 2.7480 us/op 0.80
OrderedSet add up to 64 items then delete first 5.3612 us/op 3.3258 us/op 1.61
Set add up to 64 items then delete last 3.7351 us/op 2.6245 us/op 1.42
OrderedSet add up to 64 items then delete last 5.5029 us/op 3.9686 us/op 1.39
Set add up to 64 items then delete middle 3.3224 us/op 2.7104 us/op 1.23
OrderedSet add up to 64 items then delete middle 6.5095 us/op 5.4421 us/op 1.20
Set add up to 128 items then delete first 6.8279 us/op 5.5713 us/op 1.23
OrderedSet add up to 128 items then delete first 10.809 us/op 8.4572 us/op 1.28
Set add up to 128 items then delete last 6.5424 us/op 5.0793 us/op 1.29
OrderedSet add up to 128 items then delete last 10.375 us/op 7.0846 us/op 1.46
Set add up to 128 items then delete middle 6.5979 us/op 4.7172 us/op 1.40
OrderedSet add up to 128 items then delete middle 18.046 us/op 12.638 us/op 1.43
Set add up to 256 items then delete first 11.020 us/op 10.329 us/op 1.07
OrderedSet add up to 256 items then delete first 16.143 us/op 15.986 us/op 1.01
Set add up to 256 items then delete last 9.7421 us/op 9.5418 us/op 1.02
OrderedSet add up to 256 items then delete last 14.803 us/op 14.560 us/op 1.02
Set add up to 256 items then delete middle 9.6905 us/op 9.1632 us/op 1.06
OrderedSet add up to 256 items then delete middle 37.700 us/op 35.473 us/op 1.06
transfer serialized Status (84 B) 1.6800 us/op 1.6440 us/op 1.02
copy serialized Status (84 B) 1.1970 us/op 1.1910 us/op 1.01
transfer serialized SignedVoluntaryExit (112 B) 1.6950 us/op 1.7200 us/op 0.99
copy serialized SignedVoluntaryExit (112 B) 1.2530 us/op 1.3740 us/op 0.91
transfer serialized ProposerSlashing (416 B) 1.8770 us/op 2.7730 us/op 0.68
copy serialized ProposerSlashing (416 B) 1.4510 us/op 2.6020 us/op 0.56
transfer serialized Attestation (485 B) 1.8740 us/op 2.9310 us/op 0.64
copy serialized Attestation (485 B) 1.5790 us/op 2.6170 us/op 0.60
transfer serialized AttesterSlashing (33232 B) 1.8270 us/op 2.5430 us/op 0.72
copy serialized AttesterSlashing (33232 B) 4.9090 us/op 5.9840 us/op 0.82
transfer serialized Small SignedBeaconBlock (128000 B) 2.1350 us/op 2.6940 us/op 0.79
copy serialized Small SignedBeaconBlock (128000 B) 14.735 us/op 13.860 us/op 1.06
transfer serialized Avg SignedBeaconBlock (200000 B) 2.5750 us/op 3.0650 us/op 0.84
copy serialized Avg SignedBeaconBlock (200000 B) 19.928 us/op 19.791 us/op 1.01
transfer serialized BlobsSidecar (524380 B) 2.3800 us/op 2.8600 us/op 0.83
copy serialized BlobsSidecar (524380 B) 84.797 us/op 91.928 us/op 0.92
transfer serialized Big SignedBeaconBlock (1000000 B) 2.9640 us/op 3.3250 us/op 0.89
copy serialized Big SignedBeaconBlock (1000000 B) 335.56 us/op 138.91 us/op 2.42
pass gossip attestations to forkchoice per slot 5.6072 ms/op 3.3776 ms/op 1.66
forkChoice updateHead vc 100000 bc 64 eq 0 622.10 us/op 518.75 us/op 1.20
forkChoice updateHead vc 600000 bc 64 eq 0 6.7031 ms/op 3.1824 ms/op 2.11
forkChoice updateHead vc 1000000 bc 64 eq 0 7.7250 ms/op 5.3981 ms/op 1.43
forkChoice updateHead vc 600000 bc 320 eq 0 4.5541 ms/op 3.1844 ms/op 1.43
forkChoice updateHead vc 600000 bc 1200 eq 0 4.1793 ms/op 3.2801 ms/op 1.27
forkChoice updateHead vc 600000 bc 7200 eq 0 6.9767 ms/op 4.3535 ms/op 1.60
forkChoice updateHead vc 600000 bc 64 eq 1000 11.733 ms/op 10.910 ms/op 1.08
forkChoice updateHead vc 600000 bc 64 eq 10000 14.566 ms/op 10.911 ms/op 1.34
forkChoice updateHead vc 600000 bc 64 eq 300000 47.757 ms/op 14.748 ms/op 3.24
computeDeltas 500000 validators 300 proto nodes 5.9242 ms/op 3.9809 ms/op 1.49
computeDeltas 500000 validators 1200 proto nodes 4.6976 ms/op 3.8178 ms/op 1.23
computeDeltas 500000 validators 7200 proto nodes 3.7450 ms/op 3.6483 ms/op 1.03
computeDeltas 750000 validators 300 proto nodes 5.4009 ms/op 5.4499 ms/op 0.99
computeDeltas 750000 validators 1200 proto nodes 5.3371 ms/op 5.4822 ms/op 0.97
computeDeltas 750000 validators 7200 proto nodes 5.4974 ms/op 5.4464 ms/op 1.01
computeDeltas 1400000 validators 300 proto nodes 11.279 ms/op 10.769 ms/op 1.05
computeDeltas 1400000 validators 1200 proto nodes 11.453 ms/op 10.606 ms/op 1.08
computeDeltas 1400000 validators 7200 proto nodes 10.345 ms/op 10.324 ms/op 1.00
computeDeltas 2100000 validators 300 proto nodes 15.754 ms/op 15.116 ms/op 1.04
computeDeltas 2100000 validators 1200 proto nodes 15.271 ms/op 15.352 ms/op 0.99
computeDeltas 2100000 validators 7200 proto nodes 15.939 ms/op 16.111 ms/op 0.99
altair processAttestation - 250000 vs - 7PWei normalcase 1.8959 ms/op 2.0572 ms/op 0.92
altair processAttestation - 250000 vs - 7PWei worstcase 2.6941 ms/op 3.4506 ms/op 0.78
altair processAttestation - setStatus - 1/6 committees join 133.68 us/op 152.63 us/op 0.88
altair processAttestation - setStatus - 1/3 committees join 256.38 us/op 290.31 us/op 0.88
altair processAttestation - setStatus - 1/2 committees join 355.53 us/op 363.96 us/op 0.98
altair processAttestation - setStatus - 2/3 committees join 437.77 us/op 477.94 us/op 0.92
altair processAttestation - setStatus - 4/5 committees join 621.42 us/op 638.26 us/op 0.97
altair processAttestation - setStatus - 100% committees join 761.07 us/op 756.06 us/op 1.01
altair processBlock - 250000 vs - 7PWei normalcase 8.4372 ms/op 9.8659 ms/op 0.86
altair processBlock - 250000 vs - 7PWei normalcase hashState 29.216 ms/op 33.916 ms/op 0.86
altair processBlock - 250000 vs - 7PWei worstcase 30.930 ms/op 32.134 ms/op 0.96
altair processBlock - 250000 vs - 7PWei worstcase hashState 83.226 ms/op 88.410 ms/op 0.94
phase0 processBlock - 250000 vs - 7PWei normalcase 2.3298 ms/op 2.2564 ms/op 1.03
phase0 processBlock - 250000 vs - 7PWei worstcase 29.637 ms/op 27.097 ms/op 1.09
altair processEth1Data - 250000 vs - 7PWei normalcase 426.87 us/op 315.08 us/op 1.35
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 13.837 us/op 11.978 us/op 1.16
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 62.533 us/op 67.985 us/op 0.92
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 24.960 us/op 16.390 us/op 1.52
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 13.878 us/op 12.253 us/op 1.13
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 188.69 us/op 160.28 us/op 1.18
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.1461 ms/op 962.52 us/op 1.19
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.5672 ms/op 1.6106 ms/op 0.97
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.8636 ms/op 1.4629 ms/op 1.27
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.0614 ms/op 3.2665 ms/op 1.24
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.4873 ms/op 2.3614 ms/op 1.05
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.4891 ms/op 4.2865 ms/op 1.28
Tree 40 250000 create 398.16 ms/op 217.88 ms/op 1.83
Tree 40 250000 get(125000) 177.36 ns/op 144.14 ns/op 1.23
Tree 40 250000 set(125000) 812.56 ns/op 636.31 ns/op 1.28
Tree 40 250000 toArray() 20.904 ms/op 19.257 ms/op 1.09
Tree 40 250000 iterate all - toArray() + loop 22.311 ms/op 19.101 ms/op 1.17
Tree 40 250000 iterate all - get(i) 58.501 ms/op 53.888 ms/op 1.09
MutableVector 250000 create 12.609 ms/op 10.501 ms/op 1.20
MutableVector 250000 get(125000) 6.5700 ns/op 6.2650 ns/op 1.05
MutableVector 250000 set(125000) 377.69 ns/op 246.99 ns/op 1.53
MutableVector 250000 toArray() 4.5310 ms/op 4.2363 ms/op 1.07
MutableVector 250000 iterate all - toArray() + loop 4.8429 ms/op 4.2740 ms/op 1.13
MutableVector 250000 iterate all - get(i) 1.6084 ms/op 1.5216 ms/op 1.06
Array 250000 create 4.4552 ms/op 3.8570 ms/op 1.16
Array 250000 clone - spread 1.6779 ms/op 1.6288 ms/op 1.03
Array 250000 get(125000) 1.1720 ns/op 1.1110 ns/op 1.05
Array 250000 set(125000) 1.5250 ns/op 1.3990 ns/op 1.09
Array 250000 iterate all - loop 176.86 us/op 172.04 us/op 1.03
effectiveBalanceIncrements clone Uint8Array 300000 59.998 us/op 33.337 us/op 1.80
effectiveBalanceIncrements clone MutableVector 300000 397.00 ns/op 412.00 ns/op 0.96
effectiveBalanceIncrements rw all Uint8Array 300000 225.39 us/op 206.04 us/op 1.09
effectiveBalanceIncrements rw all MutableVector 300000 93.483 ms/op 81.914 ms/op 1.14
phase0 afterProcessEpoch - 250000 vs - 7PWei 93.095 ms/op 91.221 ms/op 1.02
phase0 beforeProcessEpoch - 250000 vs - 7PWei 57.052 ms/op 41.881 ms/op 1.36
altair processEpoch - mainnet_e81889 497.90 ms/op 388.79 ms/op 1.28
mainnet_e81889 - altair beforeProcessEpoch 87.988 ms/op 66.480 ms/op 1.32
mainnet_e81889 - altair processJustificationAndFinalization 20.054 us/op 13.159 us/op 1.52
mainnet_e81889 - altair processInactivityUpdates 5.8424 ms/op 5.2684 ms/op 1.11
mainnet_e81889 - altair processRewardsAndPenalties 55.235 ms/op 46.226 ms/op 1.19
mainnet_e81889 - altair processRegistryUpdates 2.8270 us/op 2.4340 us/op 1.16
mainnet_e81889 - altair processSlashings 611.00 ns/op 395.00 ns/op 1.55
mainnet_e81889 - altair processEth1DataReset 806.00 ns/op 624.00 ns/op 1.29
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.3363 ms/op 1.2437 ms/op 1.07
mainnet_e81889 - altair processSlashingsReset 6.2380 us/op 4.1300 us/op 1.51
mainnet_e81889 - altair processRandaoMixesReset 5.9450 us/op 5.3060 us/op 1.12
mainnet_e81889 - altair processHistoricalRootsUpdate 1.6660 us/op 914.00 ns/op 1.82
mainnet_e81889 - altair processParticipationFlagUpdates 2.8450 us/op 1.5540 us/op 1.83
mainnet_e81889 - altair processSyncCommitteeUpdates 1.2860 us/op 654.00 ns/op 1.97
mainnet_e81889 - altair afterProcessEpoch 103.48 ms/op 94.374 ms/op 1.10
capella processEpoch - mainnet_e217614 1.7499 s/op 1.4543 s/op 1.20
mainnet_e217614 - capella beforeProcessEpoch 332.06 ms/op 273.05 ms/op 1.22
mainnet_e217614 - capella processJustificationAndFinalization 19.450 us/op 16.897 us/op 1.15
mainnet_e217614 - capella processInactivityUpdates 18.721 ms/op 16.381 ms/op 1.14
mainnet_e217614 - capella processRewardsAndPenalties 245.00 ms/op 249.91 ms/op 0.98
mainnet_e217614 - capella processRegistryUpdates 22.768 us/op 17.286 us/op 1.32
mainnet_e217614 - capella processSlashings 572.00 ns/op 521.00 ns/op 1.10
mainnet_e217614 - capella processEth1DataReset 417.00 ns/op 399.00 ns/op 1.05
mainnet_e217614 - capella processEffectiveBalanceUpdates 14.946 ms/op 9.2958 ms/op 1.61
mainnet_e217614 - capella processSlashingsReset 3.4040 us/op 3.5940 us/op 0.95
mainnet_e217614 - capella processRandaoMixesReset 4.6930 us/op 4.2240 us/op 1.11
mainnet_e217614 - capella processHistoricalRootsUpdate 824.00 ns/op 337.00 ns/op 2.45
mainnet_e217614 - capella processParticipationFlagUpdates 1.7100 us/op 1.8210 us/op 0.94
mainnet_e217614 - capella afterProcessEpoch 267.45 ms/op 253.49 ms/op 1.06
phase0 processEpoch - mainnet_e58758 493.25 ms/op 436.53 ms/op 1.13
mainnet_e58758 - phase0 beforeProcessEpoch 155.99 ms/op 118.88 ms/op 1.31
mainnet_e58758 - phase0 processJustificationAndFinalization 18.907 us/op 15.522 us/op 1.22
mainnet_e58758 - phase0 processRewardsAndPenalties 28.661 ms/op 24.451 ms/op 1.17
mainnet_e58758 - phase0 processRegistryUpdates 13.388 us/op 8.8020 us/op 1.52
mainnet_e58758 - phase0 processSlashings 529.00 ns/op 372.00 ns/op 1.42
mainnet_e58758 - phase0 processEth1DataReset 503.00 ns/op 365.00 ns/op 1.38
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.0827 ms/op 1.1675 ms/op 0.93
mainnet_e58758 - phase0 processSlashingsReset 4.0550 us/op 3.2020 us/op 1.27
mainnet_e58758 - phase0 processRandaoMixesReset 6.7510 us/op 4.8470 us/op 1.39
mainnet_e58758 - phase0 processHistoricalRootsUpdate 471.00 ns/op 577.00 ns/op 0.82
mainnet_e58758 - phase0 processParticipationRecordUpdates 6.0210 us/op 3.3330 us/op 1.81
mainnet_e58758 - phase0 afterProcessEpoch 86.105 ms/op 80.203 ms/op 1.07
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3869 ms/op 1.1914 ms/op 1.16
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5094 ms/op 1.5956 ms/op 0.95
altair processInactivityUpdates - 250000 normalcase 17.122 ms/op 15.015 ms/op 1.14
altair processInactivityUpdates - 250000 worstcase 18.077 ms/op 15.421 ms/op 1.17
phase0 processRegistryUpdates - 250000 normalcase 13.069 us/op 8.4910 us/op 1.54
phase0 processRegistryUpdates - 250000 badcase_full_deposits 469.45 us/op 321.79 us/op 1.46
phase0 processRegistryUpdates - 250000 worstcase 0.5 155.61 ms/op 119.03 ms/op 1.31
altair processRewardsAndPenalties - 250000 normalcase 47.773 ms/op 35.848 ms/op 1.33
altair processRewardsAndPenalties - 250000 worstcase 46.811 ms/op 36.365 ms/op 1.29
phase0 getAttestationDeltas - 250000 normalcase 8.9470 ms/op 7.7610 ms/op 1.15
phase0 getAttestationDeltas - 250000 worstcase 8.1185 ms/op 7.7358 ms/op 1.05
phase0 processSlashings - 250000 worstcase 121.36 us/op 67.568 us/op 1.80
altair processSyncCommitteeUpdates - 250000 158.38 ms/op 126.08 ms/op 1.26
BeaconState.hashTreeRoot - No change 724.00 ns/op 321.00 ns/op 2.26
BeaconState.hashTreeRoot - 1 full validator 137.83 us/op 133.97 us/op 1.03
BeaconState.hashTreeRoot - 32 full validator 1.4660 ms/op 1.2564 ms/op 1.17
BeaconState.hashTreeRoot - 512 full validator 18.635 ms/op 13.280 ms/op 1.40
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 191.46 us/op 158.24 us/op 1.21
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.4043 ms/op 1.9596 ms/op 1.23
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 33.115 ms/op 24.082 ms/op 1.38
BeaconState.hashTreeRoot - 1 balances 130.13 us/op 117.82 us/op 1.10
BeaconState.hashTreeRoot - 32 balances 1.1839 ms/op 1.0879 ms/op 1.09
BeaconState.hashTreeRoot - 512 balances 10.388 ms/op 10.599 ms/op 0.98
BeaconState.hashTreeRoot - 250000 balances 222.68 ms/op 208.86 ms/op 1.07
aggregationBits - 2048 els - zipIndexesInBitList 39.841 us/op 22.201 us/op 1.79
byteArrayEquals 32 80.677 ns/op 74.333 ns/op 1.09
Buffer.compare 32 50.697 ns/op 44.566 ns/op 1.14
byteArrayEquals 1024 2.1667 us/op 2.0264 us/op 1.07
Buffer.compare 1024 62.080 ns/op 52.275 ns/op 1.19
byteArrayEquals 16384 35.233 us/op 32.262 us/op 1.09
Buffer.compare 16384 257.10 ns/op 235.54 ns/op 1.09
byteArrayEquals 123687377 254.86 ms/op 249.63 ms/op 1.02
Buffer.compare 123687377 8.5713 ms/op 6.0370 ms/op 1.42
byteArrayEquals 32 - diff last byte 73.829 ns/op 71.357 ns/op 1.03
Buffer.compare 32 - diff last byte 58.039 ns/op 48.657 ns/op 1.19
byteArrayEquals 1024 - diff last byte 2.0658 us/op 1.9901 us/op 1.04
Buffer.compare 1024 - diff last byte 64.184 ns/op 49.151 ns/op 1.31
byteArrayEquals 16384 - diff last byte 33.563 us/op 31.755 us/op 1.06
Buffer.compare 16384 - diff last byte 282.51 ns/op 228.00 ns/op 1.24
byteArrayEquals 123687377 - diff last byte 253.03 ms/op 247.19 ms/op 1.02
Buffer.compare 123687377 - diff last byte 9.6021 ms/op 6.1353 ms/op 1.57
byteArrayEquals 32 - random bytes 5.9230 ns/op 5.1660 ns/op 1.15
Buffer.compare 32 - random bytes 51.288 ns/op 47.630 ns/op 1.08
byteArrayEquals 1024 - random bytes 5.9730 ns/op 5.1000 ns/op 1.17
Buffer.compare 1024 - random bytes 49.609 ns/op 45.863 ns/op 1.08
byteArrayEquals 16384 - random bytes 5.7910 ns/op 5.0870 ns/op 1.14
Buffer.compare 16384 - random bytes 48.535 ns/op 45.958 ns/op 1.06
byteArrayEquals 123687377 - random bytes 9.0800 ns/op 7.8200 ns/op 1.16
Buffer.compare 123687377 - random bytes 54.810 ns/op 48.750 ns/op 1.12
regular array get 100000 times 46.878 us/op 44.041 us/op 1.06
wrappedArray get 100000 times 47.038 us/op 43.881 us/op 1.07
arrayWithProxy get 100000 times 14.343 ms/op 13.740 ms/op 1.04
ssz.Root.equals 58.795 ns/op 52.427 ns/op 1.12
byteArrayEquals 56.036 ns/op 51.517 ns/op 1.09
Buffer.compare 12.141 ns/op 10.120 ns/op 1.20
shuffle list - 16384 els 6.9820 ms/op 6.2300 ms/op 1.12
shuffle list - 250000 els 103.94 ms/op 91.136 ms/op 1.14
processSlot - 1 slots 17.871 us/op 14.695 us/op 1.22
processSlot - 32 slots 3.6534 ms/op 3.2835 ms/op 1.11
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 60.634 ms/op 48.570 ms/op 1.25
getCommitteeAssignments - req 1 vs - 250000 vc 3.1067 ms/op 2.5969 ms/op 1.20
getCommitteeAssignments - req 100 vs - 250000 vc 4.4258 ms/op 3.7557 ms/op 1.18
getCommitteeAssignments - req 1000 vs - 250000 vc 4.4005 ms/op 4.0218 ms/op 1.09
findModifiedValidators - 10000 modified validators 443.23 ms/op 293.34 ms/op 1.51
findModifiedValidators - 1000 modified validators 325.16 ms/op 171.20 ms/op 1.90
findModifiedValidators - 100 modified validators 302.37 ms/op 165.27 ms/op 1.83
findModifiedValidators - 10 modified validators 331.34 ms/op 166.99 ms/op 1.98
findModifiedValidators - 1 modified validators 358.25 ms/op 162.43 ms/op 2.21
findModifiedValidators - no difference 341.76 ms/op 163.00 ms/op 2.10
compare ViewDUs 5.3510 s/op 3.1710 s/op 1.69
compare each validator Uint8Array 1.9045 s/op 1.3853 s/op 1.37
compare ViewDU to Uint8Array 1.3777 s/op 1.0554 s/op 1.31
migrate state 1000000 validators, 24 modified, 0 new 782.56 ms/op 626.22 ms/op 1.25
migrate state 1000000 validators, 1700 modified, 1000 new 1.0658 s/op 1.0041 s/op 1.06
migrate state 1000000 validators, 3400 modified, 2000 new 1.5727 s/op 1.3217 s/op 1.19
migrate state 1500000 validators, 24 modified, 0 new 759.08 ms/op 746.82 ms/op 1.02
migrate state 1500000 validators, 1700 modified, 1000 new 1.1341 s/op 1.1512 s/op 0.99
migrate state 1500000 validators, 3400 modified, 2000 new 1.6776 s/op 1.5550 s/op 1.08
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.2000 ns/op 5.4100 ns/op 0.96
state getBlockRootAtSlot - 250000 vs - 7PWei 801.33 ns/op 721.57 ns/op 1.11
computeProposers - vc 250000 9.3083 ms/op 8.6478 ms/op 1.08
computeEpochShuffling - vc 250000 103.25 ms/op 104.12 ms/op 0.99
getNextSyncCommittee - vc 250000 174.52 ms/op 167.42 ms/op 1.04
computeSigningRoot for AttestationData 25.642 us/op 33.859 us/op 0.76
hash AttestationData serialized data then Buffer.toString(base64) 1.6605 us/op 1.9064 us/op 0.87
toHexString serialized data 1.2735 us/op 1.2167 us/op 1.05
Buffer.toString(base64) 278.19 ns/op 231.98 ns/op 1.20

by benchmarkbot/action

@@ -100,8 +102,7 @@ function innerShuffleList(input: Shuffleable, seed: Bytes32, dir: boolean): void
}

// Seed is always the first 32 bytes of the hash input, we never have to change this part of the buffer.
const _seed = seed;
Buffer.from(_seed).copy(buf, 0, 0, _SHUFFLE_H_SEED_SIZE);
buf.set(seed, 0);
Copy link
Member

Choose a reason for hiding this comment

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

memory copy might be intentional here?

Copy link
Member Author

Choose a reason for hiding this comment

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

This update is fine, I think more eyes on this change will confirm that.

Copy link
Contributor

Choose a reason for hiding this comment

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

confirm it's fine, maybe more clear to bound seed by _SHUFFLE_H_SEED_SIZE instead of 32 which will make it equivalent to the current implementation

@philknows philknows added this to the v1.19.0 milestone May 23, 2024
@wemeetagain wemeetagain merged commit 1831d47 into unstable May 24, 2024
18 of 20 checks passed
@wemeetagain wemeetagain deleted the cayman/buffer-from branch May 24, 2024 17:55
matthewkeil added a commit that referenced this pull request Jun 2, 2024
jeluard pushed a commit to jeluard/lodestar that referenced this pull request Jun 4, 2024
* 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 <[email protected]>

---------

Co-authored-by: twoeths <[email protected]>
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 <[email protected]>

* chore: address comments

* chore: address comments

* chore: fixed typo

* chore: typo

Co-authored-by: Nico Flaig <[email protected]>

* chore: address comments

* chore: wording

Co-authored-by: Nico Flaig <[email protected]>

* chore: use frozen lock file

Co-authored-by: Nico Flaig <[email protected]>

---------

Co-authored-by: Nico Flaig <[email protected]>

* 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 [email protected]

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Fix lint issues

* Remove unused import

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

* fix: log of threadcount

---------

Co-authored-by: Nico Flaig <[email protected]>

* 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 <[email protected]>

---------

Co-authored-by: Nico Flaig <[email protected]>

* 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 <[email protected]>

* Increase timeout for one test

* Optimize package build task

* Update the readme

---------

Co-authored-by: Nico Flaig <[email protected]>

* 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] <[email protected]>
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 <[email protected]>

* chore: address comments

* chore: added faq element

* chore: address comments

Co-authored-by: Nico Flaig <[email protected]>

* chore: address comments

Co-authored-by: Nico Flaig <[email protected]>

* chore: address comments

---------

Co-authored-by: Nico Flaig <[email protected]>

* 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 <[email protected]>

* Fix linting on docs

* Fix linting

---------

Co-authored-by: Julien <[email protected]>

* 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 <[email protected]>

* Fix build error

* Update the readme doc

* Apply suggestions from code review

Co-authored-by: Julien <[email protected]>

* Fix the docs linting

* Add missing words

---------

Co-authored-by: Julien <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* chore: address comments

---------

Co-authored-by: Nico Flaig <[email protected]>

* 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 [email protected]

* 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 <[email protected]>

* 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 <[email protected]>

---------

Co-authored-by: twoeths <[email protected]>

* 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 <[email protected]>

* Update readme docs

* Add word in dictionary

* Add word in dictionary

---------

Co-authored-by: Cayman <[email protected]>
Co-authored-by: Nico Flaig <[email protected]>

* 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] <[email protected]>
Co-authored-by: tuyennhv <[email protected]>
Co-authored-by: Julien <[email protected]>
Co-authored-by: Nico Flaig <[email protected]>
Co-authored-by: Matthew Keil <[email protected]>
Co-authored-by: NC <[email protected]>
Co-authored-by: g11tech <[email protected]>
Co-authored-by: Nazar Hussain <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@wemeetagain
Copy link
Member Author

🎉 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.

Review Buffer.from usage
5 participants