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: revert napi bls #6853

Merged
merged 2 commits into from
Jun 4, 2024
Merged

fix: revert napi bls #6853

merged 2 commits into from
Jun 4, 2024

Conversation

wemeetagain
Copy link
Member

Motivation

After testing 1.19.0-rc.0, it was determined that the recent bls updates causes performance regressions

Description

@wemeetagain wemeetagain requested a review from a team as a code owner June 4, 2024 19:02
@wemeetagain wemeetagain changed the title Cayman/revert bls fix: revert napi bls Jun 4, 2024
@wemeetagain wemeetagain merged commit cbb8946 into unstable Jun 4, 2024
18 of 21 checks passed
@wemeetagain wemeetagain deleted the cayman/revert-bls branch June 4, 2024 19:33
Copy link
Contributor

github-actions bot commented Jun 4, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 331e01c Previous: 519b05e Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 549.67 us/op 1.1064 ms/op 0.50
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 59.009 us/op 59.024 us/op 1.00
BLS verify - blst-native 1.2825 ms/op 1.5007 ms/op 0.85
BLS verifyMultipleSignatures 3 - blst-native 2.7351 ms/op 3.1512 ms/op 0.87
BLS verifyMultipleSignatures 8 - blst-native 5.9362 ms/op 6.8303 ms/op 0.87
BLS verifyMultipleSignatures 32 - blst-native 21.667 ms/op 24.707 ms/op 0.88
BLS verifyMultipleSignatures 64 - blst-native 42.248 ms/op 49.143 ms/op 0.86
BLS verifyMultipleSignatures 128 - blst-native 91.828 ms/op 113.83 ms/op 0.81
BLS deserializing 10000 signatures 1.0550 s/op 1.1575 s/op 0.91
BLS deserializing 100000 signatures 11.473 s/op 14.531 s/op 0.79
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.8906 ms/op 1.9952 ms/op 0.95
BLS verifyMultipleSignatures - same message - 8 - blst-native 2.1156 ms/op 2.8956 ms/op 0.73
BLS verifyMultipleSignatures - same message - 32 - blst-native 3.1052 ms/op 4.1321 ms/op 0.75
BLS verifyMultipleSignatures - same message - 64 - blst-native 4.8952 ms/op 7.4951 ms/op 0.65
BLS verifyMultipleSignatures - same message - 128 - blst-native 8.8481 ms/op 13.481 ms/op 0.66
BLS aggregatePubkeys 32 - blst-native 30.259 us/op 67.717 us/op 0.45
BLS aggregatePubkeys 128 - blst-native 141.07 us/op 260.45 us/op 0.54
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 94.146 ms/op 79.742 ms/op 1.18
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 92.924 ms/op 96.907 ms/op 0.96
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 47.222 ms/op 60.976 ms/op 0.77
getSlashingsAndExits - default max 226.21 us/op 146.64 us/op 1.54
getSlashingsAndExits - 2k 454.27 us/op 348.92 us/op 1.30
proposeBlockBody type=full, size=empty 6.8068 ms/op 11.974 ms/op 0.57
isKnown best case - 1 super set check 701.00 ns/op 545.00 ns/op 1.29
isKnown normal case - 2 super set checks 857.00 ns/op 540.00 ns/op 1.59
isKnown worse case - 16 super set checks 818.00 ns/op 546.00 ns/op 1.50
InMemoryCheckpointStateCache - add get delete 7.3710 us/op 9.7760 us/op 0.75
validate api signedAggregateAndProof - struct 3.3501 ms/op 4.6324 ms/op 0.72
validate gossip signedAggregateAndProof - struct 3.0833 ms/op 4.5830 ms/op 0.67
validate gossip attestation - vc 640000 1.6317 ms/op 2.2865 ms/op 0.71
batch validate gossip attestation - vc 640000 - chunk 32 214.65 us/op 300.21 us/op 0.71
batch validate gossip attestation - vc 640000 - chunk 64 188.18 us/op 306.33 us/op 0.61
batch validate gossip attestation - vc 640000 - chunk 128 172.87 us/op 278.13 us/op 0.62
batch validate gossip attestation - vc 640000 - chunk 256 149.17 us/op 319.50 us/op 0.47
pickEth1Vote - no votes 1.3089 ms/op 3.2707 ms/op 0.40
pickEth1Vote - max votes 11.352 ms/op 21.563 ms/op 0.53
pickEth1Vote - Eth1Data hashTreeRoot value x2048 15.297 ms/op 40.907 ms/op 0.37
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 21.138 ms/op 68.319 ms/op 0.31
pickEth1Vote - Eth1Data fastSerialize value x2048 523.03 us/op 1.0010 ms/op 0.52
pickEth1Vote - Eth1Data fastSerialize tree x2048 4.4961 ms/op 11.410 ms/op 0.39
bytes32 toHexString 502.00 ns/op 1.2800 us/op 0.39
bytes32 Buffer.toString(hex) 263.00 ns/op 425.00 ns/op 0.62
bytes32 Buffer.toString(hex) from Uint8Array 403.00 ns/op 801.00 ns/op 0.50
bytes32 Buffer.toString(hex) + 0x 270.00 ns/op 696.00 ns/op 0.39
Object access 1 prop 0.14400 ns/op 0.33500 ns/op 0.43
Map access 1 prop 0.13800 ns/op 0.25200 ns/op 0.55
Object get x1000 6.1110 ns/op 9.0180 ns/op 0.68
Map get x1000 6.9980 ns/op 8.1460 ns/op 0.86
Object set x1000 40.184 ns/op 52.233 ns/op 0.77
Map set x1000 27.604 ns/op 36.132 ns/op 0.76
Return object 10000 times 0.31610 ns/op 0.46610 ns/op 0.68
Throw Error 10000 times 3.6246 us/op 5.2612 us/op 0.69
fastMsgIdFn sha256 / 200 bytes 2.4300 us/op 3.3040 us/op 0.74
fastMsgIdFn h32 xxhash / 200 bytes 271.00 ns/op 485.00 ns/op 0.56
fastMsgIdFn h64 xxhash / 200 bytes 300.00 ns/op 549.00 ns/op 0.55
fastMsgIdFn sha256 / 1000 bytes 8.1010 us/op 16.651 us/op 0.49
fastMsgIdFn h32 xxhash / 1000 bytes 440.00 ns/op 702.00 ns/op 0.63
fastMsgIdFn h64 xxhash / 1000 bytes 376.00 ns/op 624.00 ns/op 0.60
fastMsgIdFn sha256 / 10000 bytes 70.452 us/op 135.44 us/op 0.52
fastMsgIdFn h32 xxhash / 10000 bytes 2.0860 us/op 3.5580 us/op 0.59
fastMsgIdFn h64 xxhash / 10000 bytes 1.3490 us/op 2.3630 us/op 0.57
send data - 1000 256B messages 16.787 ms/op 24.541 ms/op 0.68
send data - 1000 512B messages 20.559 ms/op 32.955 ms/op 0.62
send data - 1000 1024B messages 31.877 ms/op 51.615 ms/op 0.62
send data - 1000 1200B messages 25.981 ms/op 35.790 ms/op 0.73
send data - 1000 2048B messages 37.211 ms/op 54.992 ms/op 0.68
send data - 1000 4096B messages 35.577 ms/op 62.449 ms/op 0.57
send data - 1000 16384B messages 77.407 ms/op 116.03 ms/op 0.67
send data - 1000 65536B messages 238.08 ms/op 591.57 ms/op 0.40
enrSubnets - fastDeserialize 64 bits 1.3070 us/op 2.9260 us/op 0.45
enrSubnets - ssz BitVector 64 bits 404.00 ns/op 744.00 ns/op 0.54
enrSubnets - fastDeserialize 4 bits 182.00 ns/op 282.00 ns/op 0.65
enrSubnets - ssz BitVector 4 bits 440.00 ns/op 557.00 ns/op 0.79
prioritizePeers score -10:0 att 32-0.1 sync 2-0 160.44 us/op 308.30 us/op 0.52
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 177.33 us/op 297.32 us/op 0.60
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 310.55 us/op 704.69 us/op 0.44
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 455.79 us/op 817.53 us/op 0.56
prioritizePeers score 0:0 att 64-1 sync 4-1 670.83 us/op 1.2247 ms/op 0.55
array of 16000 items push then shift 1.7690 us/op 3.1285 us/op 0.57
LinkedList of 16000 items push then shift 7.8210 ns/op 10.086 ns/op 0.78
array of 16000 items push then pop 135.21 ns/op 158.27 ns/op 0.85
LinkedList of 16000 items push then pop 7.6950 ns/op 8.4170 ns/op 0.91
array of 24000 items push then shift 2.6029 us/op 3.1974 us/op 0.81
LinkedList of 24000 items push then shift 8.9670 ns/op 11.095 ns/op 0.81
array of 24000 items push then pop 180.90 ns/op 235.03 ns/op 0.77
LinkedList of 24000 items push then pop 8.4580 ns/op 9.8250 ns/op 0.86
intersect bitArray bitLen 8 6.9320 ns/op 10.194 ns/op 0.68
intersect array and set length 8 47.930 ns/op 66.795 ns/op 0.72
intersect bitArray bitLen 128 30.752 ns/op 47.189 ns/op 0.65
intersect array and set length 128 697.24 ns/op 1.8596 us/op 0.37
bitArray.getTrueBitIndexes() bitLen 128 1.3590 us/op 3.5750 us/op 0.38
bitArray.getTrueBitIndexes() bitLen 248 2.4880 us/op 5.2600 us/op 0.47
bitArray.getTrueBitIndexes() bitLen 512 5.0650 us/op 10.051 us/op 0.50
Buffer.concat 32 items 954.00 ns/op 1.2220 us/op 0.78
Uint8Array.set 32 items 2.2550 us/op 2.2780 us/op 0.99
Buffer.copy 2.3230 us/op 3.3540 us/op 0.69
Uint8Array.set - with subarray 2.9420 us/op 4.4710 us/op 0.66
Uint8Array.set - without subarray 1.9030 us/op 2.9580 us/op 0.64
Set add up to 64 items then delete first 2.3199 us/op 2.8907 us/op 0.80
OrderedSet add up to 64 items then delete first 3.3679 us/op 3.9670 us/op 0.85
Set add up to 64 items then delete last 2.5905 us/op 3.2952 us/op 0.79
OrderedSet add up to 64 items then delete last 3.7665 us/op 5.0313 us/op 0.75
Set add up to 64 items then delete middle 2.5915 us/op 3.3552 us/op 0.77
OrderedSet add up to 64 items then delete middle 5.3025 us/op 6.9259 us/op 0.77
Set add up to 128 items then delete first 5.3695 us/op 7.0067 us/op 0.77
OrderedSet add up to 128 items then delete first 9.2604 us/op 10.252 us/op 0.90
Set add up to 128 items then delete last 5.3462 us/op 6.6409 us/op 0.81
OrderedSet add up to 128 items then delete last 7.7190 us/op 9.1194 us/op 0.85
Set add up to 128 items then delete middle 5.1589 us/op 6.4983 us/op 0.79
OrderedSet add up to 128 items then delete middle 14.057 us/op 19.045 us/op 0.74
Set add up to 256 items then delete first 11.463 us/op 14.674 us/op 0.78
OrderedSet add up to 256 items then delete first 17.798 us/op 26.183 us/op 0.68
Set add up to 256 items then delete last 10.300 us/op 13.918 us/op 0.74
OrderedSet add up to 256 items then delete last 15.621 us/op 19.871 us/op 0.79
Set add up to 256 items then delete middle 11.006 us/op 13.605 us/op 0.81
OrderedSet add up to 256 items then delete middle 45.257 us/op 54.954 us/op 0.82
transfer serialized Status (84 B) 1.6140 us/op 1.7210 us/op 0.94
copy serialized Status (84 B) 1.3910 us/op 1.4400 us/op 0.97
transfer serialized SignedVoluntaryExit (112 B) 1.7410 us/op 2.7800 us/op 0.63
copy serialized SignedVoluntaryExit (112 B) 1.5060 us/op 2.2860 us/op 0.66
transfer serialized ProposerSlashing (416 B) 2.2320 us/op 3.3870 us/op 0.66
copy serialized ProposerSlashing (416 B) 2.3590 us/op 3.1270 us/op 0.75
transfer serialized Attestation (485 B) 2.0010 us/op 2.1280 us/op 0.94
copy serialized Attestation (485 B) 2.4210 us/op 2.0840 us/op 1.16
transfer serialized AttesterSlashing (33232 B) 2.5010 us/op 2.3400 us/op 1.07
copy serialized AttesterSlashing (33232 B) 5.4840 us/op 5.3990 us/op 1.02
transfer serialized Small SignedBeaconBlock (128000 B) 2.4800 us/op 4.0020 us/op 0.62
copy serialized Small SignedBeaconBlock (128000 B) 16.171 us/op 18.383 us/op 0.88
transfer serialized Avg SignedBeaconBlock (200000 B) 3.6260 us/op 3.7020 us/op 0.98
copy serialized Avg SignedBeaconBlock (200000 B) 22.782 us/op 22.738 us/op 1.00
transfer serialized BlobsSidecar (524380 B) 3.8560 us/op 2.9870 us/op 1.29
copy serialized BlobsSidecar (524380 B) 81.565 us/op 106.05 us/op 0.77
transfer serialized Big SignedBeaconBlock (1000000 B) 3.7890 us/op 3.2560 us/op 1.16
copy serialized Big SignedBeaconBlock (1000000 B) 157.53 us/op 157.04 us/op 1.00
pass gossip attestations to forkchoice per slot 3.1332 ms/op 3.6555 ms/op 0.86
forkChoice updateHead vc 100000 bc 64 eq 0 619.45 us/op 678.82 us/op 0.91
forkChoice updateHead vc 600000 bc 64 eq 0 3.4229 ms/op 3.7612 ms/op 0.91
forkChoice updateHead vc 1000000 bc 64 eq 0 5.7366 ms/op 6.5963 ms/op 0.87
forkChoice updateHead vc 600000 bc 320 eq 0 3.2797 ms/op 3.9690 ms/op 0.83
forkChoice updateHead vc 600000 bc 1200 eq 0 3.2509 ms/op 3.5592 ms/op 0.91
forkChoice updateHead vc 600000 bc 7200 eq 0 3.7158 ms/op 4.7845 ms/op 0.78
forkChoice updateHead vc 600000 bc 64 eq 1000 11.163 ms/op 11.427 ms/op 0.98
forkChoice updateHead vc 600000 bc 64 eq 10000 11.482 ms/op 11.612 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 300000 15.307 ms/op 16.294 ms/op 0.94
computeDeltas 500000 validators 300 proto nodes 3.7785 ms/op 4.1740 ms/op 0.91
computeDeltas 500000 validators 1200 proto nodes 3.7098 ms/op 4.9411 ms/op 0.75
computeDeltas 500000 validators 7200 proto nodes 3.8955 ms/op 3.8390 ms/op 1.01
computeDeltas 750000 validators 300 proto nodes 5.5099 ms/op 6.5631 ms/op 0.84
computeDeltas 750000 validators 1200 proto nodes 5.4356 ms/op 6.6814 ms/op 0.81
computeDeltas 750000 validators 7200 proto nodes 5.5640 ms/op 7.3708 ms/op 0.75
computeDeltas 1400000 validators 300 proto nodes 10.188 ms/op 12.529 ms/op 0.81
computeDeltas 1400000 validators 1200 proto nodes 10.096 ms/op 22.225 ms/op 0.45
computeDeltas 1400000 validators 7200 proto nodes 10.209 ms/op 13.711 ms/op 0.74
computeDeltas 2100000 validators 300 proto nodes 15.530 ms/op 17.956 ms/op 0.86
computeDeltas 2100000 validators 1200 proto nodes 15.432 ms/op 16.772 ms/op 0.92
computeDeltas 2100000 validators 7200 proto nodes 15.826 ms/op 16.193 ms/op 0.98
altair processAttestation - 250000 vs - 7PWei normalcase 1.9258 ms/op 1.7702 ms/op 1.09
altair processAttestation - 250000 vs - 7PWei worstcase 2.6738 ms/op 2.8448 ms/op 0.94
altair processAttestation - setStatus - 1/6 committees join 90.403 us/op 98.946 us/op 0.91
altair processAttestation - setStatus - 1/3 committees join 187.88 us/op 189.43 us/op 0.99
altair processAttestation - setStatus - 1/2 committees join 258.33 us/op 259.48 us/op 1.00
altair processAttestation - setStatus - 2/3 committees join 330.80 us/op 348.34 us/op 0.95
altair processAttestation - setStatus - 4/5 committees join 484.42 us/op 502.81 us/op 0.96
altair processAttestation - setStatus - 100% committees join 569.67 us/op 604.16 us/op 0.94
altair processBlock - 250000 vs - 7PWei normalcase 4.4638 ms/op 5.5015 ms/op 0.81
altair processBlock - 250000 vs - 7PWei normalcase hashState 27.583 ms/op 26.387 ms/op 1.05
altair processBlock - 250000 vs - 7PWei worstcase 44.030 ms/op 45.648 ms/op 0.96
altair processBlock - 250000 vs - 7PWei worstcase hashState 83.076 ms/op 82.330 ms/op 1.01
phase0 processBlock - 250000 vs - 7PWei normalcase 2.0077 ms/op 1.9343 ms/op 1.04
phase0 processBlock - 250000 vs - 7PWei worstcase 29.712 ms/op 27.296 ms/op 1.09
altair processEth1Data - 250000 vs - 7PWei normalcase 318.51 us/op 348.50 us/op 0.91
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.1870 us/op 5.0710 us/op 1.22
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 29.935 us/op 20.220 us/op 1.48
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 11.578 us/op 6.8340 us/op 1.69
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.8890 us/op 4.8890 us/op 1.41
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 146.82 us/op 73.299 us/op 2.00
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 863.25 us/op 689.61 us/op 1.25
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.0564 ms/op 951.65 us/op 1.11
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.1437 ms/op 892.85 us/op 1.28
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.7685 ms/op 3.9571 ms/op 0.70
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.7581 ms/op 1.6791 ms/op 1.05
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.9552 ms/op 3.5726 ms/op 1.11
Tree 40 250000 create 299.36 ms/op 209.07 ms/op 1.43
Tree 40 250000 get(125000) 167.35 ns/op 145.25 ns/op 1.15
Tree 40 250000 set(125000) 870.50 ns/op 627.27 ns/op 1.39
Tree 40 250000 toArray() 23.011 ms/op 15.040 ms/op 1.53
Tree 40 250000 iterate all - toArray() + loop 22.771 ms/op 15.153 ms/op 1.50
Tree 40 250000 iterate all - get(i) 62.144 ms/op 51.451 ms/op 1.21
MutableVector 250000 create 16.219 ms/op 8.9307 ms/op 1.82
MutableVector 250000 get(125000) 6.5510 ns/op 7.1770 ns/op 0.91
MutableVector 250000 set(125000) 346.96 ns/op 185.91 ns/op 1.87
MutableVector 250000 toArray() 4.6849 ms/op 3.4237 ms/op 1.37
MutableVector 250000 iterate all - toArray() + loop 5.4038 ms/op 3.5442 ms/op 1.52
MutableVector 250000 iterate all - get(i) 1.6800 ms/op 1.7572 ms/op 0.96
Array 250000 create 4.2254 ms/op 2.9421 ms/op 1.44
Array 250000 clone - spread 1.5789 ms/op 1.3408 ms/op 1.18
Array 250000 get(125000) 0.43200 ns/op 0.40400 ns/op 1.07
Array 250000 set(125000) 0.45600 ns/op 0.42500 ns/op 1.07
Array 250000 iterate all - loop 89.647 us/op 84.071 us/op 1.07
effectiveBalanceIncrements clone Uint8Array 300000 54.353 us/op 24.694 us/op 2.20
effectiveBalanceIncrements clone MutableVector 300000 134.00 ns/op 120.00 ns/op 1.12
effectiveBalanceIncrements rw all Uint8Array 300000 205.94 us/op 202.52 us/op 1.02
effectiveBalanceIncrements rw all MutableVector 300000 77.246 ms/op 62.699 ms/op 1.23
phase0 afterProcessEpoch - 250000 vs - 7PWei 92.931 ms/op 91.334 ms/op 1.02
phase0 beforeProcessEpoch - 250000 vs - 7PWei 57.941 ms/op 47.876 ms/op 1.21
altair processEpoch - mainnet_e81889 494.36 ms/op 445.92 ms/op 1.11
mainnet_e81889 - altair beforeProcessEpoch 66.436 ms/op 76.309 ms/op 0.87
mainnet_e81889 - altair processJustificationAndFinalization 18.034 us/op 13.204 us/op 1.37
mainnet_e81889 - altair processInactivityUpdates 6.6529 ms/op 6.2196 ms/op 1.07
mainnet_e81889 - altair processRewardsAndPenalties 55.500 ms/op 57.016 ms/op 0.97
mainnet_e81889 - altair processRegistryUpdates 2.3080 us/op 1.7970 us/op 1.28
mainnet_e81889 - altair processSlashings 644.00 ns/op 375.00 ns/op 1.72
mainnet_e81889 - altair processEth1DataReset 446.00 ns/op 290.00 ns/op 1.54
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.0190 ms/op 1.1255 ms/op 1.79
mainnet_e81889 - altair processSlashingsReset 3.8820 us/op 2.8830 us/op 1.35
mainnet_e81889 - altair processRandaoMixesReset 7.6160 us/op 4.0380 us/op 1.89
mainnet_e81889 - altair processHistoricalRootsUpdate 718.00 ns/op 326.00 ns/op 2.20
mainnet_e81889 - altair processParticipationFlagUpdates 4.7590 us/op 1.3930 us/op 3.42
mainnet_e81889 - altair processSyncCommitteeUpdates 635.00 ns/op 257.00 ns/op 2.47
mainnet_e81889 - altair afterProcessEpoch 97.811 ms/op 95.570 ms/op 1.02
capella processEpoch - mainnet_e217614 1.6051 s/op 1.4889 s/op 1.08
mainnet_e217614 - capella beforeProcessEpoch 299.76 ms/op 258.17 ms/op 1.16
mainnet_e217614 - capella processJustificationAndFinalization 15.490 us/op 12.805 us/op 1.21
mainnet_e217614 - capella processInactivityUpdates 19.963 ms/op 17.632 ms/op 1.13
mainnet_e217614 - capella processRewardsAndPenalties 263.26 ms/op 240.14 ms/op 1.10
mainnet_e217614 - capella processRegistryUpdates 20.477 us/op 11.903 us/op 1.72
mainnet_e217614 - capella processSlashings 406.00 ns/op 375.00 ns/op 1.08
mainnet_e217614 - capella processEth1DataReset 375.00 ns/op 280.00 ns/op 1.34
mainnet_e217614 - capella processEffectiveBalanceUpdates 14.823 ms/op 11.332 ms/op 1.31
mainnet_e217614 - capella processSlashingsReset 2.9750 us/op 2.5390 us/op 1.17
mainnet_e217614 - capella processRandaoMixesReset 4.0700 us/op 4.0300 us/op 1.01
mainnet_e217614 - capella processHistoricalRootsUpdate 345.00 ns/op 329.00 ns/op 1.05
mainnet_e217614 - capella processParticipationFlagUpdates 1.3780 us/op 1.1640 us/op 1.18
mainnet_e217614 - capella afterProcessEpoch 280.08 ms/op 277.11 ms/op 1.01
phase0 processEpoch - mainnet_e58758 406.61 ms/op 409.51 ms/op 0.99
mainnet_e58758 - phase0 beforeProcessEpoch 110.47 ms/op 113.77 ms/op 0.97
mainnet_e58758 - phase0 processJustificationAndFinalization 20.973 us/op 16.096 us/op 1.30
mainnet_e58758 - phase0 processRewardsAndPenalties 40.209 ms/op 22.533 ms/op 1.78
mainnet_e58758 - phase0 processRegistryUpdates 11.596 us/op 6.9620 us/op 1.67
mainnet_e58758 - phase0 processSlashings 502.00 ns/op 353.00 ns/op 1.42
mainnet_e58758 - phase0 processEth1DataReset 583.00 ns/op 303.00 ns/op 1.92
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.3510 ms/op 873.75 us/op 1.55
mainnet_e58758 - phase0 processSlashingsReset 2.2750 us/op 2.3000 us/op 0.99
mainnet_e58758 - phase0 processRandaoMixesReset 9.5020 us/op 4.1460 us/op 2.29
mainnet_e58758 - phase0 processHistoricalRootsUpdate 712.00 ns/op 313.00 ns/op 2.27
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.5820 us/op 3.3300 us/op 1.38
mainnet_e58758 - phase0 afterProcessEpoch 83.117 ms/op 78.621 ms/op 1.06
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3422 ms/op 1.0456 ms/op 1.28
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.4701 ms/op 1.8830 ms/op 1.31
altair processInactivityUpdates - 250000 normalcase 20.523 ms/op 17.596 ms/op 1.17
altair processInactivityUpdates - 250000 worstcase 22.028 ms/op 15.622 ms/op 1.41
phase0 processRegistryUpdates - 250000 normalcase 8.0090 us/op 6.3550 us/op 1.26
phase0 processRegistryUpdates - 250000 badcase_full_deposits 452.69 us/op 228.78 us/op 1.98
phase0 processRegistryUpdates - 250000 worstcase 0.5 139.11 ms/op 101.44 ms/op 1.37
altair processRewardsAndPenalties - 250000 normalcase 49.377 ms/op 38.111 ms/op 1.30
altair processRewardsAndPenalties - 250000 worstcase 51.977 ms/op 39.755 ms/op 1.31
phase0 getAttestationDeltas - 250000 normalcase 10.071 ms/op 7.2882 ms/op 1.38
phase0 getAttestationDeltas - 250000 worstcase 9.0331 ms/op 7.4099 ms/op 1.22
phase0 processSlashings - 250000 worstcase 108.02 us/op 74.376 us/op 1.45
altair processSyncCommitteeUpdates - 250000 148.52 ms/op 128.77 ms/op 1.15
BeaconState.hashTreeRoot - No change 415.00 ns/op 262.00 ns/op 1.58
BeaconState.hashTreeRoot - 1 full validator 135.37 us/op 121.36 us/op 1.12
BeaconState.hashTreeRoot - 32 full validator 1.2201 ms/op 1.4740 ms/op 0.83
BeaconState.hashTreeRoot - 512 full validator 15.778 ms/op 10.738 ms/op 1.47
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 175.62 us/op 168.41 us/op 1.04
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.7350 ms/op 2.0332 ms/op 1.35
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 28.322 ms/op 29.811 ms/op 0.95
BeaconState.hashTreeRoot - 1 balances 114.84 us/op 156.30 us/op 0.73
BeaconState.hashTreeRoot - 32 balances 1.1166 ms/op 1.5815 ms/op 0.71
BeaconState.hashTreeRoot - 512 balances 13.179 ms/op 11.127 ms/op 1.18
BeaconState.hashTreeRoot - 250000 balances 192.58 ms/op 235.06 ms/op 0.82
aggregationBits - 2048 els - zipIndexesInBitList 27.085 us/op 38.721 us/op 0.70
byteArrayEquals 32 55.047 ns/op 60.621 ns/op 0.91
Buffer.compare 32 47.339 ns/op 54.172 ns/op 0.87
byteArrayEquals 1024 1.6237 us/op 1.7990 us/op 0.90
Buffer.compare 1024 55.547 ns/op 72.305 ns/op 0.77
byteArrayEquals 16384 26.040 us/op 41.661 us/op 0.63
Buffer.compare 16384 256.50 ns/op 404.73 ns/op 0.63
byteArrayEquals 123687377 191.22 ms/op 295.55 ms/op 0.65
Buffer.compare 123687377 6.9722 ms/op 7.7289 ms/op 0.90
byteArrayEquals 32 - diff last byte 56.544 ns/op 81.429 ns/op 0.69
Buffer.compare 32 - diff last byte 46.990 ns/op 70.880 ns/op 0.66
byteArrayEquals 1024 - diff last byte 1.5836 us/op 2.0143 us/op 0.79
Buffer.compare 1024 - diff last byte 54.384 ns/op 68.449 ns/op 0.79
byteArrayEquals 16384 - diff last byte 25.131 us/op 32.687 us/op 0.77
Buffer.compare 16384 - diff last byte 237.88 ns/op 273.42 ns/op 0.87
byteArrayEquals 123687377 - diff last byte 196.94 ms/op 290.51 ms/op 0.68
Buffer.compare 123687377 - diff last byte 7.1484 ms/op 9.0999 ms/op 0.79
byteArrayEquals 32 - random bytes 5.3630 ns/op 6.4130 ns/op 0.84
Buffer.compare 32 - random bytes 50.104 ns/op 55.262 ns/op 0.91
byteArrayEquals 1024 - random bytes 5.3810 ns/op 6.0560 ns/op 0.89
Buffer.compare 1024 - random bytes 48.181 ns/op 53.361 ns/op 0.90
byteArrayEquals 16384 - random bytes 5.3300 ns/op 6.1220 ns/op 0.87
Buffer.compare 16384 - random bytes 49.186 ns/op 54.678 ns/op 0.90
byteArrayEquals 123687377 - random bytes 6.7400 ns/op 7.6200 ns/op 0.88
Buffer.compare 123687377 - random bytes 50.910 ns/op 56.090 ns/op 0.91
regular array get 100000 times 42.948 us/op 39.678 us/op 1.08
wrappedArray get 100000 times 34.138 us/op 38.440 us/op 0.89
arrayWithProxy get 100000 times 13.558 ms/op 16.141 ms/op 0.84
ssz.Root.equals 49.666 ns/op 59.029 ns/op 0.84
byteArrayEquals 47.740 ns/op 58.177 ns/op 0.82
Buffer.compare 11.051 ns/op 12.906 ns/op 0.86
shuffle list - 16384 els 6.8147 ms/op 10.950 ms/op 0.62
shuffle list - 250000 els 100.15 ms/op 167.19 ms/op 0.60
processSlot - 1 slots 13.852 us/op 20.630 us/op 0.67
processSlot - 32 slots 3.2147 ms/op 3.4726 ms/op 0.93
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 39.276 ms/op 51.407 ms/op 0.76
getCommitteeAssignments - req 1 vs - 250000 vc 2.3440 ms/op 3.2587 ms/op 0.72
getCommitteeAssignments - req 100 vs - 250000 vc 4.3818 ms/op 5.3329 ms/op 0.82
getCommitteeAssignments - req 1000 vs - 250000 vc 4.7185 ms/op 5.9450 ms/op 0.79
findModifiedValidators - 10000 modified validators 382.57 ms/op 511.68 ms/op 0.75
findModifiedValidators - 1000 modified validators 205.20 ms/op 229.66 ms/op 0.89
findModifiedValidators - 100 modified validators 219.04 ms/op 358.73 ms/op 0.61
findModifiedValidators - 10 modified validators 217.72 ms/op 396.39 ms/op 0.55
findModifiedValidators - 1 modified validators 241.55 ms/op 191.97 ms/op 1.26
findModifiedValidators - no difference 204.43 ms/op 290.74 ms/op 0.70
compare ViewDUs 3.5191 s/op 3.4975 s/op 1.01
compare each validator Uint8Array 1.6757 s/op 1.6347 s/op 1.03
compare ViewDU to Uint8Array 1.3660 s/op 1.3116 s/op 1.04
migrate state 1000000 validators, 24 modified, 0 new 595.17 ms/op 624.02 ms/op 0.95
migrate state 1000000 validators, 1700 modified, 1000 new 826.16 ms/op 1.0714 s/op 0.77
migrate state 1000000 validators, 3400 modified, 2000 new 1.0676 s/op 1.5877 s/op 0.67
migrate state 1500000 validators, 24 modified, 0 new 644.36 ms/op 1.1871 s/op 0.54
migrate state 1500000 validators, 1700 modified, 1000 new 846.93 ms/op 1.5231 s/op 0.56
migrate state 1500000 validators, 3400 modified, 2000 new 1.1266 s/op 1.6208 s/op 0.70
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.8000 ns/op 6.5800 ns/op 0.73
state getBlockRootAtSlot - 250000 vs - 7PWei 724.34 ns/op 1.6151 us/op 0.45
computeProposers - vc 250000 7.4636 ms/op 19.503 ms/op 0.38
computeEpochShuffling - vc 250000 99.193 ms/op 244.52 ms/op 0.41
getNextSyncCommittee - vc 250000 137.08 ms/op 342.63 ms/op 0.40
computeSigningRoot for AttestationData 23.650 us/op 50.466 us/op 0.47
hash AttestationData serialized data then Buffer.toString(base64) 1.7590 us/op 3.3235 us/op 0.53
toHexString serialized data 1.0860 us/op 2.4712 us/op 0.44
Buffer.toString(base64) 217.07 ns/op 437.26 ns/op 0.50

by benchmarkbot/action

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 Author

🎉 This PR is included in v1.19.0 🎉

matthewkeil added a commit that referenced this pull request Jun 20, 2024
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.

3 participants