@lodestar/beacon-node 1.45.0-dev.51a1c44b27 → 1.45.0-dev.7acc183c2b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +3 -2
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/index.d.ts +1 -1
  5. package/lib/api/impl/beacon/index.d.ts.map +1 -1
  6. package/lib/api/impl/beacon/index.js.map +1 -1
  7. package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
  8. package/lib/api/impl/beacon/pool/index.js +6 -43
  9. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  10. package/lib/api/impl/beacon/state/index.d.ts +1 -1
  11. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  12. package/lib/api/impl/beacon/state/index.js +48 -5
  13. package/lib/api/impl/beacon/state/index.js.map +1 -1
  14. package/lib/api/impl/beacon/state/utils.d.ts +13 -3
  15. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  16. package/lib/api/impl/beacon/state/utils.js +48 -4
  17. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  18. package/lib/api/impl/debug/index.d.ts +1 -1
  19. package/lib/api/impl/debug/index.d.ts.map +1 -1
  20. package/lib/api/impl/debug/index.js +2 -2
  21. package/lib/api/impl/debug/index.js.map +1 -1
  22. package/lib/api/impl/lodestar/index.js +2 -2
  23. package/lib/api/impl/lodestar/index.js.map +1 -1
  24. package/lib/api/impl/proof/index.d.ts +1 -1
  25. package/lib/api/impl/proof/index.d.ts.map +1 -1
  26. package/lib/api/impl/proof/index.js +2 -2
  27. package/lib/api/impl/proof/index.js.map +1 -1
  28. package/lib/api/impl/utils.d.ts +23 -0
  29. package/lib/api/impl/utils.d.ts.map +1 -1
  30. package/lib/api/impl/utils.js +44 -1
  31. package/lib/api/impl/utils.js.map +1 -1
  32. package/lib/api/impl/validator/index.d.ts +0 -14
  33. package/lib/api/impl/validator/index.d.ts.map +1 -1
  34. package/lib/api/impl/validator/index.js +67 -62
  35. package/lib/api/impl/validator/index.js.map +1 -1
  36. package/lib/api/rest/base.d.ts.map +1 -1
  37. package/lib/api/rest/base.js +8 -0
  38. package/lib/api/rest/base.js.map +1 -1
  39. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  40. package/lib/chain/blocks/importBlock.js +2 -5
  41. package/lib/chain/blocks/importBlock.js.map +1 -1
  42. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts +5 -2
  43. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts.map +1 -1
  44. package/lib/chain/blocks/payloadEnvelopeProcessor.js +17 -17
  45. package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -1
  46. package/lib/chain/blocks/utils/chainSegment.d.ts.map +1 -1
  47. package/lib/chain/blocks/utils/chainSegment.js +13 -5
  48. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  49. package/lib/chain/blocks/verifyBlocksSanityChecks.js +1 -1
  50. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  51. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js +2 -2
  52. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js.map +1 -1
  53. package/lib/chain/builderCircuitBreaker.d.ts +31 -0
  54. package/lib/chain/builderCircuitBreaker.d.ts.map +1 -0
  55. package/lib/chain/builderCircuitBreaker.js +59 -0
  56. package/lib/chain/builderCircuitBreaker.js.map +1 -0
  57. package/lib/chain/chain.d.ts +3 -2
  58. package/lib/chain/chain.d.ts.map +1 -1
  59. package/lib/chain/chain.js +4 -3
  60. package/lib/chain/chain.js.map +1 -1
  61. package/lib/chain/errors/blockError.d.ts +29 -5
  62. package/lib/chain/errors/blockError.d.ts.map +1 -1
  63. package/lib/chain/errors/blockError.js +19 -4
  64. package/lib/chain/errors/blockError.js.map +1 -1
  65. package/lib/chain/errors/executionPayloadEnvelope.d.ts +11 -0
  66. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  67. package/lib/chain/errors/executionPayloadEnvelope.js +2 -0
  68. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  69. package/lib/chain/interface.d.ts +3 -2
  70. package/lib/chain/interface.d.ts.map +1 -1
  71. package/lib/chain/interface.js.map +1 -1
  72. package/lib/chain/lightClient/index.d.ts.map +1 -1
  73. package/lib/chain/lightClient/index.js +11 -6
  74. package/lib/chain/lightClient/index.js.map +1 -1
  75. package/lib/chain/lightClient/proofs.d.ts.map +1 -1
  76. package/lib/chain/lightClient/proofs.js +28 -2
  77. package/lib/chain/lightClient/proofs.js.map +1 -1
  78. package/lib/chain/lightClient/types.d.ts +3 -1
  79. package/lib/chain/lightClient/types.d.ts.map +1 -1
  80. package/lib/chain/opPools/aggregatedAttestationPool.js +1 -1
  81. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  82. package/lib/chain/opPools/proposerPreferencesPool.d.ts +2 -1
  83. package/lib/chain/opPools/proposerPreferencesPool.d.ts.map +1 -1
  84. package/lib/chain/opPools/proposerPreferencesPool.js +3 -0
  85. package/lib/chain/opPools/proposerPreferencesPool.js.map +1 -1
  86. package/lib/chain/options.d.ts +5 -0
  87. package/lib/chain/options.d.ts.map +1 -1
  88. package/lib/chain/options.js +1 -0
  89. package/lib/chain/options.js.map +1 -1
  90. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  91. package/lib/chain/prepareNextSlot.js +12 -7
  92. package/lib/chain/prepareNextSlot.js.map +1 -1
  93. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  94. package/lib/chain/produceBlock/produceBlockBody.js +4 -12
  95. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  96. package/lib/chain/seenCache/index.d.ts +0 -1
  97. package/lib/chain/seenCache/index.d.ts.map +1 -1
  98. package/lib/chain/seenCache/index.js +0 -1
  99. package/lib/chain/seenCache/index.js.map +1 -1
  100. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  101. package/lib/chain/stateCache/persistentCheckpointsCache.js +3 -2
  102. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  103. package/lib/chain/validation/block.d.ts.map +1 -1
  104. package/lib/chain/validation/block.js +55 -4
  105. package/lib/chain/validation/block.js.map +1 -1
  106. package/lib/chain/validation/executionPayloadBid.js +11 -10
  107. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  108. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  109. package/lib/chain/validation/executionPayloadEnvelope.js +30 -0
  110. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  111. package/lib/chain/validation/proposerPreferences.d.ts.map +1 -1
  112. package/lib/chain/validation/proposerPreferences.js +14 -5
  113. package/lib/chain/validation/proposerPreferences.js.map +1 -1
  114. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts.map +1 -1
  115. package/lib/chain/validation/signatureSets/aggregateAndProof.js +2 -3
  116. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  117. package/lib/db/repositories/lightclientSyncCommitteeWitness.d.ts.map +1 -1
  118. package/lib/db/repositories/lightclientSyncCommitteeWitness.js +42 -7
  119. package/lib/db/repositories/lightclientSyncCommitteeWitness.js.map +1 -1
  120. package/lib/execution/builder/http.d.ts +18 -0
  121. package/lib/execution/builder/http.d.ts.map +1 -1
  122. package/lib/execution/builder/http.js +20 -11
  123. package/lib/execution/builder/http.js.map +1 -1
  124. package/lib/metrics/metrics/beacon.d.ts +6 -0
  125. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  126. package/lib/metrics/metrics/beacon.js +18 -0
  127. package/lib/metrics/metrics/beacon.js.map +1 -1
  128. package/lib/network/core/metrics.d.ts +65 -0
  129. package/lib/network/core/metrics.d.ts.map +1 -1
  130. package/lib/network/core/metrics.js +94 -0
  131. package/lib/network/core/metrics.js.map +1 -1
  132. package/lib/network/discv5/utils.d.ts.map +1 -1
  133. package/lib/network/discv5/utils.js +12 -3
  134. package/lib/network/discv5/utils.js.map +1 -1
  135. package/lib/network/gossip/encoding.d.ts +2 -2
  136. package/lib/network/gossip/encoding.d.ts.map +1 -1
  137. package/lib/network/gossip/encoding.js +22 -9
  138. package/lib/network/gossip/encoding.js.map +1 -1
  139. package/lib/network/gossip/gossipsub.d.ts.map +1 -1
  140. package/lib/network/gossip/gossipsub.js +4 -3
  141. package/lib/network/gossip/gossipsub.js.map +1 -1
  142. package/lib/network/gossip/topic.d.ts +831 -226
  143. package/lib/network/gossip/topic.d.ts.map +1 -1
  144. package/lib/network/gossip/topic.js +47 -4
  145. package/lib/network/gossip/topic.js.map +1 -1
  146. package/lib/network/peers/peerManager.d.ts.map +1 -1
  147. package/lib/network/peers/peerManager.js +10 -0
  148. package/lib/network/peers/peerManager.js.map +1 -1
  149. package/lib/network/peers/score/score.d.ts +3 -1
  150. package/lib/network/peers/score/score.d.ts.map +1 -1
  151. package/lib/network/peers/score/score.js +6 -1
  152. package/lib/network/peers/score/score.js.map +1 -1
  153. package/lib/network/peers/score/store.d.ts.map +1 -1
  154. package/lib/network/peers/score/store.js +6 -1
  155. package/lib/network/peers/score/store.js.map +1 -1
  156. package/lib/network/peers/utils/prioritizePeers.d.ts.map +1 -1
  157. package/lib/network/peers/utils/prioritizePeers.js +14 -0
  158. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  159. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  160. package/lib/network/processor/gossipHandlers.js +12 -8
  161. package/lib/network/processor/gossipHandlers.js.map +1 -1
  162. package/lib/sync/range/chain.d.ts +4 -1
  163. package/lib/sync/range/chain.d.ts.map +1 -1
  164. package/lib/sync/range/chain.js +3 -3
  165. package/lib/sync/range/chain.js.map +1 -1
  166. package/lib/sync/range/range.d.ts.map +1 -1
  167. package/lib/sync/range/range.js +10 -0
  168. package/lib/sync/range/range.js.map +1 -1
  169. package/lib/sync/unknownBlock.js +1 -1
  170. package/lib/sync/unknownBlock.js.map +1 -1
  171. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  172. package/lib/sync/utils/downloadByRange.js +6 -0
  173. package/lib/sync/utils/downloadByRange.js.map +1 -1
  174. package/lib/util/graffiti.d.ts +15 -0
  175. package/lib/util/graffiti.d.ts.map +1 -1
  176. package/lib/util/graffiti.js +55 -0
  177. package/lib/util/graffiti.js.map +1 -1
  178. package/package.json +19 -19
  179. package/src/api/impl/beacon/blocks/index.ts +3 -2
  180. package/src/api/impl/beacon/index.ts +1 -1
  181. package/src/api/impl/beacon/pool/index.ts +5 -53
  182. package/src/api/impl/beacon/state/index.ts +55 -3
  183. package/src/api/impl/beacon/state/utils.ts +68 -4
  184. package/src/api/impl/debug/index.ts +3 -2
  185. package/src/api/impl/lodestar/index.ts +2 -2
  186. package/src/api/impl/proof/index.ts +2 -2
  187. package/src/api/impl/utils.ts +51 -1
  188. package/src/api/impl/validator/index.ts +75 -67
  189. package/src/api/rest/base.ts +9 -0
  190. package/src/chain/blocks/importBlock.ts +2 -7
  191. package/src/chain/blocks/payloadEnvelopeProcessor.ts +17 -17
  192. package/src/chain/blocks/utils/chainSegment.ts +16 -5
  193. package/src/chain/blocks/verifyBlocksSanityChecks.ts +1 -1
  194. package/src/chain/blocks/verifyExecutionPayloadEnvelope.ts +2 -2
  195. package/src/chain/builderCircuitBreaker.ts +84 -0
  196. package/src/chain/chain.ts +7 -3
  197. package/src/chain/errors/blockError.ts +23 -6
  198. package/src/chain/errors/executionPayloadEnvelope.ts +9 -0
  199. package/src/chain/interface.ts +2 -2
  200. package/src/chain/lightClient/index.ts +12 -7
  201. package/src/chain/lightClient/proofs.ts +36 -1
  202. package/src/chain/lightClient/types.ts +3 -1
  203. package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
  204. package/src/chain/opPools/proposerPreferencesPool.ts +5 -1
  205. package/src/chain/options.ts +6 -0
  206. package/src/chain/prepareNextSlot.ts +11 -7
  207. package/src/chain/produceBlock/produceBlockBody.ts +9 -17
  208. package/src/chain/seenCache/index.ts +0 -1
  209. package/src/chain/stateCache/persistentCheckpointsCache.ts +3 -2
  210. package/src/chain/validation/block.ts +72 -4
  211. package/src/chain/validation/executionPayloadBid.ts +14 -9
  212. package/src/chain/validation/executionPayloadEnvelope.ts +39 -0
  213. package/src/chain/validation/proposerPreferences.ts +15 -5
  214. package/src/chain/validation/signatureSets/aggregateAndProof.ts +3 -3
  215. package/src/db/repositories/lightclientSyncCommitteeWitness.ts +57 -9
  216. package/src/execution/builder/http.ts +30 -17
  217. package/src/metrics/metrics/beacon.ts +19 -0
  218. package/src/network/core/metrics.ts +94 -0
  219. package/src/network/discv5/utils.ts +11 -3
  220. package/src/network/gossip/encoding.ts +20 -7
  221. package/src/network/gossip/gossipsub.ts +9 -3
  222. package/src/network/gossip/topic.ts +59 -4
  223. package/src/network/peers/peerManager.ts +11 -0
  224. package/src/network/peers/score/score.ts +8 -1
  225. package/src/network/peers/score/store.ts +8 -1
  226. package/src/network/peers/utils/prioritizePeers.ts +15 -0
  227. package/src/network/processor/gossipHandlers.ts +12 -7
  228. package/src/sync/range/chain.ts +4 -5
  229. package/src/sync/range/range.ts +10 -0
  230. package/src/sync/unknownBlock.ts +1 -1
  231. package/src/sync/utils/downloadByRange.ts +6 -0
  232. package/src/util/graffiti.ts +78 -0
  233. package/lib/chain/seenCache/seenProposerPreferences.d.ts +0 -16
  234. package/lib/chain/seenCache/seenProposerPreferences.d.ts.map +0 -1
  235. package/lib/chain/seenCache/seenProposerPreferences.js +0 -26
  236. package/lib/chain/seenCache/seenProposerPreferences.js.map +0 -1
  237. package/src/chain/seenCache/seenProposerPreferences.ts +0 -32
@@ -20,8 +20,9 @@ export async function validateGossipProposerPreferences(chain, signedProposerPre
20
20
  currentEpoch,
21
21
  });
22
22
  }
23
- // [IGNORE] `preferences.proposal_slot` has not already passed.
24
- const currentSlot = chain.clock.currentSlot;
23
+ // [IGNORE] `preferences.proposal_slot` has not already passed, i.e. `proposal_slot > current_slot`,
24
+ // allowing for `MAXIMUM_GOSSIP_CLOCK_DISPARITY`.
25
+ const currentSlot = chain.clock.currentSlotWithGossipDisparity;
25
26
  if (proposalSlot <= currentSlot) {
26
27
  throw new ProposerPreferencesError(GossipAction.IGNORE, {
27
28
  code: ProposerPreferencesErrorCode.PROPOSAL_SLOT_PASSED,
@@ -68,7 +69,7 @@ export async function validateGossipProposerPreferences(chain, signedProposerPre
68
69
  });
69
70
  }
70
71
  // [IGNORE] First valid message for (dependent_root, proposal_slot, validator_index).
71
- if (chain.seenProposerPreferences.isKnown(dependentRootHex, proposalSlot, validatorIndex)) {
72
+ if (chain.proposerPreferencesPool.isKnown(proposalSlot, dependentRootHex, validatorIndex)) {
72
73
  throw new ProposerPreferencesError(GossipAction.IGNORE, {
73
74
  code: ProposerPreferencesErrorCode.ALREADY_KNOWN,
74
75
  proposalSlot,
@@ -85,7 +86,15 @@ export async function validateGossipProposerPreferences(chain, signedProposerPre
85
86
  validatorIndex,
86
87
  });
87
88
  }
88
- // Valid
89
- chain.seenProposerPreferences.add(dependentRootHex, proposalSlot, validatorIndex);
89
+ // Repeated check - deals with race-condition between preferences submissions
90
+ if (chain.proposerPreferencesPool.isKnown(proposalSlot, dependentRootHex, validatorIndex)) {
91
+ throw new ProposerPreferencesError(GossipAction.IGNORE, {
92
+ code: ProposerPreferencesErrorCode.ALREADY_KNOWN,
93
+ proposalSlot,
94
+ validatorIndex,
95
+ dependentRoot: dependentRootHex,
96
+ });
97
+ }
98
+ chain.proposerPreferencesPool.add(signedProposerPreferences);
90
99
  }
91
100
  //# sourceMappingURL=proposerPreferences.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"proposerPreferences.js","sourceRoot":"","sources":["../../../src/chain/validation/proposerPreferences.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proposerPreferences.js","sourceRoot":"","sources":["../../../src/chain/validation/proposerPreferences.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"aggregateAndProof.d.ts","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/aggregateAndProof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,aAAa,EAAgE,MAAM,4BAA4B,CAAC;AACxH,OAAO,EAAC,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAM,MAAM,iBAAiB,CAAC;AAEpF,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,EACZ,iBAAiB,EAAE,uBAAuB,GACzC,UAAU,CASZ;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,cAAc,EAC/B,iBAAiB,EAAE,uBAAuB,GACzC,aAAa,CAOf"}
1
+ {"version":3,"file":"aggregateAndProof.d.ts","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/aggregateAndProof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,aAAa,EAAgE,MAAM,4BAA4B,CAAC;AACxH,OAAO,EAAC,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAE/E,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,EACZ,iBAAiB,EAAE,uBAAuB,GACzC,UAAU,CASZ;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,cAAc,EAC/B,iBAAiB,EAAE,uBAAuB,GACzC,aAAa,CAOf"}
@@ -1,6 +1,5 @@
1
- import { DOMAIN_AGGREGATE_AND_PROOF, ForkSeq } from "@lodestar/params";
1
+ import { DOMAIN_AGGREGATE_AND_PROOF } from "@lodestar/params";
2
2
  import { SignatureSetType, computeSigningRoot, computeStartSlotAtEpoch } from "@lodestar/state-transition";
3
- import { ssz } from "@lodestar/types";
4
3
  export function getAggregateAndProofSigningRoot(config, epoch, aggregateAndProof) {
5
4
  // previously, we call `const aggregatorDomain = config.getDomain(state.slot, DOMAIN_AGGREGATE_AND_PROOF, slot);`
6
5
  // at fork boundary, it's required to dial to target epoch https://github.com/ChainSafe/lodestar/blob/v1.11.3/packages/beacon-node/src/chain/validation/attestation.ts#L573
@@ -8,7 +7,7 @@ export function getAggregateAndProofSigningRoot(config, epoch, aggregateAndProof
8
7
  const slot = computeStartSlotAtEpoch(epoch);
9
8
  const fork = config.getForkName(slot);
10
9
  const aggregatorDomain = config.getDomainAtFork(fork, DOMAIN_AGGREGATE_AND_PROOF);
11
- const sszType = ForkSeq[fork] >= ForkSeq.electra ? ssz.electra.AggregateAndProof : ssz.phase0.AggregateAndProof;
10
+ const sszType = config.getForkTypes(slot).AggregateAndProof;
12
11
  return computeSigningRoot(sszType, aggregateAndProof.message, aggregatorDomain);
13
12
  }
14
13
  export function getAggregateAndProofSignatureSet(config, epoch, aggregatorIndex, aggregateAndProof) {
@@ -1 +1 @@
1
- {"version":3,"file":"aggregateAndProof.js","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/aggregateAndProof.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,0BAA0B,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAgB,gBAAgB,EAAE,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AACxH,OAAO,EAAiD,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEpF,MAAM,UAAU,+BAA+B,CAC7C,MAAoB,EACpB,KAAY,EACZ,iBAA0C,EAC9B;IACZ,iHAAiH;IACjH,2KAA2K;IAC3K,qEAAqE;IACrE,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC;IAChH,OAAO,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;AAAA,CACjF;AAED,MAAM,UAAU,gCAAgC,CAC9C,MAAoB,EACpB,KAAY,EACZ,eAA+B,EAC/B,iBAA0C,EAC3B;IACf,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,OAAO;QAC9B,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,+BAA+B,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC;QAC9E,SAAS,EAAE,iBAAiB,CAAC,SAAS;KACvC,CAAC;AAAA,CACH"}
1
+ {"version":3,"file":"aggregateAndProof.js","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/aggregateAndProof.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,0BAA0B,EAAC,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAgB,gBAAgB,EAAE,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AAGxH,MAAM,UAAU,+BAA+B,CAC7C,MAAoB,EACpB,KAAY,EACZ,iBAA0C,EAC9B;IACZ,iHAAiH;IACjH,2KAA2K;IAC3K,qEAAqE;IACrE,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC;IAC5D,OAAO,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;AAAA,CACjF;AAED,MAAM,UAAU,gCAAgC,CAC9C,MAAoB,EACpB,KAAY,EACZ,eAA+B,EAC/B,iBAA0C,EAC3B;IACf,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,OAAO;QAC9B,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,+BAA+B,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC;QAC9E,SAAS,EAAE,iBAAiB,CAAC,SAAS;KACvC,CAAC;AAAA,CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"lightclientSyncCommitteeWitness.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/lightclientSyncCommitteeWitness.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAE5D,OAAO,EAAC,oBAAoB,EAAC,MAAM,kCAAkC,CAAC;AAStE,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;;GAIG;AACH,qBAAa,8BAA+B,SAAQ,UAAU,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC9F,YAAY,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,EAUlF;IAGD,WAAW,CAAC,KAAK,EAAE,oBAAoB,GAAG,UAAU,CA0BnD;IAED,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,oBAAoB,CAYlD;CACF"}
1
+ {"version":3,"file":"lightclientSyncCommitteeWitness.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/lightclientSyncCommitteeWitness.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAG5D,OAAO,EAAC,oBAAoB,EAAC,MAAM,kCAAkC,CAAC;AAUtE,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;;GAIG;AACH,qBAAa,8BAA+B,SAAQ,UAAU,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC9F,YAAY,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,EAUlF;IAGD,WAAW,CAAC,KAAK,EAAE,oBAAoB,GAAG,UAAU,CAgDnD;IAED,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,oBAAoB,CAyBlD;CACF"}
@@ -1,12 +1,14 @@
1
1
  import { ContainerType, VectorCompositeType } from "@chainsafe/ssz";
2
2
  import { Repository } from "@lodestar/db";
3
+ import { CURRENT_SYNC_COMMITTEE_DEPTH_GLOAS, NEXT_SYNC_COMMITTEE_DEPTH_GLOAS } from "@lodestar/params";
3
4
  import { ssz } from "@lodestar/types";
4
5
  import { Bucket, getBucketNameByValue } from "../buckets.js";
5
- // We add a 1-byte prefix where 0 means pre-electra and 1 means post-electra
6
+ // We add a 1-byte prefix where 0 means pre-Electra, 1 means post-Electra, and 2 means post-Gloas.
6
7
  var PrefixByte;
7
8
  (function (PrefixByte) {
8
9
  PrefixByte[PrefixByte["PRE_ELECTRA"] = 0] = "PRE_ELECTRA";
9
10
  PrefixByte[PrefixByte["POST_ELECTRA"] = 1] = "POST_ELECTRA";
11
+ PrefixByte[PrefixByte["POST_GLOAS"] = 2] = "POST_GLOAS";
10
12
  })(PrefixByte || (PrefixByte = {}));
11
13
  export const NUM_WITNESS = 4;
12
14
  export const NUM_WITNESS_ELECTRA = 5;
@@ -29,6 +31,26 @@ export class SyncCommitteeWitnessRepository extends Repository {
29
31
  // Overrides for multi-fork
30
32
  encodeValue(value) {
31
33
  const numWitness = value.witness.length;
34
+ const hasGloasBranches = value.currentSyncCommitteeBranch !== undefined || value.nextSyncCommitteeBranch !== undefined;
35
+ if (hasGloasBranches) {
36
+ if (value.currentSyncCommitteeBranch?.length !== CURRENT_SYNC_COMMITTEE_DEPTH_GLOAS ||
37
+ value.nextSyncCommitteeBranch?.length !== NEXT_SYNC_COMMITTEE_DEPTH_GLOAS) {
38
+ throw Error(`Invalid post-Gloas sync committee branch lengths current=${value.currentSyncCommitteeBranch?.length} next=${value.nextSyncCommitteeBranch?.length}`);
39
+ }
40
+ const type = new ContainerType({
41
+ currentSyncCommitteeBranch: new VectorCompositeType(ssz.Root, CURRENT_SYNC_COMMITTEE_DEPTH_GLOAS),
42
+ nextSyncCommitteeBranch: new VectorCompositeType(ssz.Root, NEXT_SYNC_COMMITTEE_DEPTH_GLOAS),
43
+ currentSyncCommitteeRoot: ssz.Root,
44
+ nextSyncCommitteeRoot: ssz.Root,
45
+ });
46
+ const valueBytes = type.serialize({
47
+ currentSyncCommitteeBranch: value.currentSyncCommitteeBranch,
48
+ nextSyncCommitteeBranch: value.nextSyncCommitteeBranch,
49
+ currentSyncCommitteeRoot: value.currentSyncCommitteeRoot,
50
+ nextSyncCommitteeRoot: value.nextSyncCommitteeRoot,
51
+ });
52
+ return prefixData(PrefixByte.POST_GLOAS, valueBytes);
53
+ }
32
54
  if (numWitness !== NUM_WITNESS && numWitness !== NUM_WITNESS_ELECTRA) {
33
55
  throw Error(`Number of witness can only be 4 pre-electra or 5 post-electra numWitness=${numWitness}`);
34
56
  }
@@ -41,16 +63,21 @@ export class SyncCommitteeWitnessRepository extends Repository {
41
63
  // We need to differentiate between post-electra and pre-electra witness
42
64
  // such that we can deserialize correctly
43
65
  const isPostElectra = numWitness === NUM_WITNESS_ELECTRA;
44
- const prefixByte = new Uint8Array(1);
45
- prefixByte[0] = isPostElectra ? PrefixByte.POST_ELECTRA : PrefixByte.PRE_ELECTRA;
46
- const prefixedData = new Uint8Array(1 + valueBytes.length);
47
- prefixedData.set(prefixByte, 0);
48
- prefixedData.set(valueBytes, 1);
49
- return prefixedData;
66
+ return prefixData(isPostElectra ? PrefixByte.POST_ELECTRA : PrefixByte.PRE_ELECTRA, valueBytes);
50
67
  }
51
68
  decodeValue(data) {
52
69
  // First byte is written
53
70
  const prefix = data.subarray(0, 1);
71
+ const isPostGloas = prefix[0] === PrefixByte.POST_GLOAS;
72
+ if (isPostGloas) {
73
+ const type = new ContainerType({
74
+ currentSyncCommitteeBranch: new VectorCompositeType(ssz.Root, CURRENT_SYNC_COMMITTEE_DEPTH_GLOAS),
75
+ nextSyncCommitteeBranch: new VectorCompositeType(ssz.Root, NEXT_SYNC_COMMITTEE_DEPTH_GLOAS),
76
+ currentSyncCommitteeRoot: ssz.Root,
77
+ nextSyncCommitteeRoot: ssz.Root,
78
+ });
79
+ return { witness: [], ...type.deserialize(data.subarray(1)) };
80
+ }
54
81
  const isPostElectra = prefix[0] === PrefixByte.POST_ELECTRA;
55
82
  const type = new ContainerType({
56
83
  witness: new VectorCompositeType(ssz.Root, isPostElectra ? NUM_WITNESS_ELECTRA : NUM_WITNESS),
@@ -60,4 +87,12 @@ export class SyncCommitteeWitnessRepository extends Repository {
60
87
  return type.deserialize(data.subarray(1));
61
88
  }
62
89
  }
90
+ function prefixData(prefix, valueBytes) {
91
+ const prefixByte = new Uint8Array(1);
92
+ prefixByte[0] = prefix;
93
+ const prefixedData = new Uint8Array(1 + valueBytes.length);
94
+ prefixedData.set(prefixByte, 0);
95
+ prefixedData.set(valueBytes, 1);
96
+ return prefixedData;
97
+ }
63
98
  //# sourceMappingURL=lightclientSyncCommitteeWitness.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lightclientSyncCommitteeWitness.js","sourceRoot":"","sources":["../../../src/db/repositories/lightclientSyncCommitteeWitness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lightclientSyncCommitteeWitness.js","sourceRoot":"","sources":["../../../src/db/repositories/lightclientSyncCommitteeWitness.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,24 @@ export declare enum BuilderStatus {
40
40
  export declare class NoBidReceived extends Error {
41
41
  constructor();
42
42
  }
43
+ /**
44
+ * Beacon clients select randomized values from the following ranges when initializing
45
+ * the circuit breaker (so at boot time and once for each unique boot).
46
+ *
47
+ * ALLOWED_FAULTS: between 1 and SLOTS_PER_EPOCH // 4
48
+ * FAULT_INSPECTION_WINDOW: between SLOTS_PER_EPOCH and 2 * SLOTS_PER_EPOCH
49
+ *
50
+ * The values are randomized per node so builders cannot predict when a given proposer will
51
+ * fall back to local blocks. With fixed thresholds a builder could withhold payloads right up
52
+ * to the limit without ever tripping the breaker.
53
+ */
54
+ export declare function getFaultInspectionParams(opts: {
55
+ faultInspectionWindow?: number;
56
+ allowedFaults?: number;
57
+ }): {
58
+ faultInspectionWindow: number;
59
+ allowedFaults: number;
60
+ };
43
61
  export declare class ExecutionBuilderHttp implements IExecutionBuilder {
44
62
  readonly api: BuilderApi;
45
63
  readonly config: ChainForkConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/execution/builder/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/execution/builder/http.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,23 @@ export class NoBidReceived extends Error {
37
37
  super("No bid received");
38
38
  }
39
39
  }
40
+ /**
41
+ * Beacon clients select randomized values from the following ranges when initializing
42
+ * the circuit breaker (so at boot time and once for each unique boot).
43
+ *
44
+ * ALLOWED_FAULTS: between 1 and SLOTS_PER_EPOCH // 4
45
+ * FAULT_INSPECTION_WINDOW: between SLOTS_PER_EPOCH and 2 * SLOTS_PER_EPOCH
46
+ *
47
+ * The values are randomized per node so builders cannot predict when a given proposer will
48
+ * fall back to local blocks. With fixed thresholds a builder could withhold payloads right up
49
+ * to the limit without ever tripping the breaker.
50
+ */
51
+ export function getFaultInspectionParams(opts) {
52
+ const faultInspectionWindow = Math.max(opts.faultInspectionWindow ?? SLOTS_PER_EPOCH + Math.floor(Math.random() * SLOTS_PER_EPOCH), SLOTS_PER_EPOCH);
53
+ // allowedFaults should be < faultInspectionWindow, limiting them to faultInspectionWindow/4
54
+ const allowedFaults = Math.min(opts.allowedFaults ?? Math.floor(faultInspectionWindow / 4), Math.floor(faultInspectionWindow / 4));
55
+ return { faultInspectionWindow, allowedFaults };
56
+ }
40
57
  /**
41
58
  * Additional duration to account for potential event loop lag which causes
42
59
  * builder blocks to be rejected even though the response was sent in time.
@@ -77,17 +94,9 @@ export class ExecutionBuilderHttp {
77
94
  this.config = config;
78
95
  this.registrations = new ValidatorRegistrationCache();
79
96
  this.issueLocalFcUWithFeeRecipient = opts.issueLocalFcUWithFeeRecipient;
80
- /**
81
- * Beacon clients select randomized values from the following ranges when initializing
82
- * the circuit breaker (so at boot time and once for each unique boot).
83
- *
84
- * ALLOWED_FAULTS: between 1 and SLOTS_PER_EPOCH // 4
85
- * FAULT_INSPECTION_WINDOW: between SLOTS_PER_EPOCH and 2 * SLOTS_PER_EPOCH
86
- *
87
- */
88
- this.faultInspectionWindow = Math.max(opts.faultInspectionWindow ?? SLOTS_PER_EPOCH + Math.floor(Math.random() * SLOTS_PER_EPOCH), SLOTS_PER_EPOCH);
89
- // allowedFaults should be < faultInspectionWindow, limiting them to faultInspectionWindow/4
90
- this.allowedFaults = Math.min(opts.allowedFaults ?? Math.floor(this.faultInspectionWindow / 4), Math.floor(this.faultInspectionWindow / 4));
97
+ const { faultInspectionWindow, allowedFaults } = getFaultInspectionParams(opts);
98
+ this.faultInspectionWindow = faultInspectionWindow;
99
+ this.allowedFaults = allowedFaults;
91
100
  }
92
101
  updateStatus(status) {
93
102
  this.status = status;
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/execution/builder/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/execution/builder/http.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,12 @@ export declare function createBeaconMetrics(register: RegistryMetricCreator): {
50
50
  source: ProducedBlockSource;
51
51
  }>;
52
52
  blockProductionCacheSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
53
+ builderCircuitBreaker: {
54
+ active: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
55
+ faults: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
56
+ blocksPresent: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
57
+ payloadsRevealed: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
58
+ };
53
59
  blockPayload: {
54
60
  payloadAdvancePrepTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
55
61
  executionPayloadEnvelopeProcessingTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
@@ -1 +1 @@
1
- {"version":3,"file":"beacon.d.ts","sourceRoot":"","sources":["../../../src/metrics/metrics/beacon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAC,oBAAoB,EAAC,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAC,mBAAmB,EAAE,sBAAsB,EAAC,MAAM,mCAAmC,CAAC;AAC9F,OAAO,EAAC,qBAAqB,EAAC,MAAM,mCAAmC,CAAC;AAExE,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEnE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoYlE"}
1
+ {"version":3,"file":"beacon.d.ts","sourceRoot":"","sources":["../../../src/metrics/metrics/beacon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAC,oBAAoB,EAAC,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAC,mBAAmB,EAAE,sBAAsB,EAAC,MAAM,mCAAmC,CAAC;AAC9F,OAAO,EAAC,qBAAqB,EAAC,MAAM,mCAAmC,CAAC;AAExE,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEnE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuZlE"}
@@ -121,6 +121,24 @@ export function createBeaconMetrics(register) {
121
121
  name: "beacon_block_production_cache_size",
122
122
  help: "Count of cached produced results",
123
123
  }),
124
+ builderCircuitBreaker: {
125
+ active: register.gauge({
126
+ name: "beacon_builder_circuit_breaker_active",
127
+ help: "Whether the builder circuit breaker is active (1) causing builder bids to be ignored",
128
+ }),
129
+ faults: register.gauge({
130
+ name: "beacon_builder_circuit_breaker_faults",
131
+ help: "Count of blocks with unrevealed payloads in the fault inspection window",
132
+ }),
133
+ blocksPresent: register.gauge({
134
+ name: "beacon_builder_circuit_breaker_blocks_present",
135
+ help: "Count of blocks present in the fault inspection window",
136
+ }),
137
+ payloadsRevealed: register.gauge({
138
+ name: "beacon_builder_circuit_breaker_payloads_revealed",
139
+ help: "Count of blocks with revealed payloads in the fault inspection window",
140
+ }),
141
+ },
124
142
  blockPayload: {
125
143
  payloadAdvancePrepTime: register.histogram({
126
144
  name: "beacon_block_payload_prepare_time",
@@ -1 +1 @@
1
- {"version":3,"file":"beacon.js","sourceRoot":"","sources":["../../../src/metrics/metrics/beacon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"beacon.js","sourceRoot":"","sources":["../../../src/metrics/metrics/beacon.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,71 @@ export declare function createNetworkCoreMetrics(register: RegistryMetricCreator
59
59
  peerManager: {
60
60
  heartbeatDuration: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
61
61
  starved: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
62
+ /**
63
+ * Core selection/pruning phase of the heartbeat, split out of heartbeatDuration so it
64
+ * can be attributed on its own. Divide by peersEvaluated for time-per-peer.
65
+ */
66
+ prioritizePeersDuration: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
67
+ /**
68
+ * Score decay + map prune over every tracked peer, split out of heartbeatDuration.
69
+ * This loop iterates the whole score store, so divide by scoreMapSize (not
70
+ * peersEvaluated) for time-per-peer.
71
+ */
72
+ scoreUpdateDuration: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
73
+ /**
74
+ * Denominator for prioritizePeersDuration: it scales with the number of connected
75
+ * healthy peers, so time-per-peer (prioritizePeersDuration / this) is the comparable
76
+ * figure. For scoreUpdateDuration use scoreMapSize instead.
77
+ */
78
+ peersEvaluated: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
79
+ /**
80
+ * Every peer the manager intends to disconnect. Covers both the top-of-heartbeat
81
+ * bad-score disconnects ("banned"/"score_too_low") and the prioritization reasons;
82
+ * the older peersRequestedToDisconnect gauge only recorded the latter. Counts intent,
83
+ * not completion (goodbye is fire-and-forget).
84
+ */
85
+ peersPruned: import("@lodestar/utils").Counter<{
86
+ reason: string;
87
+ }>;
88
+ /**
89
+ * Actual peer count per active subnet, to check the min-peers-per-subnet invariant.
90
+ * Buckets straddle the target (TARGET_SUBNET_PEERS = 6).
91
+ */
92
+ peersPerActiveSubnet: import("@lodestar/utils").Histogram<{
93
+ type: SubnetType;
94
+ }>;
95
+ /**
96
+ * Live outbound ratio, to check the OUTBOUND_PEERS_RATIO (10%) invariant (issue #2215).
97
+ * Denominator is connected healthy peers (banned/disconnected already removed).
98
+ */
99
+ outboundPeersRatio: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
100
+ /**
101
+ * Score state crossings (Healthy/Disconnected/Banned). Sensitive to the decay formula,
102
+ * thresholds, and gossip-score weighting.
103
+ */
104
+ scoreStateTransitions: import("@lodestar/utils").Counter<{
105
+ from: string;
106
+ to: string;
107
+ }>;
108
+ /**
109
+ * Entry count of the score store (not bytes). Reflects the prune-to-MAX_ENTRIES /
110
+ * SCORE_THRESHOLD retention logic. Also the denominator for scoreUpdateDuration
111
+ * time-per-peer (that loop iterates the whole store, not just connected peers).
112
+ */
113
+ scoreMapSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
114
+ /**
115
+ * Entry count of the connectedPeers map (not bytes). Should track libp2p_peers; a
116
+ * persistent gap indicates the connection leak guarded by leakedConnectionsCount.
117
+ */
118
+ connectedPeersMapSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
119
+ /**
120
+ * assertPeerRelevance outcome per Status exchange: "relevant", an irrelevant reason
121
+ * code, or "error". Fires on every status evaluation (inbound requests and our own
122
+ * requestStatus responses both route through onStatus).
123
+ */
124
+ relevanceCheck: import("@lodestar/utils").Counter<{
125
+ result: string;
126
+ }>;
62
127
  };
63
128
  leakedConnectionsCount: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
64
129
  discovery: {
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/network/core/metrics.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,qBAAqB,EAAC,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAC,oBAAoB,EAAE,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAC,uBAAuB,EAAC,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAE1D,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE7E,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoRvE;AAED,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEtF,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,qBAAqB;;;;;EAa1E"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/network/core/metrics.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,qBAAqB,EAAC,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAC,oBAAoB,EAAE,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAC,uBAAuB,EAAC,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAE1D,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE7E,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAuHlE;;;WAGG;;QAMH;;;;WAIG;;QAMH;;;;WAIG;;QAMH;;;;;WAKG;;;;QAMH;;;WAGG;;;;QAOH;;;WAGG;;QAKH;;;WAGG;;;;;QAMH;;;;WAIG;;QAKH;;;WAGG;;QAKH;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmKR;AAED,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEtF,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,qBAAqB;;;;;EAa1E"}
@@ -115,6 +115,100 @@ export function createNetworkCoreMetrics(register) {
115
115
  name: "lodestar_peer_manager_starved_bool",
116
116
  help: "Whether lodestar is starved of data while syncing",
117
117
  }),
118
+ /**
119
+ * Core selection/pruning phase of the heartbeat, split out of heartbeatDuration so it
120
+ * can be attributed on its own. Divide by peersEvaluated for time-per-peer.
121
+ */
122
+ prioritizePeersDuration: register.histogram({
123
+ name: "lodestar_peer_manager_prioritize_peers_seconds",
124
+ help: "prioritizePeers function duration in seconds, the core peer selection/pruning algorithm",
125
+ buckets: [0.0005, 0.001, 0.005, 0.01, 0.05, 0.1],
126
+ }),
127
+ /**
128
+ * Score decay + map prune over every tracked peer, split out of heartbeatDuration.
129
+ * This loop iterates the whole score store, so divide by scoreMapSize (not
130
+ * peersEvaluated) for time-per-peer.
131
+ */
132
+ scoreUpdateDuration: register.histogram({
133
+ name: "lodestar_peer_score_update_seconds",
134
+ help: "Peer score store update (decay + prune over all peers) duration in seconds",
135
+ buckets: [0.0005, 0.001, 0.005, 0.01, 0.05, 0.1],
136
+ }),
137
+ /**
138
+ * Denominator for prioritizePeersDuration: it scales with the number of connected
139
+ * healthy peers, so time-per-peer (prioritizePeersDuration / this) is the comparable
140
+ * figure. For scoreUpdateDuration use scoreMapSize instead.
141
+ */
142
+ peersEvaluated: register.histogram({
143
+ name: "lodestar_peer_manager_peers_evaluated_count",
144
+ help: "Number of connected healthy peers evaluated by prioritizePeers per heartbeat, denominator for prioritize_peers_seconds",
145
+ buckets: [0, 25, 50, 75, 100, 150, 200],
146
+ }),
147
+ /**
148
+ * Every peer the manager intends to disconnect. Covers both the top-of-heartbeat
149
+ * bad-score disconnects ("banned"/"score_too_low") and the prioritization reasons;
150
+ * the older peersRequestedToDisconnect gauge only recorded the latter. Counts intent,
151
+ * not completion (goodbye is fire-and-forget).
152
+ */
153
+ peersPruned: register.counter({
154
+ name: "lodestar_peer_manager_peers_pruned_total",
155
+ help: "Total peers the peer manager intends to disconnect, labeled by reason (incl. bad-score and prioritization reasons)",
156
+ labelNames: ["reason"],
157
+ }),
158
+ /**
159
+ * Actual peer count per active subnet, to check the min-peers-per-subnet invariant.
160
+ * Buckets straddle the target (TARGET_SUBNET_PEERS = 6).
161
+ */
162
+ peersPerActiveSubnet: register.histogram({
163
+ name: "lodestar_peer_manager_peers_per_active_subnet",
164
+ help: "Histogram of connected peer count per active subnet, labeled by subnet type",
165
+ labelNames: ["type"],
166
+ buckets: [0, 2, 4, 6, 8, 12],
167
+ }),
168
+ /**
169
+ * Live outbound ratio, to check the OUTBOUND_PEERS_RATIO (10%) invariant (issue #2215).
170
+ * Denominator is connected healthy peers (banned/disconnected already removed).
171
+ */
172
+ outboundPeersRatio: register.gauge({
173
+ name: "lodestar_peer_manager_outbound_peers_ratio",
174
+ help: "Ratio of outbound peers to total connected healthy peers, verifies the outbound peers invariant",
175
+ }),
176
+ /**
177
+ * Score state crossings (Healthy/Disconnected/Banned). Sensitive to the decay formula,
178
+ * thresholds, and gossip-score weighting.
179
+ */
180
+ scoreStateTransitions: register.counter({
181
+ name: "lodestar_peer_score_state_transitions_total",
182
+ help: "Total peer score state transitions, labeled by from and to state (Healthy/Disconnected/Banned)",
183
+ labelNames: ["from", "to"],
184
+ }),
185
+ /**
186
+ * Entry count of the score store (not bytes). Reflects the prune-to-MAX_ENTRIES /
187
+ * SCORE_THRESHOLD retention logic. Also the denominator for scoreUpdateDuration
188
+ * time-per-peer (that loop iterates the whole store, not just connected peers).
189
+ */
190
+ scoreMapSize: register.gauge({
191
+ name: "lodestar_peer_manager_score_map_size",
192
+ help: "Current number of entries in the peer score store",
193
+ }),
194
+ /**
195
+ * Entry count of the connectedPeers map (not bytes). Should track libp2p_peers; a
196
+ * persistent gap indicates the connection leak guarded by leakedConnectionsCount.
197
+ */
198
+ connectedPeersMapSize: register.gauge({
199
+ name: "lodestar_peer_manager_connected_peers_map_size",
200
+ help: "Current number of entries in the peer manager connectedPeers map",
201
+ }),
202
+ /**
203
+ * assertPeerRelevance outcome per Status exchange: "relevant", an irrelevant reason
204
+ * code, or "error". Fires on every status evaluation (inbound requests and our own
205
+ * requestStatus responses both route through onStatus).
206
+ */
207
+ relevanceCheck: register.counter({
208
+ name: "lodestar_peer_relevance_check_total",
209
+ help: "Total peer relevance checks on Status, labeled by result (relevant or irrelevant reason code)",
210
+ labelNames: ["result"],
211
+ }),
118
212
  },
119
213
  leakedConnectionsCount: register.gauge({
120
214
  name: "lodestar_peer_manager_leaked_connections_count",