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

Fix the terminal validations of the merge block #3984

Merged
merged 3 commits into from
May 10, 2022

Conversation

g11tech
Copy link
Contributor

@g11tech g11tech commented May 7, 2022

Motivation
It was discovered that terminal block validations weren't running on the merge block because of incorrect evaluation of the merge transition block on postState

This PR fixes the evaluation on preState as well as move the assertions into the verifyBlock instead of forkChoice. The assertValidTerminalPowBlock still stays in forkchoice because it might be required to validate terminal conditions if it imported a merge transition block in syncing status, which later becomes valid

Closes #3982, Closes #3986

@g11tech g11tech requested a review from a team as a code owner May 7, 2022 08:13
@codecov
Copy link

codecov bot commented May 7, 2022

Codecov Report

Merging #3984 (8710211) into master (d7a3211) will increase coverage by 0.06%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3984      +/-   ##
==========================================
+ Coverage   36.77%   36.83%   +0.06%     
==========================================
  Files         325      325              
  Lines        9223     9224       +1     
  Branches     1498     1496       -2     
==========================================
+ Hits         3392     3398       +6     
+ Misses       5640     5635       -5     
  Partials      191      191              

@github-actions
Copy link
Contributor

github-actions bot commented May 7, 2022

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: c24b183 Previous: 28e2c74 Ratio
BeaconState.hashTreeRoot - No change 466.00 ns/op 618.00 ns/op 0.75
BeaconState.hashTreeRoot - 1 full validator 63.672 us/op 77.091 us/op 0.83
BeaconState.hashTreeRoot - 32 full validator 625.50 us/op 747.81 us/op 0.84
BeaconState.hashTreeRoot - 512 full validator 6.7086 ms/op 7.0775 ms/op 0.95
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 77.735 us/op 89.437 us/op 0.87
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.0627 ms/op 1.2111 ms/op 0.88
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 15.003 ms/op 15.488 ms/op 0.97
BeaconState.hashTreeRoot - 1 balances 61.028 us/op 66.994 us/op 0.91
BeaconState.hashTreeRoot - 32 balances 530.63 us/op 595.54 us/op 0.89
BeaconState.hashTreeRoot - 512 balances 5.2077 ms/op 5.7309 ms/op 0.91
BeaconState.hashTreeRoot - 250000 balances 113.24 ms/op 129.12 ms/op 0.88
processSlot - 1 slots 10.980 us/op 13.826 us/op 0.79
processSlot - 32 slots 1.7559 ms/op 2.1166 ms/op 0.83
getCommitteeAssignments - req 1 vs - 250000 vc 5.8645 ms/op 5.3675 ms/op 1.09
getCommitteeAssignments - req 100 vs - 250000 vc 8.3078 ms/op 8.5348 ms/op 0.97
getCommitteeAssignments - req 1000 vs - 250000 vc 9.0049 ms/op 8.7314 ms/op 1.03
computeProposers - vc 250000 19.502 ms/op 20.435 ms/op 0.95
computeEpochShuffling - vc 250000 184.88 ms/op 160.23 ms/op 1.15
getNextSyncCommittee - vc 250000 318.50 ms/op 362.99 ms/op 0.88
altair processAttestation - 250000 vs - 7PWei normalcase 4.1552 ms/op 4.1119 ms/op 1.01
altair processAttestation - 250000 vs - 7PWei worstcase 5.8548 ms/op 6.9603 ms/op 0.84
altair processAttestation - setStatus - 1/6 committees join 211.54 us/op 234.70 us/op 0.90
altair processAttestation - setStatus - 1/3 committees join 421.94 us/op 420.08 us/op 1.00
altair processAttestation - setStatus - 1/2 committees join 589.89 us/op 598.13 us/op 0.99
altair processAttestation - setStatus - 2/3 committees join 747.32 us/op 745.76 us/op 1.00
altair processAttestation - setStatus - 4/5 committees join 1.0667 ms/op 1.0192 ms/op 1.05
altair processAttestation - setStatus - 100% committees join 1.2903 ms/op 1.3001 ms/op 0.99
altair processBlock - 250000 vs - 7PWei normalcase 26.186 ms/op 29.127 ms/op 0.90
altair processBlock - 250000 vs - 7PWei normalcase hashState 39.633 ms/op 40.236 ms/op 0.99
altair processBlock - 250000 vs - 7PWei worstcase 89.385 ms/op 85.988 ms/op 1.04
altair processBlock - 250000 vs - 7PWei worstcase hashState 113.76 ms/op 125.60 ms/op 0.91
altair processEth1Data - 250000 vs - 7PWei normalcase 1.0644 ms/op 910.02 us/op 1.17
altair processEpoch - mainnet_e81889 627.80 ms/op 641.09 ms/op 0.98
mainnet_e81889 - altair beforeProcessEpoch 168.97 ms/op 102.26 ms/op 1.65
mainnet_e81889 - altair processJustificationAndFinalization 41.718 us/op 75.155 us/op 0.56
mainnet_e81889 - altair processInactivityUpdates 12.282 ms/op 11.556 ms/op 1.06
mainnet_e81889 - altair processRewardsAndPenalties 151.09 ms/op 174.37 ms/op 0.87
mainnet_e81889 - altair processRegistryUpdates 9.8630 us/op 16.199 us/op 0.61
mainnet_e81889 - altair processSlashings 2.9590 us/op 6.7050 us/op 0.44
mainnet_e81889 - altair processEth1DataReset 3.2680 us/op 6.7850 us/op 0.48
mainnet_e81889 - altair processEffectiveBalanceUpdates 9.2472 ms/op 7.6563 ms/op 1.21
mainnet_e81889 - altair processSlashingsReset 10.269 us/op 24.184 us/op 0.42
mainnet_e81889 - altair processRandaoMixesReset 10.718 us/op 27.767 us/op 0.39
mainnet_e81889 - altair processHistoricalRootsUpdate 3.9070 us/op 8.8520 us/op 0.44
mainnet_e81889 - altair processParticipationFlagUpdates 7.1150 us/op 18.656 us/op 0.38
mainnet_e81889 - altair processSyncCommitteeUpdates 2.6900 us/op 5.7330 us/op 0.47
mainnet_e81889 - altair afterProcessEpoch 214.41 ms/op 186.73 ms/op 1.15
altair processInactivityUpdates - 250000 normalcase 36.983 ms/op 38.997 ms/op 0.95
altair processInactivityUpdates - 250000 worstcase 31.235 ms/op 34.654 ms/op 0.90
altair processRewardsAndPenalties - 250000 normalcase 141.96 ms/op 135.04 ms/op 1.05
altair processRewardsAndPenalties - 250000 worstcase 106.65 ms/op 118.11 ms/op 0.90
altair processSyncCommitteeUpdates - 250000 322.91 ms/op 365.79 ms/op 0.88
Tree 40 250000 create 719.52 ms/op 776.69 ms/op 0.93
Tree 40 250000 get(125000) 329.69 ns/op 323.73 ns/op 1.02
Tree 40 250000 set(125000) 2.2153 us/op 2.6953 us/op 0.82
Tree 40 250000 toArray() 35.301 ms/op 35.203 ms/op 1.00
Tree 40 250000 iterate all - toArray() + loop 35.450 ms/op 34.999 ms/op 1.01
Tree 40 250000 iterate all - get(i) 124.15 ms/op 133.05 ms/op 0.93
MutableVector 250000 create 17.129 ms/op 16.712 ms/op 1.02
MutableVector 250000 get(125000) 15.514 ns/op 14.619 ns/op 1.06
MutableVector 250000 set(125000) 590.79 ns/op 697.07 ns/op 0.85
MutableVector 250000 toArray() 7.0468 ms/op 6.2133 ms/op 1.13
MutableVector 250000 iterate all - toArray() + loop 7.6868 ms/op 6.7380 ms/op 1.14
MutableVector 250000 iterate all - get(i) 4.0306 ms/op 3.5017 ms/op 1.15
Array 250000 create 6.7670 ms/op 5.6947 ms/op 1.19
Array 250000 clone - spread 2.9039 ms/op 2.7580 ms/op 1.05
Array 250000 get(125000) 1.3350 ns/op 1.2770 ns/op 1.05
Array 250000 set(125000) 1.3160 ns/op 1.2940 ns/op 1.02
Array 250000 iterate all - loop 194.93 us/op 149.70 us/op 1.30
effectiveBalanceIncrements clone Uint8Array 300000 85.845 us/op 162.62 us/op 0.53
effectiveBalanceIncrements clone MutableVector 300000 875.00 ns/op 593.00 ns/op 1.48
effectiveBalanceIncrements rw all Uint8Array 300000 349.32 us/op 196.99 us/op 1.77
effectiveBalanceIncrements rw all MutableVector 300000 195.48 ms/op 181.70 ms/op 1.08
aggregationBits - 2048 els - zipIndexesInBitList 30.648 us/op 25.085 us/op 1.22
regular array get 100000 times 78.393 us/op 59.094 us/op 1.33
wrappedArray get 100000 times 77.004 us/op 61.901 us/op 1.24
arrayWithProxy get 100000 times 34.067 ms/op 69.079 ms/op 0.49
ssz.Root.equals 514.00 ns/op 551.00 ns/op 0.93
byteArrayEquals 507.00 ns/op 461.00 ns/op 1.10
phase0 processBlock - 250000 vs - 7PWei normalcase 4.0795 ms/op 4.0778 ms/op 1.00
phase0 processBlock - 250000 vs - 7PWei worstcase 51.906 ms/op 57.221 ms/op 0.91
phase0 afterProcessEpoch - 250000 vs - 7PWei 219.74 ms/op 198.91 ms/op 1.10
phase0 beforeProcessEpoch - 250000 vs - 7PWei 81.606 ms/op 81.026 ms/op 1.01
phase0 processEpoch - mainnet_e58758 574.75 ms/op 674.68 ms/op 0.85
mainnet_e58758 - phase0 beforeProcessEpoch 246.46 ms/op 285.46 ms/op 0.86
mainnet_e58758 - phase0 processJustificationAndFinalization 35.095 us/op 71.578 us/op 0.49
mainnet_e58758 - phase0 processRewardsAndPenalties 161.47 ms/op 84.808 ms/op 1.90
mainnet_e58758 - phase0 processRegistryUpdates 24.510 us/op 36.932 us/op 0.66
mainnet_e58758 - phase0 processSlashings 3.7630 us/op 7.1440 us/op 0.53
mainnet_e58758 - phase0 processEth1DataReset 3.3130 us/op 6.2330 us/op 0.53
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 6.6528 ms/op 6.3559 ms/op 1.05
mainnet_e58758 - phase0 processSlashingsReset 11.462 us/op 23.571 us/op 0.49
mainnet_e58758 - phase0 processRandaoMixesReset 13.264 us/op 27.756 us/op 0.48
mainnet_e58758 - phase0 processHistoricalRootsUpdate 4.1520 us/op 7.9310 us/op 0.52
mainnet_e58758 - phase0 processParticipationRecordUpdates 11.902 us/op 26.514 us/op 0.45
mainnet_e58758 - phase0 afterProcessEpoch 171.20 ms/op 171.34 ms/op 1.00
phase0 processEffectiveBalanceUpdates - 250000 normalcase 7.6574 ms/op 7.5575 ms/op 1.01
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 7.9738 ms/op 8.1371 ms/op 0.98
phase0 processRegistryUpdates - 250000 normalcase 19.454 us/op 31.937 us/op 0.61
phase0 processRegistryUpdates - 250000 badcase_full_deposits 532.78 us/op 488.04 us/op 1.09
phase0 processRegistryUpdates - 250000 worstcase 0.5 243.64 ms/op 234.76 ms/op 1.04
phase0 getAttestationDeltas - 250000 normalcase 16.517 ms/op 14.290 ms/op 1.16
phase0 getAttestationDeltas - 250000 worstcase 17.047 ms/op 16.846 ms/op 1.01
phase0 processSlashings - 250000 worstcase 6.7236 ms/op 7.0111 ms/op 0.96
shuffle list - 16384 els 12.124 ms/op 11.563 ms/op 1.05
shuffle list - 250000 els 177.21 ms/op 162.95 ms/op 1.09
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 413.90 us/op 430.82 us/op 0.96
pass gossip attestations to forkchoice per slot 3.9792 ms/op 4.5069 ms/op 0.88
computeDeltas 4.0636 ms/op 4.0578 ms/op 1.00
computeProposerBoostScoreFromBalances 583.02 us/op 513.68 us/op 1.13
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.2270 ms/op 2.5554 ms/op 0.87
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 84.156 us/op 85.938 us/op 0.98
BLS verify - blst-native 2.1213 ms/op 2.3339 ms/op 0.91
BLS verifyMultipleSignatures 3 - blst-native 4.4606 ms/op 4.7652 ms/op 0.94
BLS verifyMultipleSignatures 8 - blst-native 9.4855 ms/op 9.9420 ms/op 0.95
BLS verifyMultipleSignatures 32 - blst-native 34.248 ms/op 36.841 ms/op 0.93
BLS aggregatePubkeys 32 - blst-native 44.647 us/op 47.846 us/op 0.93
BLS aggregatePubkeys 128 - blst-native 175.78 us/op 181.22 us/op 0.97
getAttestationsForBlock 71.334 ms/op 74.870 ms/op 0.95
CheckpointStateCache - add get delete 12.212 us/op 13.638 us/op 0.90
validate gossip signedAggregateAndProof - struct 4.8831 ms/op 5.5014 ms/op 0.89
validate gossip attestation - struct 2.3273 ms/op 2.6494 ms/op 0.88
pickEth1Vote - no votes 2.5806 ms/op 2.6721 ms/op 0.97
pickEth1Vote - max votes 21.046 ms/op 24.411 ms/op 0.86
pickEth1Vote - Eth1Data hashTreeRoot value x2048 12.492 ms/op 15.487 ms/op 0.81
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 23.189 ms/op 23.977 ms/op 0.97
pickEth1Vote - Eth1Data fastSerialize value x2048 1.9682 ms/op 2.4478 ms/op 0.80
pickEth1Vote - Eth1Data fastSerialize tree x2048 13.864 ms/op 15.859 ms/op 0.87
bytes32 toHexString 1.0640 us/op 1.1520 us/op 0.92
bytes32 Buffer.toString(hex) 758.00 ns/op 860.00 ns/op 0.88
bytes32 Buffer.toString(hex) from Uint8Array 971.00 ns/op 1.0900 us/op 0.89
bytes32 Buffer.toString(hex) + 0x 758.00 ns/op 877.00 ns/op 0.86
Object access 1 prop 0.38600 ns/op 0.41900 ns/op 0.92
Map access 1 prop 0.32800 ns/op 0.36200 ns/op 0.91
Object get x1000 20.158 ns/op 17.892 ns/op 1.13
Map get x1000 1.2140 ns/op 1.1480 ns/op 1.06
Object set x1000 124.28 ns/op 114.27 ns/op 1.09
Map set x1000 75.553 ns/op 78.319 ns/op 0.96
Return object 10000 times 0.42110 ns/op 0.45880 ns/op 0.92
Throw Error 10000 times 6.8641 us/op 8.0571 us/op 0.85
enrSubnets - fastDeserialize 64 bits 2.9740 us/op 3.3580 us/op 0.89
enrSubnets - ssz BitVector 64 bits 850.00 ns/op 985.00 ns/op 0.86
enrSubnets - fastDeserialize 4 bits 435.00 ns/op 476.00 ns/op 0.91
enrSubnets - ssz BitVector 4 bits 819.00 ns/op 872.00 ns/op 0.94
prioritizePeers score -10:0 att 32-0.1 sync 2-0 100.58 us/op 129.24 us/op 0.78
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 147.97 us/op 165.56 us/op 0.89
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 244.81 us/op 276.18 us/op 0.89
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 456.35 us/op 627.77 us/op 0.73
prioritizePeers score 0:0 att 64-1 sync 4-1 516.75 us/op 626.90 us/op 0.82
RateTracker 1000000 limit, 1 obj count per request 219.93 ns/op 211.89 ns/op 1.04
RateTracker 1000000 limit, 2 obj count per request 167.39 ns/op 159.05 ns/op 1.05
RateTracker 1000000 limit, 4 obj count per request 142.34 ns/op 125.50 ns/op 1.13
RateTracker 1000000 limit, 8 obj count per request 126.89 ns/op 117.01 ns/op 1.08
RateTracker with prune 4.4490 us/op 4.5260 us/op 0.98
array of 16000 items push then shift 3.5988 us/op 5.7986 us/op 0.62
LinkedList of 16000 items push then shift 18.360 ns/op 20.936 ns/op 0.88
array of 16000 items push then pop 232.62 ns/op 266.12 ns/op 0.87
LinkedList of 16000 items push then pop 18.581 ns/op 18.637 ns/op 1.00
array of 24000 items push then shift 5.3105 us/op 8.5851 us/op 0.62
LinkedList of 24000 items push then shift 20.487 ns/op 19.039 ns/op 1.08
array of 24000 items push then pop 216.33 ns/op 252.00 ns/op 0.86
LinkedList of 24000 items push then pop 20.112 ns/op 18.166 ns/op 1.11

by benchmarkbot/action

@twoeths
Copy link
Contributor

twoeths commented May 7, 2022

@g11tech did you find out any spec test covering the is_valid_terminal_pow_block() function? Otherwise I think we should ask for a spec test for it

@g11tech
Copy link
Contributor Author

g11tech commented May 7, 2022

I can see some tests that could be pertaining to them. I can create an issue and pursue it as a separate PR 🤔

Update: #3986

@g11tech
Copy link
Contributor Author

g11tech commented May 9, 2022

@g11tech did you find out any spec test covering the is_valid_terminal_pow_block() function? Otherwise I think we should ask for a spec test for it

added

@@ -272,6 +279,15 @@ export async function verifyBlockStateTransition(
errorMessage: execResult.validationError,
});
}

if (isMergeTransitionBlock) {
Copy link
Contributor

@dapplion dapplion May 9, 2022

Choose a reason for hiding this comment

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

Add nice long comment here like in Lighthouse explaining why we do this here and not in the forkchoice. Link also to the spec's location where this code should be.

Since this is not documenation for JSDocs use style

//
//

bellatrix.isMergeTransitionBlock(state, block.body))
)
assertValidTerminalPowBlock(this.config, (block as unknown) as bellatrix.BeaconBlock, preCachedData);

Copy link
Contributor

Choose a reason for hiding this comment

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

Add nice long comment here explaining why we do NOT do this here and where it's happening instead. Link also to the spec's code.

Since this is not documenation for JSDocs use style

//
//

@dapplion dapplion merged commit 70ea8cd into master May 10, 2022
@dapplion dapplion deleted the g11tech/fix-merge-transition branch May 10, 2022 08:26
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 <[email protected]>

* 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] <[email protected]>

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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: dapplion <[email protected]>

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

* Bump to v0.37.0

Co-authored-by: tuyennhv <[email protected]>
Co-authored-by: g11tech <[email protected]>
Co-authored-by: dadepo <[email protected]>
Co-authored-by: Cayman <[email protected]>
Co-authored-by: Phil Ngo <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: g11tech <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants