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

Customize fastify bodyLimit #4541

Merged
merged 1 commit into from Sep 13, 2022
Merged

Conversation

dapplion
Copy link
Contributor

Motivation

Description

Sets API body limit to (arbitrary) large enough values:

  • keymanager API bodylimit = 20 MB
  • beacon API bodylimit = 10 MB

Closes #4530

@dapplion dapplion requested a review from a team as a code owner September 13, 2022 07:39
@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: f73cb87 Previous: 2c41af0 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.2159 ms/op 2.3797 ms/op 0.93
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 72.053 us/op 81.078 us/op 0.89
BLS verify - blst-native 1.8564 ms/op 1.8628 ms/op 1.00
BLS verifyMultipleSignatures 3 - blst-native 3.8032 ms/op 3.8196 ms/op 1.00
BLS verifyMultipleSignatures 8 - blst-native 8.1888 ms/op 8.2347 ms/op 0.99
BLS verifyMultipleSignatures 32 - blst-native 29.693 ms/op 29.812 ms/op 1.00
BLS aggregatePubkeys 32 - blst-native 39.157 us/op 39.224 us/op 1.00
BLS aggregatePubkeys 128 - blst-native 152.90 us/op 153.42 us/op 1.00
getAttestationsForBlock 163.49 ms/op 172.54 ms/op 0.95
isKnown best case - 1 super set check 447.00 ns/op 432.00 ns/op 1.03
isKnown normal case - 2 super set checks 433.00 ns/op 425.00 ns/op 1.02
isKnown worse case - 16 super set checks 438.00 ns/op 425.00 ns/op 1.03
CheckpointStateCache - add get delete 8.9160 us/op 9.2060 us/op 0.97
validate gossip signedAggregateAndProof - struct 4.2801 ms/op 4.2854 ms/op 1.00
validate gossip attestation - struct 2.0336 ms/op 2.0418 ms/op 1.00
pickEth1Vote - no votes 2.1828 ms/op 2.2155 ms/op 0.99
pickEth1Vote - max votes 18.904 ms/op 21.583 ms/op 0.88
pickEth1Vote - Eth1Data hashTreeRoot value x2048 11.114 ms/op 11.441 ms/op 0.97
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 21.004 ms/op 20.703 ms/op 1.01
pickEth1Vote - Eth1Data fastSerialize value x2048 1.6505 ms/op 1.5559 ms/op 1.06
pickEth1Vote - Eth1Data fastSerialize tree x2048 13.365 ms/op 14.007 ms/op 0.95
bytes32 toHexString 1.0400 us/op 1.1510 us/op 0.90
bytes32 Buffer.toString(hex) 757.00 ns/op 713.00 ns/op 1.06
bytes32 Buffer.toString(hex) from Uint8Array 1.0180 us/op 1.0150 us/op 1.00
bytes32 Buffer.toString(hex) + 0x 736.00 ns/op 720.00 ns/op 1.02
Object access 1 prop 0.37400 ns/op 0.39100 ns/op 0.96
Map access 1 prop 0.29400 ns/op 0.29600 ns/op 0.99
Object get x1000 18.773 ns/op 17.714 ns/op 1.06
Map get x1000 1.0250 ns/op 1.0070 ns/op 1.02
Object set x1000 119.64 ns/op 125.56 ns/op 0.95
Map set x1000 70.092 ns/op 76.322 ns/op 0.92
Return object 10000 times 0.37390 ns/op 0.36700 ns/op 1.02
Throw Error 10000 times 5.8868 us/op 5.9994 us/op 0.98
enrSubnets - fastDeserialize 64 bits 2.7110 us/op 2.9050 us/op 0.93
enrSubnets - ssz BitVector 64 bits 831.00 ns/op 837.00 ns/op 0.99
enrSubnets - fastDeserialize 4 bits 384.00 ns/op 425.00 ns/op 0.90
enrSubnets - ssz BitVector 4 bits 830.00 ns/op 831.00 ns/op 1.00
prioritizePeers score -10:0 att 32-0.1 sync 2-0 92.226 us/op 97.933 us/op 0.94
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 137.60 us/op 137.65 us/op 1.00
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 218.80 us/op 245.07 us/op 0.89
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 394.86 us/op 394.47 us/op 1.00
prioritizePeers score 0:0 att 64-1 sync 4-1 459.20 us/op 462.51 us/op 0.99
RateTracker 1000000 limit, 1 obj count per request 185.05 ns/op 208.65 ns/op 0.89
RateTracker 1000000 limit, 2 obj count per request 138.40 ns/op 163.05 ns/op 0.85
RateTracker 1000000 limit, 4 obj count per request 115.32 ns/op 140.07 ns/op 0.82
RateTracker 1000000 limit, 8 obj count per request 104.38 ns/op 128.38 ns/op 0.81
RateTracker with prune 4.2410 us/op 5.5300 us/op 0.77
array of 16000 items push then shift 3.1857 us/op 3.2029 us/op 0.99
LinkedList of 16000 items push then shift 17.174 ns/op 17.924 ns/op 0.96
array of 16000 items push then pop 234.19 ns/op 248.41 ns/op 0.94
LinkedList of 16000 items push then pop 16.473 ns/op 16.821 ns/op 0.98
array of 24000 items push then shift 4.5616 us/op 4.5949 us/op 0.99
LinkedList of 24000 items push then shift 20.689 ns/op 21.604 ns/op 0.96
array of 24000 items push then pop 211.98 ns/op 218.46 ns/op 0.97
LinkedList of 24000 items push then pop 17.863 ns/op 18.396 ns/op 0.97
intersect bitArray bitLen 8 11.759 ns/op 11.790 ns/op 1.00
intersect array and set length 8 159.91 ns/op 186.17 ns/op 0.86
intersect bitArray bitLen 128 61.826 ns/op 62.037 ns/op 1.00
intersect array and set length 128 2.1930 us/op 2.3487 us/op 0.93
Buffer.concat 32 items 1.9040 ns/op 2.2660 ns/op 0.84
pass gossip attestations to forkchoice per slot 5.3820 ms/op 5.9424 ms/op 0.91
computeDeltas 3.0905 ms/op 3.6793 ms/op 0.84
computeProposerBoostScoreFromBalances 907.44 us/op 909.54 us/op 1.00
altair processAttestation - 250000 vs - 7PWei normalcase 3.9722 ms/op 4.0715 ms/op 0.98
altair processAttestation - 250000 vs - 7PWei worstcase 5.8802 ms/op 6.1415 ms/op 0.96
altair processAttestation - setStatus - 1/6 committees join 213.65 us/op 218.69 us/op 0.98
altair processAttestation - setStatus - 1/3 committees join 405.42 us/op 417.39 us/op 0.97
altair processAttestation - setStatus - 1/2 committees join 570.50 us/op 584.18 us/op 0.98
altair processAttestation - setStatus - 2/3 committees join 745.21 us/op 755.31 us/op 0.99
altair processAttestation - setStatus - 4/5 committees join 1.0276 ms/op 1.0357 ms/op 0.99
altair processAttestation - setStatus - 100% committees join 1.2116 ms/op 1.2215 ms/op 0.99
altair processBlock - 250000 vs - 7PWei normalcase 27.244 ms/op 28.393 ms/op 0.96
altair processBlock - 250000 vs - 7PWei normalcase hashState 40.969 ms/op 39.125 ms/op 1.05
altair processBlock - 250000 vs - 7PWei worstcase 81.684 ms/op 74.938 ms/op 1.09
altair processBlock - 250000 vs - 7PWei worstcase hashState 97.821 ms/op 97.574 ms/op 1.00
phase0 processBlock - 250000 vs - 7PWei normalcase 3.5747 ms/op 3.8407 ms/op 0.93
phase0 processBlock - 250000 vs - 7PWei worstcase 46.178 ms/op 46.765 ms/op 0.99
altair processEth1Data - 250000 vs - 7PWei normalcase 774.34 us/op 901.51 us/op 0.86
Tree 40 250000 create 760.91 ms/op 889.76 ms/op 0.86
Tree 40 250000 get(125000) 288.61 ns/op 288.11 ns/op 1.00
Tree 40 250000 set(125000) 2.5308 us/op 2.5491 us/op 0.99
Tree 40 250000 toArray() 32.497 ms/op 31.810 ms/op 1.02
Tree 40 250000 iterate all - toArray() + loop 32.725 ms/op 31.521 ms/op 1.04
Tree 40 250000 iterate all - get(i) 113.08 ms/op 109.22 ms/op 1.04
MutableVector 250000 create 15.729 ms/op 18.384 ms/op 0.86
MutableVector 250000 get(125000) 14.765 ns/op 13.128 ns/op 1.12
MutableVector 250000 set(125000) 658.97 ns/op 681.94 ns/op 0.97
MutableVector 250000 toArray() 7.9692 ms/op 7.7551 ms/op 1.03
MutableVector 250000 iterate all - toArray() + loop 8.0068 ms/op 7.8476 ms/op 1.02
MutableVector 250000 iterate all - get(i) 3.4415 ms/op 3.4454 ms/op 1.00
Array 250000 create 7.3546 ms/op 7.1051 ms/op 1.04
Array 250000 clone - spread 2.6585 ms/op 4.1611 ms/op 0.64
Array 250000 get(125000) 1.1510 ns/op 1.7090 ns/op 0.67
Array 250000 set(125000) 1.1430 ns/op 1.7040 ns/op 0.67
Array 250000 iterate all - loop 167.85 us/op 168.20 us/op 1.00
effectiveBalanceIncrements clone Uint8Array 300000 76.221 us/op 98.529 us/op 0.77
effectiveBalanceIncrements clone MutableVector 300000 785.00 ns/op 1.3240 us/op 0.59
effectiveBalanceIncrements rw all Uint8Array 300000 252.46 us/op 253.54 us/op 1.00
effectiveBalanceIncrements rw all MutableVector 300000 168.08 ms/op 227.49 ms/op 0.74
phase0 afterProcessEpoch - 250000 vs - 7PWei 186.25 ms/op 187.19 ms/op 0.99
phase0 beforeProcessEpoch - 250000 vs - 7PWei 72.624 ms/op 92.531 ms/op 0.78
altair processEpoch - mainnet_e81889 587.50 ms/op 581.79 ms/op 1.01
mainnet_e81889 - altair beforeProcessEpoch 158.92 ms/op 157.89 ms/op 1.01
mainnet_e81889 - altair processJustificationAndFinalization 21.007 us/op 23.341 us/op 0.90
mainnet_e81889 - altair processInactivityUpdates 10.697 ms/op 10.953 ms/op 0.98
mainnet_e81889 - altair processRewardsAndPenalties 91.654 ms/op 91.080 ms/op 1.01
mainnet_e81889 - altair processRegistryUpdates 3.3290 us/op 3.7610 us/op 0.89
mainnet_e81889 - altair processSlashings 732.00 ns/op 912.00 ns/op 0.80
mainnet_e81889 - altair processEth1DataReset 805.00 ns/op 894.00 ns/op 0.90
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.2523 ms/op 2.2426 ms/op 1.00
mainnet_e81889 - altair processSlashingsReset 5.8930 us/op 5.5600 us/op 1.06
mainnet_e81889 - altair processRandaoMixesReset 5.4940 us/op 6.1910 us/op 0.89
mainnet_e81889 - altair processHistoricalRootsUpdate 924.00 ns/op 990.00 ns/op 0.93
mainnet_e81889 - altair processParticipationFlagUpdates 3.2250 us/op 2.8940 us/op 1.11
mainnet_e81889 - altair processSyncCommitteeUpdates 839.00 ns/op 784.00 ns/op 1.07
mainnet_e81889 - altair afterProcessEpoch 197.89 ms/op 195.52 ms/op 1.01
phase0 processEpoch - mainnet_e58758 525.96 ms/op 523.30 ms/op 1.01
mainnet_e58758 - phase0 beforeProcessEpoch 228.69 ms/op 227.93 ms/op 1.00
mainnet_e58758 - phase0 processJustificationAndFinalization 20.282 us/op 20.585 us/op 0.99
mainnet_e58758 - phase0 processRewardsAndPenalties 133.00 ms/op 82.798 ms/op 1.61
mainnet_e58758 - phase0 processRegistryUpdates 13.646 us/op 10.806 us/op 1.26
mainnet_e58758 - phase0 processSlashings 886.00 ns/op 816.00 ns/op 1.09
mainnet_e58758 - phase0 processEth1DataReset 980.00 ns/op 866.00 ns/op 1.13
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.2339 ms/op 1.9929 ms/op 1.12
mainnet_e58758 - phase0 processSlashingsReset 5.4980 us/op 5.0650 us/op 1.09
mainnet_e58758 - phase0 processRandaoMixesReset 7.7150 us/op 6.1660 us/op 1.25
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.0600 us/op 900.00 ns/op 1.18
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.7040 us/op 4.8190 us/op 0.98
mainnet_e58758 - phase0 afterProcessEpoch 161.76 ms/op 162.00 ms/op 1.00
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.6222 ms/op 2.5481 ms/op 1.03
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 3.4164 ms/op 3.4662 ms/op 0.99
altair processInactivityUpdates - 250000 normalcase 40.566 ms/op 39.955 ms/op 1.02
altair processInactivityUpdates - 250000 worstcase 40.743 ms/op 40.929 ms/op 1.00
phase0 processRegistryUpdates - 250000 normalcase 8.4160 us/op 8.3850 us/op 1.00
phase0 processRegistryUpdates - 250000 badcase_full_deposits 497.41 us/op 414.60 us/op 1.20
phase0 processRegistryUpdates - 250000 worstcase 0.5 208.69 ms/op 215.11 ms/op 0.97
altair processRewardsAndPenalties - 250000 normalcase 87.250 ms/op 82.468 ms/op 1.06
altair processRewardsAndPenalties - 250000 worstcase 126.34 ms/op 132.66 ms/op 0.95
phase0 getAttestationDeltas - 250000 normalcase 12.480 ms/op 13.620 ms/op 0.92
phase0 getAttestationDeltas - 250000 worstcase 12.722 ms/op 13.198 ms/op 0.96
phase0 processSlashings - 250000 worstcase 5.4338 ms/op 5.3612 ms/op 1.01
altair processSyncCommitteeUpdates - 250000 284.56 ms/op 282.17 ms/op 1.01
BeaconState.hashTreeRoot - No change 650.00 ns/op 509.00 ns/op 1.28
BeaconState.hashTreeRoot - 1 full validator 56.502 us/op 64.633 us/op 0.87
BeaconState.hashTreeRoot - 32 full validator 544.82 us/op 655.33 us/op 0.83
BeaconState.hashTreeRoot - 512 full validator 6.0738 ms/op 6.0366 ms/op 1.01
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 71.255 us/op 78.224 us/op 0.91
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.0187 ms/op 1.1801 ms/op 0.86
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 14.296 ms/op 15.933 ms/op 0.90
BeaconState.hashTreeRoot - 1 balances 53.125 us/op 61.275 us/op 0.87
BeaconState.hashTreeRoot - 32 balances 487.89 us/op 650.18 us/op 0.75
BeaconState.hashTreeRoot - 512 balances 4.5448 ms/op 5.6185 ms/op 0.81
BeaconState.hashTreeRoot - 250000 balances 96.544 ms/op 94.720 ms/op 1.02
aggregationBits - 2048 els - zipIndexesInBitList 31.330 us/op 33.582 us/op 0.93
regular array get 100000 times 67.390 us/op 67.637 us/op 1.00
wrappedArray get 100000 times 67.383 us/op 67.673 us/op 1.00
arrayWithProxy get 100000 times 29.178 ms/op 29.495 ms/op 0.99
ssz.Root.equals 495.00 ns/op 499.00 ns/op 0.99
byteArrayEquals 491.00 ns/op 491.00 ns/op 1.00
shuffle list - 16384 els 11.173 ms/op 11.285 ms/op 0.99
shuffle list - 250000 els 167.20 ms/op 165.36 ms/op 1.01
processSlot - 1 slots 12.316 us/op 11.961 us/op 1.03
processSlot - 32 slots 1.7191 ms/op 1.8149 ms/op 0.95
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 376.67 us/op 354.83 us/op 1.06
getCommitteeAssignments - req 1 vs - 250000 vc 5.3361 ms/op 5.3330 ms/op 1.00
getCommitteeAssignments - req 100 vs - 250000 vc 7.3126 ms/op 7.2957 ms/op 1.00
getCommitteeAssignments - req 1000 vs - 250000 vc 7.7822 ms/op 7.7438 ms/op 1.00
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 10.130 ns/op 9.4100 ns/op 1.08
state getBlockRootAtSlot - 250000 vs - 7PWei 1.1489 us/op 1.2265 us/op 0.94
computeProposers - vc 250000 17.333 ms/op 17.405 ms/op 1.00
computeEpochShuffling - vc 250000 171.15 ms/op 168.17 ms/op 1.02
getNextSyncCommittee - vc 250000 281.34 ms/op 281.24 ms/op 1.00

by benchmarkbot/action

@wemeetagain wemeetagain merged commit 15db5c7 into unstable Sep 13, 2022
@wemeetagain wemeetagain deleted the dapplion/fastify-body-limit branch September 13, 2022 14:08
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.

Lodestar cannot import keystore with slashing protection exported from Prysm
2 participants