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

Issue advance fcU for builing the EL block #3965

Merged
merged 1 commit into from
May 24, 2022

Conversation

g11tech
Copy link
Contributor

@g11tech g11tech commented May 2, 2022

This PR adds the capability to issue advance FcUs using cached beacon proposer data in the engine and cache generated payload ids, which could be picked up while assembling block body in the produceBlock calls.

PS: WIP, and dependent upon #3958

TODOS:

  • update merge interop tests
  • add check that prepareSlot is the next slot by clock
  • prune payloadIdCache

Some of the scenario's to issue fcU moved here for allowing this to merge: #4054
In these scenarios, since the head prediction might turn out to be wrong, in the produce block call, the previous payload will be not be picked up, but rather an empty payload will be generated by EL which is ok for now as the block proposal will still be successful albeit with the empty payload (current scenario)

@g11tech g11tech mentioned this pull request May 2, 2022
22 tasks
@codecov
Copy link

codecov bot commented May 3, 2022

Codecov Report

Merging #3965 (5752b9f) into master (d4d72fe) will decrease coverage by 0.14%.
The diff coverage is n/a.

❗ Current head 5752b9f differs from pull request most recent head ef57bec. Consider uploading reports for the commit ef57bec to get more accurate results

@@            Coverage Diff             @@
##           master    #3965      +/-   ##
==========================================
- Coverage   36.62%   36.47%   -0.15%     
==========================================
  Files         330      331       +1     
  Lines        9366     9420      +54     
  Branches     1529     1545      +16     
==========================================
+ Hits         3430     3436       +6     
- Misses       5742     5791      +49     
+ Partials      194      193       -1     

chain.executionEngine.notifyForkchoiceUpdate(headBlockHash, finalizedBlockHash ?? ZERO_HASH_HEX).catch((e) => {
chain.logger.error("Error pushing notifyForkchoiceUpdate()", {headBlockHash, finalizedBlockHash}, e);
});
void issueNextProposerEngineFcU(chain, postState).then((payloadId) => {
Copy link
Contributor

Choose a reason for hiding this comment

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

Does this issueNextProposerEngineFcU call has to happen for all blocks, or only for slot we will propose?

Copy link
Contributor Author

@g11tech g11tech May 10, 2022

Choose a reason for hiding this comment

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

umm, basically it has to happen for before all blocks because its looks through the propose data cached in engine to see if any the prepare payload call needs to be issued to execution engine before hand.
Rephrasing: issueNextProposerEngineFcU checks if the next slot is to be proposed by any registered validators in beaconProposerCache and issue fcU accordingly, else it returns null and the normal fcU is issued just below to update the head of the El.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

renamed to :maybeIssueNextProposerEngineFcU to add a bit more context

@dapplion
Copy link
Contributor

FYI #3989 changes the control flow of importBlock and can affect this PR

@g11tech g11tech force-pushed the g11tech/engine-fee-recipient branch 2 times, most recently from a0c1035 to ba7fe02 Compare May 19, 2022 09:11
@g11tech
Copy link
Contributor Author

g11tech commented May 19, 2022

just tested this build in msf5, successful block production with geth, nethermind, besu:
image

https://beaconchain.mainnetshadowfork5.ethdevops.io/block/22469#transactions

@g11tech g11tech force-pushed the g11tech/engine-fee-recipient branch from e6d6d3d to 7333596 Compare May 20, 2022 10:48
@g11tech g11tech force-pushed the g11tech/engine-prepare-fcus branch from 8381e8f to b3baac7 Compare May 21, 2022 18:55
Base automatically changed from g11tech/engine-fee-recipient to master May 24, 2022 14:01
rebaseing to the refactored prepare beacon proposer

refac payload id cache as separate class and add pruning

issue payload fcus if synced

rename issueNext.. to maybeIssueNext...
@g11tech g11tech force-pushed the g11tech/engine-prepare-fcus branch from 5752b9f to ef57bec Compare May 24, 2022 14:43
@g11tech g11tech marked this pull request as ready for review May 24, 2022 14:52
@g11tech g11tech requested a review from a team as a code owner May 24, 2022 14:52
@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 860ccf6 Previous: d4d72fe Ratio
BeaconState.hashTreeRoot - No change 424.00 ns/op 531.00 ns/op 0.80
BeaconState.hashTreeRoot - 1 full validator 55.062 us/op 54.876 us/op 1.00
BeaconState.hashTreeRoot - 32 full validator 538.75 us/op 540.12 us/op 1.00
BeaconState.hashTreeRoot - 512 full validator 6.0512 ms/op 6.0909 ms/op 0.99
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 70.946 us/op 67.840 us/op 1.05
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 953.01 us/op 941.43 us/op 1.01
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 13.242 ms/op 12.918 ms/op 1.03
BeaconState.hashTreeRoot - 1 balances 54.181 us/op 53.505 us/op 1.01
BeaconState.hashTreeRoot - 32 balances 462.98 us/op 473.42 us/op 0.98
BeaconState.hashTreeRoot - 512 balances 4.5783 ms/op 4.5757 ms/op 1.00
BeaconState.hashTreeRoot - 250000 balances 97.719 ms/op 98.437 ms/op 0.99
processSlot - 1 slots 11.465 us/op 11.149 us/op 1.03
processSlot - 32 slots 1.5850 ms/op 1.6041 ms/op 0.99
getCommitteeAssignments - req 1 vs - 250000 vc 5.2811 ms/op 5.7009 ms/op 0.93
getCommitteeAssignments - req 100 vs - 250000 vc 7.3463 ms/op 7.3118 ms/op 1.00
getCommitteeAssignments - req 1000 vs - 250000 vc 7.8770 ms/op 7.9223 ms/op 0.99
computeProposers - vc 250000 16.591 ms/op 15.821 ms/op 1.05
computeEpochShuffling - vc 250000 157.10 ms/op 156.59 ms/op 1.00
getNextSyncCommittee - vc 250000 248.61 ms/op 260.71 ms/op 0.95
altair processAttestation - 250000 vs - 7PWei normalcase 4.0686 ms/op 3.4187 ms/op 1.19
altair processAttestation - 250000 vs - 7PWei worstcase 5.7215 ms/op 5.0431 ms/op 1.13
altair processAttestation - setStatus - 1/6 committees join 193.26 us/op 185.94 us/op 1.04
altair processAttestation - setStatus - 1/3 committees join 374.65 us/op 366.37 us/op 1.02
altair processAttestation - setStatus - 1/2 committees join 523.99 us/op 514.26 us/op 1.02
altair processAttestation - setStatus - 2/3 committees join 671.31 us/op 661.13 us/op 1.02
altair processAttestation - setStatus - 4/5 committees join 930.72 us/op 904.56 us/op 1.03
altair processAttestation - setStatus - 100% committees join 1.1034 ms/op 1.0759 ms/op 1.03
altair processBlock - 250000 vs - 7PWei normalcase 28.151 ms/op 23.252 ms/op 1.21
altair processBlock - 250000 vs - 7PWei normalcase hashState 37.001 ms/op 35.750 ms/op 1.04
altair processBlock - 250000 vs - 7PWei worstcase 76.197 ms/op 72.244 ms/op 1.05
altair processBlock - 250000 vs - 7PWei worstcase hashState 108.60 ms/op 92.109 ms/op 1.18
altair processEth1Data - 250000 vs - 7PWei normalcase 918.47 us/op 767.86 us/op 1.20
altair processEpoch - mainnet_e81889 572.91 ms/op 566.72 ms/op 1.01
mainnet_e81889 - altair beforeProcessEpoch 167.60 ms/op 94.821 ms/op 1.77
mainnet_e81889 - altair processJustificationAndFinalization 35.004 us/op 21.385 us/op 1.64
mainnet_e81889 - altair processInactivityUpdates 12.077 ms/op 10.751 ms/op 1.12
mainnet_e81889 - altair processRewardsAndPenalties 135.01 ms/op 158.69 ms/op 0.85
mainnet_e81889 - altair processRegistryUpdates 6.1550 us/op 3.7410 us/op 1.65
mainnet_e81889 - altair processSlashings 2.1060 us/op 1.0620 us/op 1.98
mainnet_e81889 - altair processEth1DataReset 2.8410 us/op 1.0780 us/op 2.64
mainnet_e81889 - altair processEffectiveBalanceUpdates 7.5191 ms/op 7.4614 ms/op 1.01
mainnet_e81889 - altair processSlashingsReset 8.7660 us/op 5.0030 us/op 1.75
mainnet_e81889 - altair processRandaoMixesReset 9.5750 us/op 5.8010 us/op 1.65
mainnet_e81889 - altair processHistoricalRootsUpdate 2.5200 us/op 1.2820 us/op 1.97
mainnet_e81889 - altair processParticipationFlagUpdates 5.7470 us/op 2.8590 us/op 2.01
mainnet_e81889 - altair processSyncCommitteeUpdates 2.2250 us/op 886.00 ns/op 2.51
mainnet_e81889 - altair afterProcessEpoch 184.53 ms/op 183.02 ms/op 1.01
altair processInactivityUpdates - 250000 normalcase 33.889 ms/op 31.451 ms/op 1.08
altair processInactivityUpdates - 250000 worstcase 27.994 ms/op 26.177 ms/op 1.07
altair processRewardsAndPenalties - 250000 normalcase 84.985 ms/op 112.53 ms/op 0.76
altair processRewardsAndPenalties - 250000 worstcase 119.26 ms/op 75.812 ms/op 1.57
altair processSyncCommitteeUpdates - 250000 260.40 ms/op 273.47 ms/op 0.95
Tree 40 250000 create 814.87 ms/op 755.33 ms/op 1.08
Tree 40 250000 get(125000) 290.39 ns/op 276.20 ns/op 1.05
Tree 40 250000 set(125000) 2.5837 us/op 2.2645 us/op 1.14
Tree 40 250000 toArray() 33.655 ms/op 29.996 ms/op 1.12
Tree 40 250000 iterate all - toArray() + loop 33.933 ms/op 29.966 ms/op 1.13
Tree 40 250000 iterate all - get(i) 113.63 ms/op 106.11 ms/op 1.07
MutableVector 250000 create 16.003 ms/op 14.089 ms/op 1.14
MutableVector 250000 get(125000) 13.122 ns/op 13.365 ns/op 0.98
MutableVector 250000 set(125000) 715.50 ns/op 593.22 ns/op 1.21
MutableVector 250000 toArray() 7.2533 ms/op 6.2744 ms/op 1.16
MutableVector 250000 iterate all - toArray() + loop 7.5718 ms/op 6.4716 ms/op 1.17
MutableVector 250000 iterate all - get(i) 3.2818 ms/op 3.4374 ms/op 0.95
Array 250000 create 6.3642 ms/op 5.6562 ms/op 1.13
Array 250000 clone - spread 3.7806 ms/op 3.3903 ms/op 1.12
Array 250000 get(125000) 1.5690 ns/op 1.4960 ns/op 1.05
Array 250000 set(125000) 1.5730 ns/op 1.4850 ns/op 1.06
Array 250000 iterate all - loop 167.81 us/op 167.85 us/op 1.00
effectiveBalanceIncrements clone Uint8Array 300000 85.356 us/op 77.745 us/op 1.10
effectiveBalanceIncrements clone MutableVector 300000 1.2230 us/op 1.1220 us/op 1.09
effectiveBalanceIncrements rw all Uint8Array 300000 301.73 us/op 301.79 us/op 1.00
effectiveBalanceIncrements rw all MutableVector 300000 228.90 ms/op 200.72 ms/op 1.14
aggregationBits - 2048 els - zipIndexesInBitList 35.824 us/op 32.083 us/op 1.12
regular array get 100000 times 67.400 us/op 67.415 us/op 1.00
wrappedArray get 100000 times 67.424 us/op 67.397 us/op 1.00
arrayWithProxy get 100000 times 29.577 ms/op 29.536 ms/op 1.00
ssz.Root.equals 479.00 ns/op 474.00 ns/op 1.01
byteArrayEquals 464.00 ns/op 463.00 ns/op 1.00
phase0 processBlock - 250000 vs - 7PWei normalcase 4.0256 ms/op 3.4658 ms/op 1.16
phase0 processBlock - 250000 vs - 7PWei worstcase 46.520 ms/op 44.851 ms/op 1.04
phase0 afterProcessEpoch - 250000 vs - 7PWei 172.26 ms/op 194.01 ms/op 0.89
phase0 beforeProcessEpoch - 250000 vs - 7PWei 82.221 ms/op 71.857 ms/op 1.14
phase0 processEpoch - mainnet_e58758 607.49 ms/op 509.26 ms/op 1.19
mainnet_e58758 - phase0 beforeProcessEpoch 248.40 ms/op 215.78 ms/op 1.15
mainnet_e58758 - phase0 processJustificationAndFinalization 34.828 us/op 21.278 us/op 1.64
mainnet_e58758 - phase0 processRewardsAndPenalties 107.44 ms/op 116.34 ms/op 0.92
mainnet_e58758 - phase0 processRegistryUpdates 14.475 us/op 9.8730 us/op 1.47
mainnet_e58758 - phase0 processSlashings 3.5750 us/op 1.0860 us/op 3.29
mainnet_e58758 - phase0 processEth1DataReset 2.3340 us/op 1.0280 us/op 2.27
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 5.0068 ms/op 5.6320 ms/op 0.89
mainnet_e58758 - phase0 processSlashingsReset 7.8800 us/op 5.1990 us/op 1.52
mainnet_e58758 - phase0 processRandaoMixesReset 5.8250 us/op 5.8750 us/op 0.99
mainnet_e58758 - phase0 processHistoricalRootsUpdate 2.9560 us/op 1.2720 us/op 2.32
mainnet_e58758 - phase0 processParticipationRecordUpdates 8.1120 us/op 4.8080 us/op 1.69
mainnet_e58758 - phase0 afterProcessEpoch 156.16 ms/op 145.56 ms/op 1.07
phase0 processEffectiveBalanceUpdates - 250000 normalcase 6.2888 ms/op 6.3826 ms/op 0.99
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 6.8801 ms/op 6.8270 ms/op 1.01
phase0 processRegistryUpdates - 250000 normalcase 12.209 us/op 7.8170 us/op 1.56
phase0 processRegistryUpdates - 250000 badcase_full_deposits 411.07 us/op 407.63 us/op 1.01
phase0 processRegistryUpdates - 250000 worstcase 0.5 216.35 ms/op 214.21 ms/op 1.01
phase0 getAttestationDeltas - 250000 normalcase 16.007 ms/op 15.620 ms/op 1.02
phase0 getAttestationDeltas - 250000 worstcase 15.277 ms/op 15.523 ms/op 0.98
phase0 processSlashings - 250000 worstcase 6.0676 ms/op 6.2541 ms/op 0.97
shuffle list - 16384 els 10.731 ms/op 10.640 ms/op 1.01
shuffle list - 250000 els 155.38 ms/op 154.17 ms/op 1.01
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 378.51 us/op 351.81 us/op 1.08
pass gossip attestations to forkchoice per slot 3.5295 ms/op 3.3943 ms/op 1.04
computeDeltas 3.7321 ms/op 3.2515 ms/op 1.15
computeProposerBoostScoreFromBalances 458.01 us/op 503.26 us/op 0.91
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.1460 ms/op 1.7461 ms/op 1.23
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 77.101 us/op 71.473 us/op 1.08
BLS verify - blst-native 1.8600 ms/op 1.8565 ms/op 1.00
BLS verifyMultipleSignatures 3 - blst-native 3.8083 ms/op 3.8050 ms/op 1.00
BLS verifyMultipleSignatures 8 - blst-native 8.1945 ms/op 8.1822 ms/op 1.00
BLS verifyMultipleSignatures 32 - blst-native 29.683 ms/op 29.644 ms/op 1.00
BLS aggregatePubkeys 32 - blst-native 39.508 us/op 40.061 us/op 0.99
BLS aggregatePubkeys 128 - blst-native 153.47 us/op 153.58 us/op 1.00
getAttestationsForBlock 59.731 ms/op 61.006 ms/op 0.98
isKnown best case - 1 super set check 411.00 ns/op 428.00 ns/op 0.96
isKnown normal case - 2 super set checks 397.00 ns/op 419.00 ns/op 0.95
isKnown worse case - 16 super set checks 395.00 ns/op 418.00 ns/op 0.94
CheckpointStateCache - add get delete 10.817 us/op 10.353 us/op 1.04
validate gossip signedAggregateAndProof - struct 4.2735 ms/op 4.2619 ms/op 1.00
validate gossip attestation - struct 2.0250 ms/op 2.0222 ms/op 1.00
altair verifyImport mainnet_s3766816:31 7.0750 s/op 6.1015 s/op 1.16
pickEth1Vote - no votes 2.2522 ms/op 2.1686 ms/op 1.04
pickEth1Vote - max votes 25.291 ms/op 21.756 ms/op 1.16
pickEth1Vote - Eth1Data hashTreeRoot value x2048 11.616 ms/op 11.008 ms/op 1.06
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 25.016 ms/op 19.656 ms/op 1.27
pickEth1Vote - Eth1Data fastSerialize value x2048 1.7127 ms/op 1.6504 ms/op 1.04
pickEth1Vote - Eth1Data fastSerialize tree x2048 18.353 ms/op 15.532 ms/op 1.18
bytes32 toHexString 1.0250 us/op 997.00 ns/op 1.03
bytes32 Buffer.toString(hex) 689.00 ns/op 690.00 ns/op 1.00
bytes32 Buffer.toString(hex) from Uint8Array 900.00 ns/op 956.00 ns/op 0.94
bytes32 Buffer.toString(hex) + 0x 708.00 ns/op 728.00 ns/op 0.97
Object access 1 prop 0.34300 ns/op 0.34600 ns/op 0.99
Map access 1 prop 0.29300 ns/op 0.30100 ns/op 0.97
Object get x1000 16.955 ns/op 17.607 ns/op 0.96
Map get x1000 0.96500 ns/op 0.99600 ns/op 0.97
Object set x1000 113.90 ns/op 113.74 ns/op 1.00
Map set x1000 72.228 ns/op 66.817 ns/op 1.08
Return object 10000 times 0.36680 ns/op 0.37690 ns/op 0.97
Throw Error 10000 times 5.9035 us/op 5.7706 us/op 1.02
enrSubnets - fastDeserialize 64 bits 2.8460 us/op 2.7240 us/op 1.04
enrSubnets - ssz BitVector 64 bits 761.00 ns/op 761.00 ns/op 1.00
enrSubnets - fastDeserialize 4 bits 396.00 ns/op 415.00 ns/op 0.95
enrSubnets - ssz BitVector 4 bits 740.00 ns/op 776.00 ns/op 0.95
prioritizePeers score -10:0 att 32-0.1 sync 2-0 93.660 us/op 88.642 us/op 1.06
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 124.39 us/op 129.73 us/op 0.96
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 220.66 us/op 206.44 us/op 1.07
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 457.67 us/op 380.92 us/op 1.20
prioritizePeers score 0:0 att 64-1 sync 4-1 463.23 us/op 451.43 us/op 1.03
RateTracker 1000000 limit, 1 obj count per request 191.27 ns/op 181.34 ns/op 1.05
RateTracker 1000000 limit, 2 obj count per request 145.91 ns/op 136.66 ns/op 1.07
RateTracker 1000000 limit, 4 obj count per request 116.57 ns/op 113.94 ns/op 1.02
RateTracker 1000000 limit, 8 obj count per request 106.56 ns/op 104.04 ns/op 1.02
RateTracker with prune 4.4830 us/op 4.1160 us/op 1.09
array of 16000 items push then shift 3.1581 us/op 3.0790 us/op 1.03
LinkedList of 16000 items push then shift 26.364 ns/op 23.431 ns/op 1.13
array of 16000 items push then pop 252.22 ns/op 225.71 ns/op 1.12
LinkedList of 16000 items push then pop 21.767 ns/op 18.984 ns/op 1.15
array of 24000 items push then shift 4.5674 us/op 4.5527 us/op 1.00
LinkedList of 24000 items push then shift 26.130 ns/op 22.036 ns/op 1.19
array of 24000 items push then pop 197.77 ns/op 189.13 ns/op 1.05
LinkedList of 24000 items push then pop 22.267 ns/op 18.769 ns/op 1.19
intersect bitArray bitLen 8 11.052 ns/op 11.037 ns/op 1.00
intersect array and set length 8 166.18 ns/op 158.62 ns/op 1.05
intersect bitArray bitLen 128 47.995 ns/op 47.841 ns/op 1.00
intersect array and set length 128 2.2801 us/op 2.1556 us/op 1.06

by benchmarkbot/action

@wemeetagain wemeetagain merged commit 75e405c into master May 24, 2022
@wemeetagain wemeetagain deleted the g11tech/engine-prepare-fcus branch May 24, 2022 19:20
@g11tech g11tech mentioned this pull request May 27, 2022
dapplion added a commit that referenced this pull request May 30, 2022
* New metric filtering missed blocks (#3927)

* Log block delay second

* Add elappsedTimeTillBecomeHead metric

* Add 'till become head' metric to dashboard

* chore: correct the metric name to elapsedTimeTillBecomeHead

* Add and use secFromSlot to clock

* Track block source

* Revert "Track block source"

This reverts commit 5fe6220.

* Update bucket values

* Limit how old blocks are tracked in elapsedTimeTillBecomeHead

* Simplify secFromSlot

Co-authored-by: dapplion <35266934+dapplion@users.noreply.github.com>

* Fix the terminal validations of the merge block (#3984)

* Fix the terminal validations of the merge block

* activate merge transition block spec tests

* some comments to explain the merge block validations movement

* Extend error messages when voluntary exit errors because of present of lockfile (#3935)

* Extend error and Clean up

* Only showing the message to use --force to override in case of voluntary exit

* Simplify gitData and version guessing (#3992)

Don't print double slash in version string

Dont add git-data.json to NPM releases

Write git-data.json only in from source docker build

Remove numCommits

Test git-data.json generation from within the test

Move comment

Revert "Dont add git-data.json to NPM releases"

This reverts commit 5fe2d38.

Simplify gitData and version guessing

Run cmd

* Activate ex-ante fork-choice spec tests (#4003)

* Prepare custom version on next release (#3990)

* Prepare custom version on next release

* Test in branch

* Don't set version in advance

* Remove --canary flag

* Change and commit version

* Setup git config

* Revert temp changes

* Lightclient e2e: increase validator client (#4006)

* Bump to v0.37.0 nightly builds (#4013)

* Guarantee full spec tests coverage (#4012)

* Ensure all spec tests are run

* Fix general bls tests

* Improve docs of specTestIterator

* Fix fork_choice tests

* Remove Check spec tests step

* Add merge transition/finalization banners (#3963)

* Add merge transition/finalization banners

* fix signatures

* Benchmark initial sync (#3995)

* Basic range sync perf test

* Benchmark initial sync

* Add INFURA_ETH2_CREDENTIALS to benchmark GA

* Download test cache file from alternative source

* Re-org beforeValue and testCase helpers

* Break light-client - state-transition test dependency

* Revert adding downloadTestCacheFile

* Download files from a Github release

* Clarify #3977 with unbounded uint issue (#4018)

* Update mainnet-shadow-5 configs (#4021)

* Bump moment from 2.29.1 to 2.29.2 (#3901)

Bumps [moment](https://github.com/moment/moment) from 2.29.1 to 2.29.2.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](moment/moment@2.29.1...2.29.2)

---
updated-dependencies:
- dependency-name: moment
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Implement support for validator next-epoch proposer duties (#3782)

* Implementation to be able to get block proposer an epoch ahead - still need optimization

* revert changes made to waitForSlot

* caching the results of computing future proposers. Also extended test

* using effectiveBalanceIncrements from state instead of recomputing it

* fix lint errors

* revert check not needed in getBeaconProposer

* Update tests to include assertion messages

* Move caching of next proposer duties to BeaconChain class

* Delete the block proposer previously cached when next proposer was requested at current epoch

* moved next epoch proposers from the chain to the state

* Compute next proposer on demand and cache

* Fix lint errors

* update implementation to work with changes from master

* caching epoch seed in context so that getNextEpochBeaconProposer can be independent of state

* Revert "caching epoch seed in context so that getNextEpochBeaconProposer can be independent of state"

This reverts commit 02a722a.

* caching epoch seed in context so that getNextEpochBeaconProposer can be independent of state

* removing the need to delete from nextEpochProposers in call to getBeaconProposer

* no need to recompute currrentProposerSeed again

* Revert "no need to recompute currrentProposerSeed again"

This reverts commit b6b1b8c.

* removed empty file left after fixing merge conflicts

* remove some unnecessary variable from the epoch context.

* add some comments

* Fix lint

* import from the right location

* Review PR

* Merge imports

* Delete get proposers api impl test

* Remove duplicated comment

Co-authored-by: dapplion <35266934+dapplion@users.noreply.github.com>

* Extend timeout for gitData unit test (#4026)

* Fix readAndGetGitData (#4025)

* Ensure light client update is in a single period (#4029)

* Handle merge block fetch error (#4016)

* Handle merge block fetch error

* Log errors on fetch errors for terminal pow

* docs: Update nodeJS minimum requirement (#4037)

* Remove child_process call in gitData before step (#4033)

* Oppool aggregates use BitArray only for set logic (#4034)

* Use BitArrays for aggregate merging

* Test intersectUint8Arrays

* Review PR

* Update tests

* Remove un-used code

* Modify gossipsub params following consensus spec v1.1.10 (#4011)

* Modify gossipsub params following consensus spec v1.1.10

* Specify GOSSIPSUB_HEARTBEAT_INTERVAL as a constant

* Throw a more informative error on invalid keystore (#4022)

* Throw a more informative error on invalid keystore

* Make error more descriptive

* Use template string

* Update keys.ts

* Update keys.ts

Co-authored-by: Lion - dapplion <35266934+dapplion@users.noreply.github.com>

* Ignore gossip AggregateAndProof if aggregate is seen (#4019)

* Ignore gossip AggregateAndProof if aggregate is seen

* Check for non-strict superset of seen attestation data

* Fix validateGossipAggregateAndProof benchmark test

* Fix import

* Ultilize intersectUint8Arrays()

* Implement SeenContributionAndProof.participantsKnown

* Add metrics to seen cache

* Add perf tests

* Change method name to isSuperSetOrEqual()

* Refactor metric names

* Specify lerna exact version for release-nightly workflow (#4049)

* Add ropsten network (#4051)

* Force all packages to be versioned for exact (#4052)

* Update discv5 to v0.7.1 (#4044)

* Add ability to update the fee recipient for execution via beacon and/or validator defaults (#3958)

* Add and use a default fee recipient for a validator process

* transfer the proposer cache to beacon chain

* mock chain fixes

* test and perf fixes

* fee recipient validation change

* track and use free recipient as string instead of ExecutionAddress

* fix unit test

* fix merge test

* use dummy address

* refac and add proposer cache pruning

* tests for beacon proposer cache

* merge interop fee recipient check

* fix the optional

* feeRecipient confirmation and small refac

* add the missing map

* add flag to enable strict fee recipient check

* Small refactor to setup merge for ropsten using baked in configs (#4053)

* Issue advance fcU for builing the EL block (#3965)

rebaseing to the refactored prepare beacon proposer

refac payload id cache as separate class and add pruning

issue payload fcus if synced

rename issueNext.. to maybeIssueNext...

* Simplify release process (#4030)

* Simplify release process

* Remove old postrelease script

* Add lerna version check

* Tweak RELEASE.md

* Add force-publish to lerna version command

* Update the proposer boost percentage to 40% (#4055)

* ESM Support (#3978)

* ESM changes

* Fix root lodestar script

* Fix some linter errors

* trying directly re-exporting under an alias from networks module

* Fix types exports

* Fix more linter errors

* Fix spec test download

* Update bls to 7.1.0

* Fix spec tests

* temp reverting eslint parser option to 10 and disabling the check of .js file extenstion. Should fix lint errors

* temp commented out file-extension-in-import

* Disable readme checks

* Fix check-build

* Fix params e2e tests

* Bump @chainsafe/threads

* Bump bls to v7.1.1

* Add timeouts after node initialization but before sim test run

* Tweak timeouts

* Tweak timeout

* Tweak sim merge timeout

* Tweak sim merge timeout

* Tweak sim merge timeout

* Tweak sim merge timeout

* Add more timeouts

* Add another timeout

* Fix linter errors

* Fix some tests

* Fix some linter errors and spec tests

* Fix benchmarks

* Fix linter errors

* Update each bls dependency

* Tweak timeouts

* Add another timeout

* More timeouts

* Fix bls pool size

* Set root package.json to ESM

* Remove old linter comment

* Revert "Set root package.json to ESM"

This reverts commit 347b0fd.

* Remove stray file (probably old)

* Undo unnecessary diff

* Add comment on __dirname replacement

* Import type @chainsafe/bls/types

* Use lodestar path imports

* Revert multifork to lodestar package

* Format .mocharc.yaml

* Use same @chainsafe/as-sha256 version

* Fix lodash path imports

* Use src instead of lib

* Load db metrics

* Remove experimental-specifier-resolution

* Remove lodestat/chain export

* Add stray missing file extension

* Revert ValidatorDir changes

* Fix stray missing file extensions

* Fix check-types

Co-authored-by: Dadepo Aderemi <dadepo@gmail.com>
Co-authored-by: dapplion <35266934+dapplion@users.noreply.github.com>

* chore(release): v0.37.0-beta.0

* Bump to v0.37.0

Co-authored-by: tuyennhv <vutuyen2636@gmail.com>
Co-authored-by: g11tech <76567250+g11tech@users.noreply.github.com>
Co-authored-by: dadepo <dadepo@gmail.com>
Co-authored-by: Cayman <caymannava@gmail.com>
Co-authored-by: Phil Ngo <58080811+philknows@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: g11tech <gajinder@g11.in>
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