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: use @chainsafe/blst directly #6706

Merged
merged 10 commits into from
May 24, 2024
Merged

feat: use @chainsafe/blst directly #6706

merged 10 commits into from
May 24, 2024

Conversation

wemeetagain
Copy link
Member

Motivation

In order to do some optimizations, we want to remove the @chainsafe/bls abstraction layer. We know we won't be running the beacon node or validator in node only. In the future, we may relax this restriction if a usecase presents itself.

Description

  • Replace all uses of @chainsafe/bls throughout the monorepo, with the exception of the light client package
  • Notable changes:
    • .toBytes() -> .serialize()
      • serialize defaults to compressed
      • there is no longer a third param to do validation, it needs to be done afterwards with a .keyValidate() or .sigValidate()
    • .fromBytes() -> .deserialize()
    • Pubkey.aggregate, bls.aggregatePubkeys -> aggregatePubkeys
      • same for signatures
    • Signature.verifyAggregate -> fastVerifyAggregate
    • all verification functions into (msg(s), pubkey(s), sig(s)) order -- <- very important to get right

@wemeetagain wemeetagain requested a review from a team as a code owner April 24, 2024 22:43
Copy link

codecov bot commented Apr 30, 2024

Codecov Report

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

Project coverage is 62.20%. Comparing base (b439da2) to head (127d223).
Report is 1 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #6706      +/-   ##
============================================
- Coverage     62.21%   62.20%   -0.01%     
============================================
  Files           571      572       +1     
  Lines         60017    60031      +14     
  Branches       1975     1972       -3     
============================================
+ Hits          37338    37342       +4     
- Misses        22636    22646      +10     
  Partials         43       43              

Copy link
Contributor

github-actions bot commented Apr 30, 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: f0797f4 Previous: b439da2 Ratio
Buffer.compare 123687377 19.681 ms/op 3.6202 ms/op 5.44
Buffer.compare 123687377 - diff last byte 12.566 ms/op 3.7603 ms/op 3.34
Full benchmark results
Benchmark suite Current: f0797f4 Previous: b439da2 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.4823 ms/op 800.88 us/op 1.85
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 119.63 us/op 105.96 us/op 1.13
BLS verify - blst-native 1.3779 ms/op 1.1338 ms/op 1.22
BLS verifyMultipleSignatures 3 - blst-native 2.8784 ms/op 2.1565 ms/op 1.33
BLS verifyMultipleSignatures 8 - blst-native 6.2526 ms/op 4.7230 ms/op 1.32
BLS verifyMultipleSignatures 32 - blst-native 24.906 ms/op 16.739 ms/op 1.49
BLS verifyMultipleSignatures 64 - blst-native 57.992 ms/op 33.457 ms/op 1.73
BLS verifyMultipleSignatures 128 - blst-native 107.43 ms/op 69.915 ms/op 1.54
BLS deserializing 10000 signatures 1.0710 s/op 793.98 ms/op 1.35
BLS deserializing 100000 signatures 10.174 s/op 8.0119 s/op 1.27
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.5599 ms/op 1.1490 ms/op 1.36
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.6771 ms/op 1.3509 ms/op 1.24
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.6396 ms/op 2.0775 ms/op 1.27
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.9221 ms/op 3.0678 ms/op 1.28
BLS verifyMultipleSignatures - same message - 128 - blst-native 6.5670 ms/op 5.0970 ms/op 1.29
BLS aggregatePubkeys 32 - blst-native 45.134 us/op 25.576 us/op 1.76
BLS aggregatePubkeys 128 - blst-native 131.63 us/op 96.898 us/op 1.36
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 86.267 ms/op 53.626 ms/op 1.61
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 60.492 ms/op 52.753 ms/op 1.15
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 44.871 ms/op 27.361 ms/op 1.64
getSlashingsAndExits - default max 246.44 us/op 152.69 us/op 1.61
getSlashingsAndExits - 2k 470.15 us/op 289.97 us/op 1.62
proposeBlockBody type=full, size=empty 6.8915 ms/op 5.0511 ms/op 1.36
isKnown best case - 1 super set check 372.00 ns/op 466.00 ns/op 0.80
isKnown normal case - 2 super set checks 373.00 ns/op 453.00 ns/op 0.82
isKnown worse case - 16 super set checks 355.00 ns/op 460.00 ns/op 0.77
InMemoryCheckpointStateCache - add get delete 6.1120 us/op 4.3640 us/op 1.40
validate api signedAggregateAndProof - struct 2.7527 ms/op 2.0187 ms/op 1.36
validate gossip signedAggregateAndProof - struct 2.7163 ms/op 2.0229 ms/op 1.34
validate gossip attestation - vc 640000 1.3214 ms/op 1.1560 ms/op 1.14
batch validate gossip attestation - vc 640000 - chunk 32 177.99 us/op 142.28 us/op 1.25
batch validate gossip attestation - vc 640000 - chunk 64 165.22 us/op 131.31 us/op 1.26
batch validate gossip attestation - vc 640000 - chunk 128 163.53 us/op 128.92 us/op 1.27
batch validate gossip attestation - vc 640000 - chunk 256 150.89 us/op 129.64 us/op 1.16
pickEth1Vote - no votes 1.3323 ms/op 1.0190 ms/op 1.31
pickEth1Vote - max votes 11.784 ms/op 12.908 ms/op 0.91
pickEth1Vote - Eth1Data hashTreeRoot value x2048 19.307 ms/op 18.670 ms/op 1.03
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 28.487 ms/op 29.490 ms/op 0.97
pickEth1Vote - Eth1Data fastSerialize value x2048 654.58 us/op 430.37 us/op 1.52
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.3407 ms/op 6.2648 ms/op 0.85
bytes32 toHexString 574.00 ns/op 629.00 ns/op 0.91
bytes32 Buffer.toString(hex) 306.00 ns/op 507.00 ns/op 0.60
bytes32 Buffer.toString(hex) from Uint8Array 541.00 ns/op 656.00 ns/op 0.82
bytes32 Buffer.toString(hex) + 0x 299.00 ns/op 501.00 ns/op 0.60
Object access 1 prop 0.19400 ns/op 0.36500 ns/op 0.53
Map access 1 prop 0.13200 ns/op 0.33500 ns/op 0.39
Object get x1000 7.4960 ns/op 5.5670 ns/op 1.35
Map get x1000 0.86100 ns/op 0.95500 ns/op 0.90
Object set x1000 60.702 ns/op 27.760 ns/op 2.19
Map set x1000 34.398 ns/op 18.782 ns/op 1.83
Return object 10000 times 0.25070 ns/op 0.25650 ns/op 0.98
Throw Error 10000 times 3.5644 us/op 2.9413 us/op 1.21
fastMsgIdFn sha256 / 200 bytes 2.5550 us/op 2.2770 us/op 1.12
fastMsgIdFn h32 xxhash / 200 bytes 343.00 ns/op 474.00 ns/op 0.72
fastMsgIdFn h64 xxhash / 200 bytes 415.00 ns/op 543.00 ns/op 0.76
fastMsgIdFn sha256 / 1000 bytes 8.7710 us/op 6.7890 us/op 1.29
fastMsgIdFn h32 xxhash / 1000 bytes 530.00 ns/op 657.00 ns/op 0.81
fastMsgIdFn h64 xxhash / 1000 bytes 485.00 ns/op 624.00 ns/op 0.78
fastMsgIdFn sha256 / 10000 bytes 81.701 us/op 55.157 us/op 1.48
fastMsgIdFn h32 xxhash / 10000 bytes 2.0930 us/op 2.0620 us/op 1.02
fastMsgIdFn h64 xxhash / 10000 bytes 1.4240 us/op 1.4350 us/op 0.99
send data - 1000 256B messages 16.671 ms/op 11.587 ms/op 1.44
send data - 1000 512B messages 20.425 ms/op 16.471 ms/op 1.24
send data - 1000 1024B messages 29.300 ms/op 24.490 ms/op 1.20
send data - 1000 1200B messages 29.663 ms/op 27.207 ms/op 1.09
send data - 1000 2048B messages 39.602 ms/op 33.326 ms/op 1.19
send data - 1000 4096B messages 43.244 ms/op 33.297 ms/op 1.30
send data - 1000 16384B messages 93.218 ms/op 71.982 ms/op 1.30
send data - 1000 65536B messages 301.94 ms/op 287.85 ms/op 1.05
enrSubnets - fastDeserialize 64 bits 1.3670 us/op 1.1910 us/op 1.15
enrSubnets - ssz BitVector 64 bits 513.00 ns/op 599.00 ns/op 0.86
enrSubnets - fastDeserialize 4 bits 195.00 ns/op 357.00 ns/op 0.55
enrSubnets - ssz BitVector 4 bits 497.00 ns/op 624.00 ns/op 0.80
prioritizePeers score -10:0 att 32-0.1 sync 2-0 211.71 us/op 168.26 us/op 1.26
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 292.75 us/op 208.83 us/op 1.40
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 318.26 us/op 233.81 us/op 1.36
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 551.17 us/op 428.82 us/op 1.29
prioritizePeers score 0:0 att 64-1 sync 4-1 659.40 us/op 441.22 us/op 1.49
array of 16000 items push then shift 1.7757 us/op 1.3995 us/op 1.27
LinkedList of 16000 items push then shift 7.6600 ns/op 6.1690 ns/op 1.24
array of 16000 items push then pop 151.78 ns/op 116.87 ns/op 1.30
LinkedList of 16000 items push then pop 7.1070 ns/op 5.9600 ns/op 1.19
array of 24000 items push then shift 2.8472 us/op 2.0688 us/op 1.38
LinkedList of 24000 items push then shift 6.9960 ns/op 7.4960 ns/op 0.93
array of 24000 items push then pop 202.53 ns/op 192.69 ns/op 1.05
LinkedList of 24000 items push then pop 7.6890 ns/op 6.9220 ns/op 1.11
intersect bitArray bitLen 8 6.1560 ns/op 5.0490 ns/op 1.22
intersect array and set length 8 60.637 ns/op 50.601 ns/op 1.20
intersect bitArray bitLen 128 37.245 ns/op 29.910 ns/op 1.25
intersect array and set length 128 896.83 ns/op 730.03 ns/op 1.23
bitArray.getTrueBitIndexes() bitLen 128 1.4120 us/op 1.7140 us/op 0.82
bitArray.getTrueBitIndexes() bitLen 248 2.0890 us/op 2.5480 us/op 0.82
bitArray.getTrueBitIndexes() bitLen 512 4.3720 us/op 4.5740 us/op 0.96
Buffer.concat 32 items 922.00 ns/op 1.0750 us/op 0.86
Uint8Array.set 32 items 1.7420 us/op 2.0980 us/op 0.83
Set add up to 64 items then delete first 2.2369 us/op 2.0968 us/op 1.07
OrderedSet add up to 64 items then delete first 3.2946 us/op 3.5019 us/op 0.94
Set add up to 64 items then delete last 2.4366 us/op 2.0227 us/op 1.20
OrderedSet add up to 64 items then delete last 3.5586 us/op 3.1237 us/op 1.14
Set add up to 64 items then delete middle 2.4714 us/op 2.0112 us/op 1.23
OrderedSet add up to 64 items then delete middle 5.3499 us/op 4.3611 us/op 1.23
Set add up to 128 items then delete first 5.0840 us/op 3.9883 us/op 1.27
OrderedSet add up to 128 items then delete first 7.8449 us/op 6.2853 us/op 1.25
Set add up to 128 items then delete last 4.8779 us/op 3.8881 us/op 1.25
OrderedSet add up to 128 items then delete last 7.4157 us/op 6.0005 us/op 1.24
Set add up to 128 items then delete middle 5.0530 us/op 3.9849 us/op 1.27
OrderedSet add up to 128 items then delete middle 14.436 us/op 11.481 us/op 1.26
Set add up to 256 items then delete first 10.660 us/op 8.0203 us/op 1.33
OrderedSet add up to 256 items then delete first 16.399 us/op 18.419 us/op 0.89
Set add up to 256 items then delete last 9.6893 us/op 11.210 us/op 0.86
OrderedSet add up to 256 items then delete last 14.713 us/op 17.874 us/op 0.82
Set add up to 256 items then delete middle 10.542 us/op 10.807 us/op 0.98
OrderedSet add up to 256 items then delete middle 37.554 us/op 38.716 us/op 0.97
transfer serialized Status (84 B) 1.6660 us/op 1.8960 us/op 0.88
copy serialized Status (84 B) 1.3000 us/op 1.5430 us/op 0.84
transfer serialized SignedVoluntaryExit (112 B) 1.9130 us/op 2.0840 us/op 0.92
copy serialized SignedVoluntaryExit (112 B) 1.3820 us/op 1.6280 us/op 0.85
transfer serialized ProposerSlashing (416 B) 2.6280 us/op 3.0280 us/op 0.87
copy serialized ProposerSlashing (416 B) 2.1930 us/op 2.3980 us/op 0.91
transfer serialized Attestation (485 B) 2.8390 us/op 2.1130 us/op 1.34
copy serialized Attestation (485 B) 2.4990 us/op 1.7720 us/op 1.41
transfer serialized AttesterSlashing (33232 B) 2.7490 us/op 1.8030 us/op 1.52
copy serialized AttesterSlashing (33232 B) 5.7030 us/op 3.9420 us/op 1.45
transfer serialized Small SignedBeaconBlock (128000 B) 2.6340 us/op 2.2060 us/op 1.19
copy serialized Small SignedBeaconBlock (128000 B) 16.375 us/op 9.5650 us/op 1.71
transfer serialized Avg SignedBeaconBlock (200000 B) 2.5990 us/op 2.0690 us/op 1.26
copy serialized Avg SignedBeaconBlock (200000 B) 23.751 us/op 15.055 us/op 1.58
transfer serialized BlobsSidecar (524380 B) 2.9060 us/op 3.0740 us/op 0.95
copy serialized BlobsSidecar (524380 B) 91.795 us/op 89.249 us/op 1.03
transfer serialized Big SignedBeaconBlock (1000000 B) 2.6810 us/op 3.1060 us/op 0.86
copy serialized Big SignedBeaconBlock (1000000 B) 153.21 us/op 159.95 us/op 0.96
pass gossip attestations to forkchoice per slot 3.4985 ms/op 3.1435 ms/op 1.11
forkChoice updateHead vc 100000 bc 64 eq 0 539.37 us/op 516.83 us/op 1.04
forkChoice updateHead vc 600000 bc 64 eq 0 3.9622 ms/op 3.3279 ms/op 1.19
forkChoice updateHead vc 1000000 bc 64 eq 0 7.1141 ms/op 5.3947 ms/op 1.32
forkChoice updateHead vc 600000 bc 320 eq 0 3.2546 ms/op 2.7847 ms/op 1.17
forkChoice updateHead vc 600000 bc 1200 eq 0 3.3558 ms/op 3.3171 ms/op 1.01
forkChoice updateHead vc 600000 bc 7200 eq 0 4.8098 ms/op 4.7705 ms/op 1.01
forkChoice updateHead vc 600000 bc 64 eq 1000 11.444 ms/op 10.437 ms/op 1.10
forkChoice updateHead vc 600000 bc 64 eq 10000 11.656 ms/op 10.691 ms/op 1.09
forkChoice updateHead vc 600000 bc 64 eq 300000 16.598 ms/op 38.659 ms/op 0.43
computeDeltas 500000 validators 300 proto nodes 3.9317 ms/op 3.4955 ms/op 1.12
computeDeltas 500000 validators 1200 proto nodes 4.0946 ms/op 3.1368 ms/op 1.31
computeDeltas 500000 validators 7200 proto nodes 4.2183 ms/op 3.2004 ms/op 1.32
computeDeltas 750000 validators 300 proto nodes 5.9913 ms/op 4.8292 ms/op 1.24
computeDeltas 750000 validators 1200 proto nodes 6.6088 ms/op 4.9103 ms/op 1.35
computeDeltas 750000 validators 7200 proto nodes 7.8638 ms/op 4.8846 ms/op 1.61
computeDeltas 1400000 validators 300 proto nodes 15.693 ms/op 9.6928 ms/op 1.62
computeDeltas 1400000 validators 1200 proto nodes 14.864 ms/op 9.6478 ms/op 1.54
computeDeltas 1400000 validators 7200 proto nodes 17.516 ms/op 9.3041 ms/op 1.88
computeDeltas 2100000 validators 300 proto nodes 23.207 ms/op 15.199 ms/op 1.53
computeDeltas 2100000 validators 1200 proto nodes 18.939 ms/op 14.864 ms/op 1.27
computeDeltas 2100000 validators 7200 proto nodes 17.725 ms/op 15.299 ms/op 1.16
altair processAttestation - 250000 vs - 7PWei normalcase 2.9032 ms/op 1.7564 ms/op 1.65
altair processAttestation - 250000 vs - 7PWei worstcase 4.2003 ms/op 2.3536 ms/op 1.78
altair processAttestation - setStatus - 1/6 committees join 177.05 us/op 68.525 us/op 2.58
altair processAttestation - setStatus - 1/3 committees join 371.27 us/op 168.83 us/op 2.20
altair processAttestation - setStatus - 1/2 committees join 452.58 us/op 272.68 us/op 1.66
altair processAttestation - setStatus - 2/3 committees join 572.95 us/op 332.44 us/op 1.72
altair processAttestation - setStatus - 4/5 committees join 923.28 us/op 410.14 us/op 2.25
altair processAttestation - setStatus - 100% committees join 864.07 us/op 483.26 us/op 1.79
altair processBlock - 250000 vs - 7PWei normalcase 8.3807 ms/op 6.6170 ms/op 1.27
altair processBlock - 250000 vs - 7PWei normalcase hashState 36.534 ms/op 25.522 ms/op 1.43
altair processBlock - 250000 vs - 7PWei worstcase 39.174 ms/op 34.602 ms/op 1.13
altair processBlock - 250000 vs - 7PWei worstcase hashState 95.756 ms/op 78.319 ms/op 1.22
phase0 processBlock - 250000 vs - 7PWei normalcase 3.0603 ms/op 2.4072 ms/op 1.27
phase0 processBlock - 250000 vs - 7PWei worstcase 36.016 ms/op 27.181 ms/op 1.33
altair processEth1Data - 250000 vs - 7PWei normalcase 603.49 us/op 300.70 us/op 2.01
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 17.643 us/op 13.389 us/op 1.32
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 49.477 us/op 34.979 us/op 1.41
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 25.544 us/op 11.983 us/op 2.13
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 12.346 us/op 11.564 us/op 1.07
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 238.09 us/op 137.29 us/op 1.73
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.4994 ms/op 1.4191 ms/op 1.06
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.9341 ms/op 1.5040 ms/op 1.29
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.9943 ms/op 1.2295 ms/op 1.62
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.7597 ms/op 3.2698 ms/op 1.15
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 3.4393 ms/op 2.0715 ms/op 1.66
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 6.0309 ms/op 4.4794 ms/op 1.35
Tree 40 250000 create 517.74 ms/op 200.71 ms/op 2.58
Tree 40 250000 get(125000) 181.82 ns/op 133.61 ns/op 1.36
Tree 40 250000 set(125000) 1.5326 us/op 618.39 ns/op 2.48
Tree 40 250000 toArray() 24.087 ms/op 21.748 ms/op 1.11
Tree 40 250000 iterate all - toArray() + loop 26.139 ms/op 21.317 ms/op 1.23
Tree 40 250000 iterate all - get(i) 65.970 ms/op 51.439 ms/op 1.28
MutableVector 250000 create 15.361 ms/op 13.968 ms/op 1.10
MutableVector 250000 get(125000) 7.2130 ns/op 6.0610 ns/op 1.19
MutableVector 250000 set(125000) 440.86 ns/op 208.86 ns/op 2.11
MutableVector 250000 toArray() 5.3247 ms/op 4.6058 ms/op 1.16
MutableVector 250000 iterate all - toArray() + loop 5.7441 ms/op 5.2619 ms/op 1.09
MutableVector 250000 iterate all - get(i) 1.6473 ms/op 1.3988 ms/op 1.18
Array 250000 create 5.2842 ms/op 4.5330 ms/op 1.17
Array 250000 clone - spread 2.0423 ms/op 1.3479 ms/op 1.52
Array 250000 get(125000) 1.3530 ns/op 1.1850 ns/op 1.14
Array 250000 set(125000) 1.9930 ns/op 1.4010 ns/op 1.42
Array 250000 iterate all - loop 184.55 us/op 158.44 us/op 1.16
effectiveBalanceIncrements clone Uint8Array 300000 60.994 us/op 14.520 us/op 4.20
effectiveBalanceIncrements clone MutableVector 300000 620.00 ns/op 549.00 ns/op 1.13
effectiveBalanceIncrements rw all Uint8Array 300000 236.38 us/op 190.89 us/op 1.24
effectiveBalanceIncrements rw all MutableVector 300000 198.76 ms/op 109.97 ms/op 1.81
phase0 afterProcessEpoch - 250000 vs - 7PWei 108.45 ms/op 81.076 ms/op 1.34
phase0 beforeProcessEpoch - 250000 vs - 7PWei 68.499 ms/op 51.678 ms/op 1.33
altair processEpoch - mainnet_e81889 621.88 ms/op 428.20 ms/op 1.45
mainnet_e81889 - altair beforeProcessEpoch 125.09 ms/op 78.337 ms/op 1.60
mainnet_e81889 - altair processJustificationAndFinalization 29.417 us/op 16.122 us/op 1.82
mainnet_e81889 - altair processInactivityUpdates 12.770 ms/op 5.5547 ms/op 2.30
mainnet_e81889 - altair processRewardsAndPenalties 66.345 ms/op 47.189 ms/op 1.41
mainnet_e81889 - altair processRegistryUpdates 4.3250 us/op 3.1330 us/op 1.38
mainnet_e81889 - altair processSlashings 1.0200 us/op 554.00 ns/op 1.84
mainnet_e81889 - altair processEth1DataReset 1.1170 us/op 922.00 ns/op 1.21
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.6872 ms/op 1.1696 ms/op 1.44
mainnet_e81889 - altair processSlashingsReset 10.267 us/op 4.4940 us/op 2.28
mainnet_e81889 - altair processRandaoMixesReset 8.6150 us/op 5.6940 us/op 1.51
mainnet_e81889 - altair processHistoricalRootsUpdate 2.3240 us/op 1.1030 us/op 2.11
mainnet_e81889 - altair processParticipationFlagUpdates 3.2430 us/op 2.4060 us/op 1.35
mainnet_e81889 - altair processSyncCommitteeUpdates 1.3930 us/op 1.1370 us/op 1.23
mainnet_e81889 - altair afterProcessEpoch 116.29 ms/op 82.827 ms/op 1.40
capella processEpoch - mainnet_e217614 1.6965 s/op 1.4750 s/op 1.15
mainnet_e217614 - capella beforeProcessEpoch 286.95 ms/op 316.36 ms/op 0.91
mainnet_e217614 - capella processJustificationAndFinalization 15.517 us/op 20.449 us/op 0.76
mainnet_e217614 - capella processInactivityUpdates 16.715 ms/op 16.034 ms/op 1.04
mainnet_e217614 - capella processRewardsAndPenalties 266.54 ms/op 274.89 ms/op 0.97
mainnet_e217614 - capella processRegistryUpdates 26.122 us/op 23.910 us/op 1.09
mainnet_e217614 - capella processSlashings 556.00 ns/op 1.1070 us/op 0.50
mainnet_e217614 - capella processEth1DataReset 508.00 ns/op 996.00 ns/op 0.51
mainnet_e217614 - capella processEffectiveBalanceUpdates 6.4516 ms/op 3.4676 ms/op 1.86
mainnet_e217614 - capella processSlashingsReset 4.1320 us/op 3.0460 us/op 1.36
mainnet_e217614 - capella processRandaoMixesReset 6.9290 us/op 5.6800 us/op 1.22
mainnet_e217614 - capella processHistoricalRootsUpdate 931.00 ns/op 1.0960 us/op 0.85
mainnet_e217614 - capella processParticipationFlagUpdates 3.0830 us/op 3.4450 us/op 0.89
mainnet_e217614 - capella afterProcessEpoch 269.20 ms/op 215.34 ms/op 1.25
phase0 processEpoch - mainnet_e58758 470.54 ms/op 429.81 ms/op 1.09
mainnet_e58758 - phase0 beforeProcessEpoch 143.28 ms/op 119.68 ms/op 1.20
mainnet_e58758 - phase0 processJustificationAndFinalization 25.459 us/op 12.281 us/op 2.07
mainnet_e58758 - phase0 processRewardsAndPenalties 30.685 ms/op 27.393 ms/op 1.12
mainnet_e58758 - phase0 processRegistryUpdates 12.348 us/op 9.5370 us/op 1.29
mainnet_e58758 - phase0 processSlashings 534.00 ns/op 825.00 ns/op 0.65
mainnet_e58758 - phase0 processEth1DataReset 426.00 ns/op 797.00 ns/op 0.53
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.2680 ms/op 1.4546 ms/op 0.87
mainnet_e58758 - phase0 processSlashingsReset 2.5150 us/op 2.6670 us/op 0.94
mainnet_e58758 - phase0 processRandaoMixesReset 7.0490 us/op 4.3300 us/op 1.63
mainnet_e58758 - phase0 processHistoricalRootsUpdate 425.00 ns/op 792.00 ns/op 0.54
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.1090 us/op 3.4990 us/op 1.17
mainnet_e58758 - phase0 afterProcessEpoch 83.986 ms/op 68.423 ms/op 1.23
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.5424 ms/op 1.3270 ms/op 1.16
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.7232 ms/op 1.1298 ms/op 1.53
altair processInactivityUpdates - 250000 normalcase 15.944 ms/op 14.628 ms/op 1.09
altair processInactivityUpdates - 250000 worstcase 15.841 ms/op 12.518 ms/op 1.27
phase0 processRegistryUpdates - 250000 normalcase 9.1190 us/op 7.3170 us/op 1.25
phase0 processRegistryUpdates - 250000 badcase_full_deposits 414.68 us/op 406.19 us/op 1.02
phase0 processRegistryUpdates - 250000 worstcase 0.5 120.70 ms/op 127.16 ms/op 0.95
altair processRewardsAndPenalties - 250000 normalcase 59.514 ms/op 40.433 ms/op 1.47
altair processRewardsAndPenalties - 250000 worstcase 52.643 ms/op 44.801 ms/op 1.18
phase0 getAttestationDeltas - 250000 normalcase 9.4449 ms/op 6.1923 ms/op 1.53
phase0 getAttestationDeltas - 250000 worstcase 8.0136 ms/op 7.6751 ms/op 1.04
phase0 processSlashings - 250000 worstcase 139.58 us/op 80.935 us/op 1.72
altair processSyncCommitteeUpdates - 250000 182.28 ms/op 96.259 ms/op 1.89
BeaconState.hashTreeRoot - No change 594.00 ns/op 637.00 ns/op 0.93
BeaconState.hashTreeRoot - 1 full validator 146.05 us/op 86.128 us/op 1.70
BeaconState.hashTreeRoot - 32 full validator 1.7035 ms/op 888.32 us/op 1.92
BeaconState.hashTreeRoot - 512 full validator 25.960 ms/op 12.109 ms/op 2.14
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 333.28 us/op 135.64 us/op 2.46
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 4.2593 ms/op 1.6658 ms/op 2.56
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 54.377 ms/op 24.345 ms/op 2.23
BeaconState.hashTreeRoot - 1 balances 170.64 us/op 116.75 us/op 1.46
BeaconState.hashTreeRoot - 32 balances 1.3701 ms/op 1.1008 ms/op 1.24
BeaconState.hashTreeRoot - 512 balances 13.565 ms/op 10.529 ms/op 1.29
BeaconState.hashTreeRoot - 250000 balances 306.24 ms/op 198.74 ms/op 1.54
aggregationBits - 2048 els - zipIndexesInBitList 40.324 us/op 20.464 us/op 1.97
byteArrayEquals 32 88.909 ns/op 61.078 ns/op 1.46
Buffer.compare 32 55.146 ns/op 37.361 ns/op 1.48
byteArrayEquals 1024 2.4022 us/op 1.7367 us/op 1.38
Buffer.compare 1024 62.493 ns/op 40.318 ns/op 1.55
byteArrayEquals 16384 38.234 us/op 27.868 us/op 1.37
Buffer.compare 16384 282.52 ns/op 203.15 ns/op 1.39
byteArrayEquals 123687377 309.91 ms/op 206.48 ms/op 1.50
Buffer.compare 123687377 19.681 ms/op 3.6202 ms/op 5.44
byteArrayEquals 32 - diff last byte 96.359 ns/op 61.233 ns/op 1.57
Buffer.compare 32 - diff last byte 70.383 ns/op 38.150 ns/op 1.84
byteArrayEquals 1024 - diff last byte 2.2973 us/op 1.7025 us/op 1.35
Buffer.compare 1024 - diff last byte 60.167 ns/op 45.106 ns/op 1.33
byteArrayEquals 16384 - diff last byte 38.465 us/op 27.781 us/op 1.38
Buffer.compare 16384 - diff last byte 281.58 ns/op 209.45 ns/op 1.34
byteArrayEquals 123687377 - diff last byte 335.44 ms/op 205.66 ms/op 1.63
Buffer.compare 123687377 - diff last byte 12.566 ms/op 3.7603 ms/op 3.34
byteArrayEquals 32 - random bytes 10.021 ns/op 4.6740 ns/op 2.14
Buffer.compare 32 - random bytes 68.161 ns/op 38.446 ns/op 1.77
byteArrayEquals 1024 - random bytes 7.3780 ns/op 4.4430 ns/op 1.66
Buffer.compare 1024 - random bytes 72.580 ns/op 37.110 ns/op 1.96
byteArrayEquals 16384 - random bytes 12.399 ns/op 4.5100 ns/op 2.75
Buffer.compare 16384 - random bytes 54.403 ns/op 36.339 ns/op 1.50
byteArrayEquals 123687377 - random bytes 18.580 ns/op 8.6700 ns/op 2.14
Buffer.compare 123687377 - random bytes 71.340 ns/op 41.560 ns/op 1.72
regular array get 100000 times 64.447 us/op 40.597 us/op 1.59
wrappedArray get 100000 times 62.630 us/op 40.566 us/op 1.54
arrayWithProxy get 100000 times 25.177 ms/op 10.590 ms/op 2.38
ssz.Root.equals 64.892 ns/op 53.463 ns/op 1.21
byteArrayEquals 72.692 ns/op 53.263 ns/op 1.36
Buffer.compare 19.132 ns/op 9.8380 ns/op 1.94
shuffle list - 16384 els 9.4368 ms/op 5.6009 ms/op 1.68
shuffle list - 250000 els 127.12 ms/op 82.307 ms/op 1.54
processSlot - 1 slots 27.731 us/op 15.437 us/op 1.80
processSlot - 32 slots 7.2272 ms/op 2.5873 ms/op 2.79
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 71.626 ms/op 47.090 ms/op 1.52
getCommitteeAssignments - req 1 vs - 250000 vc 3.0509 ms/op 2.3965 ms/op 1.27
getCommitteeAssignments - req 100 vs - 250000 vc 4.4876 ms/op 3.5285 ms/op 1.27
getCommitteeAssignments - req 1000 vs - 250000 vc 6.0050 ms/op 3.8293 ms/op 1.57
findModifiedValidators - 10000 modified validators 535.54 ms/op 287.68 ms/op 1.86
findModifiedValidators - 1000 modified validators 375.43 ms/op 189.25 ms/op 1.98
findModifiedValidators - 100 modified validators 326.99 ms/op 167.67 ms/op 1.95
findModifiedValidators - 10 modified validators 342.84 ms/op 163.52 ms/op 2.10
findModifiedValidators - 1 modified validators 315.00 ms/op 210.94 ms/op 1.49
findModifiedValidators - no difference 336.44 ms/op 200.16 ms/op 1.68
compare ViewDUs 5.0237 s/op 3.5761 s/op 1.40
compare each validator Uint8Array 1.5488 s/op 1.4520 s/op 1.07
compare ViewDU to Uint8Array 1.3370 s/op 835.43 ms/op 1.60
migrate state 1000000 validators, 24 modified, 0 new 675.54 ms/op 540.95 ms/op 1.25
migrate state 1000000 validators, 1700 modified, 1000 new 1.0060 s/op 904.54 ms/op 1.11
migrate state 1000000 validators, 3400 modified, 2000 new 1.2545 s/op 1.3386 s/op 0.94
migrate state 1500000 validators, 24 modified, 0 new 893.63 ms/op 621.43 ms/op 1.44
migrate state 1500000 validators, 1700 modified, 1000 new 1.2171 s/op 947.05 ms/op 1.29
migrate state 1500000 validators, 3400 modified, 2000 new 1.5463 s/op 1.2918 s/op 1.20
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.9700 ns/op 5.9200 ns/op 0.84
state getBlockRootAtSlot - 250000 vs - 7PWei 634.35 ns/op 718.00 ns/op 0.88
computeProposers - vc 250000 8.5097 ms/op 7.1983 ms/op 1.18
computeEpochShuffling - vc 250000 101.92 ms/op 89.282 ms/op 1.14
getNextSyncCommittee - vc 250000 157.63 ms/op 139.33 ms/op 1.13
computeSigningRoot for AttestationData 33.038 us/op 25.734 us/op 1.28
hash AttestationData serialized data then Buffer.toString(base64) 1.8195 us/op 1.3717 us/op 1.33
toHexString serialized data 1.3082 us/op 846.78 ns/op 1.54
Buffer.toString(base64) 268.19 ns/op 157.86 ns/op 1.70

by benchmarkbot/action

@@ -31,7 +40,11 @@ export const testFnByType: Record<string, "skip" | ((data: any) => any)> = {
*/
function aggregate_verify(input: {pubkeys: string[]; messages: string[]; signature: string}): boolean {
const {pubkeys, messages, signature} = input;
return bls.verifyMultiple(pubkeys.map(fromHexString), messages.map(fromHexString), fromHexString(signature));
try {
Copy link
Member

Choose a reason for hiding this comment

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

@wemeetagain I added this try/catch for the spec tests but am updating the base lib to not throw for this so it better meets the spec.

Comment on lines +149 to +153
try {
return _verify(fromHexString(message), fromHexString(pubkey), fromHexString(signature));
} catch {
return false;
}
Copy link
Member

Choose a reason for hiding this comment

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

@wemeetagain I added this try/catch for the spec tests but am updating the base lib to not throw for this so it better meets the spec.

Comment on lines +92 to +96
try {
return aggregateVerify(messages.map(fromHexString), pubkeys.map(fromHexString), fromHexString(signature));
} catch {
return false;
}
Copy link
Member

Choose a reason for hiding this comment

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

@wemeetagain I added this try/catch for the spec tests but am updating the base lib to not throw for this so it better meets the spec.

Comment on lines +192 to +196
try {
return _verify(fromHexString(message), fromHexString(pubkey), fromHexString(signature));
} catch {
return false;
}
Copy link
Member

Choose a reason for hiding this comment

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

@wemeetagain I added this try/catch for the spec tests but am updating the base lib to not throw for this so it better meets the spec.

@matthewkeil
Copy link
Member

Metrics on feat2-mainnet do not look great. They should be equal to unstable/stable but seems to be performing worse for some reason... Will try and swap for another feat group tomorrow and see if its the machine

@matthewkeil
Copy link
Member

After running for a while it seems like this branch is actually fine. @tuyennhv would love your opinion as well but I'm going to approve

twoeths
twoeths previously approved these changes May 8, 2024
Copy link
Contributor

@twoeths twoeths left a comment

Choose a reason for hiding this comment

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

Looks good to me, had a suggestion for signatureFromBytes() util
also signatureFromBytesNoCheck() should be moved to @lodestar/utils instead so that both could be consumed by different packages

@matthewkeil
Copy link
Member

Looks good to me, had a suggestion for signatureFromBytes() util also signatureFromBytesNoCheck() should be moved to @lodestar/utils instead so that both could be consumed by different packages

Added them both to @lodestar/utils

@matthewkeil
Copy link
Member

@twoeths @philknows Spoke with @wemeetagain and we will merge this one after interop. Should not be an issue but why add more complexity to an already moving target. Can sit for the week and get merged when we get back. All is ready and just waiting for reapproval after the last update for the comment @twoeths had

@philknows philknows added this to the v1.19.0 milestone May 23, 2024
@wemeetagain wemeetagain merged commit 66fe753 into unstable May 24, 2024
19 of 20 checks passed
@wemeetagain wemeetagain deleted the cayman/remove-bls branch May 24, 2024 17:55
matthewkeil added a commit that referenced this pull request Jun 1, 2024
wemeetagain added a commit that referenced this pull request Jun 4, 2024
@wemeetagain wemeetagain mentioned this pull request Jun 4, 2024
wemeetagain added a commit that referenced this pull request Jun 4, 2024
* Revert "feat: use @chainsafe/blst directly (#6706)"

This reverts commit 66fe753.

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

This reverts commit 97d9aa8.
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.

4 participants