Skip to content

Fix response casing for complaince with beacon-apis - #3980

Merged
wemeetagain merged 1 commit into
masterfrom
g11tech/fix-api-response-casing
May 7, 2022
Merged

Fix response casing for complaince with beacon-apis#3980
wemeetagain merged 1 commit into
masterfrom
g11tech/fix-api-response-casing

Conversation

@g11tech

@g11tech g11tech commented May 6, 2022

Copy link
Copy Markdown
Contributor

Motivation
Dhruv from Obol network wanted to operate the lodestar validator against infura beacon node (most likely prysm or lighthouse).
However the validator fails on casing conversion.

To make the casing of response complaint with the beacon-Apis spec.

@g11tech
g11tech requested a review from a team as a code owner May 6, 2022 12:21
@codecov

codecov Bot commented May 6, 2022

Copy link
Copy Markdown

Codecov Report

Merging #3980 (b8609ae) into master (eb8db44) will decrease coverage by 0.59%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3980      +/-   ##
==========================================
- Coverage   37.07%   36.47%   -0.60%     
==========================================
  Files         325      325              
  Lines        9111     9310     +199     
  Branches     1468     1536      +68     
==========================================
+ Hits         3378     3396      +18     
- Misses       5542     5723     +181     
  Partials      191      191              

@github-actions

github-actions Bot commented May 6, 2022

Copy link
Copy Markdown
Contributor

Performance Report

鉁旓笍 no performance regression detected

Full benchmark results
Benchmark suite Current: 7e28646 Previous: efdad3f Ratio
BeaconState.hashTreeRoot - No change 523.00 ns/op 507.00 ns/op 1.03
BeaconState.hashTreeRoot - 1 full validator 73.073 us/op 54.724 us/op 1.34
BeaconState.hashTreeRoot - 32 full validator 714.79 us/op 539.29 us/op 1.33
BeaconState.hashTreeRoot - 512 full validator 8.0308 ms/op 6.0110 ms/op 1.34
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 93.697 us/op 68.558 us/op 1.37
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.3121 ms/op 947.83 us/op 1.38
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 17.994 ms/op 13.117 ms/op 1.37
BeaconState.hashTreeRoot - 1 balances 68.995 us/op 52.702 us/op 1.31
BeaconState.hashTreeRoot - 32 balances 585.42 us/op 474.61 us/op 1.23
BeaconState.hashTreeRoot - 512 balances 5.8674 ms/op 4.5800 ms/op 1.28
BeaconState.hashTreeRoot - 250000 balances 123.46 ms/op 95.917 ms/op 1.29
processSlot - 1 slots 13.643 us/op 9.6560 us/op 1.41
processSlot - 32 slots 2.0971 ms/op 1.5634 ms/op 1.34
getCommitteeAssignments - req 1 vs - 250000 vc 5.7363 ms/op 5.2723 ms/op 1.09
getCommitteeAssignments - req 100 vs - 250000 vc 8.1236 ms/op 7.3524 ms/op 1.10
getCommitteeAssignments - req 1000 vs - 250000 vc 8.6663 ms/op 7.8458 ms/op 1.10
computeProposers - vc 250000 21.481 ms/op 16.367 ms/op 1.31
computeEpochShuffling - vc 250000 166.32 ms/op 160.26 ms/op 1.04
getNextSyncCommittee - vc 250000 354.01 ms/op 272.81 ms/op 1.30
altair processAttestation - 250000 vs - 7PWei normalcase 5.2982 ms/op 3.9881 ms/op 1.33
altair processAttestation - 250000 vs - 7PWei worstcase 7.4895 ms/op 5.8581 ms/op 1.28
altair processAttestation - setStatus - 1/6 committees join 233.50 us/op 196.37 us/op 1.19
altair processAttestation - setStatus - 1/3 committees join 437.91 us/op 374.77 us/op 1.17
altair processAttestation - setStatus - 1/2 committees join 608.75 us/op 526.42 us/op 1.16
altair processAttestation - setStatus - 2/3 committees join 796.87 us/op 674.30 us/op 1.18
altair processAttestation - setStatus - 4/5 committees join 1.1478 ms/op 938.32 us/op 1.22
altair processAttestation - setStatus - 100% committees join 1.3989 ms/op 1.1082 ms/op 1.26
altair processBlock - 250000 vs - 7PWei normalcase 32.505 ms/op 25.076 ms/op 1.30
altair processBlock - 250000 vs - 7PWei normalcase hashState 42.753 ms/op 35.518 ms/op 1.20
altair processBlock - 250000 vs - 7PWei worstcase 88.267 ms/op 72.913 ms/op 1.21
altair processBlock - 250000 vs - 7PWei worstcase hashState 132.54 ms/op 111.62 ms/op 1.19
altair processEth1Data - 250000 vs - 7PWei normalcase 1.0239 ms/op 793.51 us/op 1.29
altair processEpoch - mainnet_e81889 647.50 ms/op 579.90 ms/op 1.12
mainnet_e81889 - altair beforeProcessEpoch 167.01 ms/op 99.756 ms/op 1.67
mainnet_e81889 - altair processJustificationAndFinalization 70.174 us/op 24.056 us/op 2.92
mainnet_e81889 - altair processInactivityUpdates 13.528 ms/op 12.451 ms/op 1.09
mainnet_e81889 - altair processRewardsAndPenalties 96.489 ms/op 141.55 ms/op 0.68
mainnet_e81889 - altair processRegistryUpdates 18.336 us/op 3.6580 us/op 5.01
mainnet_e81889 - altair processSlashings 5.9220 us/op 1.1380 us/op 5.20
mainnet_e81889 - altair processEth1DataReset 6.1780 us/op 1.0460 us/op 5.91
mainnet_e81889 - altair processEffectiveBalanceUpdates 7.9975 ms/op 7.5597 ms/op 1.06
mainnet_e81889 - altair processSlashingsReset 20.857 us/op 4.7790 us/op 4.36
mainnet_e81889 - altair processRandaoMixesReset 26.551 us/op 6.6310 us/op 4.00
mainnet_e81889 - altair processHistoricalRootsUpdate 8.3460 us/op 1.4340 us/op 5.82
mainnet_e81889 - altair processParticipationFlagUpdates 14.710 us/op 3.2350 us/op 4.55
mainnet_e81889 - altair processSyncCommitteeUpdates 5.1660 us/op 933.00 ns/op 5.54
mainnet_e81889 - altair afterProcessEpoch 204.97 ms/op 183.68 ms/op 1.12
altair processInactivityUpdates - 250000 normalcase 54.873 ms/op 32.523 ms/op 1.69
altair processInactivityUpdates - 250000 worstcase 41.979 ms/op 27.676 ms/op 1.52
altair processRewardsAndPenalties - 250000 normalcase 125.67 ms/op 123.73 ms/op 1.02
altair processRewardsAndPenalties - 250000 worstcase 137.18 ms/op 78.862 ms/op 1.74
altair processSyncCommitteeUpdates - 250000 363.23 ms/op 284.98 ms/op 1.27
Tree 40 250000 create 1.0046 s/op 712.15 ms/op 1.41
Tree 40 250000 get(125000) 329.20 ns/op 282.29 ns/op 1.17
Tree 40 250000 set(125000) 3.5308 us/op 2.2319 us/op 1.58
Tree 40 250000 toArray() 38.345 ms/op 32.987 ms/op 1.16
Tree 40 250000 iterate all - toArray() + loop 36.917 ms/op 33.181 ms/op 1.11
Tree 40 250000 iterate all - get(i) 133.78 ms/op 110.10 ms/op 1.22
MutableVector 250000 create 17.335 ms/op 15.175 ms/op 1.14
MutableVector 250000 get(125000) 14.661 ns/op 14.757 ns/op 0.99
MutableVector 250000 set(125000) 935.79 ns/op 587.98 ns/op 1.59
MutableVector 250000 toArray() 7.4595 ms/op 6.6816 ms/op 1.12
MutableVector 250000 iterate all - toArray() + loop 7.5496 ms/op 7.0611 ms/op 1.07
MutableVector 250000 iterate all - get(i) 3.7326 ms/op 3.2826 ms/op 1.14
Array 250000 create 7.1762 ms/op 6.1593 ms/op 1.17
Array 250000 clone - spread 3.8391 ms/op 2.6268 ms/op 1.46
Array 250000 get(125000) 1.9440 ns/op 1.1780 ns/op 1.65
Array 250000 set(125000) 2.0170 ns/op 1.2080 ns/op 1.67
Array 250000 iterate all - loop 147.11 us/op 167.83 us/op 0.88
effectiveBalanceIncrements clone Uint8Array 300000 119.32 us/op 85.174 us/op 1.40
effectiveBalanceIncrements clone MutableVector 300000 1.3730 us/op 776.00 ns/op 1.77
effectiveBalanceIncrements rw all Uint8Array 300000 200.59 us/op 301.86 us/op 0.66
effectiveBalanceIncrements rw all MutableVector 300000 306.54 ms/op 192.09 ms/op 1.60
aggregationBits - 2048 els - zipIndexesInBitList 42.450 us/op 31.718 us/op 1.34
regular array get 100000 times 59.649 us/op 67.400 us/op 0.89
wrappedArray get 100000 times 59.481 us/op 67.416 us/op 0.88
arrayWithProxy get 100000 times 35.480 ms/op 29.947 ms/op 1.18
ssz.Root.equals 556.00 ns/op 460.00 ns/op 1.21
byteArrayEquals 537.00 ns/op 450.00 ns/op 1.19
phase0 processBlock - 250000 vs - 7PWei normalcase 4.6945 ms/op 3.5731 ms/op 1.31
phase0 processBlock - 250000 vs - 7PWei worstcase 57.276 ms/op 46.888 ms/op 1.22
phase0 afterProcessEpoch - 250000 vs - 7PWei 203.20 ms/op 199.54 ms/op 1.02
phase0 beforeProcessEpoch - 250000 vs - 7PWei 84.116 ms/op 76.630 ms/op 1.10
phase0 processEpoch - mainnet_e58758 691.70 ms/op 533.78 ms/op 1.30
mainnet_e58758 - phase0 beforeProcessEpoch 299.59 ms/op 263.23 ms/op 1.14
mainnet_e58758 - phase0 processJustificationAndFinalization 71.011 us/op 23.771 us/op 2.99
mainnet_e58758 - phase0 processRewardsAndPenalties 161.40 ms/op 80.194 ms/op 2.01
mainnet_e58758 - phase0 processRegistryUpdates 33.812 us/op 10.341 us/op 3.27
mainnet_e58758 - phase0 processSlashings 6.0990 us/op 1.2920 us/op 4.72
mainnet_e58758 - phase0 processEth1DataReset 5.8490 us/op 974.00 ns/op 6.01
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 7.4761 ms/op 5.5904 ms/op 1.34
mainnet_e58758 - phase0 processSlashingsReset 21.181 us/op 5.4380 us/op 3.89
mainnet_e58758 - phase0 processRandaoMixesReset 25.142 us/op 6.2790 us/op 4.00
mainnet_e58758 - phase0 processHistoricalRootsUpdate 7.5810 us/op 1.2030 us/op 6.30
mainnet_e58758 - phase0 processParticipationRecordUpdates 22.638 us/op 5.2050 us/op 4.35
mainnet_e58758 - phase0 afterProcessEpoch 157.65 ms/op 176.58 ms/op 0.89
phase0 processEffectiveBalanceUpdates - 250000 normalcase 7.2781 ms/op 6.3990 ms/op 1.14
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 7.5381 ms/op 6.8927 ms/op 1.09
phase0 processRegistryUpdates - 250000 normalcase 29.921 us/op 9.5890 us/op 3.12
phase0 processRegistryUpdates - 250000 badcase_full_deposits 502.28 us/op 419.35 us/op 1.20
phase0 processRegistryUpdates - 250000 worstcase 0.5 259.52 ms/op 215.80 ms/op 1.20
phase0 getAttestationDeltas - 250000 normalcase 18.118 ms/op 15.107 ms/op 1.20
phase0 getAttestationDeltas - 250000 worstcase 17.722 ms/op 15.336 ms/op 1.16
phase0 processSlashings - 250000 worstcase 7.0822 ms/op 5.4529 ms/op 1.30
shuffle list - 16384 els 11.255 ms/op 10.686 ms/op 1.05
shuffle list - 250000 els 159.15 ms/op 154.33 ms/op 1.03
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 462.79 us/op 361.78 us/op 1.28
pass gossip attestations to forkchoice per slot 7.6233 ms/op 3.4401 ms/op 2.22
computeDeltas 4.1800 ms/op 4.1471 ms/op 1.01
computeProposerBoostScoreFromBalances 487.05 us/op 503.04 us/op 0.97
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.7584 ms/op 2.0581 ms/op 1.34
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 93.264 us/op 80.806 us/op 1.15
BLS verify - blst-native 2.2537 ms/op 1.8571 ms/op 1.21
BLS verifyMultipleSignatures 3 - blst-native 4.6476 ms/op 3.8054 ms/op 1.22
BLS verifyMultipleSignatures 8 - blst-native 10.026 ms/op 8.2046 ms/op 1.22
BLS verifyMultipleSignatures 32 - blst-native 37.522 ms/op 29.733 ms/op 1.26
BLS aggregatePubkeys 32 - blst-native 48.237 us/op 39.642 us/op 1.22
BLS aggregatePubkeys 128 - blst-native 189.88 us/op 153.94 us/op 1.23
getAttestationsForBlock 74.630 ms/op 63.282 ms/op 1.18
CheckpointStateCache - add get delete 13.669 us/op 11.207 us/op 1.22
validate gossip signedAggregateAndProof - struct 5.2499 ms/op 4.2661 ms/op 1.23
validate gossip attestation - struct 2.5679 ms/op 2.0285 ms/op 1.27
pickEth1Vote - no votes 2.6465 ms/op 2.1919 ms/op 1.21
pickEth1Vote - max votes 25.350 ms/op 20.313 ms/op 1.25
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.444 ms/op 11.207 ms/op 1.29
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 28.215 ms/op 21.397 ms/op 1.32
pickEth1Vote - Eth1Data fastSerialize value x2048 1.9951 ms/op 1.6139 ms/op 1.24
pickEth1Vote - Eth1Data fastSerialize tree x2048 17.415 ms/op 13.309 ms/op 1.31
bytes32 toHexString 1.2510 us/op 993.00 ns/op 1.26
bytes32 Buffer.toString(hex) 812.00 ns/op 669.00 ns/op 1.21
bytes32 Buffer.toString(hex) from Uint8Array 1.1150 us/op 915.00 ns/op 1.22
bytes32 Buffer.toString(hex) + 0x 815.00 ns/op 679.00 ns/op 1.20
Object access 1 prop 0.41200 ns/op 0.34400 ns/op 1.20
Map access 1 prop 0.34800 ns/op 0.29300 ns/op 1.19
Object get x1000 17.846 ns/op 18.249 ns/op 0.98
Map get x1000 0.98200 ns/op 1.0870 ns/op 0.90
Object set x1000 121.00 ns/op 110.82 ns/op 1.09
Map set x1000 81.854 ns/op 66.844 ns/op 1.22
Return object 10000 times 0.43910 ns/op 0.36820 ns/op 1.19
Throw Error 10000 times 7.2585 us/op 5.8561 us/op 1.24
enrSubnets - fastDeserialize 64 bits 3.2900 us/op 2.7370 us/op 1.20
enrSubnets - ssz BitVector 64 bits 904.00 ns/op 781.00 ns/op 1.16
enrSubnets - fastDeserialize 4 bits 493.00 ns/op 396.00 ns/op 1.24
enrSubnets - ssz BitVector 4 bits 898.00 ns/op 782.00 ns/op 1.15
prioritizePeers score -10:0 att 32-0.1 sync 2-0 119.08 us/op 91.985 us/op 1.29
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 157.84 us/op 125.09 us/op 1.26
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 276.47 us/op 206.48 us/op 1.34
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 610.16 us/op 437.52 us/op 1.39
prioritizePeers score 0:0 att 64-1 sync 4-1 572.63 us/op 459.84 us/op 1.25
RateTracker 1000000 limit, 1 obj count per request 199.35 ns/op 181.33 ns/op 1.10
RateTracker 1000000 limit, 2 obj count per request 149.11 ns/op 137.02 ns/op 1.09
RateTracker 1000000 limit, 4 obj count per request 126.05 ns/op 113.99 ns/op 1.11
RateTracker 1000000 limit, 8 obj count per request 113.96 ns/op 103.13 ns/op 1.10
RateTracker with prune 5.4790 us/op 4.3790 us/op 1.25
array of 16000 items push then shift 5.2877 us/op 3.0935 us/op 1.71
LinkedList of 16000 items push then shift 20.725 ns/op 18.333 ns/op 1.13
array of 16000 items push then pop 248.77 ns/op 211.93 ns/op 1.17
LinkedList of 16000 items push then pop 20.790 ns/op 17.243 ns/op 1.21
array of 24000 items push then shift 7.9655 us/op 4.5401 us/op 1.75
LinkedList of 24000 items push then shift 20.718 ns/op 23.279 ns/op 0.89
array of 24000 items push then pop 267.48 ns/op 209.59 ns/op 1.28
LinkedList of 24000 items push then pop 19.433 ns/op 19.885 ns/op 0.98

by benchmarkbot/action

@wemeetagain
wemeetagain merged commit fe52e43 into master May 7, 2022
@wemeetagain
wemeetagain deleted the g11tech/fix-api-response-casing branch May 7, 2022 16:53
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