@lodestar/beacon-node 1.23.0-dev.58dea7543c → 1.23.0-dev.5c359f92dc

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 (213) hide show
  1. package/lib/api/impl/beacon/blocks/index.js +4 -2
  2. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  3. package/lib/api/impl/beacon/pool/index.js +13 -23
  4. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  5. package/lib/api/impl/beacon/state/index.d.ts +1 -1
  6. package/lib/api/impl/beacon/state/index.js +39 -3
  7. package/lib/api/impl/beacon/state/index.js.map +1 -1
  8. package/lib/api/impl/beacon/state/utils.d.ts +2 -6
  9. package/lib/api/impl/beacon/state/utils.js +4 -36
  10. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  11. package/lib/api/impl/config/constants.js +0 -1
  12. package/lib/api/impl/config/constants.js.map +1 -1
  13. package/lib/api/impl/debug/index.js +30 -0
  14. package/lib/api/impl/debug/index.js.map +1 -1
  15. package/lib/api/impl/errors.d.ts +8 -0
  16. package/lib/api/impl/errors.js +7 -0
  17. package/lib/api/impl/errors.js.map +1 -1
  18. package/lib/api/impl/events/index.js +1 -2
  19. package/lib/api/impl/events/index.js.map +1 -1
  20. package/lib/api/impl/node/utils.js +1 -0
  21. package/lib/api/impl/node/utils.js.map +1 -1
  22. package/lib/api/impl/validator/index.js +2 -4
  23. package/lib/api/impl/validator/index.js.map +1 -1
  24. package/lib/api/rest/activeSockets.js +1 -1
  25. package/lib/api/rest/activeSockets.js.map +1 -1
  26. package/lib/api/rest/base.d.ts +1 -0
  27. package/lib/api/rest/base.js +31 -4
  28. package/lib/api/rest/base.js.map +1 -1
  29. package/lib/api/rest/index.js +1 -0
  30. package/lib/api/rest/index.js.map +1 -1
  31. package/lib/api/rest/swaggerUI.js +1 -4
  32. package/lib/api/rest/swaggerUI.js.map +1 -1
  33. package/lib/chain/archiver/archiveStates.d.ts +3 -2
  34. package/lib/chain/archiver/archiveStates.js +8 -4
  35. package/lib/chain/archiver/archiveStates.js.map +1 -1
  36. package/lib/chain/archiver/index.d.ts +3 -1
  37. package/lib/chain/archiver/index.js +3 -2
  38. package/lib/chain/archiver/index.js.map +1 -1
  39. package/lib/chain/blocks/verifyBlocksDataAvailability.js +1 -2
  40. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  41. package/lib/chain/bls/multithread/index.js +1 -2
  42. package/lib/chain/bls/multithread/index.js.map +1 -1
  43. package/lib/chain/bls/multithread/poolSize.js +1 -1
  44. package/lib/chain/bls/multithread/poolSize.js.map +1 -1
  45. package/lib/chain/bls/multithread/worker.js +1 -1
  46. package/lib/chain/bls/multithread/worker.js.map +1 -1
  47. package/lib/chain/chain.d.ts +2 -1
  48. package/lib/chain/chain.js +3 -2
  49. package/lib/chain/chain.js.map +1 -1
  50. package/lib/chain/emitter.d.ts +1 -1
  51. package/lib/chain/emitter.js +1 -1
  52. package/lib/chain/emitter.js.map +1 -1
  53. package/lib/chain/historicalState/getHistoricalState.d.ts +2 -1
  54. package/lib/chain/historicalState/getHistoricalState.js +3 -0
  55. package/lib/chain/historicalState/getHistoricalState.js.map +1 -1
  56. package/lib/chain/historicalState/worker.js +1 -1
  57. package/lib/chain/historicalState/worker.js.map +1 -1
  58. package/lib/chain/initState.d.ts +1 -1
  59. package/lib/chain/initState.js +1 -1
  60. package/lib/chain/initState.js.map +1 -1
  61. package/lib/chain/interface.d.ts +2 -1
  62. package/lib/chain/options.js +1 -1
  63. package/lib/chain/options.js.map +1 -1
  64. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts +1 -1
  65. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js +1 -1
  66. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
  67. package/lib/chain/regen/regen.js +1 -1
  68. package/lib/chain/regen/regen.js.map +1 -1
  69. package/lib/chain/rewards/attestationsRewards.d.ts +1 -1
  70. package/lib/chain/rewards/attestationsRewards.js +3 -2
  71. package/lib/chain/rewards/attestationsRewards.js.map +1 -1
  72. package/lib/chain/serializeState.js +63 -10
  73. package/lib/chain/serializeState.js.map +1 -1
  74. package/lib/chain/stateCache/fifoBlockStateCache.d.ts +7 -2
  75. package/lib/chain/stateCache/fifoBlockStateCache.js +7 -2
  76. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  77. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +4 -3
  78. package/lib/chain/stateCache/persistentCheckpointsCache.js +25 -20
  79. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  80. package/lib/chain/validation/aggregateAndProof.d.ts +1 -1
  81. package/lib/chain/validation/attestation.d.ts +3 -17
  82. package/lib/chain/validation/attestation.js +7 -26
  83. package/lib/chain/validation/attestation.js.map +1 -1
  84. package/lib/chain/validation/attesterSlashing.d.ts +1 -1
  85. package/lib/chain/validation/blsToExecutionChange.d.ts +1 -1
  86. package/lib/chain/validation/proposerSlashing.d.ts +1 -1
  87. package/lib/chain/validation/voluntaryExit.d.ts +1 -1
  88. package/lib/db/repositories/backfilledRanges.d.ts +1 -1
  89. package/lib/db/repositories/backfilledRanges.js +1 -2
  90. package/lib/db/repositories/backfilledRanges.js.map +1 -1
  91. package/lib/db/repositories/checkpointState.js +0 -1
  92. package/lib/db/repositories/checkpointState.js.map +1 -1
  93. package/lib/db/repositories/depositDataRoot.d.ts +1 -1
  94. package/lib/db/repositories/depositDataRoot.js +1 -2
  95. package/lib/db/repositories/depositDataRoot.js.map +1 -1
  96. package/lib/db/repositories/eth1Data.d.ts +1 -1
  97. package/lib/db/repositories/eth1Data.js +1 -2
  98. package/lib/db/repositories/eth1Data.js.map +1 -1
  99. package/lib/db/repositories/stateArchive.js +1 -1
  100. package/lib/db/repositories/stateArchive.js.map +1 -1
  101. package/lib/db/single/preGenesisStateLastProcessedBlock.d.ts +1 -1
  102. package/lib/db/single/preGenesisStateLastProcessedBlock.js +1 -1
  103. package/lib/db/single/preGenesisStateLastProcessedBlock.js.map +1 -1
  104. package/lib/eth1/eth1MergeBlockTracker.js +0 -2
  105. package/lib/eth1/eth1MergeBlockTracker.js.map +1 -1
  106. package/lib/eth1/provider/eth1Provider.js.map +1 -1
  107. package/lib/eth1/provider/jsonRpcHttpClient.d.ts +1 -1
  108. package/lib/eth1/provider/jsonRpcHttpClient.js +1 -1
  109. package/lib/eth1/provider/jsonRpcHttpClient.js.map +1 -1
  110. package/lib/eth1/provider/jwt.js +0 -1
  111. package/lib/eth1/provider/jwt.js.map +1 -1
  112. package/lib/execution/builder/index.js +1 -0
  113. package/lib/execution/builder/index.js.map +1 -1
  114. package/lib/execution/engine/http.d.ts +2 -2
  115. package/lib/execution/engine/http.js +2 -2
  116. package/lib/execution/engine/http.js.map +1 -1
  117. package/lib/execution/engine/index.js +1 -0
  118. package/lib/execution/engine/index.js.map +1 -1
  119. package/lib/execution/engine/mock.js +0 -1
  120. package/lib/execution/engine/mock.js.map +1 -1
  121. package/lib/execution/engine/types.js.map +1 -1
  122. package/lib/execution/engine/utils.js +1 -1
  123. package/lib/execution/engine/utils.js.map +1 -1
  124. package/lib/metrics/metrics/beacon.js +0 -1
  125. package/lib/metrics/metrics/beacon.js.map +1 -1
  126. package/lib/metrics/metrics/lodestar.d.ts +3 -1
  127. package/lib/metrics/metrics/lodestar.js +6 -6
  128. package/lib/metrics/metrics/lodestar.js.map +1 -1
  129. package/lib/monitoring/service.js +1 -1
  130. package/lib/monitoring/service.js.map +1 -1
  131. package/lib/monitoring/system.js +0 -1
  132. package/lib/monitoring/system.js.map +1 -1
  133. package/lib/network/core/metrics.js +0 -2
  134. package/lib/network/core/metrics.js.map +1 -1
  135. package/lib/network/core/networkCore.js +1 -1
  136. package/lib/network/core/networkCore.js.map +1 -1
  137. package/lib/network/core/networkCoreWorker.js +0 -1
  138. package/lib/network/core/networkCoreWorker.js.map +1 -1
  139. package/lib/network/core/networkCoreWorkerHandler.js +1 -1
  140. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  141. package/lib/network/discv5/index.d.ts +1 -1
  142. package/lib/network/discv5/index.js +1 -1
  143. package/lib/network/discv5/index.js.map +1 -1
  144. package/lib/network/discv5/worker.js +0 -1
  145. package/lib/network/discv5/worker.js.map +1 -1
  146. package/lib/network/events.js +1 -1
  147. package/lib/network/events.js.map +1 -1
  148. package/lib/network/forks.js +0 -1
  149. package/lib/network/forks.js.map +1 -1
  150. package/lib/network/gossip/gossipsub.js +0 -1
  151. package/lib/network/gossip/gossipsub.js.map +1 -1
  152. package/lib/network/gossip/interface.d.ts +8 -6
  153. package/lib/network/gossip/interface.js.map +1 -1
  154. package/lib/network/gossip/metrics.js +0 -1
  155. package/lib/network/gossip/metrics.js.map +1 -1
  156. package/lib/network/gossip/scoringParameters.js +0 -1
  157. package/lib/network/gossip/scoringParameters.js.map +1 -1
  158. package/lib/network/gossip/topic.js +2 -3
  159. package/lib/network/gossip/topic.js.map +1 -1
  160. package/lib/network/options.js +0 -2
  161. package/lib/network/options.js.map +1 -1
  162. package/lib/network/peers/datastore.js +1 -2
  163. package/lib/network/peers/datastore.js.map +1 -1
  164. package/lib/network/peers/discover.js +0 -1
  165. package/lib/network/peers/discover.js.map +1 -1
  166. package/lib/network/peers/peerManager.js +4 -4
  167. package/lib/network/peers/peerManager.js.map +1 -1
  168. package/lib/network/processor/gossipHandlers.d.ts +0 -2
  169. package/lib/network/processor/gossipHandlers.js +15 -62
  170. package/lib/network/processor/gossipHandlers.js.map +1 -1
  171. package/lib/network/processor/gossipQueues/index.d.ts +1 -1
  172. package/lib/network/processor/gossipQueues/index.js +6 -19
  173. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  174. package/lib/network/processor/gossipQueues/types.d.ts +1 -2
  175. package/lib/network/processor/gossipQueues/types.js +0 -6
  176. package/lib/network/processor/gossipQueues/types.js.map +1 -1
  177. package/lib/network/processor/index.js +4 -2
  178. package/lib/network/processor/index.js.map +1 -1
  179. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +3 -1
  180. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
  181. package/lib/network/reqresp/protocols.js +0 -1
  182. package/lib/network/reqresp/protocols.js.map +1 -1
  183. package/lib/network/reqresp/rateLimit.js +1 -1
  184. package/lib/network/reqresp/rateLimit.js.map +1 -1
  185. package/lib/network/reqresp/score.js +0 -1
  186. package/lib/network/reqresp/score.js.map +1 -1
  187. package/lib/network/util.js +0 -1
  188. package/lib/network/util.js.map +1 -1
  189. package/lib/sync/backfill/backfill.d.ts +2 -2
  190. package/lib/sync/backfill/backfill.js +2 -1
  191. package/lib/sync/backfill/backfill.js.map +1 -1
  192. package/lib/sync/range/range.d.ts +1 -1
  193. package/lib/sync/range/range.js +1 -1
  194. package/lib/sync/range/range.js.map +1 -1
  195. package/lib/util/asyncIterableToEvents.js +0 -2
  196. package/lib/util/asyncIterableToEvents.js.map +1 -1
  197. package/lib/util/kzg.js +0 -1
  198. package/lib/util/kzg.js.map +1 -1
  199. package/lib/util/map.js +0 -1
  200. package/lib/util/map.js.map +1 -1
  201. package/lib/util/profile.js +1 -1
  202. package/lib/util/profile.js.map +1 -1
  203. package/lib/util/queue/errors.d.ts +0 -1
  204. package/lib/util/queue/errors.js +0 -3
  205. package/lib/util/queue/errors.js.map +1 -1
  206. package/lib/util/queue/fnQueue.js +1 -1
  207. package/lib/util/queue/fnQueue.js.map +1 -1
  208. package/lib/util/queue/itemQueue.js +1 -1
  209. package/lib/util/queue/itemQueue.js.map +1 -1
  210. package/package.json +17 -16
  211. package/lib/network/processor/gossipQueues/indexedAvgTime.d.ts +0 -31
  212. package/lib/network/processor/gossipQueues/indexedAvgTime.js +0 -115
  213. package/lib/network/processor/gossipQueues/indexedAvgTime.js.map +0 -1
@@ -1,8 +1,9 @@
1
1
  import { EFFECTIVE_BALANCE_INCREMENT, ForkName, INACTIVITY_PENALTY_QUOTIENT_ALTAIR, MAX_EFFECTIVE_BALANCE, PARTICIPATION_FLAG_WEIGHTS, TIMELY_HEAD_FLAG_INDEX, TIMELY_SOURCE_FLAG_INDEX, TIMELY_TARGET_FLAG_INDEX, WEIGHT_DENOMINATOR, } from "@lodestar/params";
2
2
  import { FLAG_ELIGIBLE_ATTESTER, FLAG_PREV_HEAD_ATTESTER_UNSLASHED, FLAG_PREV_SOURCE_ATTESTER_UNSLASHED, FLAG_PREV_TARGET_ATTESTER_UNSLASHED, beforeProcessEpoch, hasMarkers, isInInactivityLeak, } from "@lodestar/state-transition";
3
+ import { fromHex } from "@lodestar/utils";
3
4
  const defaultAttestationsReward = { head: 0, target: 0, source: 0, inclusionDelay: 0, inactivity: 0 };
4
5
  const defaultAttestationsPenalty = { target: 0, source: 0 };
5
- export async function computeAttestationsRewards(epoch, state, config, validatorIds) {
6
+ export async function computeAttestationsRewards(_epoch, state, _config, validatorIds) {
6
7
  const fork = state.config.getForkName(state.slot);
7
8
  if (fork === ForkName.phase0) {
8
9
  throw Error("Unsupported fork. Attestations rewards calculation is not available in phase0");
@@ -70,7 +71,7 @@ function computeTotalAttestationsRewardsAltair(state, transitionCache, idealRewa
70
71
  const { flags } = transitionCache;
71
72
  const { epochCtx, config } = state;
72
73
  const validatorIndices = validatorIds
73
- .map((id) => (typeof id === "number" ? id : epochCtx.pubkey2index.get(id)))
74
+ .map((id) => (typeof id === "number" ? id : epochCtx.pubkey2index.get(fromHex(id))))
74
75
  .filter((index) => index !== undefined); // Validator indices to include in the result
75
76
  const inactivityPenaltyDenominator = config.INACTIVITY_SCORE_BIAS * INACTIVITY_PENALTY_QUOTIENT_ALTAIR;
76
77
  for (let i = 0; i < flags.length; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"attestationsRewards.js","sourceRoot":"","sources":["../../../src/chain/rewards/attestationsRewards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attestationsRewards.js","sourceRoot":"","sources":["../../../src/chain/rewards/attestationsRewards.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,48 @@
1
+ var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
2
+ if (value !== null && value !== void 0) {
3
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
4
+ var dispose;
5
+ if (async) {
6
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
7
+ dispose = value[Symbol.asyncDispose];
8
+ }
9
+ if (dispose === void 0) {
10
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
11
+ dispose = value[Symbol.dispose];
12
+ }
13
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
14
+ env.stack.push({ value: value, dispose: dispose, async: async });
15
+ }
16
+ else if (async) {
17
+ env.stack.push({ async: true });
18
+ }
19
+ return value;
20
+ };
21
+ var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
22
+ return function (env) {
23
+ function fail(e) {
24
+ env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
25
+ env.hasError = true;
26
+ }
27
+ function next() {
28
+ while (env.stack.length) {
29
+ var rec = env.stack.pop();
30
+ try {
31
+ var result = rec.dispose && rec.dispose.call(rec.value);
32
+ if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
33
+ }
34
+ catch (e) {
35
+ fail(e);
36
+ }
37
+ }
38
+ if (env.hasError) throw env.error;
39
+ }
40
+ return next();
41
+ };
42
+ })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
43
+ var e = new Error(message);
44
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
45
+ });
1
46
  /*
2
47
  * Serialize state using the BufferPool if provided.
3
48
  */
@@ -5,18 +50,26 @@ export async function serializeState(state, source, processFn, bufferPool) {
5
50
  const size = state.type.tree_serializedSize(state.node);
6
51
  let stateBytes = null;
7
52
  if (bufferPool) {
8
- const bufferWithKey = bufferPool.alloc(size, source);
9
- if (bufferWithKey) {
10
- stateBytes = bufferWithKey.buffer;
11
- const dataView = new DataView(stateBytes.buffer, stateBytes.byteOffset, stateBytes.byteLength);
12
- state.serializeToBytes({ uint8Array: stateBytes, dataView }, 0);
53
+ const env_1 = { stack: [], error: void 0, hasError: false };
54
+ try {
55
+ const bufferWithKey = __addDisposableResource(env_1, bufferPool.alloc(size, source), false);
56
+ if (bufferWithKey) {
57
+ stateBytes = bufferWithKey.buffer;
58
+ const dataView = new DataView(stateBytes.buffer, stateBytes.byteOffset, stateBytes.byteLength);
59
+ state.serializeToBytes({ uint8Array: stateBytes, dataView }, 0);
60
+ return processFn(stateBytes);
61
+ }
62
+ }
63
+ catch (e_1) {
64
+ env_1.error = e_1;
65
+ env_1.hasError = true;
66
+ }
67
+ finally {
68
+ __disposeResources(env_1);
13
69
  }
14
70
  }
15
- if (!stateBytes) {
16
- // we already have metrics in BufferPool so no need to do it here
17
- stateBytes = state.serialize();
18
- }
71
+ // we already have metrics in BufferPool so no need to do it here
72
+ stateBytes = state.serialize();
19
73
  return processFn(stateBytes);
20
- // release the buffer back to the pool automatically
21
74
  }
22
75
  //# sourceMappingURL=serializeState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serializeState.js","sourceRoot":"","sources":["../../src/chain/serializeState.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAgC,EAChC,MAAmB,EACnB,SAAiC,EACjC,UAA8B;IAE9B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,UAAU,GAAsB,IAAI,CAAC;IACzC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,aAAa,EAAE,CAAC;YAClB,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;YAC/F,KAAK,CAAC,gBAAgB,CAAC,EAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAC,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,iEAAiE;QACjE,UAAU,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC;IAC7B,oDAAoD;AACtD,CAAC"}
1
+ {"version":3,"file":"serializeState.js","sourceRoot":"","sources":["../../src/chain/serializeState.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAgC,EAChC,MAAmB,EACnB,SAAiC,EACjC,UAA8B;IAE9B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,UAAU,GAAsB,IAAI,CAAC;IACzC,IAAI,UAAU,EAAE,CAAC;;;YACf,MAAM,aAAa,kCAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,QAAA,CAAC;YACrD,IAAI,aAAa,EAAE,CAAC;gBAClB,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;gBAClC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;gBAC/F,KAAK,CAAC,gBAAgB,CAAC,EAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAC,EAAE,CAAC,CAAC,CAAC;gBAC9D,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC;YAC/B,CAAC;;;;;;;;;KAEF;IAED,iEAAiE;IACjE,UAAU,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IAE/B,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC;AAC/B,CAAC"}
@@ -8,9 +8,14 @@ export type FIFOBlockStateCacheOpts = {
8
8
  maxBlockStates?: number;
9
9
  };
10
10
  /**
11
- * Regen state if there's a reorg distance > 32 slots.
11
+ * Given `maxSkipSlots` = 32 and `DEFAULT_EARLIEST_PERMISSIBLE_SLOT_DISTANCE` = 32, lodestar doesn't need to
12
+ * reload states in order to process a gossip block.
13
+ *
14
+ * |-----------------------------------------------|-----------------------------------------------|
15
+ * maxSkipSlots DEFAULT_EARLIEST_PERMISSIBLE_SLOT_DISTANCE ^
16
+ * clock slot
12
17
  */
13
- export declare const DEFAULT_MAX_BLOCK_STATES = 32;
18
+ export declare const DEFAULT_MAX_BLOCK_STATES = 64;
14
19
  /**
15
20
  * New implementation of BlockStateCache that keeps the most recent n states consistently
16
21
  * - Maintain a linked list (FIFO) with special handling for head state, which is always the first item in the list
@@ -2,9 +2,14 @@ import { toRootHex } from "@lodestar/utils";
2
2
  import { LinkedList } from "../../util/array.js";
3
3
  import { MapTracker } from "./mapMetrics.js";
4
4
  /**
5
- * Regen state if there's a reorg distance > 32 slots.
5
+ * Given `maxSkipSlots` = 32 and `DEFAULT_EARLIEST_PERMISSIBLE_SLOT_DISTANCE` = 32, lodestar doesn't need to
6
+ * reload states in order to process a gossip block.
7
+ *
8
+ * |-----------------------------------------------|-----------------------------------------------|
9
+ * maxSkipSlots DEFAULT_EARLIEST_PERMISSIBLE_SLOT_DISTANCE ^
10
+ * clock slot
6
11
  */
7
- export const DEFAULT_MAX_BLOCK_STATES = 32;
12
+ export const DEFAULT_MAX_BLOCK_STATES = 64;
8
13
  /**
9
14
  * New implementation of BlockStateCache that keeps the most recent n states consistently
10
15
  * - Maintain a linked list (FIFO) with special handling for head state, which is always the first item in the list
@@ -1 +1 @@
1
- {"version":3,"file":"fifoBlockStateCache.js","sourceRoot":"","sources":["../../../src/chain/stateCache/fifoBlockStateCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fifoBlockStateCache.js","sourceRoot":"","sources":["../../../src/chain/stateCache/fifoBlockStateCache.ts"],"names":[],"mappings":"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"}
@@ -30,10 +30,11 @@ type LoadedStateBytesData = {
30
30
  stateBytes: Uint8Array;
31
31
  };
32
32
  /**
33
- * Before n-historical states, lodestar keeps mostly 3 states in memory with 1 finalized state
34
- * Since Jan 2024, lodestar stores the finalized state in disk and keeps up to 2 epochs in memory
33
+ * Before n-historical states, lodestar keeps all checkpoint states since finalized
34
+ * Since Sep 2024, lodestar stores 3 most recent checkpoint states in memory and the rest on disk. The finalized state
35
+ * may not be available in memory, and stay on disk instead.
35
36
  */
36
- export declare const DEFAULT_MAX_CP_STATE_EPOCHS_IN_MEMORY = 2;
37
+ export declare const DEFAULT_MAX_CP_STATE_EPOCHS_IN_MEMORY = 3;
37
38
  /**
38
39
  * An implementation of CheckpointStateCache that keep up to n epoch checkpoint states in memory and persist the rest to disk
39
40
  * - If it's more than `maxEpochsInMemory` epochs old, it will persist n last epochs to disk based on the view of the block
@@ -53,10 +53,11 @@ import { MapTracker } from "./mapMetrics.js";
53
53
  import { datastoreKeyToCheckpoint } from "./datastore/index.js";
54
54
  import { CacheItemType } from "./types.js";
55
55
  /**
56
- * Before n-historical states, lodestar keeps mostly 3 states in memory with 1 finalized state
57
- * Since Jan 2024, lodestar stores the finalized state in disk and keeps up to 2 epochs in memory
56
+ * Before n-historical states, lodestar keeps all checkpoint states since finalized
57
+ * Since Sep 2024, lodestar stores 3 most recent checkpoint states in memory and the rest on disk. The finalized state
58
+ * may not be available in memory, and stay on disk instead.
58
59
  */
59
- export const DEFAULT_MAX_CP_STATE_EPOCHS_IN_MEMORY = 2;
60
+ export const DEFAULT_MAX_CP_STATE_EPOCHS_IN_MEMORY = 3;
60
61
  /**
61
62
  * An implementation of CheckpointStateCache that keep up to n epoch checkpoint states in memory and persist the rest to disk
62
63
  * - If it's more than `maxEpochsInMemory` epochs old, it will persist n last epochs to disk based on the view of the block
@@ -97,7 +98,7 @@ export class PersistentCheckpointStateCache {
97
98
  this.preComputedCheckpointHits = null;
98
99
  this.cache = new MapTracker(metrics?.cpStateCache);
99
100
  if (metrics) {
100
- this.metrics = metrics.cpStateCache;
101
+ this.metrics = metrics;
101
102
  metrics.cpStateCache.size.addCollect(() => {
102
103
  let persistCount = 0;
103
104
  let inMemoryCount = 0;
@@ -167,25 +168,25 @@ export class PersistentCheckpointStateCache {
167
168
  const { persistedKey, stateBytes } = stateOrStateBytesData;
168
169
  const logMeta = { persistedKey: toHex(persistedKey) };
169
170
  this.logger.debug("Reload: read state successful", logMeta);
170
- this.metrics?.stateReloadSecFromSlot.observe(this.clock?.secFromSlot(this.clock?.currentSlot ?? 0) ?? 0);
171
+ this.metrics?.cpStateCache.stateReloadSecFromSlot.observe(this.clock?.secFromSlot(this.clock?.currentSlot ?? 0) ?? 0);
171
172
  const seedState = this.findSeedStateToReload(cp);
172
- this.metrics?.stateReloadEpochDiff.observe(Math.abs(seedState.epochCtx.epoch - cp.epoch));
173
+ this.metrics?.cpStateCache.stateReloadEpochDiff.observe(Math.abs(seedState.epochCtx.epoch - cp.epoch));
173
174
  this.logger.debug("Reload: found seed state", { ...logMeta, seedSlot: seedState.slot });
174
175
  try {
175
176
  const env_1 = { stack: [], error: void 0, hasError: false };
176
177
  try {
177
178
  // 80% of validators serialization time comes from memory allocation, this is to avoid it
178
- const sszTimer = this.metrics?.stateReloadValidatorsSerializeDuration.startTimer();
179
+ const sszTimer = this.metrics?.cpStateCache.stateReloadValidatorsSerializeDuration.startTimer();
179
180
  // automatically free the buffer pool after this scope
180
181
  const validatorsBytesWithKey = __addDisposableResource(env_1, this.serializeStateValidators(seedState), false);
181
182
  let validatorsBytes = validatorsBytesWithKey?.buffer;
182
183
  if (validatorsBytes == null) {
183
184
  // fallback logic in case we can't use the buffer pool
184
- this.metrics?.stateReloadValidatorsSerializeAllocCount.inc();
185
+ this.metrics?.cpStateCache.stateReloadValidatorsSerializeAllocCount.inc();
185
186
  validatorsBytes = seedState.validators.serialize();
186
187
  }
187
188
  sszTimer?.();
188
- const timer = this.metrics?.stateReloadDuration.startTimer();
189
+ const timer = this.metrics?.cpStateCache.stateReloadDuration.startTimer();
189
190
  const newCachedState = loadCachedBeaconState(seedState, stateBytes, {}, validatorsBytes);
190
191
  newCachedState.commit();
191
192
  const stateRoot = toRootHex(newCachedState.hashTreeRoot());
@@ -248,7 +249,7 @@ export class PersistentCheckpointStateCache {
248
249
  throw new Error("Expected persistent key");
249
250
  }
250
251
  const persistedKey = cacheItem.value;
251
- const dbReadTimer = this.metrics?.stateReloadDbReadTime.startTimer();
252
+ const dbReadTimer = this.metrics?.cpStateCache.stateReloadDbReadTime.startTimer();
252
253
  const stateBytes = await this.datastore.read(persistedKey);
253
254
  dbReadTimer?.();
254
255
  if (stateBytes === null) {
@@ -260,19 +261,19 @@ export class PersistentCheckpointStateCache {
260
261
  * Similar to get() api without reloading from disk
261
262
  */
262
263
  get(cpOrKey, opts) {
263
- this.metrics?.lookups.inc();
264
+ this.metrics?.cpStateCache.lookups.inc();
264
265
  const cpKey = typeof cpOrKey === "string" ? cpOrKey : toCacheKey(cpOrKey);
265
266
  const cacheItem = this.cache.get(cpKey);
266
267
  if (cacheItem === undefined) {
267
268
  return null;
268
269
  }
269
- this.metrics?.hits.inc();
270
+ this.metrics?.cpStateCache.hits.inc();
270
271
  if (cpKey === this.preComputedCheckpoint) {
271
272
  this.preComputedCheckpointHits = (this.preComputedCheckpointHits ?? 0) + 1;
272
273
  }
273
274
  if (isInMemoryCacheItem(cacheItem)) {
274
275
  const { state } = cacheItem;
275
- this.metrics?.stateClonedCount.observe(state.clonedCount);
276
+ this.metrics?.cpStateCache.stateClonedCount.observe(state.clonedCount);
276
277
  return state.clone(opts?.dontTransferCache);
277
278
  }
278
279
  return null;
@@ -284,7 +285,7 @@ export class PersistentCheckpointStateCache {
284
285
  const cpHex = toCheckpointHex(cp);
285
286
  const key = toCacheKey(cpHex);
286
287
  const cacheItem = this.cache.get(key);
287
- this.metrics?.adds.inc();
288
+ this.metrics?.cpStateCache.adds.inc();
288
289
  if (cacheItem !== undefined && isPersistedCacheItem(cacheItem)) {
289
290
  const persistedKey = cacheItem.value;
290
291
  // was persisted to disk, set back to memory
@@ -614,7 +615,7 @@ export class PersistentCheckpointStateCache {
614
615
  }
615
616
  else {
616
617
  // persist and do not update epochIndex
617
- this.metrics?.statePersistSecFromSlot.observe(this.clock?.secFromSlot(this.clock?.currentSlot ?? 0) ?? 0);
618
+ this.metrics?.cpStateCache.statePersistSecFromSlot.observe(this.clock?.secFromSlot(this.clock?.currentSlot ?? 0) ?? 0);
618
619
  const cpPersist = { epoch: epoch, root: fromHex(rootHex) };
619
620
  // It's not sustainable to allocate ~240MB for each state every epoch, so we use buffer pool to reuse the memory.
620
621
  // As monitored on holesky as of Jan 2024:
@@ -622,9 +623,13 @@ export class PersistentCheckpointStateCache {
622
623
  // - It helps stabilize persist time and save ~300ms in average (1.5s vs 1.2s)
623
624
  // - It also helps the state reload to save ~500ms in average (4.3s vs 3.8s)
624
625
  // - Also `serializeState.test.ts` perf test shows a lot of differences allocating ~240MB once vs per state serialization
625
- const timer = this.metrics?.stateSerializeDuration.startTimer();
626
- persistedKey = await serializeState(state, AllocSource.PERSISTENT_CHECKPOINTS_CACHE_STATE, (stateBytes) => this.datastore.write(cpPersist, stateBytes), this.bufferPool);
627
- timer?.();
626
+ const timer = this.metrics?.stateSerializeDuration.startTimer({
627
+ source: AllocSource.PERSISTENT_CHECKPOINTS_CACHE_STATE,
628
+ });
629
+ persistedKey = await serializeState(state, AllocSource.PERSISTENT_CHECKPOINTS_CACHE_STATE, (stateBytes) => {
630
+ timer?.();
631
+ return this.datastore.write(cpPersist, stateBytes);
632
+ }, this.bufferPool);
628
633
  persistCount++;
629
634
  this.logger.verbose("Pruned checkpoint state from memory and persisted to disk", {
630
635
  ...logMeta,
@@ -646,7 +651,7 @@ export class PersistentCheckpointStateCache {
646
651
  this.cache.delete(cpKey);
647
652
  this.epochIndex.get(epoch)?.delete(rootHex);
648
653
  }
649
- this.metrics?.statePruneFromMemoryCount.inc();
654
+ this.metrics?.cpStateCache.statePruneFromMemoryCount.inc();
650
655
  this.logger.verbose("Pruned checkpoint state from memory", logMeta);
651
656
  }
652
657
  }
@@ -667,7 +672,7 @@ export class PersistentCheckpointStateCache {
667
672
  if (persistedKey) {
668
673
  await this.datastore.remove(persistedKey);
669
674
  persistCount++;
670
- this.metrics?.persistedStateRemoveCount.inc();
675
+ this.metrics?.cpStateCache.persistedStateRemoveCount.inc();
671
676
  }
672
677
  }
673
678
  this.cache.delete(key);
@@ -1 +1 @@
1
- {"version":3,"file":"persistentCheckpointsCache.js","sourceRoot":"","sources":["../../../src/chain/stateCache/persistentCheckpointsCache.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAA4B,uBAAuB,EAAE,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAClH,OAAO,EAAS,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAEjF,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAIpD,OAAO,EAAC,WAAW,EAA4B,MAAM,0BAA0B,CAAC;AAEhF,OAAO,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAiC,wBAAwB,EAAC,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAgB,aAAa,EAAwC,MAAM,YAAY,CAAC;AAwC/F;;;GAGG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,OAAO,8BAA8B;IAkBzC,YACE,EACE,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,cAAc,EACd,SAAS,EACT,eAAe,EACf,UAAU,GAC4B,EACxC,IAAwC;QA3B1C,8BAA8B;QACb,eAAU,GAAG,IAAI,MAAM,CAAsB,GAAG,EAAE,CAAC,IAAI,GAAG,EAAU,CAAC,CAAC;QAK/E,0BAAqB,GAAkB,IAAI,CAAC;QAC5C,8BAAyB,GAAkB,IAAI,CAAC;QAsBtD,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACnD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;YACpC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;gBACxC,IAAI,YAAY,GAAG,CAAC,CAAC;gBACrB,IAAI,aAAa,GAAG,CAAC,CAAC;gBACtB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAS,CAAC;gBACtC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAS,CAAC;gBAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;oBACpD,MAAM,EAAC,KAAK,EAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;oBAClC,IAAI,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;wBACpC,YAAY,EAAE,CAAC;wBACf,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC9B,CAAC;yBAAM,CAAC;wBACN,aAAa,EAAE,CAAC;wBAChB,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC1B,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,aAAa,CAAC,SAAS,EAAC,EAAE,YAAY,CAAC,CAAC;gBAC7E,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAC,EAAE,aAAa,CAAC,CAAC;gBAC7E,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,aAAa,CAAC,SAAS,EAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAC3F,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;YACxF,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,IAAI,CAAC,wBAAwB,KAAK,SAAS,IAAI,IAAI,CAAC,wBAAwB,GAAG,CAAC,EAAE,CAAC;YACrF,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,wBAAwB,IAAI,qCAAqC,CAAC;QAChG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,KAAK,CAAC;QACvD,0CAA0C;QAC1C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACtD,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACzC,MAAM,EAAE,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;YAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAC,IAAI,EAAE,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,EAAC,CAAC,CAAC;YACrF,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sDAAsD,EAAE;YACvE,KAAK,EAAE,aAAa,CAAC,MAAM;YAC3B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CAAC,EAAiB,EAAE,IAAqB;QACxD,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACpE,IAAI,qBAAqB,KAAK,IAAI,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACjF,OAAO,qBAAqB,EAAE,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,IAAI,CAAC;QACvE,CAAC;QACD,MAAM,EAAC,YAAY,EAAE,UAAU,EAAC,GAAG,qBAAqB,CAAC;QACzD,MAAM,OAAO,GAAG,EAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,EAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzG,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAC,CAAC,CAAC;QAEtF,IAAI,CAAC;;;gBACH,yFAAyF;gBACzF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,sCAAsC,CAAC,UAAU,EAAE,CAAC;gBACnF,sDAAsD;gBACtD,MAAM,sBAAsB,kCAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,QAAA,CAAC;gBACxE,IAAI,eAAe,GAAG,sBAAsB,EAAE,MAAM,CAAC;gBACrD,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;oBAC5B,sDAAsD;oBACtD,IAAI,CAAC,OAAO,EAAE,wCAAwC,CAAC,GAAG,EAAE,CAAC;oBAC7D,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;gBACrD,CAAC;gBACD,QAAQ,EAAE,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,UAAU,EAAE,CAAC;gBAC7D,MAAM,cAAc,GAAG,qBAAqB,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC;gBACzF,cAAc,CAAC,MAAM,EAAE,CAAC;gBACxB,MAAM,SAAS,GAAG,SAAS,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC3D,KAAK,EAAE,EAAE,CAAC;gBAEV,4FAA4F;gBAC5F,cAAc,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;gBACjD,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE;oBACxD,GAAG,OAAO;oBACV,SAAS,EAAE,cAAc,CAAC,IAAI;oBAC9B,SAAS;oBACT,QAAQ,EAAE,SAAS,CAAC,IAAI;iBACzB,CAAC,CAAC;gBAEH,0DAA0D;gBAC1D,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAC,CAAC,CAAC;gBAC3F,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;gBACvD,8EAA8E;gBAC9E,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;;;;;;;;;SACtD;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,OAAO,EAAE,CAAU,CAAC,CAAC;YAC7E,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,EAAiB;QACrC,qDAAqD;QACrD,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAC,iBAAiB,EAAE,IAAI,EAAC,CAAC,CAAC;QACtF,IAAI,kBAAkB,KAAK,IAAI,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC3E,OAAO,kBAAkB,CAAC;QAC5B,CAAC;QACD,OAAO,kBAAkB,CAAC,UAAU,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACpB,EAAiB,EACjB,IAAqB;QAErB,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5C,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,sDAAsD;YACtD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,UAAU,EAAE,CAAC;QACrE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3D,WAAW,EAAE,EAAE,CAAC;QAEhB,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAC,YAAY,EAAE,UAAU,EAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,OAA+B,EAAE,IAAqB;QACxD,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAExC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QAEzB,IAAI,KAAK,KAAK,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACzC,IAAI,CAAC,yBAAyB,GAAG,CAAC,IAAI,CAAC,yBAAyB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,MAAM,EAAC,KAAK,EAAC,GAAG,SAAS,CAAC;YAC1B,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC1D,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,EAAqB,EAAE,KAAgC;QACzD,MAAM,KAAK,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,SAAS,KAAK,SAAS,IAAI,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC;YACrC,4CAA4C;YAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAC,CAAC,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8DAA8D,EAAE;gBAClF,KAAK,EAAE,EAAE,CAAC,KAAK;gBACf,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC;aAClC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kCAAkC,EAAE,EAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAC,CAAC,CAAC;QACrG,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,OAAgB,EAAE,QAAe,EAAE,IAAqB;QAChE,oEAAoE;QACpE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;aAC9C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;aACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7C,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,EAAE,IAAI,CAAC,CAAC;gBAC7D,IAAI,mBAAmB,EAAE,CAAC;oBACxB,OAAO,mBAAmB,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,iBAAiB,CACrB,OAAgB,EAChB,QAAe,EACf,IAAqB;QAErB,oEAAoE;QACpE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;aAC9C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;aACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,EAAE,IAAI,CAAC,CAAC;oBACnE,IAAI,WAAW,EAAE,CAAC;wBAChB,OAAO,WAAW,CAAC;oBACrB,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAC,KAAK,EAAE,OAAO,EAAC,EAAE,CAAU,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,2BAA2B,CAAC,OAAgB,EAAE,KAAY;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,CAAC;QACpD,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC;QACnC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,aAAa;IACf,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,cAAqB;QAClC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3C,IAAI,KAAK,GAAG,cAAc,EAAE,CAAC;gBAC3B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAC,KAAK,EAAE,cAAc,EAAC,EAAE,CAAU,CAAC,CACvF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiDG;IACH,KAAK,CAAC,YAAY,CAAC,YAAqB,EAAE,KAAgC;QACxE,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,sIAAsI;QACtI,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9E,IAAI,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAClD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;QAC7B,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,kBAAkB,CAAC;QAC/E,sEAAsE;QACtE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC;QACxE,MAAM,kBAAkB,GAAG,aAAa,GAAG,WAAW,CAAC;QACvD,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;YAC3B,iGAAiG;YACjG,8EAA8E;YAC9E,MAAM,KAAK,CAAC,kBAAkB,GAAG,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAClC,gIAAgI;YAChI,wHAAwH;YACxH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gCAAgC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,YAAY,EAAC,CAAC,CAAC;YACvF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1F,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE,CAAC;YACxC,6DAA6D;YAC7D,YAAY,IAAI,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,6BAA6B,EAAE;gBACjD,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,YAAY;gBAClB,YAAY;gBACZ,aAAa,EAAE,aAAa,CAAC,MAAM;aACpC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,qBAAqB,CAAC,UAAyB;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACjE,MAAM,cAAc,GAAG,uBAAuB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACjE,IAAI,UAAU,GAAqC,IAAI,CAAC;QACxD,uGAAuG;QACvG,KAAK,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE,KAAK,IAAI,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;YACnF,6EAA6E;YAC7E,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,OAAO,UAAU,CAAC;YACpB,CAAC;YAED,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBACvD,MAAM,KAAK,GAAG,UAAU,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC;gBAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC5B,oBAAoB;oBACpB,SAAS;gBACX,CAAC;gBACD,IAAI,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;oBACnC,MAAM,EAAC,KAAK,EAAC,GAAG,SAAS,CAAC;oBAC1B,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;wBACxB,UAAU,GAAG,KAAK,CAAC;oBACrB,CAAC;oBAED,oFAAoF;oBACpF,IACE,cAAc,GAAG,KAAK,CAAC,IAAI;wBAC3B,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,KAAK,UAAU,CAAC,OAAO,EAC3E,CAAC;wBACD,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uCAAuC,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,IAAI,EAAC,CAAC,CAAC;QAC1F,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,0DAA0D;IAC1D,WAAW;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC/C,MAAM,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAC7B,6DAA6D;YAC7D,OAAO;gBACL,IAAI,EAAE,uBAAuB,CAAC,EAAE,CAAC,KAAK,CAAC;gBACvC,IAAI,EAAE,EAAE,CAAC,OAAO;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBACzC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC3C,eAAe,EAAE,IAAI;aACtB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aAC1C,MAAM,CAAC,mBAAmB,CAAC;aAC3B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE7B,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,2DAA2D;IAC3D,kBAAkB;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACK,KAAK,CAAC,gBAAgB,CAC5B,YAAqB,EACrB,KAAgC,EAChC,KAAY;QAEZ,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,iBAAiB,GACrB,iBAAiB,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QAC1G,MAAM,gBAAgB,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC;QAElF,wJAAwJ;QACxJ,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAW,CAAC;QAE9C,sHAAsH;QACtH,8DAA8D;QAC9D,2DAA2D;QAC3D,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAEzC,yDAAyD;QACzD,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;YAClC,IAAI,OAAO,KAAK,gBAAgB,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;gBAC9D,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,UAAU,CAAC,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAC,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAExC,IAAI,SAAS,KAAK,SAAS,IAAI,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9D,IAAI,EAAC,YAAY,EAAC,GAAG,SAAS,CAAC;gBAC/B,MAAM,EAAC,KAAK,EAAC,GAAG,SAAS,CAAC;gBAC1B,MAAM,OAAO,GAAG;oBACd,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,OAAO;oBACP,gBAAgB;oBAChB,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;iBACtD,CAAC;gBAEF,IAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpC,IAAI,YAAY,EAAE,CAAC;wBACjB,6DAA6D;wBAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,4DAA4D,EAAE,OAAO,CAAC,CAAC;oBAC7F,CAAC;yBAAM,CAAC;wBACN,uCAAuC;wBACvC,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC1G,MAAM,SAAS,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAC,CAAC;wBACzD,iHAAiH;wBACjH,0CAA0C;wBAC1C,uEAAuE;wBACvE,gFAAgF;wBAChF,8EAA8E;wBAC9E,2HAA2H;wBAC3H,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,UAAU,EAAE,CAAC;wBAChE,YAAY,GAAG,MAAM,cAAc,CACjC,KAAK,EACL,WAAW,CAAC,kCAAkC,EAC9C,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,EAC3D,IAAI,CAAC,UAAU,CAChB,CAAC;wBACF,KAAK,EAAE,EAAE,CAAC;wBACV,YAAY,EAAE,CAAC;wBACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,2DAA2D,EAAE;4BAC/E,GAAG,OAAO;4BACV,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC;yBAClC,CAAC,CAAC;oBACL,CAAC;oBACD,+DAA+D;oBAC/D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,EAAC,CAAC,CAAC;gBAC9E,CAAC;qBAAM,CAAC;oBACN,IAAI,YAAY,EAAE,CAAC;wBACjB,gEAAgE;wBAChE,mDAAmD;wBACnD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,EAAC,CAAC,CAAC;wBAC5E,2BAA2B;oBAC7B,CAAC;yBAAM,CAAC;wBACN,+BAA+B;wBAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC9C,CAAC;oBACD,IAAI,CAAC,OAAO,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC;oBAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qCAAqC,EAAE,OAAO,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAAC,KAAY;QAC5C,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACnD,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,UAAU,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEtC,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,YAAY,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC;gBAChG,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBAC1C,YAAY,EAAE,CAAC;oBACf,IAAI,CAAC,OAAO,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC;gBAChD,CAAC;YACH,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,+CAA+C,EAAE;YACnE,KAAK;YACL,YAAY;YACZ,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,wBAAwB,CAAC,KAAgC;QAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,uCAAuC,CAAC,CAAC;YACvG,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC;gBAC7C,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;gBAC9G,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAC,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAC,EAAE,CAAC,CAAC,CAAC;gBAC9E,OAAO,aAAa,CAAC;YACvB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,UAA6B;IAC3D,OAAO;QACL,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,EAAqC;IACvD,IAAI,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,YAAY,CAAC,GAAa;IACjC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,OAAO;QACL,OAAO;QACP,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;KACrB,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,YAA8D;IAE9D,OAAQ,YAA0C,CAAC,IAAI,KAAK,SAAS,CAAC;AACxE,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAoB;IAC/C,OAAO,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC,QAAQ,CAAC;AACnD,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAoB;IAChD,OAAO,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC,SAAS,CAAC;AACpD,CAAC;AAED,SAAS,eAAe,CAAC,EAAqC;IAC5D,OAAQ,EAAoB,CAAC,OAAO,KAAK,SAAS,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"persistentCheckpointsCache.js","sourceRoot":"","sources":["../../../src/chain/stateCache/persistentCheckpointsCache.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { ForkName } from "@lodestar/params";
2
2
  import { RootHex, IndexedAttestation, SignedAggregateAndProof } from "@lodestar/types";
3
- import { IBeaconChain } from "..";
3
+ import { IBeaconChain } from "../index.js";
4
4
  export type AggregateAndProofValidationResult = {
5
5
  indexedAttestation: IndexedAttestation;
6
6
  committeeIndices: Uint32Array;
@@ -29,25 +29,19 @@ export type GossipAttestation = {
29
29
  attestation: null;
30
30
  serializedData: Uint8Array;
31
31
  attSlot: Slot;
32
- attDataBase64?: SeenAttDataKey | null;
32
+ attDataBase64: SeenAttDataKey;
33
33
  };
34
34
  export type Step0Result = AttestationValidationResult & {
35
35
  signatureSet: SingleSignatureSet;
36
36
  validatorIndex: number;
37
37
  };
38
- /**
39
- * Validate a single gossip attestation, do not prioritize bls signature set
40
- */
41
- export declare function validateGossipAttestation(fork: ForkName, chain: IBeaconChain, attestationOrBytes: GossipAttestation,
42
- /** Optional, to allow verifying attestations through API with unknown subnet */
43
- subnet: number): Promise<AttestationValidationResult>;
44
38
  /**
45
39
  * Verify gossip attestations of the same attestation data. The main advantage is we can batch verify bls signatures
46
40
  * through verifySignatureSetsSameMessage bls api to improve performance.
47
41
  * - If there are less than 2 signatures (minSameMessageSignatureSetsToBatch), verify each signature individually with batchable = true
48
42
  * - do not prioritize bls signature set
49
43
  */
50
- export declare function validateGossipAttestationsSameAttData(fork: ForkName, chain: IBeaconChain, attestationOrBytesArr: GossipAttestation[], subnet: number, step0ValidationFn?: typeof validateGossipAttestationNoSignatureCheck): Promise<BatchResult>;
44
+ export declare function validateGossipAttestationsSameAttData(fork: ForkName, chain: IBeaconChain, attestationOrBytesArr: GossipAttestation[], subnet: number, step0ValidationFn?: typeof validateAttestationNoSignatureCheck): Promise<BatchResult>;
51
45
  /**
52
46
  * Validate attestations from api
53
47
  * - no need to deserialize attestation
@@ -55,16 +49,11 @@ export declare function validateGossipAttestationsSameAttData(fork: ForkName, ch
55
49
  * - prioritize bls signature set
56
50
  */
57
51
  export declare function validateApiAttestation(fork: ForkName, chain: IBeaconChain, attestationOrBytes: ApiAttestation): Promise<AttestationValidationResult>;
58
- /**
59
- * Validate a single unaggregated attestation
60
- * subnet is null for api attestations
61
- */
62
- export declare function validateAttestation(fork: ForkName, chain: IBeaconChain, attestationOrBytes: AttestationOrBytes, subnet: number | null, prioritizeBls?: boolean): Promise<AttestationValidationResult>;
63
52
  /**
64
53
  * Only deserialize the attestation if needed, use the cached AttestationData instead
65
54
  * This is to avoid deserializing similar attestation multiple times which could help the gc
66
55
  */
67
- declare function validateGossipAttestationNoSignatureCheck(fork: ForkName, chain: IBeaconChain, attestationOrBytes: AttestationOrBytes,
56
+ declare function validateAttestationNoSignatureCheck(fork: ForkName, chain: IBeaconChain, attestationOrBytes: AttestationOrBytes,
68
57
  /** Optional, to allow verifying attestations through API with unknown subnet */
69
58
  subnet: number | null): Promise<Step0Result>;
70
59
  /**
@@ -111,9 +100,6 @@ export declare function computeSubnetForSlot(shuffling: EpochShuffling, slot: nu
111
100
  * Return fork-dependent seen attestation key
112
101
  * - for pre-electra, it's the AttestationData base64
113
102
  * - for electra and later, it's the AttestationData base64 + committeeBits base64
114
- *
115
- * we always have attDataBase64 from the IndexedGossipQueue, getAttDataFromAttestationSerialized() just for backward compatible when beaconAttestationBatchValidation is false
116
- * TODO: remove beaconAttestationBatchValidation flag since the batch attestation is stable
117
103
  */
118
104
  export declare function getSeenAttDataKeyFromGossipAttestation(fork: ForkName, attestation: GossipAttestation): SeenAttDataKey | null;
119
105
  /**
@@ -5,19 +5,10 @@ import { toRootHex } from "@lodestar/utils";
5
5
  import { AttestationError, AttestationErrorCode, GossipAction } from "../errors/index.js";
6
6
  import { MAXIMUM_GOSSIP_CLOCK_DISPARITY_SEC } from "../../constants/index.js";
7
7
  import { RegenCaller } from "../regen/index.js";
8
- import { getAggregationBitsFromAttestationSerialized, getAttDataFromAttestationSerialized, getAttDataFromSignedAggregateAndProofElectra, getCommitteeBitsFromAttestationSerialized, getCommitteeBitsFromSignedAggregateAndProofElectra, getAttDataFromSignedAggregateAndProofPhase0, getSignatureFromAttestationSerialized, } from "../../util/sszBytes.js";
8
+ import { getAggregationBitsFromAttestationSerialized, getAttDataFromSignedAggregateAndProofElectra, getCommitteeBitsFromAttestationSerialized, getCommitteeBitsFromSignedAggregateAndProofElectra, getAttDataFromSignedAggregateAndProofPhase0, getSignatureFromAttestationSerialized, } from "../../util/sszBytes.js";
9
9
  import { sszDeserializeAttestation } from "../../network/gossip/topic.js";
10
10
  import { wrapError } from "../../util/wrapError.js";
11
11
  import { getShufflingDependentRoot } from "../../util/dependentRoot.js";
12
- /**
13
- * Validate a single gossip attestation, do not prioritize bls signature set
14
- */
15
- export async function validateGossipAttestation(fork, chain, attestationOrBytes,
16
- /** Optional, to allow verifying attestations through API with unknown subnet */
17
- subnet) {
18
- const prioritizeBls = false;
19
- return validateAttestation(fork, chain, attestationOrBytes, subnet, prioritizeBls);
20
- }
21
12
  /**
22
13
  * Verify gossip attestations of the same attestation data. The main advantage is we can batch verify bls signatures
23
14
  * through verifySignatureSetsSameMessage bls api to improve performance.
@@ -26,7 +17,7 @@ subnet) {
26
17
  */
27
18
  export async function validateGossipAttestationsSameAttData(fork, chain, attestationOrBytesArr, subnet,
28
19
  // for unit test, consumers do not need to pass this
29
- step0ValidationFn = validateGossipAttestationNoSignatureCheck) {
20
+ step0ValidationFn = validateAttestationNoSignatureCheck) {
30
21
  if (attestationOrBytesArr.length === 0) {
31
22
  return { results: [], batchableBls: false };
32
23
  }
@@ -112,15 +103,9 @@ step0ValidationFn = validateGossipAttestationNoSignatureCheck) {
112
103
  */
113
104
  export async function validateApiAttestation(fork, chain, attestationOrBytes) {
114
105
  const prioritizeBls = true;
115
- return validateAttestation(fork, chain, attestationOrBytes, null, prioritizeBls);
116
- }
117
- /**
118
- * Validate a single unaggregated attestation
119
- * subnet is null for api attestations
120
- */
121
- export async function validateAttestation(fork, chain, attestationOrBytes, subnet, prioritizeBls = false) {
106
+ const subnet = null;
122
107
  try {
123
- const step0Result = await validateGossipAttestationNoSignatureCheck(fork, chain, attestationOrBytes, subnet);
108
+ const step0Result = await validateAttestationNoSignatureCheck(fork, chain, attestationOrBytes, subnet);
124
109
  const { attestation, signatureSet, validatorIndex } = step0Result;
125
110
  const isValid = await chain.bls.verifySignatureSets([signatureSet], { batchable: true, priority: prioritizeBls });
126
111
  if (isValid) {
@@ -149,7 +134,7 @@ export async function validateAttestation(fork, chain, attestationOrBytes, subne
149
134
  * Only deserialize the attestation if needed, use the cached AttestationData instead
150
135
  * This is to avoid deserializing similar attestation multiple times which could help the gc
151
136
  */
152
- async function validateGossipAttestationNoSignatureCheck(fork, chain, attestationOrBytes,
137
+ async function validateAttestationNoSignatureCheck(fork, chain, attestationOrBytes,
153
138
  /** Optional, to allow verifying attestations through API with unknown subnet */
154
139
  subnet) {
155
140
  // Do checks in this order:
@@ -599,19 +584,15 @@ export function computeSubnetForSlot(shuffling, slot, committeeIndex) {
599
584
  * Return fork-dependent seen attestation key
600
585
  * - for pre-electra, it's the AttestationData base64
601
586
  * - for electra and later, it's the AttestationData base64 + committeeBits base64
602
- *
603
- * we always have attDataBase64 from the IndexedGossipQueue, getAttDataFromAttestationSerialized() just for backward compatible when beaconAttestationBatchValidation is false
604
- * TODO: remove beaconAttestationBatchValidation flag since the batch attestation is stable
605
587
  */
606
588
  export function getSeenAttDataKeyFromGossipAttestation(fork, attestation) {
607
589
  const { attDataBase64, serializedData } = attestation;
608
590
  if (isForkPostElectra(fork)) {
609
- const attData = attDataBase64 ?? getAttDataFromAttestationSerialized(serializedData);
610
591
  const committeeBits = getCommitteeBitsFromAttestationSerialized(serializedData);
611
- return attData && committeeBits ? attDataBase64 + committeeBits : null;
592
+ return attDataBase64 && committeeBits ? attDataBase64 + committeeBits : null;
612
593
  }
613
594
  // pre-electra
614
- return attDataBase64 ?? getAttDataFromAttestationSerialized(serializedData);
595
+ return attDataBase64;
615
596
  }
616
597
  /**
617
598
  * Extract attestation data key from SignedAggregateAndProof Uint8Array to use cached data from SeenAttestationDatas