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

Move types dir to root #4216

Merged
merged 2 commits into from
Jun 28, 2022
Merged

Move types dir to root #4216

merged 2 commits into from
Jun 28, 2022

Conversation

dapplion
Copy link
Contributor

Motivation

extra types definitions are duplicated across lodestar cli and spec-test-utils packages. This causes weird type issues since the same library has different types depending on where it's loaded.

Description

Move types dir to root, and re-use across all packages

@dapplion dapplion requested a review from a team as a code owner June 28, 2022 15:14
@dadepo
Copy link
Contributor

dadepo commented Jun 28, 2022

Except the failing CI, looks fine. The CI break looks related to libp2p-mplex so may not be a direct result of the changes?

@dapplion
Copy link
Contributor Author

dapplion commented Jun 28, 2022

Except the failing CI, looks fine. The CI break looks related to libp2p-mplex so may not be a direct result of the changes?

The issue is the root path, which is only used by the benchmarks action

"typeRoots": ["node_modules/@types", "./types"],

@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 0dc1861 Previous: 7c5aa21 Ratio
altair processAttestation - 250000 vs - 7PWei normalcase 4.3862 ms/op 4.1483 ms/op 1.06
altair processAttestation - 250000 vs - 7PWei worstcase 7.0545 ms/op 7.4266 ms/op 0.95
altair processAttestation - setStatus - 1/6 committees join 236.09 us/op 219.56 us/op 1.08
altair processAttestation - setStatus - 1/3 committees join 467.38 us/op 420.15 us/op 1.11
altair processAttestation - setStatus - 1/2 committees join 638.97 us/op 590.43 us/op 1.08
altair processAttestation - setStatus - 2/3 committees join 867.28 us/op 764.16 us/op 1.13
altair processAttestation - setStatus - 4/5 committees join 1.1355 ms/op 1.0146 ms/op 1.12
altair processAttestation - setStatus - 100% committees join 1.3292 ms/op 1.2678 ms/op 1.05
altair processBlock - 250000 vs - 7PWei normalcase 30.580 ms/op 28.153 ms/op 1.09
altair processBlock - 250000 vs - 7PWei normalcase hashState 40.599 ms/op 36.439 ms/op 1.11
altair processBlock - 250000 vs - 7PWei worstcase 100.25 ms/op 96.186 ms/op 1.04
altair processBlock - 250000 vs - 7PWei worstcase hashState 123.28 ms/op 127.70 ms/op 0.97
phase0 processBlock - 250000 vs - 7PWei normalcase 4.1459 ms/op 3.9288 ms/op 1.06
phase0 processBlock - 250000 vs - 7PWei worstcase 52.984 ms/op 59.486 ms/op 0.89
altair processEth1Data - 250000 vs - 7PWei normalcase 806.50 us/op 823.86 us/op 0.98
Tree 40 250000 create 911.34 ms/op 947.38 ms/op 0.96
Tree 40 250000 get(125000) 341.97 ns/op 324.06 ns/op 1.06
Tree 40 250000 set(125000) 2.8811 us/op 3.0804 us/op 0.94
Tree 40 250000 toArray() 37.631 ms/op 34.379 ms/op 1.09
Tree 40 250000 iterate all - toArray() + loop 37.100 ms/op 33.969 ms/op 1.09
Tree 40 250000 iterate all - get(i) 133.32 ms/op 126.83 ms/op 1.05
MutableVector 250000 create 22.044 ms/op 18.937 ms/op 1.16
MutableVector 250000 get(125000) 15.978 ns/op 13.193 ns/op 1.21
MutableVector 250000 set(125000) 721.35 ns/op 850.92 ns/op 0.85
MutableVector 250000 toArray() 8.2914 ms/op 6.8382 ms/op 1.21
MutableVector 250000 iterate all - toArray() + loop 8.3918 ms/op 6.8786 ms/op 1.22
MutableVector 250000 iterate all - get(i) 3.7902 ms/op 3.3093 ms/op 1.15
Array 250000 create 7.5492 ms/op 6.6327 ms/op 1.14
Array 250000 clone - spread 4.2902 ms/op 4.9969 ms/op 0.86
Array 250000 get(125000) 1.7790 ns/op 2.0480 ns/op 0.87
Array 250000 set(125000) 1.6870 ns/op 1.9620 ns/op 0.86
Array 250000 iterate all - loop 200.30 us/op 137.53 us/op 1.46
effectiveBalanceIncrements clone Uint8Array 300000 115.92 us/op 286.26 us/op 0.40
effectiveBalanceIncrements clone MutableVector 300000 790.00 ns/op 724.00 ns/op 1.09
effectiveBalanceIncrements rw all Uint8Array 300000 292.36 us/op 285.19 us/op 1.03
effectiveBalanceIncrements rw all MutableVector 300000 190.03 ms/op 206.56 ms/op 0.92
phase0 afterProcessEpoch - 250000 vs - 7PWei 236.99 ms/op 205.01 ms/op 1.16
phase0 beforeProcessEpoch - 250000 vs - 7PWei 77.721 ms/op 73.606 ms/op 1.06
altair processEpoch - mainnet_e81889 667.93 ms/op 607.97 ms/op 1.10
mainnet_e81889 - altair beforeProcessEpoch 118.02 ms/op 106.55 ms/op 1.11
mainnet_e81889 - altair processJustificationAndFinalization 37.110 us/op 76.400 us/op 0.49
mainnet_e81889 - altair processInactivityUpdates 14.005 ms/op 11.698 ms/op 1.20
mainnet_e81889 - altair processRewardsAndPenalties 100.84 ms/op 147.02 ms/op 0.69
mainnet_e81889 - altair processRegistryUpdates 7.9020 us/op 25.516 us/op 0.31
mainnet_e81889 - altair processSlashings 1.7880 us/op 4.2160 us/op 0.42
mainnet_e81889 - altair processEth1DataReset 1.8580 us/op 5.1910 us/op 0.36
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.6999 ms/op 3.3337 ms/op 0.81
mainnet_e81889 - altair processSlashingsReset 13.950 us/op 32.234 us/op 0.43
mainnet_e81889 - altair processRandaoMixesReset 15.686 us/op 34.965 us/op 0.45
mainnet_e81889 - altair processHistoricalRootsUpdate 2.2460 us/op 6.1750 us/op 0.36
mainnet_e81889 - altair processParticipationFlagUpdates 6.4910 us/op 19.495 us/op 0.33
mainnet_e81889 - altair processSyncCommitteeUpdates 1.8180 us/op 5.2990 us/op 0.34
mainnet_e81889 - altair afterProcessEpoch 263.07 ms/op 201.64 ms/op 1.30
phase0 processEpoch - mainnet_e58758 676.45 ms/op 584.14 ms/op 1.16
mainnet_e58758 - phase0 beforeProcessEpoch 263.59 ms/op 231.68 ms/op 1.14
mainnet_e58758 - phase0 processJustificationAndFinalization 35.780 us/op 66.829 us/op 0.54
mainnet_e58758 - phase0 processRewardsAndPenalties 156.00 ms/op 140.86 ms/op 1.11
mainnet_e58758 - phase0 processRegistryUpdates 18.587 us/op 38.693 us/op 0.48
mainnet_e58758 - phase0 processSlashings 1.6620 us/op 4.4560 us/op 0.37
mainnet_e58758 - phase0 processEth1DataReset 1.7100 us/op 5.6970 us/op 0.30
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.4142 ms/op 2.8051 ms/op 0.86
mainnet_e58758 - phase0 processSlashingsReset 10.089 us/op 21.441 us/op 0.47
mainnet_e58758 - phase0 processRandaoMixesReset 14.760 us/op 30.395 us/op 0.49
mainnet_e58758 - phase0 processHistoricalRootsUpdate 2.4190 us/op 6.1000 us/op 0.40
mainnet_e58758 - phase0 processParticipationRecordUpdates 13.258 us/op 30.087 us/op 0.44
mainnet_e58758 - phase0 afterProcessEpoch 190.88 ms/op 166.12 ms/op 1.15
phase0 processEffectiveBalanceUpdates - 250000 normalcase 3.1439 ms/op 2.5194 ms/op 1.25
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 3.5237 ms/op 2.6615 ms/op 1.32
altair processInactivityUpdates - 250000 normalcase 33.026 ms/op 34.031 ms/op 0.97
altair processInactivityUpdates - 250000 worstcase 39.626 ms/op 33.288 ms/op 1.19
phase0 processRegistryUpdates - 250000 normalcase 15.644 us/op 34.170 us/op 0.46
phase0 processRegistryUpdates - 250000 badcase_full_deposits 523.25 us/op 505.71 us/op 1.03
phase0 processRegistryUpdates - 250000 worstcase 0.5 245.01 ms/op 225.35 ms/op 1.09
altair processRewardsAndPenalties - 250000 normalcase 98.446 ms/op 86.931 ms/op 1.13
altair processRewardsAndPenalties - 250000 worstcase 147.18 ms/op 141.39 ms/op 1.04
phase0 getAttestationDeltas - 250000 normalcase 14.645 ms/op 13.095 ms/op 1.12
phase0 getAttestationDeltas - 250000 worstcase 15.111 ms/op 13.688 ms/op 1.10
phase0 processSlashings - 250000 worstcase 6.7706 ms/op 6.0880 ms/op 1.11
altair processSyncCommitteeUpdates - 250000 347.20 ms/op 321.72 ms/op 1.08
BeaconState.hashTreeRoot - No change 798.00 ns/op 673.00 ns/op 1.19
BeaconState.hashTreeRoot - 1 full validator 75.863 us/op 78.301 us/op 0.97
BeaconState.hashTreeRoot - 32 full validator 758.11 us/op 826.93 us/op 0.92
BeaconState.hashTreeRoot - 512 full validator 8.0460 ms/op 7.9659 ms/op 1.01
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 95.657 us/op 109.49 us/op 0.87
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.4144 ms/op 1.2567 ms/op 1.13
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 19.631 ms/op 18.439 ms/op 1.06
BeaconState.hashTreeRoot - 1 balances 73.051 us/op 77.809 us/op 0.94
BeaconState.hashTreeRoot - 32 balances 881.19 us/op 667.33 us/op 1.32
BeaconState.hashTreeRoot - 512 balances 5.8765 ms/op 7.1861 ms/op 0.82
BeaconState.hashTreeRoot - 250000 balances 101.54 ms/op 106.60 ms/op 0.95
aggregationBits - 2048 els - zipIndexesInBitList 37.702 us/op 32.030 us/op 1.18
regular array get 100000 times 77.986 us/op 55.226 us/op 1.41
wrappedArray get 100000 times 78.197 us/op 57.494 us/op 1.36
arrayWithProxy get 100000 times 35.309 ms/op 33.858 ms/op 1.04
ssz.Root.equals 556.00 ns/op 534.00 ns/op 1.04
byteArrayEquals 552.00 ns/op 553.00 ns/op 1.00
shuffle list - 16384 els 13.532 ms/op 12.182 ms/op 1.11
shuffle list - 250000 els 195.15 ms/op 175.41 ms/op 1.11
processSlot - 1 slots 14.166 us/op 16.785 us/op 0.84
processSlot - 32 slots 2.1892 ms/op 2.3071 ms/op 0.95
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 473.08 us/op 373.97 us/op 1.27
getCommitteeAssignments - req 1 vs - 250000 vc 6.1761 ms/op 5.3805 ms/op 1.15
getCommitteeAssignments - req 100 vs - 250000 vc 8.9511 ms/op 7.6888 ms/op 1.16
getCommitteeAssignments - req 1000 vs - 250000 vc 8.7656 ms/op 7.8567 ms/op 1.12
computeProposers - vc 250000 21.073 ms/op 19.711 ms/op 1.07
computeEpochShuffling - vc 250000 194.36 ms/op 174.89 ms/op 1.11
getNextSyncCommittee - vc 250000 316.68 ms/op 322.19 ms/op 0.98
pass gossip attestations to forkchoice per slot 5.7693 ms/op 3.8865 ms/op 1.48
computeDeltas 4.1414 ms/op 3.8304 ms/op 1.08
computeProposerBoostScoreFromBalances 1.0900 ms/op 858.66 us/op 1.27
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.3509 ms/op 2.2042 ms/op 1.07
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 88.435 us/op 88.723 us/op 1.00
BLS verify - blst-native 2.2002 ms/op 2.5919 ms/op 0.85
BLS verifyMultipleSignatures 3 - blst-native 4.5537 ms/op 5.3405 ms/op 0.85
BLS verifyMultipleSignatures 8 - blst-native 9.8525 ms/op 11.285 ms/op 0.87
BLS verifyMultipleSignatures 32 - blst-native 35.106 ms/op 41.028 ms/op 0.86
BLS aggregatePubkeys 32 - blst-native 46.475 us/op 58.687 us/op 0.79
BLS aggregatePubkeys 128 - blst-native 183.18 us/op 231.94 us/op 0.79
getAttestationsForBlock 78.579 ms/op 60.553 ms/op 1.30
isKnown best case - 1 super set check 546.00 ns/op 504.00 ns/op 1.08
isKnown normal case - 2 super set checks 513.00 ns/op 485.00 ns/op 1.06
isKnown worse case - 16 super set checks 501.00 ns/op 483.00 ns/op 1.04
CheckpointStateCache - add get delete 12.246 us/op 12.595 us/op 0.97
validate gossip signedAggregateAndProof - struct 5.0270 ms/op 5.8670 ms/op 0.86
validate gossip attestation - struct 2.3669 ms/op 2.7673 ms/op 0.86
altair verifyImport mainnet_s3766816:31 7.7544 s/op 8.3088 s/op 0.93
pickEth1Vote - no votes 2.5201 ms/op 2.3155 ms/op 1.09
pickEth1Vote - max votes 27.421 ms/op 25.259 ms/op 1.09
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.909 ms/op 14.097 ms/op 1.06
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 25.194 ms/op 22.924 ms/op 1.10
pickEth1Vote - Eth1Data fastSerialize value x2048 1.9134 ms/op 1.7220 ms/op 1.11
pickEth1Vote - Eth1Data fastSerialize tree x2048 18.154 ms/op 18.753 ms/op 0.97
bytes32 toHexString 1.3300 us/op 1.2530 us/op 1.06
bytes32 Buffer.toString(hex) 844.00 ns/op 782.00 ns/op 1.08
bytes32 Buffer.toString(hex) from Uint8Array 1.1060 us/op 1.0770 us/op 1.03
bytes32 Buffer.toString(hex) + 0x 860.00 ns/op 820.00 ns/op 1.05
Object access 1 prop 0.44700 ns/op 0.38000 ns/op 1.18
Map access 1 prop 0.34500 ns/op 0.32600 ns/op 1.06
Object get x1000 22.960 ns/op 15.568 ns/op 1.47
Map get x1000 1.1510 ns/op 0.87800 ns/op 1.31
Object set x1000 144.94 ns/op 113.21 ns/op 1.28
Map set x1000 89.555 ns/op 77.100 ns/op 1.16
Return object 10000 times 0.44490 ns/op 0.40290 ns/op 1.10
Throw Error 10000 times 7.1680 us/op 6.6610 us/op 1.08
enrSubnets - fastDeserialize 64 bits 3.4520 us/op 2.8770 us/op 1.20
enrSubnets - ssz BitVector 64 bits 946.00 ns/op 856.00 ns/op 1.11
enrSubnets - fastDeserialize 4 bits 489.00 ns/op 406.00 ns/op 1.20
enrSubnets - ssz BitVector 4 bits 872.00 ns/op 846.00 ns/op 1.03
prioritizePeers score -10:0 att 32-0.1 sync 2-0 114.24 us/op 105.00 us/op 1.09
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 146.84 us/op 149.43 us/op 0.98
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 243.92 us/op 263.67 us/op 0.93
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 519.32 us/op 561.26 us/op 0.93
prioritizePeers score 0:0 att 64-1 sync 4-1 538.51 us/op 590.69 us/op 0.91
RateTracker 1000000 limit, 1 obj count per request 228.97 ns/op 200.98 ns/op 1.14
RateTracker 1000000 limit, 2 obj count per request 172.26 ns/op 150.78 ns/op 1.14
RateTracker 1000000 limit, 4 obj count per request 146.70 ns/op 119.82 ns/op 1.22
RateTracker 1000000 limit, 8 obj count per request 136.13 ns/op 108.82 ns/op 1.25
RateTracker with prune 5.9020 us/op 4.9160 us/op 1.20
array of 16000 items push then shift 3.6876 us/op 5.1246 us/op 0.72
LinkedList of 16000 items push then shift 28.914 ns/op 28.298 ns/op 1.02
array of 16000 items push then pop 279.96 ns/op 245.65 ns/op 1.14
LinkedList of 16000 items push then pop 23.289 ns/op 23.200 ns/op 1.00
array of 24000 items push then shift 5.4813 us/op 7.7698 us/op 0.71
LinkedList of 24000 items push then shift 29.126 ns/op 28.429 ns/op 1.02
array of 24000 items push then pop 255.62 ns/op 211.06 ns/op 1.21
LinkedList of 24000 items push then pop 23.815 ns/op 24.406 ns/op 0.98
intersect bitArray bitLen 8 13.627 ns/op 11.900 ns/op 1.15
intersect array and set length 8 194.07 ns/op 181.81 ns/op 1.07
intersect bitArray bitLen 128 73.162 ns/op 67.949 ns/op 1.08
intersect array and set length 128 2.6945 us/op 2.3009 us/op 1.17

by benchmarkbot/action

@dapplion dapplion merged commit 157693a into unstable Jun 28, 2022
@dapplion dapplion deleted the dapplion/move-types-to-root branch June 28, 2022 19:35
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