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

Add execution engine over http #3260

Merged
merged 4 commits into from
Sep 27, 2021
Merged

Conversation

dapplion
Copy link
Contributor

Motivation

Part of #3076

Description

  • Add execution engine over http, following Engine API v1.0.0-alpha.1 spec

Closes #3259

@codeclimate
Copy link

codeclimate bot commented Sep 27, 2021

Code Climate has analyzed commit bff8549 and detected 2 issues on this pull request.

Here's the issue category breakdown:

Category Count
Duplication 2

View more on Code Climate.

@github-actions
Copy link
Contributor

github-actions bot commented Sep 27, 2021

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 75ec6d1 Previous: 64ab01f Ratio
BeaconState.hashTreeRoot - No change 890.00 ns/op 683.00 ns/op 1.30
BeaconState.hashTreeRoot - 1 full validator 106.16 us/op 77.795 us/op 1.36
BeaconState.hashTreeRoot - 32 full validator 1.5496 ms/op 1.1848 ms/op 1.31
BeaconState.hashTreeRoot - 512 full validator 20.376 ms/op 14.560 ms/op 1.40
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 115.53 us/op 78.511 us/op 1.47
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.4594 ms/op 1.1714 ms/op 1.25
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 22.975 ms/op 17.759 ms/op 1.29
BeaconState.hashTreeRoot - 1 balances 77.770 us/op 57.154 us/op 1.36
BeaconState.hashTreeRoot - 32 balances 680.58 us/op 532.72 us/op 1.28
BeaconState.hashTreeRoot - 512 balances 6.4486 ms/op 4.6988 ms/op 1.37
BeaconState.hashTreeRoot - 250000 balances 121.39 ms/op 89.686 ms/op 1.35
processSlot - 1 slots 65.469 us/op 42.179 us/op 1.55
processSlot - 32 slots 3.2936 ms/op 2.2447 ms/op 1.47
getCommitteeAssignments - req 1 vs - 250000 vc 5.6410 ms/op 5.2648 ms/op 1.07
getCommitteeAssignments - req 100 vs - 250000 vc 7.9129 ms/op 7.1831 ms/op 1.10
getCommitteeAssignments - req 1000 vs - 250000 vc 8.6836 ms/op 7.7680 ms/op 1.12
computeProposers - vc 250000 27.826 ms/op 21.599 ms/op 1.29
computeEpochShuffling - vc 250000 218.39 ms/op 202.52 ms/op 1.08
getNextSyncCommittee - vc 250000 451.48 ms/op 340.38 ms/op 1.33
altair processBlock - 250000 vs - 7PWei normalcase 116.46 ms/op 81.223 ms/op 1.43
altair processBlock - 250000 vs - 7PWei worstcase 313.82 ms/op 209.21 ms/op 1.50
altair processEpoch - pyrmont_e62330 550.21 ms/op 447.76 ms/op 1.23
pyrmont_e62330 - altair beforeProcessEpoch 192.03 ms/op 154.05 ms/op 1.25
pyrmont_e62330 - altair processJustificationAndFinalization 135.04 us/op 69.003 us/op 1.96
pyrmont_e62330 - altair processInactivityUpdates 9.2169 ms/op 8.2144 ms/op 1.12
pyrmont_e62330 - altair processRewardsAndPenalties 65.320 ms/op 54.729 ms/op 1.19
pyrmont_e62330 - altair processRegistryUpdates 24.999 us/op 8.4270 us/op 2.97
pyrmont_e62330 - altair processSlashings 6.8500 us/op 1.6550 us/op 4.14
pyrmont_e62330 - altair processEth1DataReset 6.2500 us/op 1.6880 us/op 3.70
pyrmont_e62330 - altair processEffectiveBalanceUpdates 8.7760 ms/op 5.4284 ms/op 1.62
pyrmont_e62330 - altair processSlashingsReset 34.179 us/op 9.2640 us/op 3.69
pyrmont_e62330 - altair processRandaoMixesReset 48.703 us/op 19.633 us/op 2.48
pyrmont_e62330 - altair processHistoricalRootsUpdate 8.7000 us/op 1.9820 us/op 4.39
pyrmont_e62330 - altair processParticipationFlagUpdates 51.055 ms/op 43.973 ms/op 1.16
pyrmont_e62330 - altair processSyncCommitteeUpdates 6.0420 us/op 1.2380 us/op 4.88
pyrmont_e62330 - altair afterProcessEpoch 136.90 ms/op 116.90 ms/op 1.17
altair processInactivityUpdates - 250000 normalcase 85.367 ms/op 68.584 ms/op 1.24
altair processInactivityUpdates - 250000 worstcase 87.196 ms/op 60.390 ms/op 1.44
altair processParticipationFlagUpdates - 250000 anycase 113.17 ms/op 94.153 ms/op 1.20
altair processRewardsAndPenalties - 250000 normalcase 136.30 ms/op 117.91 ms/op 1.16
altair processRewardsAndPenalties - 250000 worstcase 158.36 ms/op 130.59 ms/op 1.21
altair processSyncCommitteeUpdates - 250000 477.27 ms/op 363.12 ms/op 1.31
Tree 40 250000 create 746.88 ms/op 495.47 ms/op 1.51
Tree 40 250000 get(125000) 309.18 ns/op 270.33 ns/op 1.14
Tree 40 250000 set(125000) 2.4003 us/op 1.6461 us/op 1.46
Tree 40 250000 toArray() 53.513 ms/op 39.619 ms/op 1.35
Tree 40 250000 iterate all - toArray() + loop 53.769 ms/op 41.753 ms/op 1.29
Tree 40 250000 iterate all - get(i) 129.43 ms/op 105.45 ms/op 1.23
MutableVector 250000 create 30.770 ms/op 21.902 ms/op 1.40
MutableVector 250000 get(125000) 15.776 ns/op 12.990 ns/op 1.21
MutableVector 250000 set(125000) 871.49 ns/op 624.16 ns/op 1.40
MutableVector 250000 toArray() 10.476 ms/op 8.2294 ms/op 1.27
MutableVector 250000 iterate all - toArray() + loop 10.795 ms/op 9.1056 ms/op 1.19
MutableVector 250000 iterate all - get(i) 4.0412 ms/op 3.4083 ms/op 1.19
Array 250000 create 6.7115 ms/op 5.6407 ms/op 1.19
Array 250000 clone - spread 3.1590 ms/op 1.9035 ms/op 1.66
Array 250000 get(125000) 1.0500 ns/op 1.1630 ns/op 0.90
Array 250000 set(125000) 1.0800 ns/op 1.1510 ns/op 0.94
Array 250000 iterate all - loop 148.52 us/op 167.87 us/op 0.88
aggregationBits - 2048 els - readonlyValues 338.48 us/op 219.88 us/op 1.54
aggregationBits - 2048 els - zipIndexesInBitList 69.605 us/op 40.746 us/op 1.71
ssz.Root.equals 1.9310 us/op 1.3860 us/op 1.39
ssz.Root.equals with valueOf() 2.3210 us/op 1.5790 us/op 1.47
byteArrayEquals with valueOf() 2.1580 us/op 1.5670 us/op 1.38
phase0 processBlock - 250000 vs - 7PWei normalcase 17.277 ms/op 12.039 ms/op 1.44
phase0 processBlock - 250000 vs - 7PWei worstcase 114.87 ms/op 78.883 ms/op 1.46
phase0 afterProcessEpoch - 250000 vs - 7PWei 245.80 ms/op 212.55 ms/op 1.16
phase0 beforeProcessEpoch - 250000 vs - 7PWei 887.60 ms/op 568.85 ms/op 1.56
phase0 processEpoch - mainnet_e58758 1.1295 s/op 814.09 ms/op 1.39
mainnet_e58758 - phase0 beforeProcessEpoch 702.46 ms/op 502.16 ms/op 1.40
mainnet_e58758 - phase0 processJustificationAndFinalization 147.55 us/op 52.930 us/op 2.79
mainnet_e58758 - phase0 processRewardsAndPenalties 100.21 ms/op 83.151 ms/op 1.21
mainnet_e58758 - phase0 processRegistryUpdates 101.63 us/op 68.418 us/op 1.49
mainnet_e58758 - phase0 processSlashings 6.5240 us/op 1.6770 us/op 3.89
mainnet_e58758 - phase0 processEth1DataReset 6.1600 us/op 1.6110 us/op 3.82
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 10.940 ms/op 9.0819 ms/op 1.20
mainnet_e58758 - phase0 processSlashingsReset 34.708 us/op 13.600 us/op 2.55
mainnet_e58758 - phase0 processRandaoMixesReset 45.131 us/op 16.830 us/op 2.68
mainnet_e58758 - phase0 processHistoricalRootsUpdate 8.4980 us/op 2.0680 us/op 4.11
mainnet_e58758 - phase0 processParticipationRecordUpdates 28.151 us/op 13.135 us/op 2.14
mainnet_e58758 - phase0 afterProcessEpoch 216.73 ms/op 189.42 ms/op 1.14
phase0 processEffectiveBalanceUpdates - 250000 normalcase 12.781 ms/op 11.258 ms/op 1.14
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.9896 s/op 1.3260 s/op 1.50
phase0 processRegistryUpdates - 250000 normalcase 105.09 us/op 39.943 us/op 2.63
phase0 processRegistryUpdates - 250000 badcase_full_deposits 5.0743 ms/op 3.5339 ms/op 1.44
phase0 processRegistryUpdates - 250000 worstcase 0.5 2.5026 s/op 1.7390 s/op 1.44
phase0 getAttestationDeltas - 250000 normalcase 40.364 ms/op 36.266 ms/op 1.11
phase0 getAttestationDeltas - 250000 worstcase 41.159 ms/op 36.747 ms/op 1.12
phase0 processSlashings - 250000 worstcase 42.475 ms/op 34.643 ms/op 1.23
shuffle list - 16384 els 15.728 ms/op 13.291 ms/op 1.18
shuffle list - 250000 els 220.39 ms/op 190.33 ms/op 1.16
getEffectiveBalances - 250000 vs - 7PWei 14.667 ms/op 11.347 ms/op 1.29
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.8219 ms/op 2.4114 ms/op 1.17
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 1.2359 ms/op 1.0232 ms/op 1.21
BLS verify - blst-native 2.7552 ms/op 1.8581 ms/op 1.48
BLS verifyMultipleSignatures 3 - blst-native 5.6460 ms/op 3.8109 ms/op 1.48
BLS verifyMultipleSignatures 8 - blst-native 12.225 ms/op 8.2101 ms/op 1.49
BLS verifyMultipleSignatures 32 - blst-native 43.912 ms/op 29.780 ms/op 1.47
BLS aggregatePubkeys 32 - blst-native 61.048 us/op 40.324 us/op 1.51
BLS aggregatePubkeys 128 - blst-native 234.46 us/op 155.51 us/op 1.51
getAttestationsForBlock 114.61 ms/op 81.477 ms/op 1.41
CheckpointStateCache - add get delete 21.741 us/op 15.918 us/op 1.37
validate gossip signedAggregateAndProof - struct 6.7306 ms/op 4.4593 ms/op 1.51
validate gossip signedAggregateAndProof - treeBacked 6.6719 ms/op 4.4693 ms/op 1.49
validate gossip attestation - struct 3.2019 ms/op 2.0855 ms/op 1.54
validate gossip attestation - treeBacked 3.0688 ms/op 2.1098 ms/op 1.45

by benchmarkbot/action

@codecov
Copy link

codecov bot commented Sep 27, 2021

Codecov Report

Merging #3260 (75ec6d1) into master (dbb93e4) will decrease coverage by 0.07%.
The diff coverage is n/a.

❗ Current head 75ec6d1 differs from pull request most recent head bff8549. Consider uploading reports for the commit bff8549 to get more accurate results

@@            Coverage Diff             @@
##           master    #3260      +/-   ##
==========================================
- Coverage   38.89%   38.81%   -0.08%     
==========================================
  Files         302      303       +1     
  Lines        7549     7571      +22     
  Branches     1098     1103       +5     
==========================================
+ Hits         2936     2939       +3     
- Misses       4480     4499      +19     
  Partials      133      133              

@wemeetagain wemeetagain merged commit 4440142 into master Sep 27, 2021
@wemeetagain wemeetagain deleted the dapplion/execution-engine branch September 27, 2021 18:14
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.

Implement merge ExecutionEngine via HTTP
2 participants