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

Update blst dependency #4813

Merged
merged 1 commit into from
Nov 26, 2022
Merged

Update blst dependency #4813

merged 1 commit into from
Nov 26, 2022

Conversation

wemeetagain
Copy link
Member

@wemeetagain wemeetagain commented Nov 25, 2022

Bump from 0.2.4 -> 0.2.6, changelog:

  • Bump BLST to latest
  • Add support for NodeJS 18 on arm64 + amd64
  • Fix issue for MacOS build

@wemeetagain wemeetagain requested a review from a team as a code owner November 25, 2022 22:48
@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: d862ed5 Previous: f55a81a Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.4866 ms/op 2.4244 ms/op 1.03
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 85.121 us/op 72.132 us/op 1.18
BLS verify - blst-native 2.2234 ms/op 2.1690 ms/op 1.03
BLS verifyMultipleSignatures 3 - blst-native 4.3928 ms/op 4.4802 ms/op 0.98
BLS verifyMultipleSignatures 8 - blst-native 9.6180 ms/op 9.6742 ms/op 0.99
BLS verifyMultipleSignatures 32 - blst-native 34.857 ms/op 35.163 ms/op 0.99
BLS aggregatePubkeys 32 - blst-native 46.663 us/op 46.679 us/op 1.00
BLS aggregatePubkeys 128 - blst-native 182.47 us/op 182.68 us/op 1.00
getAttestationsForBlock 109.27 ms/op 89.326 ms/op 1.22
isKnown best case - 1 super set check 504.00 ns/op 493.00 ns/op 1.02
isKnown normal case - 2 super set checks 485.00 ns/op 482.00 ns/op 1.01
isKnown worse case - 16 super set checks 488.00 ns/op 484.00 ns/op 1.01
CheckpointStateCache - add get delete 10.315 us/op 9.2990 us/op 1.11
validate gossip signedAggregateAndProof - struct 5.0473 ms/op 5.0483 ms/op 1.00
validate gossip attestation - struct 2.3826 ms/op 2.3689 ms/op 1.01
pickEth1Vote - no votes 2.4694 ms/op 2.1381 ms/op 1.15
pickEth1Vote - max votes 23.565 ms/op 21.322 ms/op 1.11
pickEth1Vote - Eth1Data hashTreeRoot value x2048 13.424 ms/op 13.239 ms/op 1.01
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 24.456 ms/op 22.426 ms/op 1.09
pickEth1Vote - Eth1Data fastSerialize value x2048 1.8022 ms/op 1.5663 ms/op 1.15
pickEth1Vote - Eth1Data fastSerialize tree x2048 16.018 ms/op 14.894 ms/op 1.08
bytes32 toHexString 1.2590 us/op 1.0880 us/op 1.16
bytes32 Buffer.toString(hex) 786.00 ns/op 802.00 ns/op 0.98
bytes32 Buffer.toString(hex) from Uint8Array 1.0540 us/op 1.0950 us/op 0.96
bytes32 Buffer.toString(hex) + 0x 795.00 ns/op 766.00 ns/op 1.04
Object access 1 prop 0.45300 ns/op 0.40900 ns/op 1.11
Map access 1 prop 0.36500 ns/op 0.30600 ns/op 1.19
Object get x1000 20.293 ns/op 11.216 ns/op 1.81
Map get x1000 1.1660 ns/op 1.0200 ns/op 1.14
Object set x1000 138.50 ns/op 86.147 ns/op 1.61
Map set x1000 85.337 ns/op 56.940 ns/op 1.50
Return object 10000 times 0.44450 ns/op 0.43320 ns/op 1.03
Throw Error 10000 times 7.0863 us/op 5.9915 us/op 1.18
fastMsgIdFn sha256 / 200 bytes 5.0290 us/op 4.8600 us/op 1.03
fastMsgIdFn h32 xxhash / 200 bytes 645.00 ns/op 592.00 ns/op 1.09
fastMsgIdFn h64 xxhash / 200 bytes 819.00 ns/op 892.00 ns/op 0.92
fastMsgIdFn sha256 / 1000 bytes 15.569 us/op 15.559 us/op 1.00
fastMsgIdFn h32 xxhash / 1000 bytes 817.00 ns/op 757.00 ns/op 1.08
fastMsgIdFn h64 xxhash / 1000 bytes 988.00 ns/op 1.0020 us/op 0.99
fastMsgIdFn sha256 / 10000 bytes 131.10 us/op 133.96 us/op 0.98
fastMsgIdFn h32 xxhash / 10000 bytes 2.7270 us/op 2.6350 us/op 1.03
fastMsgIdFn h64 xxhash / 10000 bytes 2.0180 us/op 1.9640 us/op 1.03
enrSubnets - fastDeserialize 64 bits 3.0990 us/op 2.8320 us/op 1.09
enrSubnets - ssz BitVector 64 bits 938.00 ns/op 880.00 ns/op 1.07
enrSubnets - fastDeserialize 4 bits 461.00 ns/op 418.00 ns/op 1.10
enrSubnets - ssz BitVector 4 bits 900.00 ns/op 901.00 ns/op 1.00
prioritizePeers score -10:0 att 32-0.1 sync 2-0 119.62 us/op 91.970 us/op 1.30
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 145.79 us/op 138.24 us/op 1.05
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 257.24 us/op 232.90 us/op 1.10
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 551.25 us/op 343.53 us/op 1.60
prioritizePeers score 0:0 att 64-1 sync 4-1 537.87 us/op 443.30 us/op 1.21
RateTracker 1000000 limit, 1 obj count per request 224.54 ns/op 201.38 ns/op 1.12
RateTracker 1000000 limit, 2 obj count per request 167.14 ns/op 150.26 ns/op 1.11
RateTracker 1000000 limit, 4 obj count per request 138.74 ns/op 123.95 ns/op 1.12
RateTracker 1000000 limit, 8 obj count per request 124.40 ns/op 110.96 ns/op 1.12
RateTracker with prune 5.1600 us/op 4.8280 us/op 1.07
array of 16000 items push then shift 3.2903 us/op 51.674 us/op 0.06
LinkedList of 16000 items push then shift 20.281 ns/op 12.994 ns/op 1.56
array of 16000 items push then pop 270.74 ns/op 212.02 ns/op 1.28
LinkedList of 16000 items push then pop 19.711 ns/op 12.709 ns/op 1.55
array of 24000 items push then shift 4.6937 us/op 77.432 us/op 0.06
LinkedList of 24000 items push then shift 23.538 ns/op 13.765 ns/op 1.71
array of 24000 items push then pop 249.17 ns/op 204.79 ns/op 1.22
LinkedList of 24000 items push then pop 20.686 ns/op 12.761 ns/op 1.62
intersect bitArray bitLen 8 13.893 ns/op 10.661 ns/op 1.30
intersect array and set length 8 194.70 ns/op 161.47 ns/op 1.21
intersect bitArray bitLen 128 73.553 ns/op 58.728 ns/op 1.25
intersect array and set length 128 2.5915 us/op 1.9375 us/op 1.34
Buffer.concat 32 items 2.2140 ns/op 1.8800 ns/op 1.18
pass gossip attestations to forkchoice per slot 7.3208 ms/op 3.6505 ms/op 2.01
computeDeltas 7.0793 ms/op 4.8117 ms/op 1.47
computeProposerBoostScoreFromBalances 1.0616 ms/op 806.15 us/op 1.32
altair processAttestation - 250000 vs - 7PWei normalcase 4.2907 ms/op 4.0326 ms/op 1.06
altair processAttestation - 250000 vs - 7PWei worstcase 7.1774 ms/op 5.7570 ms/op 1.25
altair processAttestation - setStatus - 1/6 committees join 254.38 us/op 185.42 us/op 1.37
altair processAttestation - setStatus - 1/3 committees join 487.54 us/op 361.95 us/op 1.35
altair processAttestation - setStatus - 1/2 committees join 682.89 us/op 524.94 us/op 1.30
altair processAttestation - setStatus - 2/3 committees join 891.28 us/op 679.70 us/op 1.31
altair processAttestation - setStatus - 4/5 committees join 1.2163 ms/op 959.45 us/op 1.27
altair processAttestation - setStatus - 100% committees join 1.4391 ms/op 1.1472 ms/op 1.25
altair processBlock - 250000 vs - 7PWei normalcase 34.108 ms/op 26.498 ms/op 1.29
altair processBlock - 250000 vs - 7PWei normalcase hashState 46.481 ms/op 41.437 ms/op 1.12
altair processBlock - 250000 vs - 7PWei worstcase 97.760 ms/op 84.750 ms/op 1.15
altair processBlock - 250000 vs - 7PWei worstcase hashState 116.16 ms/op 111.72 ms/op 1.04
phase0 processBlock - 250000 vs - 7PWei normalcase 4.3473 ms/op 3.5844 ms/op 1.21
phase0 processBlock - 250000 vs - 7PWei worstcase 54.609 ms/op 52.249 ms/op 1.05
altair processEth1Data - 250000 vs - 7PWei normalcase 1.0395 ms/op 877.74 us/op 1.18
Tree 40 250000 create 860.15 ms/op 935.51 ms/op 0.92
Tree 40 250000 get(125000) 336.77 ns/op 276.70 ns/op 1.22
Tree 40 250000 set(125000) 2.5735 us/op 2.6561 us/op 0.97
Tree 40 250000 toArray() 36.286 ms/op 29.170 ms/op 1.24
Tree 40 250000 iterate all - toArray() + loop 36.403 ms/op 29.700 ms/op 1.23
Tree 40 250000 iterate all - get(i) 127.01 ms/op 114.76 ms/op 1.11
MutableVector 250000 create 18.003 ms/op 14.472 ms/op 1.24
MutableVector 250000 get(125000) 20.197 ns/op 11.003 ns/op 1.84
MutableVector 250000 set(125000) 601.78 ns/op 753.71 ns/op 0.80
MutableVector 250000 toArray() 8.1766 ms/op 7.0210 ms/op 1.16
MutableVector 250000 iterate all - toArray() + loop 8.3376 ms/op 7.0876 ms/op 1.18
MutableVector 250000 iterate all - get(i) 3.8727 ms/op 2.7059 ms/op 1.43
Array 250000 create 7.4568 ms/op 6.8118 ms/op 1.09
Array 250000 clone - spread 2.9650 ms/op 3.9881 ms/op 0.74
Array 250000 get(125000) 1.3070 ns/op 1.7760 ns/op 0.74
Array 250000 set(125000) 1.3290 ns/op 1.7780 ns/op 0.75
Array 250000 iterate all - loop 201.46 us/op 153.45 us/op 1.31
effectiveBalanceIncrements clone Uint8Array 300000 100.42 us/op 65.551 us/op 1.53
effectiveBalanceIncrements clone MutableVector 300000 741.00 ns/op 1.1290 us/op 0.66
effectiveBalanceIncrements rw all Uint8Array 300000 298.19 us/op 249.69 us/op 1.19
effectiveBalanceIncrements rw all MutableVector 300000 203.37 ms/op 229.20 ms/op 0.89
phase0 afterProcessEpoch - 250000 vs - 7PWei 237.64 ms/op 190.83 ms/op 1.25
phase0 beforeProcessEpoch - 250000 vs - 7PWei 80.785 ms/op 62.326 ms/op 1.30
altair processEpoch - mainnet_e81889 689.14 ms/op 554.24 ms/op 1.24
mainnet_e81889 - altair beforeProcessEpoch 195.47 ms/op 95.119 ms/op 2.06
mainnet_e81889 - altair processJustificationAndFinalization 35.480 us/op 17.538 us/op 2.02
mainnet_e81889 - altair processInactivityUpdates 12.349 ms/op 10.119 ms/op 1.22
mainnet_e81889 - altair processRewardsAndPenalties 106.85 ms/op 147.08 ms/op 0.73
mainnet_e81889 - altair processRegistryUpdates 7.1410 us/op 2.9090 us/op 2.45
mainnet_e81889 - altair processSlashings 2.1030 us/op 537.00 ns/op 3.92
mainnet_e81889 - altair processEth1DataReset 2.0290 us/op 648.00 ns/op 3.13
mainnet_e81889 - altair processEffectiveBalanceUpdates 3.0665 ms/op 2.6994 ms/op 1.14
mainnet_e81889 - altair processSlashingsReset 14.510 us/op 5.1610 us/op 2.81
mainnet_e81889 - altair processRandaoMixesReset 11.297 us/op 4.6190 us/op 2.45
mainnet_e81889 - altair processHistoricalRootsUpdate 2.0040 us/op 572.00 ns/op 3.50
mainnet_e81889 - altair processParticipationFlagUpdates 7.4590 us/op 2.3120 us/op 3.23
mainnet_e81889 - altair processSyncCommitteeUpdates 1.6340 us/op 633.00 ns/op 2.58
mainnet_e81889 - altair afterProcessEpoch 231.94 ms/op 197.06 ms/op 1.18
phase0 processEpoch - mainnet_e58758 622.42 ms/op 507.36 ms/op 1.23
mainnet_e58758 - phase0 beforeProcessEpoch 270.64 ms/op 194.99 ms/op 1.39
mainnet_e58758 - phase0 processJustificationAndFinalization 31.978 us/op 18.257 us/op 1.75
mainnet_e58758 - phase0 processRewardsAndPenalties 166.17 ms/op 110.40 ms/op 1.51
mainnet_e58758 - phase0 processRegistryUpdates 19.775 us/op 8.5320 us/op 2.32
mainnet_e58758 - phase0 processSlashings 1.5030 us/op 653.00 ns/op 2.30
mainnet_e58758 - phase0 processEth1DataReset 1.6260 us/op 656.00 ns/op 2.48
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.5997 ms/op 1.6299 ms/op 1.60
mainnet_e58758 - phase0 processSlashingsReset 7.9730 us/op 3.1940 us/op 2.50
mainnet_e58758 - phase0 processRandaoMixesReset 13.067 us/op 4.3890 us/op 2.98
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.8650 us/op 682.00 ns/op 2.73
mainnet_e58758 - phase0 processParticipationRecordUpdates 10.845 us/op 3.5560 us/op 3.05
mainnet_e58758 - phase0 afterProcessEpoch 190.06 ms/op 164.09 ms/op 1.16
phase0 processEffectiveBalanceUpdates - 250000 normalcase 3.1847 ms/op 1.9746 ms/op 1.61
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 4.2617 ms/op 2.2368 ms/op 1.91
altair processInactivityUpdates - 250000 normalcase 45.768 ms/op 45.772 ms/op 1.00
altair processInactivityUpdates - 250000 worstcase 56.070 ms/op 37.473 ms/op 1.50
phase0 processRegistryUpdates - 250000 normalcase 14.093 us/op 6.5870 us/op 2.14
phase0 processRegistryUpdates - 250000 badcase_full_deposits 517.95 us/op 381.89 us/op 1.36
phase0 processRegistryUpdates - 250000 worstcase 0.5 253.14 ms/op 211.78 ms/op 1.20
altair processRewardsAndPenalties - 250000 normalcase 152.55 ms/op 113.59 ms/op 1.34
altair processRewardsAndPenalties - 250000 worstcase 102.76 ms/op 77.163 ms/op 1.33
phase0 getAttestationDeltas - 250000 normalcase 14.816 ms/op 14.352 ms/op 1.03
phase0 getAttestationDeltas - 250000 worstcase 15.340 ms/op 14.652 ms/op 1.05
phase0 processSlashings - 250000 worstcase 6.9466 ms/op 5.3005 ms/op 1.31
altair processSyncCommitteeUpdates - 250000 341.25 ms/op 304.10 ms/op 1.12
BeaconState.hashTreeRoot - No change 571.00 ns/op 533.00 ns/op 1.07
BeaconState.hashTreeRoot - 1 full validator 74.396 us/op 72.672 us/op 1.02
BeaconState.hashTreeRoot - 32 full validator 756.96 us/op 830.32 us/op 0.91
BeaconState.hashTreeRoot - 512 full validator 7.7361 ms/op 7.7136 ms/op 1.00
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 94.583 us/op 90.498 us/op 1.05
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.4588 ms/op 1.3071 ms/op 1.12
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 18.687 ms/op 18.223 ms/op 1.03
BeaconState.hashTreeRoot - 1 balances 70.381 us/op 69.528 us/op 1.01
BeaconState.hashTreeRoot - 32 balances 829.31 us/op 687.02 us/op 1.21
BeaconState.hashTreeRoot - 512 balances 6.9989 ms/op 6.5382 ms/op 1.07
BeaconState.hashTreeRoot - 250000 balances 113.43 ms/op 102.65 ms/op 1.11
aggregationBits - 2048 els - zipIndexesInBitList 37.155 us/op 41.906 us/op 0.89
regular array get 100000 times 78.938 us/op 60.671 us/op 1.30
wrappedArray get 100000 times 78.452 us/op 60.556 us/op 1.30
arrayWithProxy get 100000 times 33.388 ms/op 28.314 ms/op 1.18
ssz.Root.equals 573.00 ns/op 605.00 ns/op 0.95
byteArrayEquals 589.00 ns/op 582.00 ns/op 1.01
shuffle list - 16384 els 13.306 ms/op 11.443 ms/op 1.16
shuffle list - 250000 els 195.56 ms/op 166.26 ms/op 1.18
processSlot - 1 slots 16.004 us/op 13.334 us/op 1.20
processSlot - 32 slots 2.1637 ms/op 2.0082 ms/op 1.08
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 447.74 us/op 440.50 us/op 1.02
getCommitteeAssignments - req 1 vs - 250000 vc 6.3510 ms/op 5.3563 ms/op 1.19
getCommitteeAssignments - req 100 vs - 250000 vc 8.7295 ms/op 7.9187 ms/op 1.10
getCommitteeAssignments - req 1000 vs - 250000 vc 9.2726 ms/op 8.4741 ms/op 1.09
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 11.780 ns/op 9.0900 ns/op 1.30
state getBlockRootAtSlot - 250000 vs - 7PWei 1.2445 us/op 1.1631 us/op 1.07
computeProposers - vc 250000 20.342 ms/op 18.220 ms/op 1.12
computeEpochShuffling - vc 250000 200.88 ms/op 171.31 ms/op 1.17
getNextSyncCommittee - vc 250000 335.68 ms/op 303.74 ms/op 1.11

by benchmarkbot/action

@dapplion dapplion merged commit 9e21c66 into unstable Nov 26, 2022
@dapplion dapplion deleted the cayman/update-blst branch November 26, 2022 08:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants