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

Ensure light client update is in a single period #4029

Merged
merged 1 commit into from
May 17, 2022

Conversation

wemeetagain
Copy link
Member

@wemeetagain wemeetagain commented May 17, 2022

Motivation

Several reports of invalid light client updates from discord:

  • Last week in sync committee period 48, I tested my light client and all the verifications passed. The period rolled over to 49, and my verification was no longer passing. I used the header slot to calculate in what period the header is, and saw that the headers are in period 48, still. I added a check in my code to check whether the calculated sync period and the headers in the committee update's period match, thinking that the headers might be updated to a better header further in sync period 49.

  • API seems to give a wrong answer to period 49 (it belongs to period 48 though it's different from what is returned when asking for period 48). The next_committee_root is also the root of committee 49. The attested header is slot 401407 and the finalized header is 401312 (period 49 begins at 401408, so the attested header is right at the very end of the previous period). I believe both the attested and finalized headers should be in the requested period.

Description

Ensure that the signature period == attested header period === finalized header period in light client updates

  • when getting a new sync aggregate, disregard it if the attested data is not in the same period
  • when appending the finalized data to the update, don't append the finalized data if the finalized header isn't in the same period as the sync aggregate

@wemeetagain wemeetagain requested a review from a team as a code owner May 17, 2022 15:15
@codecov
Copy link

codecov bot commented May 17, 2022

Codecov Report

Merging #4029 (49fb07c) into master (871ea9a) will decrease coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #4029      +/-   ##
==========================================
- Coverage   36.79%   36.78%   -0.02%     
==========================================
  Files         325      325              
  Lines        9203     9206       +3     
  Branches     1500     1501       +1     
==========================================
  Hits         3386     3386              
- Misses       5626     5629       +3     
  Partials      191      191              

@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 748af08 Previous: 871ea9a Ratio
BeaconState.hashTreeRoot - No change 475.00 ns/op 488.00 ns/op 0.97
BeaconState.hashTreeRoot - 1 full validator 54.820 us/op 66.669 us/op 0.82
BeaconState.hashTreeRoot - 32 full validator 577.91 us/op 655.45 us/op 0.88
BeaconState.hashTreeRoot - 512 full validator 6.0429 ms/op 7.0103 ms/op 0.86
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 70.177 us/op 83.382 us/op 0.84
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 948.40 us/op 1.1221 ms/op 0.85
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 13.648 ms/op 15.036 ms/op 0.91
BeaconState.hashTreeRoot - 1 balances 54.706 us/op 63.628 us/op 0.86
BeaconState.hashTreeRoot - 32 balances 487.33 us/op 571.30 us/op 0.85
BeaconState.hashTreeRoot - 512 balances 4.6015 ms/op 5.3967 ms/op 0.85
BeaconState.hashTreeRoot - 250000 balances 106.37 ms/op 112.16 ms/op 0.95
processSlot - 1 slots 11.639 us/op 12.194 us/op 0.95
processSlot - 32 slots 1.6793 ms/op 1.8905 ms/op 0.89
getCommitteeAssignments - req 1 vs - 250000 vc 5.2811 ms/op 5.2856 ms/op 1.00
getCommitteeAssignments - req 100 vs - 250000 vc 7.3286 ms/op 8.1827 ms/op 0.90
getCommitteeAssignments - req 1000 vs - 250000 vc 7.9981 ms/op 8.4272 ms/op 0.95
computeProposers - vc 250000 17.091 ms/op 17.329 ms/op 0.99
computeEpochShuffling - vc 250000 160.77 ms/op 171.68 ms/op 0.94
getNextSyncCommittee - vc 250000 280.72 ms/op 286.17 ms/op 0.98
altair processAttestation - 250000 vs - 7PWei normalcase 3.9022 ms/op 3.3674 ms/op 1.16
altair processAttestation - 250000 vs - 7PWei worstcase 5.5898 ms/op 5.0390 ms/op 1.11
altair processAttestation - setStatus - 1/6 committees join 193.57 us/op 162.85 us/op 1.19
altair processAttestation - setStatus - 1/3 committees join 369.88 us/op 328.22 us/op 1.13
altair processAttestation - setStatus - 1/2 committees join 519.04 us/op 462.62 us/op 1.12
altair processAttestation - setStatus - 2/3 committees join 670.67 us/op 610.17 us/op 1.10
altair processAttestation - setStatus - 4/5 committees join 932.14 us/op 858.41 us/op 1.09
altair processAttestation - setStatus - 100% committees join 1.1018 ms/op 1.0358 ms/op 1.06
altair processBlock - 250000 vs - 7PWei normalcase 28.858 ms/op 24.844 ms/op 1.16
altair processBlock - 250000 vs - 7PWei normalcase hashState 37.641 ms/op 34.270 ms/op 1.10
altair processBlock - 250000 vs - 7PWei worstcase 74.584 ms/op 73.819 ms/op 1.01
altair processBlock - 250000 vs - 7PWei worstcase hashState 113.56 ms/op 102.92 ms/op 1.10
altair processEth1Data - 250000 vs - 7PWei normalcase 826.50 us/op 702.15 us/op 1.18
altair processEpoch - mainnet_e81889 574.55 ms/op 534.13 ms/op 1.08
mainnet_e81889 - altair beforeProcessEpoch 144.96 ms/op 139.76 ms/op 1.04
mainnet_e81889 - altair processJustificationAndFinalization 26.490 us/op 27.486 us/op 0.96
mainnet_e81889 - altair processInactivityUpdates 12.217 ms/op 8.8078 ms/op 1.39
mainnet_e81889 - altair processRewardsAndPenalties 138.57 ms/op 72.169 ms/op 1.92
mainnet_e81889 - altair processRegistryUpdates 3.7770 us/op 3.1590 us/op 1.20
mainnet_e81889 - altair processSlashings 1.0470 us/op 874.00 ns/op 1.20
mainnet_e81889 - altair processEth1DataReset 1.1830 us/op 1.0720 us/op 1.10
mainnet_e81889 - altair processEffectiveBalanceUpdates 6.9831 ms/op 5.7206 ms/op 1.22
mainnet_e81889 - altair processSlashingsReset 5.3090 us/op 5.6390 us/op 0.94
mainnet_e81889 - altair processRandaoMixesReset 7.4030 us/op 5.4920 us/op 1.35
mainnet_e81889 - altair processHistoricalRootsUpdate 1.2270 us/op 1.2210 us/op 1.00
mainnet_e81889 - altair processParticipationFlagUpdates 2.9800 us/op 3.4350 us/op 0.87
mainnet_e81889 - altair processSyncCommitteeUpdates 1.0100 us/op 3.0420 us/op 0.33
mainnet_e81889 - altair afterProcessEpoch 185.13 ms/op 217.27 ms/op 0.85
altair processInactivityUpdates - 250000 normalcase 34.844 ms/op 25.628 ms/op 1.36
altair processInactivityUpdates - 250000 worstcase 28.692 ms/op 20.761 ms/op 1.38
altair processRewardsAndPenalties - 250000 normalcase 138.34 ms/op 95.086 ms/op 1.45
altair processRewardsAndPenalties - 250000 worstcase 79.460 ms/op 88.792 ms/op 0.89
altair processSyncCommitteeUpdates - 250000 292.67 ms/op 292.27 ms/op 1.00
Tree 40 250000 create 835.10 ms/op 681.70 ms/op 1.23
Tree 40 250000 get(125000) 289.54 ns/op 240.65 ns/op 1.20
Tree 40 250000 set(125000) 2.5311 us/op 2.0328 us/op 1.25
Tree 40 250000 toArray() 33.084 ms/op 26.803 ms/op 1.23
Tree 40 250000 iterate all - toArray() + loop 33.466 ms/op 26.684 ms/op 1.25
Tree 40 250000 iterate all - get(i) 113.55 ms/op 111.80 ms/op 1.02
MutableVector 250000 create 16.103 ms/op 13.113 ms/op 1.23
MutableVector 250000 get(125000) 14.799 ns/op 11.003 ns/op 1.34
MutableVector 250000 set(125000) 732.95 ns/op 555.74 ns/op 1.32
MutableVector 250000 toArray() 7.7661 ms/op 5.2958 ms/op 1.47
MutableVector 250000 iterate all - toArray() + loop 7.9093 ms/op 5.4033 ms/op 1.46
MutableVector 250000 iterate all - get(i) 3.2809 ms/op 2.6796 ms/op 1.22
Array 250000 create 6.7492 ms/op 5.6819 ms/op 1.19
Array 250000 clone - spread 3.6881 ms/op 2.9200 ms/op 1.26
Array 250000 get(125000) 1.5840 ns/op 1.4330 ns/op 1.11
Array 250000 set(125000) 1.5220 ns/op 1.4370 ns/op 1.06
Array 250000 iterate all - loop 170.16 us/op 151.07 us/op 1.13
effectiveBalanceIncrements clone Uint8Array 300000 89.643 us/op 51.698 us/op 1.73
effectiveBalanceIncrements clone MutableVector 300000 662.00 ns/op 979.00 ns/op 0.68
effectiveBalanceIncrements rw all Uint8Array 300000 301.93 us/op 241.41 us/op 1.25
effectiveBalanceIncrements rw all MutableVector 300000 180.29 ms/op 184.29 ms/op 0.98
aggregationBits - 2048 els - zipIndexesInBitList 28.467 us/op 30.569 us/op 0.93
regular array get 100000 times 67.435 us/op 60.595 us/op 1.11
wrappedArray get 100000 times 67.470 us/op 61.319 us/op 1.10
arrayWithProxy get 100000 times 32.957 ms/op 29.427 ms/op 1.12
ssz.Root.equals 470.00 ns/op 522.00 ns/op 0.90
byteArrayEquals 445.00 ns/op 501.00 ns/op 0.89
phase0 processBlock - 250000 vs - 7PWei normalcase 3.5308 ms/op 3.5769 ms/op 0.99
phase0 processBlock - 250000 vs - 7PWei worstcase 46.032 ms/op 52.406 ms/op 0.88
phase0 afterProcessEpoch - 250000 vs - 7PWei 176.48 ms/op 189.33 ms/op 0.93
phase0 beforeProcessEpoch - 250000 vs - 7PWei 81.954 ms/op 80.916 ms/op 1.01
phase0 processEpoch - mainnet_e58758 524.19 ms/op 541.40 ms/op 0.97
mainnet_e58758 - phase0 beforeProcessEpoch 235.27 ms/op 181.23 ms/op 1.30
mainnet_e58758 - phase0 processJustificationAndFinalization 23.028 us/op 19.706 us/op 1.17
mainnet_e58758 - phase0 processRewardsAndPenalties 118.23 ms/op 116.78 ms/op 1.01
mainnet_e58758 - phase0 processRegistryUpdates 12.447 us/op 7.8320 us/op 1.59
mainnet_e58758 - phase0 processSlashings 1.2720 us/op 938.00 ns/op 1.36
mainnet_e58758 - phase0 processEth1DataReset 1.0950 us/op 814.00 ns/op 1.35
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 5.8075 ms/op 4.8817 ms/op 1.19
mainnet_e58758 - phase0 processSlashingsReset 7.1940 us/op 4.0500 us/op 1.78
mainnet_e58758 - phase0 processRandaoMixesReset 6.5470 us/op 4.9520 us/op 1.32
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.2350 us/op 986.00 ns/op 1.25
mainnet_e58758 - phase0 processParticipationRecordUpdates 5.0330 us/op 3.9650 us/op 1.27
mainnet_e58758 - phase0 afterProcessEpoch 154.07 ms/op 162.98 ms/op 0.95
phase0 processEffectiveBalanceUpdates - 250000 normalcase 6.3443 ms/op 5.4428 ms/op 1.17
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 6.8022 ms/op 5.6725 ms/op 1.20
phase0 processRegistryUpdates - 250000 normalcase 9.0860 us/op 6.4060 us/op 1.42
phase0 processRegistryUpdates - 250000 badcase_full_deposits 404.41 us/op 361.45 us/op 1.12
phase0 processRegistryUpdates - 250000 worstcase 0.5 221.56 ms/op 178.99 ms/op 1.24
phase0 getAttestationDeltas - 250000 normalcase 16.226 ms/op 14.056 ms/op 1.15
phase0 getAttestationDeltas - 250000 worstcase 16.173 ms/op 14.422 ms/op 1.12
phase0 processSlashings - 250000 worstcase 5.6245 ms/op 5.6584 ms/op 0.99
shuffle list - 16384 els 10.715 ms/op 11.299 ms/op 0.95
shuffle list - 250000 els 155.03 ms/op 166.54 ms/op 0.93
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 394.03 us/op 351.55 us/op 1.12
pass gossip attestations to forkchoice per slot 3.4528 ms/op 3.1683 ms/op 1.09
computeDeltas 3.5417 ms/op 3.1493 ms/op 1.12
computeProposerBoostScoreFromBalances 502.78 us/op 452.49 us/op 1.11
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.9643 ms/op 1.7661 ms/op 1.11
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 75.659 us/op 76.852 us/op 0.98
BLS verify - blst-native 1.8634 ms/op 2.1681 ms/op 0.86
BLS verifyMultipleSignatures 3 - blst-native 3.8059 ms/op 4.4719 ms/op 0.85
BLS verifyMultipleSignatures 8 - blst-native 8.1934 ms/op 9.6712 ms/op 0.85
BLS verifyMultipleSignatures 32 - blst-native 29.664 ms/op 35.158 ms/op 0.84
BLS aggregatePubkeys 32 - blst-native 40.295 us/op 46.645 us/op 0.86
BLS aggregatePubkeys 128 - blst-native 156.17 us/op 182.62 us/op 0.86
getAttestationsForBlock 62.237 ms/op 53.171 ms/op 1.17
CheckpointStateCache - add get delete 11.210 us/op 10.616 us/op 1.06
validate gossip signedAggregateAndProof - struct 4.2706 ms/op 5.0058 ms/op 0.85
validate gossip attestation - struct 2.0268 ms/op 2.3672 ms/op 0.86
altair verifyImport mainnet_s3766816:31 6.2235 s/op 6.9145 s/op 0.90
pickEth1Vote - no votes 2.2657 ms/op 2.3474 ms/op 0.97
pickEth1Vote - max votes 27.772 ms/op 25.369 ms/op 1.09
pickEth1Vote - Eth1Data hashTreeRoot value x2048 12.651 ms/op 13.091 ms/op 0.97
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 22.651 ms/op 23.462 ms/op 0.97
pickEth1Vote - Eth1Data fastSerialize value x2048 1.6894 ms/op 1.7055 ms/op 0.99
pickEth1Vote - Eth1Data fastSerialize tree x2048 20.277 ms/op 16.806 ms/op 1.21
bytes32 toHexString 1.1200 us/op 1.0640 us/op 1.05
bytes32 Buffer.toString(hex) 713.00 ns/op 774.00 ns/op 0.92
bytes32 Buffer.toString(hex) from Uint8Array 1.1220 us/op 1.0270 us/op 1.09
bytes32 Buffer.toString(hex) + 0x 672.00 ns/op 764.00 ns/op 0.88
Object access 1 prop 0.32600 ns/op 0.42700 ns/op 0.76
Map access 1 prop 0.29300 ns/op 0.30900 ns/op 0.95
Object get x1000 18.047 ns/op 11.014 ns/op 1.64
Map get x1000 0.99000 ns/op 0.98100 ns/op 1.01
Object set x1000 110.81 ns/op 76.631 ns/op 1.45
Map set x1000 67.280 ns/op 49.685 ns/op 1.35
Return object 10000 times 0.37260 ns/op 0.44150 ns/op 0.84
Throw Error 10000 times 5.8998 us/op 6.0102 us/op 0.98
enrSubnets - fastDeserialize 64 bits 2.7810 us/op 2.8830 us/op 0.96
enrSubnets - ssz BitVector 64 bits 764.00 ns/op 889.00 ns/op 0.86
enrSubnets - fastDeserialize 4 bits 403.00 ns/op 450.00 ns/op 0.90
enrSubnets - ssz BitVector 4 bits 757.00 ns/op 866.00 ns/op 0.87
prioritizePeers score -10:0 att 32-0.1 sync 2-0 90.818 us/op 85.540 us/op 1.06
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 123.51 us/op 130.00 us/op 0.95
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 201.67 us/op 222.84 us/op 0.90
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 434.43 us/op 358.38 us/op 1.21
prioritizePeers score 0:0 att 64-1 sync 4-1 457.07 us/op 439.06 us/op 1.04
RateTracker 1000000 limit, 1 obj count per request 181.82 ns/op 188.34 ns/op 0.97
RateTracker 1000000 limit, 2 obj count per request 134.64 ns/op 136.06 ns/op 0.99
RateTracker 1000000 limit, 4 obj count per request 112.66 ns/op 110.19 ns/op 1.02
RateTracker 1000000 limit, 8 obj count per request 100.57 ns/op 99.453 ns/op 1.01
RateTracker with prune 3.9330 us/op 4.0390 us/op 0.97
array of 16000 items push then shift 3.1757 us/op 51.575 us/op 0.06
LinkedList of 16000 items push then shift 25.744 ns/op 16.264 ns/op 1.58
array of 16000 items push then pop 229.04 ns/op 208.13 ns/op 1.10
LinkedList of 16000 items push then pop 21.226 ns/op 14.218 ns/op 1.49
array of 24000 items push then shift 4.5683 us/op 77.341 us/op 0.06
LinkedList of 24000 items push then shift 25.767 ns/op 19.869 ns/op 1.30
array of 24000 items push then pop 203.99 ns/op 177.41 ns/op 1.15
LinkedList of 24000 items push then pop 21.982 ns/op 15.154 ns/op 1.45

by benchmarkbot/action

@wemeetagain
Copy link
Member Author

Confirmation from @zsfelfoldi that this fixes the issue

@wemeetagain wemeetagain merged commit 01e6ffe into master May 17, 2022
@wemeetagain wemeetagain deleted the cayman/lc-update-fix branch May 17, 2022 19:09
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.

None yet

2 participants