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

New metric filtering missed blocks #3927

Merged
merged 10 commits into from
May 10, 2022
Merged

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Apr 15, 2022

Motivation

Some gossip blocks come very late and become "missed/orphaned", we don't want to always see it

Description

New metric to track slot time till a block becomes new head

Closes #3925

@twoeths twoeths changed the title Tuyen/log received block delay sec New metric filtering missed blocks Apr 15, 2022
@codecov
Copy link

codecov bot commented Apr 15, 2022

Codecov Report

Merging #3927 (ca51c87) into master (053f76a) will increase coverage by 0.89%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3927      +/-   ##
==========================================
+ Coverage   36.32%   37.22%   +0.89%     
==========================================
  Files         324      325       +1     
  Lines        9059     9924     +865     
  Branches     1453     1696     +243     
==========================================
+ Hits         3291     3694     +403     
- Misses       5597     6007     +410     
- Partials      171      223      +52     

@github-actions
Copy link
Contributor

github-actions bot commented Apr 15, 2022

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: fc3d48c Previous: 28e2c74 Ratio
BeaconState.hashTreeRoot - No change 362.00 ns/op 618.00 ns/op 0.59
BeaconState.hashTreeRoot - 1 full validator 56.556 us/op 77.091 us/op 0.73
BeaconState.hashTreeRoot - 32 full validator 544.04 us/op 747.81 us/op 0.73
BeaconState.hashTreeRoot - 512 full validator 5.9449 ms/op 7.0775 ms/op 0.84
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 68.445 us/op 89.437 us/op 0.77
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 954.18 us/op 1.2111 ms/op 0.79
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 11.755 ms/op 15.488 ms/op 0.76
BeaconState.hashTreeRoot - 1 balances 47.461 us/op 66.994 us/op 0.71
BeaconState.hashTreeRoot - 32 balances 411.96 us/op 595.54 us/op 0.69
BeaconState.hashTreeRoot - 512 balances 4.0913 ms/op 5.7309 ms/op 0.71
BeaconState.hashTreeRoot - 250000 balances 93.896 ms/op 129.12 ms/op 0.73
processSlot - 1 slots 8.4110 us/op 13.826 us/op 0.61
processSlot - 32 slots 1.4042 ms/op 2.1166 ms/op 0.66
getCommitteeAssignments - req 1 vs - 250000 vc 4.6147 ms/op 5.3675 ms/op 0.86
getCommitteeAssignments - req 100 vs - 250000 vc 6.4002 ms/op 8.5348 ms/op 0.75
getCommitteeAssignments - req 1000 vs - 250000 vc 6.8481 ms/op 8.7314 ms/op 0.78
computeProposers - vc 250000 14.805 ms/op 20.435 ms/op 0.72
computeEpochShuffling - vc 250000 151.06 ms/op 160.23 ms/op 0.94
getNextSyncCommittee - vc 250000 247.38 ms/op 362.99 ms/op 0.68
altair processAttestation - 250000 vs - 7PWei normalcase 3.7607 ms/op 4.1119 ms/op 0.91
altair processAttestation - 250000 vs - 7PWei worstcase 5.5903 ms/op 6.9603 ms/op 0.80
altair processAttestation - setStatus - 1/6 committees join 167.70 us/op 234.70 us/op 0.71
altair processAttestation - setStatus - 1/3 committees join 365.23 us/op 420.08 us/op 0.87
altair processAttestation - setStatus - 1/2 committees join 455.31 us/op 598.13 us/op 0.76
altair processAttestation - setStatus - 2/3 committees join 586.58 us/op 745.76 us/op 0.79
altair processAttestation - setStatus - 4/5 committees join 822.12 us/op 1.0192 ms/op 0.81
altair processAttestation - setStatus - 100% committees join 960.74 us/op 1.3001 ms/op 0.74
altair processBlock - 250000 vs - 7PWei normalcase 23.923 ms/op 29.127 ms/op 0.82
altair processBlock - 250000 vs - 7PWei normalcase hashState 34.510 ms/op 40.236 ms/op 0.86
altair processBlock - 250000 vs - 7PWei worstcase 68.295 ms/op 85.988 ms/op 0.79
altair processBlock - 250000 vs - 7PWei worstcase hashState 88.388 ms/op 125.60 ms/op 0.70
altair processEth1Data - 250000 vs - 7PWei normalcase 834.74 us/op 910.02 us/op 0.92
altair processEpoch - mainnet_e81889 527.75 ms/op 641.09 ms/op 0.82
mainnet_e81889 - altair beforeProcessEpoch 154.25 ms/op 102.26 ms/op 1.51
mainnet_e81889 - altair processJustificationAndFinalization 22.088 us/op 75.155 us/op 0.29
mainnet_e81889 - altair processInactivityUpdates 11.076 ms/op 11.556 ms/op 0.96
mainnet_e81889 - altair processRewardsAndPenalties 123.14 ms/op 174.37 ms/op 0.71
mainnet_e81889 - altair processRegistryUpdates 5.7740 us/op 16.199 us/op 0.36
mainnet_e81889 - altair processSlashings 1.6810 us/op 6.7050 us/op 0.25
mainnet_e81889 - altair processEth1DataReset 1.6380 us/op 6.7850 us/op 0.24
mainnet_e81889 - altair processEffectiveBalanceUpdates 7.3575 ms/op 7.6563 ms/op 0.96
mainnet_e81889 - altair processSlashingsReset 7.7440 us/op 24.184 us/op 0.32
mainnet_e81889 - altair processRandaoMixesReset 6.1380 us/op 27.767 us/op 0.22
mainnet_e81889 - altair processHistoricalRootsUpdate 1.5800 us/op 8.8520 us/op 0.18
mainnet_e81889 - altair processParticipationFlagUpdates 2.7570 us/op 18.656 us/op 0.15
mainnet_e81889 - altair processSyncCommitteeUpdates 1.0040 us/op 5.7330 us/op 0.18
mainnet_e81889 - altair afterProcessEpoch 174.38 ms/op 186.73 ms/op 0.93
altair processInactivityUpdates - 250000 normalcase 32.088 ms/op 38.997 ms/op 0.82
altair processInactivityUpdates - 250000 worstcase 28.178 ms/op 34.654 ms/op 0.81
altair processRewardsAndPenalties - 250000 normalcase 74.880 ms/op 135.04 ms/op 0.55
altair processRewardsAndPenalties - 250000 worstcase 114.82 ms/op 118.11 ms/op 0.97
altair processSyncCommitteeUpdates - 250000 279.25 ms/op 365.79 ms/op 0.76
Tree 40 250000 create 635.24 ms/op 776.69 ms/op 0.82
Tree 40 250000 get(125000) 279.13 ns/op 323.73 ns/op 0.86
Tree 40 250000 set(125000) 2.0227 us/op 2.6953 us/op 0.75
Tree 40 250000 toArray() 30.341 ms/op 35.203 ms/op 0.86
Tree 40 250000 iterate all - toArray() + loop 30.732 ms/op 34.999 ms/op 0.88
Tree 40 250000 iterate all - get(i) 107.25 ms/op 133.05 ms/op 0.81
MutableVector 250000 create 14.281 ms/op 16.712 ms/op 0.85
MutableVector 250000 get(125000) 15.067 ns/op 14.619 ns/op 1.03
MutableVector 250000 set(125000) 548.27 ns/op 697.07 ns/op 0.79
MutableVector 250000 toArray() 6.3441 ms/op 6.2133 ms/op 1.02
MutableVector 250000 iterate all - toArray() + loop 6.5731 ms/op 6.7380 ms/op 0.98
MutableVector 250000 iterate all - get(i) 3.2851 ms/op 3.5017 ms/op 0.94
Array 250000 create 5.8861 ms/op 5.6947 ms/op 1.03
Array 250000 clone - spread 2.3983 ms/op 2.7580 ms/op 0.87
Array 250000 get(125000) 1.1350 ns/op 1.2770 ns/op 0.89
Array 250000 set(125000) 1.1440 ns/op 1.2940 ns/op 0.88
Array 250000 iterate all - loop 167.89 us/op 149.70 us/op 1.12
effectiveBalanceIncrements clone Uint8Array 300000 83.483 us/op 162.62 us/op 0.51
effectiveBalanceIncrements clone MutableVector 300000 756.00 ns/op 593.00 ns/op 1.27
effectiveBalanceIncrements rw all Uint8Array 300000 303.89 us/op 196.99 us/op 1.54
effectiveBalanceIncrements rw all MutableVector 300000 178.69 ms/op 181.70 ms/op 0.98
aggregationBits - 2048 els - zipIndexesInBitList 28.825 us/op 25.085 us/op 1.15
regular array get 100000 times 67.435 us/op 59.094 us/op 1.14
wrappedArray get 100000 times 67.451 us/op 61.901 us/op 1.09
arrayWithProxy get 100000 times 29.932 ms/op 69.079 ms/op 0.43
ssz.Root.equals 470.00 ns/op 551.00 ns/op 0.85
byteArrayEquals 461.00 ns/op 461.00 ns/op 1.00
phase0 processBlock - 250000 vs - 7PWei normalcase 3.5818 ms/op 4.0778 ms/op 0.88
phase0 processBlock - 250000 vs - 7PWei worstcase 46.555 ms/op 57.221 ms/op 0.81
phase0 afterProcessEpoch - 250000 vs - 7PWei 157.22 ms/op 198.91 ms/op 0.79
phase0 beforeProcessEpoch - 250000 vs - 7PWei 66.071 ms/op 81.026 ms/op 0.82
phase0 processEpoch - mainnet_e58758 528.32 ms/op 674.68 ms/op 0.78
mainnet_e58758 - phase0 beforeProcessEpoch 237.06 ms/op 285.46 ms/op 0.83
mainnet_e58758 - phase0 processJustificationAndFinalization 25.092 us/op 71.578 us/op 0.35
mainnet_e58758 - phase0 processRewardsAndPenalties 68.457 ms/op 84.808 ms/op 0.81
mainnet_e58758 - phase0 processRegistryUpdates 12.751 us/op 36.932 us/op 0.35
mainnet_e58758 - phase0 processSlashings 1.3920 us/op 7.1440 us/op 0.19
mainnet_e58758 - phase0 processEth1DataReset 1.1560 us/op 6.2330 us/op 0.19
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 5.6168 ms/op 6.3559 ms/op 0.88
mainnet_e58758 - phase0 processSlashingsReset 6.7820 us/op 23.571 us/op 0.29
mainnet_e58758 - phase0 processRandaoMixesReset 5.7020 us/op 27.756 us/op 0.21
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.2130 us/op 7.9310 us/op 0.15
mainnet_e58758 - phase0 processParticipationRecordUpdates 5.6980 us/op 26.514 us/op 0.21
mainnet_e58758 - phase0 afterProcessEpoch 136.25 ms/op 171.34 ms/op 0.80
phase0 processEffectiveBalanceUpdates - 250000 normalcase 5.6537 ms/op 7.5575 ms/op 0.75
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 6.6725 ms/op 8.1371 ms/op 0.82
phase0 processRegistryUpdates - 250000 normalcase 8.6600 us/op 31.937 us/op 0.27
phase0 processRegistryUpdates - 250000 badcase_full_deposits 374.75 us/op 488.04 us/op 0.77
phase0 processRegistryUpdates - 250000 worstcase 0.5 189.72 ms/op 234.76 ms/op 0.81
phase0 getAttestationDeltas - 250000 normalcase 12.661 ms/op 14.290 ms/op 0.89
phase0 getAttestationDeltas - 250000 worstcase 13.089 ms/op 16.846 ms/op 0.78
phase0 processSlashings - 250000 worstcase 5.0843 ms/op 7.0111 ms/op 0.73
shuffle list - 16384 els 9.4733 ms/op 11.563 ms/op 0.82
shuffle list - 250000 els 137.32 ms/op 162.95 ms/op 0.84
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 379.18 us/op 430.82 us/op 0.88
pass gossip attestations to forkchoice per slot 3.3640 ms/op 4.5069 ms/op 0.75
computeDeltas 3.0468 ms/op 4.0578 ms/op 0.75
computeProposerBoostScoreFromBalances 443.79 us/op 513.68 us/op 0.86
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.8269 ms/op 2.5554 ms/op 0.71
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 66.489 us/op 85.938 us/op 0.77
BLS verify - blst-native 1.6395 ms/op 2.3339 ms/op 0.70
BLS verifyMultipleSignatures 3 - blst-native 3.3541 ms/op 4.7652 ms/op 0.70
BLS verifyMultipleSignatures 8 - blst-native 7.2253 ms/op 9.9420 ms/op 0.73
BLS verifyMultipleSignatures 32 - blst-native 26.261 ms/op 36.841 ms/op 0.71
BLS aggregatePubkeys 32 - blst-native 35.325 us/op 47.846 us/op 0.74
BLS aggregatePubkeys 128 - blst-native 135.90 us/op 181.22 us/op 0.75
getAttestationsForBlock 56.732 ms/op 74.870 ms/op 0.76
CheckpointStateCache - add get delete 10.510 us/op 13.638 us/op 0.77
validate gossip signedAggregateAndProof - struct 4.2559 ms/op 5.5014 ms/op 0.77
validate gossip attestation - struct 2.0346 ms/op 2.6494 ms/op 0.77
pickEth1Vote - no votes 2.1875 ms/op 2.6721 ms/op 0.82
pickEth1Vote - max votes 18.827 ms/op 24.411 ms/op 0.77
pickEth1Vote - Eth1Data hashTreeRoot value x2048 11.112 ms/op 15.487 ms/op 0.72
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 20.963 ms/op 23.977 ms/op 0.87
pickEth1Vote - Eth1Data fastSerialize value x2048 1.6285 ms/op 2.4478 ms/op 0.67
pickEth1Vote - Eth1Data fastSerialize tree x2048 12.447 ms/op 15.859 ms/op 0.78
bytes32 toHexString 930.00 ns/op 1.1520 us/op 0.81
bytes32 Buffer.toString(hex) 640.00 ns/op 860.00 ns/op 0.74
bytes32 Buffer.toString(hex) from Uint8Array 861.00 ns/op 1.0900 us/op 0.79
bytes32 Buffer.toString(hex) + 0x 639.00 ns/op 877.00 ns/op 0.73
Object access 1 prop 0.34000 ns/op 0.41900 ns/op 0.81
Map access 1 prop 0.28900 ns/op 0.36200 ns/op 0.80
Object get x1000 17.352 ns/op 17.892 ns/op 0.97
Map get x1000 1.0800 ns/op 1.1480 ns/op 0.94
Object set x1000 109.34 ns/op 114.27 ns/op 0.96
Map set x1000 66.495 ns/op 78.319 ns/op 0.85
Return object 10000 times 0.37170 ns/op 0.45880 ns/op 0.81
Throw Error 10000 times 5.8084 us/op 8.0571 us/op 0.72
enrSubnets - fastDeserialize 64 bits 2.6380 us/op 3.3580 us/op 0.79
enrSubnets - ssz BitVector 64 bits 744.00 ns/op 985.00 ns/op 0.76
enrSubnets - fastDeserialize 4 bits 383.00 ns/op 476.00 ns/op 0.80
enrSubnets - ssz BitVector 4 bits 749.00 ns/op 872.00 ns/op 0.86
prioritizePeers score -10:0 att 32-0.1 sync 2-0 89.901 us/op 129.24 us/op 0.70
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 122.07 us/op 165.56 us/op 0.74
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 202.71 us/op 276.18 us/op 0.73
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 431.48 us/op 627.77 us/op 0.69
prioritizePeers score 0:0 att 64-1 sync 4-1 453.03 us/op 626.90 us/op 0.72
RateTracker 1000000 limit, 1 obj count per request 180.24 ns/op 211.89 ns/op 0.85
RateTracker 1000000 limit, 2 obj count per request 134.95 ns/op 159.05 ns/op 0.85
RateTracker 1000000 limit, 4 obj count per request 113.68 ns/op 125.50 ns/op 0.91
RateTracker 1000000 limit, 8 obj count per request 102.26 ns/op 117.01 ns/op 0.87
RateTracker with prune 4.1440 us/op 4.5260 us/op 0.92
array of 16000 items push then shift 3.1190 us/op 5.7986 us/op 0.54
LinkedList of 16000 items push then shift 16.215 ns/op 20.936 ns/op 0.77
array of 16000 items push then pop 203.71 ns/op 266.12 ns/op 0.77
LinkedList of 16000 items push then pop 16.096 ns/op 18.637 ns/op 0.86
array of 24000 items push then shift 4.5083 us/op 8.5851 us/op 0.53
LinkedList of 24000 items push then shift 19.648 ns/op 19.039 ns/op 1.03
array of 24000 items push then pop 199.52 ns/op 252.00 ns/op 0.79
LinkedList of 24000 items push then pop 17.719 ns/op 18.166 ns/op 0.98

by benchmarkbot/action

@twoeths twoeths marked this pull request as ready for review April 15, 2022 11:13
@twoeths twoeths requested a review from a team as a code owner April 15, 2022 11:13
@twoeths
Copy link
Contributor Author

twoeths commented Apr 15, 2022

New metric looks like

Screen Shot 2022-04-15 at 19 08 15

});
this.syncContributionAndProofPool.prune(head.slot);
this.seenContributionAndProof.prune(head.slot);
this.metrics?.headSlot.set(head.slot);
this.metrics?.gossipBlock.elappsedTimeTillBecomeHead.observe(delaySec);
Copy link
Contributor

Choose a reason for hiding this comment

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

minor: typo in elapsed

@@ -181,9 +184,11 @@ export async function onBlock(

this.reprocessController.onBlockImported({slot: block.message.slot, root: blockRoot}, advancedSlot);

const delaySec = Date.now() / 1000 - (this.genesisTime + block.message.slot * this.config.SECONDS_PER_SLOT);
Copy link
Contributor

Choose a reason for hiding this comment

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

Looks like this logic to calculate delaySec is already provided in clock.secFromSlot(slot: Slot)

Copy link
Contributor

Choose a reason for hiding this comment

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

@tuyennhv Are you sure this metric won't be triggered during sync, and unknown block root fetches?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I added BlockSource enum and track that in the new metric, please have a look

elappsedTimeTillBecomeHead: register.histogram({
name: "lodestar_gossip_block_elappsed_time_till_become_head",
help: "Time elappsed between block slot time and the time block becomes head",
buckets: [0.1, 1, 10],
Copy link
Contributor

Choose a reason for hiding this comment

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

It's very unlikely for a block to come exactly between 0 and 0.1 seconds, better bucket values would be:

[0.5, 1, 2, 4, 6, 12]

Copy link
Contributor

@dapplion dapplion left a comment

Choose a reason for hiding this comment

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

@tuyennhv I reverted your commit adding the block source since I think it's valuable to track blocks that become head late due to unknown block sync too. For example, a block through gossip can trigger unknown block sync and its parent won't be registered like it came from gossip. The PR adds less complexity too. If the metrics are not clear we can add the source thing

@twoeths twoeths merged commit 957079c into master May 10, 2022
@twoeths twoeths deleted the tuyen/log-received-block-delaySec branch May 10, 2022 03:47
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.

New metric filtering missed blocks
3 participants