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

docs: improve prerequisites for OSX users #6157

Merged
merged 11 commits into from
Dec 7, 2023

Conversation

jeluard
Copy link
Contributor

@jeluard jeluard commented Dec 5, 2023

Motivation

Improves DX for OSX users

Description

Add some extra prerequisites for OSX users so that they can build/test lodestar.
python is required for mac silicon users as https://github.com/ChainSafe/blst-ts doesn't provide a prebuild for those CPUs

@jeluard jeluard requested a review from a team as a code owner December 5, 2023 16:08
Copy link
Contributor

github-actions bot commented Dec 5, 2023

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 7e491c1 Previous: f8d3ab0 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 740.92 us/op 990.27 us/op 0.75
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 92.628 us/op 77.431 us/op 1.20
BLS verify - blst-native 1.2807 ms/op 1.0980 ms/op 1.17
BLS verifyMultipleSignatures 3 - blst-native 2.6925 ms/op 2.3539 ms/op 1.14
BLS verifyMultipleSignatures 8 - blst-native 5.9483 ms/op 5.1750 ms/op 1.15
BLS verifyMultipleSignatures 32 - blst-native 21.991 ms/op 19.109 ms/op 1.15
BLS verifyMultipleSignatures 64 - blst-native 42.766 ms/op 37.859 ms/op 1.13
BLS verifyMultipleSignatures 128 - blst-native 85.872 ms/op 74.712 ms/op 1.15
BLS deserializing 10000 signatures 912.97 ms/op 832.24 ms/op 1.10
BLS deserializing 100000 signatures 9.1982 s/op 8.1250 s/op 1.13
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.2979 ms/op 1.0863 ms/op 1.19
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.5745 ms/op 1.4128 ms/op 1.11
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.8523 ms/op 1.9306 ms/op 1.48
BLS verifyMultipleSignatures - same message - 64 - blst-native 4.0560 ms/op 3.7723 ms/op 1.08
BLS verifyMultipleSignatures - same message - 128 - blst-native 7.3240 ms/op 4.8114 ms/op 1.52
BLS aggregatePubkeys 32 - blst-native 26.048 us/op 21.665 us/op 1.20
BLS aggregatePubkeys 128 - blst-native 97.986 us/op 84.314 us/op 1.16
getAttestationsForBlock 39.474 ms/op 37.316 ms/op 1.06
getSlashingsAndExits - default max 180.20 us/op 111.34 us/op 1.62
getSlashingsAndExits - 2k 429.18 us/op 334.42 us/op 1.28
proposeBlockBody type=full, size=empty 4.9762 ms/op 4.1067 ms/op 1.21
isKnown best case - 1 super set check 308.00 ns/op 324.00 ns/op 0.95
isKnown normal case - 2 super set checks 293.00 ns/op 321.00 ns/op 0.91
isKnown worse case - 16 super set checks 292.00 ns/op 319.00 ns/op 0.92
CheckpointStateCache - add get delete 4.9270 us/op 3.8880 us/op 1.27
validate api signedAggregateAndProof - struct 2.7028 ms/op 2.3566 ms/op 1.15
validate gossip signedAggregateAndProof - struct 2.7014 ms/op 2.3843 ms/op 1.13
validate gossip attestation - vc 640000 1.3199 ms/op 1.1335 ms/op 1.16
batch validate gossip attestation - vc 640000 - chunk 32 158.71 us/op 139.13 us/op 1.14
batch validate gossip attestation - vc 640000 - chunk 64 139.42 us/op 127.15 us/op 1.10
batch validate gossip attestation - vc 640000 - chunk 128 134.07 us/op 119.42 us/op 1.12
batch validate gossip attestation - vc 640000 - chunk 256 129.37 us/op 115.70 us/op 1.12
pickEth1Vote - no votes 1.3949 ms/op 991.97 us/op 1.41
pickEth1Vote - max votes 12.779 ms/op 8.6975 ms/op 1.47
pickEth1Vote - Eth1Data hashTreeRoot value x2048 23.296 ms/op 17.199 ms/op 1.35
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 32.822 ms/op 19.390 ms/op 1.69
pickEth1Vote - Eth1Data fastSerialize value x2048 717.70 us/op 379.25 us/op 1.89
pickEth1Vote - Eth1Data fastSerialize tree x2048 8.3720 ms/op 5.4900 ms/op 1.52
bytes32 toHexString 540.00 ns/op 459.00 ns/op 1.18
bytes32 Buffer.toString(hex) 293.00 ns/op 341.00 ns/op 0.86
bytes32 Buffer.toString(hex) from Uint8Array 430.00 ns/op 424.00 ns/op 1.01
bytes32 Buffer.toString(hex) + 0x 288.00 ns/op 329.00 ns/op 0.88
Object access 1 prop 0.16500 ns/op 0.19400 ns/op 0.85
Map access 1 prop 0.13800 ns/op 0.19500 ns/op 0.71
Object get x1000 7.9670 ns/op 5.4840 ns/op 1.45
Map get x1000 0.74700 ns/op 0.70200 ns/op 1.06
Object set x1000 51.885 ns/op 25.744 ns/op 2.02
Map set x1000 38.724 ns/op 17.200 ns/op 2.25
Return object 10000 times 0.24040 ns/op 0.22500 ns/op 1.07
Throw Error 10000 times 3.8851 us/op 2.7343 us/op 1.42
fastMsgIdFn sha256 / 200 bytes 3.2470 us/op 2.0090 us/op 1.62
fastMsgIdFn h32 xxhash / 200 bytes 276.00 ns/op 330.00 ns/op 0.84
fastMsgIdFn h64 xxhash / 200 bytes 345.00 ns/op 367.00 ns/op 0.94
fastMsgIdFn sha256 / 1000 bytes 11.226 us/op 6.1660 us/op 1.82
fastMsgIdFn h32 xxhash / 1000 bytes 394.00 ns/op 404.00 ns/op 0.98
fastMsgIdFn h64 xxhash / 1000 bytes 419.00 ns/op 411.00 ns/op 1.02
fastMsgIdFn sha256 / 10000 bytes 103.62 us/op 52.402 us/op 1.98
fastMsgIdFn h32 xxhash / 10000 bytes 1.9930 us/op 1.8070 us/op 1.10
fastMsgIdFn h64 xxhash / 10000 bytes 1.3590 us/op 1.2810 us/op 1.06
send data - 1000 256B messages 18.682 ms/op 12.848 ms/op 1.45
send data - 1000 512B messages 25.552 ms/op 17.976 ms/op 1.42
send data - 1000 1024B messages 39.956 ms/op 22.755 ms/op 1.76
send data - 1000 1200B messages 36.892 ms/op 29.619 ms/op 1.25
send data - 1000 2048B messages 44.784 ms/op 34.349 ms/op 1.30
send data - 1000 4096B messages 43.168 ms/op 31.940 ms/op 1.35
send data - 1000 16384B messages 116.53 ms/op 103.66 ms/op 1.12
send data - 1000 65536B messages 484.50 ms/op 370.08 ms/op 1.31
enrSubnets - fastDeserialize 64 bits 1.4200 us/op 1.0320 us/op 1.38
enrSubnets - ssz BitVector 64 bits 437.00 ns/op 528.00 ns/op 0.83
enrSubnets - fastDeserialize 4 bits 171.00 ns/op 245.00 ns/op 0.70
enrSubnets - ssz BitVector 4 bits 431.00 ns/op 422.00 ns/op 1.02
prioritizePeers score -10:0 att 32-0.1 sync 2-0 102.88 us/op 65.592 us/op 1.57
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 129.61 us/op 78.263 us/op 1.66
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 166.50 us/op 115.28 us/op 1.44
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 281.33 us/op 182.54 us/op 1.54
prioritizePeers score 0:0 att 64-1 sync 4-1 341.70 us/op 201.10 us/op 1.70
array of 16000 items push then shift 1.6257 us/op 1.2874 us/op 1.26
LinkedList of 16000 items push then shift 9.0250 ns/op 5.9560 ns/op 1.52
array of 16000 items push then pop 100.46 ns/op 106.78 ns/op 0.94
LinkedList of 16000 items push then pop 8.7710 ns/op 5.9150 ns/op 1.48
array of 24000 items push then shift 2.5193 us/op 1.8422 us/op 1.37
LinkedList of 24000 items push then shift 8.7810 ns/op 6.0910 ns/op 1.44
array of 24000 items push then pop 104.40 ns/op 130.71 ns/op 0.80
LinkedList of 24000 items push then pop 8.4740 ns/op 6.1540 ns/op 1.38
intersect bitArray bitLen 8 6.4300 ns/op 5.1680 ns/op 1.24
intersect array and set length 8 61.913 ns/op 53.200 ns/op 1.16
intersect bitArray bitLen 128 33.227 ns/op 27.672 ns/op 1.20
intersect array and set length 128 834.86 ns/op 679.93 ns/op 1.23
bitArray.getTrueBitIndexes() bitLen 128 1.5500 us/op 1.1530 us/op 1.34
bitArray.getTrueBitIndexes() bitLen 248 2.3780 us/op 2.2610 us/op 1.05
bitArray.getTrueBitIndexes() bitLen 512 4.6820 us/op 4.8440 us/op 0.97
Buffer.concat 32 items 957.00 ns/op 923.00 ns/op 1.04
Uint8Array.set 32 items 1.7240 us/op 1.9070 us/op 0.90
Set add up to 64 items then delete first 4.2400 us/op 1.9853 us/op 2.14
OrderedSet add up to 64 items then delete first 5.3270 us/op 2.8205 us/op 1.89
Set add up to 64 items then delete last 4.4824 us/op 1.9869 us/op 2.26
OrderedSet add up to 64 items then delete last 5.5901 us/op 3.3322 us/op 1.68
Set add up to 64 items then delete middle 4.4662 us/op 1.9811 us/op 2.25
OrderedSet add up to 64 items then delete middle 6.8715 us/op 4.3721 us/op 1.57
Set add up to 128 items then delete first 9.1491 us/op 4.0473 us/op 2.26
OrderedSet add up to 128 items then delete first 12.070 us/op 6.2263 us/op 1.94
Set add up to 128 items then delete last 8.8878 us/op 3.9393 us/op 2.26
OrderedSet add up to 128 items then delete last 11.272 us/op 5.9193 us/op 1.90
Set add up to 128 items then delete middle 8.8590 us/op 3.6730 us/op 2.41
OrderedSet add up to 128 items then delete middle 16.588 us/op 11.468 us/op 1.45
Set add up to 256 items then delete first 18.399 us/op 8.3567 us/op 2.20
OrderedSet add up to 256 items then delete first 24.694 us/op 12.260 us/op 2.01
Set add up to 256 items then delete last 17.830 us/op 7.3550 us/op 2.42
OrderedSet add up to 256 items then delete last 22.831 us/op 12.179 us/op 1.87
Set add up to 256 items then delete middle 17.787 us/op 7.2950 us/op 2.44
OrderedSet add up to 256 items then delete middle 44.031 us/op 32.351 us/op 1.36
transfer serialized Status (84 B) 1.7750 us/op 1.6960 us/op 1.05
copy serialized Status (84 B) 1.4600 us/op 1.4410 us/op 1.01
transfer serialized SignedVoluntaryExit (112 B) 1.9050 us/op 1.5580 us/op 1.22
copy serialized SignedVoluntaryExit (112 B) 1.5810 us/op 1.4030 us/op 1.13
transfer serialized ProposerSlashing (416 B) 2.2070 us/op 2.1860 us/op 1.01
copy serialized ProposerSlashing (416 B) 1.7300 us/op 2.2460 us/op 0.77
transfer serialized Attestation (485 B) 1.9320 us/op 2.1990 us/op 0.88
copy serialized Attestation (485 B) 1.7230 us/op 2.0860 us/op 0.83
transfer serialized AttesterSlashing (33232 B) 2.0840 us/op 1.9020 us/op 1.10
copy serialized AttesterSlashing (33232 B) 5.0110 us/op 4.6060 us/op 1.09
transfer serialized Small SignedBeaconBlock (128000 B) 3.3620 us/op 2.5440 us/op 1.32
copy serialized Small SignedBeaconBlock (128000 B) 14.838 us/op 9.5800 us/op 1.55
transfer serialized Avg SignedBeaconBlock (200000 B) 3.5140 us/op 2.2020 us/op 1.60
copy serialized Avg SignedBeaconBlock (200000 B) 20.394 us/op 22.919 us/op 0.89
transfer serialized BlobsSidecar (524380 B) 3.3750 us/op 3.0830 us/op 1.09
copy serialized BlobsSidecar (524380 B) 89.808 us/op 76.663 us/op 1.17
transfer serialized Big SignedBeaconBlock (1000000 B) 3.4250 us/op 2.8970 us/op 1.18
copy serialized Big SignedBeaconBlock (1000000 B) 146.93 us/op 168.19 us/op 0.87
pass gossip attestations to forkchoice per slot 4.2139 ms/op 2.9731 ms/op 1.42
forkChoice updateHead vc 100000 bc 64 eq 0 681.93 us/op 482.38 us/op 1.41
forkChoice updateHead vc 600000 bc 64 eq 0 4.4299 ms/op 3.8260 ms/op 1.16
forkChoice updateHead vc 1000000 bc 64 eq 0 7.2729 ms/op 4.6642 ms/op 1.56
forkChoice updateHead vc 600000 bc 320 eq 0 4.1854 ms/op 2.8592 ms/op 1.46
forkChoice updateHead vc 600000 bc 1200 eq 0 4.3266 ms/op 3.0914 ms/op 1.40
forkChoice updateHead vc 600000 bc 7200 eq 0 5.3327 ms/op 3.7224 ms/op 1.43
forkChoice updateHead vc 600000 bc 64 eq 1000 10.841 ms/op 10.276 ms/op 1.05
forkChoice updateHead vc 600000 bc 64 eq 10000 11.438 ms/op 10.011 ms/op 1.14
forkChoice updateHead vc 600000 bc 64 eq 300000 15.569 ms/op 14.607 ms/op 1.07
computeDeltas 500000 validators 300 proto nodes 6.5436 ms/op 3.2500 ms/op 2.01
computeDeltas 500000 validators 1200 proto nodes 6.3042 ms/op 3.0829 ms/op 2.04
computeDeltas 500000 validators 7200 proto nodes 6.2149 ms/op 3.2258 ms/op 1.93
computeDeltas 750000 validators 300 proto nodes 9.6185 ms/op 4.8535 ms/op 1.98
computeDeltas 750000 validators 1200 proto nodes 9.5119 ms/op 4.9219 ms/op 1.93
computeDeltas 750000 validators 7200 proto nodes 9.6656 ms/op 4.6823 ms/op 2.06
computeDeltas 1400000 validators 300 proto nodes 18.435 ms/op 9.3481 ms/op 1.97
computeDeltas 1400000 validators 1200 proto nodes 18.677 ms/op 9.1057 ms/op 2.05
computeDeltas 1400000 validators 7200 proto nodes 18.536 ms/op 8.7210 ms/op 2.13
computeDeltas 2100000 validators 300 proto nodes 27.574 ms/op 13.957 ms/op 1.98
computeDeltas 2100000 validators 1200 proto nodes 27.532 ms/op 13.699 ms/op 2.01
computeDeltas 2100000 validators 7200 proto nodes 27.489 ms/op 14.078 ms/op 1.95
computeProposerBoostScoreFromBalances 500000 validators 3.6959 ms/op 3.2951 ms/op 1.12
computeProposerBoostScoreFromBalances 750000 validators 3.7049 ms/op 3.3428 ms/op 1.11
computeProposerBoostScoreFromBalances 1400000 validators 3.6700 ms/op 3.8623 ms/op 0.95
computeProposerBoostScoreFromBalances 2100000 validators 3.6900 ms/op 3.7005 ms/op 1.00
altair processAttestation - 250000 vs - 7PWei normalcase 2.2879 ms/op 3.0162 ms/op 0.76
altair processAttestation - 250000 vs - 7PWei worstcase 3.3806 ms/op 2.6168 ms/op 1.29
altair processAttestation - setStatus - 1/6 committees join 179.76 us/op 77.270 us/op 2.33
altair processAttestation - setStatus - 1/3 committees join 338.21 us/op 150.13 us/op 2.25
altair processAttestation - setStatus - 1/2 committees join 466.98 us/op 234.20 us/op 1.99
altair processAttestation - setStatus - 2/3 committees join 581.09 us/op 264.10 us/op 2.20
altair processAttestation - setStatus - 4/5 committees join 773.05 us/op 425.99 us/op 1.81
altair processAttestation - setStatus - 100% committees join 930.73 us/op 464.56 us/op 2.00
altair processBlock - 250000 vs - 7PWei normalcase 10.463 ms/op 9.8948 ms/op 1.06
altair processBlock - 250000 vs - 7PWei normalcase hashState 36.882 ms/op 26.732 ms/op 1.38
altair processBlock - 250000 vs - 7PWei worstcase 36.494 ms/op 30.771 ms/op 1.19
altair processBlock - 250000 vs - 7PWei worstcase hashState 94.810 ms/op 78.043 ms/op 1.21
phase0 processBlock - 250000 vs - 7PWei normalcase 2.4888 ms/op 3.0785 ms/op 0.81
phase0 processBlock - 250000 vs - 7PWei worstcase 29.561 ms/op 28.083 ms/op 1.05
altair processEth1Data - 250000 vs - 7PWei normalcase 602.89 us/op 576.18 us/op 1.05
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 15.599 us/op 9.9570 us/op 1.57
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 65.991 us/op 53.105 us/op 1.24
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 22.045 us/op 15.054 us/op 1.46
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 12.940 us/op 10.535 us/op 1.23
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 177.42 us/op 120.39 us/op 1.47
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.4567 ms/op 809.85 us/op 1.80
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.9930 ms/op 1.2314 ms/op 1.62
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.9160 ms/op 1.3026 ms/op 1.47
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.8397 ms/op 2.3124 ms/op 1.66
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.5450 ms/op 1.4588 ms/op 1.74
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.3784 ms/op 3.3705 ms/op 1.60
Tree 40 250000 create 354.87 ms/op 246.31 ms/op 1.44
Tree 40 250000 get(125000) 197.19 ns/op 102.08 ns/op 1.93
Tree 40 250000 set(125000) 1.0605 us/op 786.37 ns/op 1.35
Tree 40 250000 toArray() 20.049 ms/op 16.241 ms/op 1.23
Tree 40 250000 iterate all - toArray() + loop 21.105 ms/op 21.057 ms/op 1.00
Tree 40 250000 iterate all - get(i) 67.990 ms/op 42.775 ms/op 1.59
MutableVector 250000 create 15.175 ms/op 12.499 ms/op 1.21
MutableVector 250000 get(125000) 7.1200 ns/op 5.6040 ns/op 1.27
MutableVector 250000 set(125000) 302.57 ns/op 216.68 ns/op 1.40
MutableVector 250000 toArray() 3.3397 ms/op 2.6842 ms/op 1.24
MutableVector 250000 iterate all - toArray() + loop 3.7919 ms/op 3.3447 ms/op 1.13
MutableVector 250000 iterate all - get(i) 1.5649 ms/op 1.3334 ms/op 1.17
Array 250000 create 2.9785 ms/op 3.8844 ms/op 0.77
Array 250000 clone - spread 1.4055 ms/op 1.1231 ms/op 1.25
Array 250000 get(125000) 1.1210 ns/op 1.0060 ns/op 1.11
Array 250000 set(125000) 4.1880 ns/op 1.2190 ns/op 3.44
Array 250000 iterate all - loop 168.22 us/op 157.22 us/op 1.07
effectiveBalanceIncrements clone Uint8Array 300000 31.296 us/op 12.680 us/op 2.47
effectiveBalanceIncrements clone MutableVector 300000 427.00 ns/op 373.00 ns/op 1.14
effectiveBalanceIncrements rw all Uint8Array 300000 203.62 us/op 183.63 us/op 1.11
effectiveBalanceIncrements rw all MutableVector 300000 90.834 ms/op 61.517 ms/op 1.48
phase0 afterProcessEpoch - 250000 vs - 7PWei 118.87 ms/op 75.384 ms/op 1.58
phase0 beforeProcessEpoch - 250000 vs - 7PWei 40.453 ms/op 46.951 ms/op 0.86
altair processEpoch - mainnet_e81889 543.97 ms/op 391.82 ms/op 1.39
mainnet_e81889 - altair beforeProcessEpoch 98.651 ms/op 69.203 ms/op 1.43
mainnet_e81889 - altair processJustificationAndFinalization 16.403 us/op 16.123 us/op 1.02
mainnet_e81889 - altair processInactivityUpdates 6.4878 ms/op 5.1859 ms/op 1.25
mainnet_e81889 - altair processRewardsAndPenalties 67.216 ms/op 51.928 ms/op 1.29
mainnet_e81889 - altair processRegistryUpdates 2.6420 us/op 3.8180 us/op 0.69
mainnet_e81889 - altair processSlashings 478.00 ns/op 650.00 ns/op 0.74
mainnet_e81889 - altair processEth1DataReset 732.00 ns/op 973.00 ns/op 0.75
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.7643 ms/op 1.5984 ms/op 1.10
mainnet_e81889 - altair processSlashingsReset 5.6580 us/op 4.9130 us/op 1.15
mainnet_e81889 - altair processRandaoMixesReset 7.2570 us/op 8.7350 us/op 0.83
mainnet_e81889 - altair processHistoricalRootsUpdate 954.00 ns/op 1.3740 us/op 0.69
mainnet_e81889 - altair processParticipationFlagUpdates 3.1340 us/op 4.5730 us/op 0.69
mainnet_e81889 - altair processSyncCommitteeUpdates 1.0900 us/op 1.4660 us/op 0.74
mainnet_e81889 - altair afterProcessEpoch 127.16 ms/op 87.640 ms/op 1.45
capella processEpoch - mainnet_e217614 3.7158 s/op 2.1614 s/op 1.72
mainnet_e217614 - capella beforeProcessEpoch 523.32 ms/op 493.99 ms/op 1.06
mainnet_e217614 - capella processJustificationAndFinalization 15.038 us/op 14.860 us/op 1.01
mainnet_e217614 - capella processInactivityUpdates 19.839 ms/op 23.602 ms/op 0.84
mainnet_e217614 - capella processRewardsAndPenalties 429.90 ms/op 440.77 ms/op 0.98
mainnet_e217614 - capella processRegistryUpdates 37.967 us/op 34.351 us/op 1.11
mainnet_e217614 - capella processSlashings 1.0270 us/op 1.1020 us/op 0.93
mainnet_e217614 - capella processEth1DataReset 734.00 ns/op 993.00 ns/op 0.74
mainnet_e217614 - capella processEffectiveBalanceUpdates 5.5473 ms/op 4.1363 ms/op 1.34
mainnet_e217614 - capella processSlashingsReset 5.5960 us/op 3.1380 us/op 1.78
mainnet_e217614 - capella processRandaoMixesReset 6.0220 us/op 5.6200 us/op 1.07
mainnet_e217614 - capella processHistoricalRootsUpdate 809.00 ns/op 936.00 ns/op 0.86
mainnet_e217614 - capella processParticipationFlagUpdates 2.4280 us/op 2.3730 us/op 1.02
mainnet_e217614 - capella afterProcessEpoch 382.43 ms/op 227.04 ms/op 1.68
phase0 processEpoch - mainnet_e58758 501.74 ms/op 441.08 ms/op 1.14
mainnet_e58758 - phase0 beforeProcessEpoch 123.74 ms/op 137.80 ms/op 0.90
mainnet_e58758 - phase0 processJustificationAndFinalization 21.608 us/op 18.932 us/op 1.14
mainnet_e58758 - phase0 processRewardsAndPenalties 53.790 ms/op 56.213 ms/op 0.96
mainnet_e58758 - phase0 processRegistryUpdates 12.154 us/op 13.012 us/op 0.93
mainnet_e58758 - phase0 processSlashings 587.00 ns/op 898.00 ns/op 0.65
mainnet_e58758 - phase0 processEth1DataReset 766.00 ns/op 996.00 ns/op 0.77
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.2357 ms/op 1.0087 ms/op 1.23
mainnet_e58758 - phase0 processSlashingsReset 4.8000 us/op 4.0270 us/op 1.19
mainnet_e58758 - phase0 processRandaoMixesReset 6.0500 us/op 7.2240 us/op 0.84
mainnet_e58758 - phase0 processHistoricalRootsUpdate 538.00 ns/op 1.1750 us/op 0.46
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.0020 us/op 5.7060 us/op 0.70
mainnet_e58758 - phase0 afterProcessEpoch 99.097 ms/op 68.617 ms/op 1.44
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.4322 ms/op 1.0612 ms/op 1.35
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5690 ms/op 1.2506 ms/op 1.25
altair processInactivityUpdates - 250000 normalcase 23.684 ms/op 25.021 ms/op 0.95
altair processInactivityUpdates - 250000 worstcase 27.087 ms/op 25.922 ms/op 1.04
phase0 processRegistryUpdates - 250000 normalcase 10.360 us/op 12.224 us/op 0.85
phase0 processRegistryUpdates - 250000 badcase_full_deposits 402.62 us/op 440.09 us/op 0.91
phase0 processRegistryUpdates - 250000 worstcase 0.5 139.57 ms/op 127.60 ms/op 1.09
altair processRewardsAndPenalties - 250000 normalcase 59.141 ms/op 63.116 ms/op 0.94
altair processRewardsAndPenalties - 250000 worstcase 61.386 ms/op 56.359 ms/op 1.09
phase0 getAttestationDeltas - 250000 normalcase 11.354 ms/op 7.6533 ms/op 1.48
phase0 getAttestationDeltas - 250000 worstcase 10.693 ms/op 5.2947 ms/op 2.02
phase0 processSlashings - 250000 worstcase 100.17 us/op 85.527 us/op 1.17
altair processSyncCommitteeUpdates - 250000 163.45 ms/op 125.29 ms/op 1.30
BeaconState.hashTreeRoot - No change 264.00 ns/op 374.00 ns/op 0.71
BeaconState.hashTreeRoot - 1 full validator 137.25 us/op 171.14 us/op 0.80
BeaconState.hashTreeRoot - 32 full validator 1.7694 ms/op 1.0850 ms/op 1.63
BeaconState.hashTreeRoot - 512 full validator 16.264 ms/op 13.757 ms/op 1.18
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 174.24 us/op 166.25 us/op 1.05
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.2895 ms/op 2.0386 ms/op 1.12
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 31.519 ms/op 25.438 ms/op 1.24
BeaconState.hashTreeRoot - 1 balances 153.99 us/op 155.80 us/op 0.99
BeaconState.hashTreeRoot - 32 balances 1.3612 ms/op 1.0906 ms/op 1.25
BeaconState.hashTreeRoot - 512 balances 15.483 ms/op 10.347 ms/op 1.50
BeaconState.hashTreeRoot - 250000 balances 233.07 ms/op 197.90 ms/op 1.18
aggregationBits - 2048 els - zipIndexesInBitList 20.337 us/op 16.484 us/op 1.23
byteArrayEquals 32 77.451 ns/op 62.734 ns/op 1.23
Buffer.compare 32 58.051 ns/op 35.799 ns/op 1.62
byteArrayEquals 1024 2.1240 us/op 1.7265 us/op 1.23
Buffer.compare 1024 75.113 ns/op 42.794 ns/op 1.76
byteArrayEquals 16384 33.725 us/op 27.252 us/op 1.24
Buffer.compare 16384 254.92 ns/op 204.07 ns/op 1.25
byteArrayEquals 123687377 277.04 ms/op 212.39 ms/op 1.30
Buffer.compare 123687377 10.278 ms/op 5.8759 ms/op 1.75
byteArrayEquals 32 - diff last byte 90.199 ns/op 59.488 ns/op 1.52
Buffer.compare 32 - diff last byte 61.179 ns/op 35.962 ns/op 1.70
byteArrayEquals 1024 - diff last byte 2.1298 us/op 1.6582 us/op 1.28
Buffer.compare 1024 - diff last byte 74.034 ns/op 43.098 ns/op 1.72
byteArrayEquals 16384 - diff last byte 34.177 us/op 26.634 us/op 1.28
Buffer.compare 16384 - diff last byte 291.11 ns/op 216.24 ns/op 1.35
byteArrayEquals 123687377 - diff last byte 281.10 ms/op 212.73 ms/op 1.32
Buffer.compare 123687377 - diff last byte 11.046 ms/op 6.8564 ms/op 1.61
byteArrayEquals 32 - random bytes 8.5160 ns/op 4.9680 ns/op 1.71
Buffer.compare 32 - random bytes 67.878 ns/op 41.468 ns/op 1.64
byteArrayEquals 1024 - random bytes 6.4300 ns/op 5.0820 ns/op 1.27
Buffer.compare 1024 - random bytes 66.620 ns/op 40.540 ns/op 1.64
byteArrayEquals 16384 - random bytes 6.8770 ns/op 4.9630 ns/op 1.39
Buffer.compare 16384 - random bytes 70.447 ns/op 41.602 ns/op 1.69
byteArrayEquals 123687377 - random bytes 16.690 ns/op 8.4200 ns/op 1.98
Buffer.compare 123687377 - random bytes 88.100 ns/op 46.280 ns/op 1.90
regular array get 100000 times 54.454 us/op 43.793 us/op 1.24
wrappedArray get 100000 times 58.983 us/op 43.401 us/op 1.36
arrayWithProxy get 100000 times 17.514 ms/op 9.6935 ms/op 1.81
ssz.Root.equals 59.209 ns/op 55.385 ns/op 1.07
byteArrayEquals 57.642 ns/op 55.257 ns/op 1.04
Buffer.compare 16.157 ns/op 10.583 ns/op 1.53
shuffle list - 16384 els 8.1760 ms/op 4.6993 ms/op 1.74
shuffle list - 250000 els 118.20 ms/op 68.436 ms/op 1.73
processSlot - 1 slots 21.804 us/op 17.749 us/op 1.23
processSlot - 32 slots 5.1598 ms/op 3.6004 ms/op 1.43
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 70.940 ms/op 49.852 ms/op 1.42
getCommitteeAssignments - req 1 vs - 250000 vc 2.5699 ms/op 2.2081 ms/op 1.16
getCommitteeAssignments - req 100 vs - 250000 vc 3.7921 ms/op 3.3590 ms/op 1.13
getCommitteeAssignments - req 1000 vs - 250000 vc 4.1754 ms/op 3.6741 ms/op 1.14
findModifiedValidators - 10000 modified validators 574.01 ms/op 439.31 ms/op 1.31
findModifiedValidators - 1000 modified validators 478.60 ms/op 304.03 ms/op 1.57
findModifiedValidators - 100 modified validators 428.73 ms/op 323.55 ms/op 1.33
findModifiedValidators - 10 modified validators 381.03 ms/op 300.57 ms/op 1.27
findModifiedValidators - 1 modified validators 404.62 ms/op 311.82 ms/op 1.30
findModifiedValidators - no difference 403.85 ms/op 312.08 ms/op 1.29
compare ViewDUs 4.5365 s/op 3.9075 s/op 1.16
compare each validator Uint8Array 1.7562 s/op 1.5525 s/op 1.13
compare ViewDU to Uint8Array 1.1869 s/op 1.1262 s/op 1.05
migrate state 1000000 validators, 24 modified, 0 new 783.83 ms/op 769.11 ms/op 1.02
migrate state 1000000 validators, 1700 modified, 1000 new 1.0818 s/op 983.27 ms/op 1.10
migrate state 1000000 validators, 3400 modified, 2000 new 1.3121 s/op 1.3217 s/op 0.99
migrate state 1500000 validators, 24 modified, 0 new 786.78 ms/op 726.33 ms/op 1.08
migrate state 1500000 validators, 1700 modified, 1000 new 1.0894 s/op 910.93 ms/op 1.20
migrate state 1500000 validators, 3400 modified, 2000 new 1.2946 s/op 1.2965 s/op 1.00
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.0200 ns/op 5.0800 ns/op 0.79
state getBlockRootAtSlot - 250000 vs - 7PWei 736.92 ns/op 980.00 ns/op 0.75
computeProposers - vc 250000 8.8588 ms/op 7.3237 ms/op 1.21
computeEpochShuffling - vc 250000 101.54 ms/op 72.183 ms/op 1.41
getNextSyncCommittee - vc 250000 152.15 ms/op 148.65 ms/op 1.02
computeSigningRoot for AttestationData 26.964 us/op 23.650 us/op 1.14
hash AttestationData serialized data then Buffer.toString(base64) 2.2596 us/op 1.2884 us/op 1.75
toHexString serialized data 1.0481 us/op 825.25 ns/op 1.27
Buffer.toString(base64) 219.04 ns/op 153.54 ns/op 1.43

by benchmarkbot/action

wemeetagain
wemeetagain previously approved these changes Dec 5, 2023
Copy link
Member

@nflaig nflaig left a comment

Choose a reason for hiding this comment

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

Not sure about adding os specifics like this, @matthewkeil probably has some thoughts. Does the docs rework maybe address this is a nicer way?

README.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
packages/db/test/unit/controller/level.test.ts Outdated Show resolved Hide resolved
Copy link
Member

@matthewkeil matthewkeil left a comment

Choose a reason for hiding this comment

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

Just a couple of nits but overall strong start! Welcome to the team 🚀

CONTRIBUTING.md Outdated Show resolved Hide resolved
packages/db/test/unit/controller/level.test.ts Outdated Show resolved Hide resolved
@jeluard jeluard force-pushed the jeluard/chore-osx-prerequisites branch from b482b5d to d82d729 Compare December 7, 2023 07:40
@jeluard jeluard force-pushed the jeluard/chore-osx-prerequisites branch from d82d729 to f59b5fe Compare December 7, 2023 08:01
@jeluard jeluard requested a review from matthewkeil December 7, 2023 08:10
README.md Outdated Show resolved Hide resolved
@nflaig nflaig changed the title chore: improve prerequisites for OSX users docs: improve prerequisites for OSX users Dec 7, 2023
@jeluard jeluard requested a review from nflaig December 7, 2023 09:02
Copy link
Member

@matthewkeil matthewkeil left a comment

Choose a reason for hiding this comment

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

LGTM! 🎸

@nflaig nflaig enabled auto-merge (squash) December 7, 2023 15:09
@nflaig nflaig merged commit 5270ef2 into unstable Dec 7, 2023
20 checks passed
@nflaig nflaig deleted the jeluard/chore-osx-prerequisites branch December 7, 2023 15:24
@wemeetagain
Copy link
Member

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

5 participants