@lodestar/beacon-node 1.39.0-dev.c9c20506d9 → 1.39.0-dev.cc77fcf3a8

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 (72) hide show
  1. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  2. package/lib/chain/blocks/importBlock.js +6 -0
  3. package/lib/chain/blocks/importBlock.js.map +1 -1
  4. package/lib/chain/chain.d.ts +1 -0
  5. package/lib/chain/chain.d.ts.map +1 -1
  6. package/lib/chain/chain.js +11 -2
  7. package/lib/chain/chain.js.map +1 -1
  8. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +1 -2
  9. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  10. package/lib/chain/opPools/aggregatedAttestationPool.js +4 -129
  11. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  12. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  13. package/lib/chain/prepareNextSlot.js +1 -6
  14. package/lib/chain/prepareNextSlot.js.map +1 -1
  15. package/lib/chain/produceBlock/produceBlockBody.js +1 -1
  16. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  17. package/lib/chain/regen/interface.d.ts +0 -4
  18. package/lib/chain/regen/interface.d.ts.map +1 -1
  19. package/lib/chain/shufflingCache.d.ts +5 -12
  20. package/lib/chain/shufflingCache.d.ts.map +1 -1
  21. package/lib/chain/shufflingCache.js +12 -50
  22. package/lib/chain/shufflingCache.js.map +1 -1
  23. package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
  24. package/lib/chain/validation/attesterSlashing.js +1 -1
  25. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  26. package/lib/chain/validation/blobSidecar.d.ts.map +1 -1
  27. package/lib/chain/validation/blobSidecar.js +2 -3
  28. package/lib/chain/validation/blobSidecar.js.map +1 -1
  29. package/lib/chain/validation/blsToExecutionChange.d.ts.map +1 -1
  30. package/lib/chain/validation/blsToExecutionChange.js +9 -2
  31. package/lib/chain/validation/blsToExecutionChange.js.map +1 -1
  32. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  33. package/lib/chain/validation/dataColumnSidecar.js +2 -3
  34. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  35. package/lib/chain/validation/proposerSlashing.js +2 -1
  36. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  37. package/lib/execution/engine/mock.d.ts +9 -6
  38. package/lib/execution/engine/mock.d.ts.map +1 -1
  39. package/lib/execution/engine/mock.js +34 -7
  40. package/lib/execution/engine/mock.js.map +1 -1
  41. package/lib/metrics/metrics/lodestar.d.ts +1 -6
  42. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  43. package/lib/metrics/metrics/lodestar.js +3 -17
  44. package/lib/metrics/metrics/lodestar.js.map +1 -1
  45. package/lib/node/nodejs.d.ts.map +1 -1
  46. package/lib/node/nodejs.js +17 -2
  47. package/lib/node/nodejs.js.map +1 -1
  48. package/lib/sync/backfill/backfill.d.ts.map +1 -1
  49. package/lib/sync/backfill/backfill.js +2 -2
  50. package/lib/sync/backfill/backfill.js.map +1 -1
  51. package/lib/sync/backfill/verify.d.ts +2 -2
  52. package/lib/sync/backfill/verify.d.ts.map +1 -1
  53. package/lib/sync/backfill/verify.js +2 -2
  54. package/lib/sync/backfill/verify.js.map +1 -1
  55. package/package.json +15 -15
  56. package/src/chain/blocks/importBlock.ts +7 -0
  57. package/src/chain/chain.ts +13 -3
  58. package/src/chain/opPools/aggregatedAttestationPool.ts +3 -178
  59. package/src/chain/prepareNextSlot.ts +1 -6
  60. package/src/chain/produceBlock/produceBlockBody.ts +1 -1
  61. package/src/chain/regen/interface.ts +0 -4
  62. package/src/chain/shufflingCache.ts +15 -61
  63. package/src/chain/validation/attesterSlashing.ts +8 -1
  64. package/src/chain/validation/blobSidecar.ts +3 -3
  65. package/src/chain/validation/blsToExecutionChange.ts +9 -7
  66. package/src/chain/validation/dataColumnSidecar.ts +3 -3
  67. package/src/chain/validation/proposerSlashing.ts +2 -1
  68. package/src/execution/engine/mock.ts +40 -13
  69. package/src/metrics/metrics/lodestar.ts +3 -17
  70. package/src/node/nodejs.ts +18 -3
  71. package/src/sync/backfill/backfill.ts +2 -14
  72. package/src/sync/backfill/verify.ts +1 -7
@@ -1,6 +1,8 @@
1
1
  import { setMaxListeners } from "node:events";
2
2
  import { hasher } from "@chainsafe/persistent-merkle-tree";
3
- import { sleep } from "@lodestar/utils";
3
+ import { ZERO_HASH_HEX } from "@lodestar/params";
4
+ import { isExecutionCachedStateType } from "@lodestar/state-transition";
5
+ import { sleep, toRootHex } from "@lodestar/utils";
4
6
  import { BeaconRestApiServer, getApi } from "../api/index.js";
5
7
  import { BeaconChain, initBeaconMetrics } from "../chain/index.js";
6
8
  import { createValidatorMonitor } from "../chain/validatorMonitor.js";
@@ -118,6 +120,19 @@ export class BeaconNode {
118
120
  const monitoring = opts.monitoring.endpoint
119
121
  ? new MonitoringService("beacon", { ...opts.monitoring, endpoint: opts.monitoring.endpoint }, { register: metrics.register, logger: logger.child({ module: LoggerModule.monitoring }) })
120
122
  : null;
123
+ let executionEngineOpts = opts.executionEngine;
124
+ if (opts.executionEngine.mode === "mock") {
125
+ const eth1BlockHash = isExecutionCachedStateType(anchorState)
126
+ ? toRootHex(anchorState.latestExecutionPayloadHeader.blockHash)
127
+ : undefined;
128
+ executionEngineOpts = {
129
+ ...opts.executionEngine,
130
+ genesisBlockHash: ZERO_HASH_HEX,
131
+ eth1BlockHash,
132
+ genesisTime: anchorState.genesisTime,
133
+ config,
134
+ };
135
+ }
121
136
  const chain = new BeaconChain(opts.chain, {
122
137
  privateKey,
123
138
  config,
@@ -133,7 +148,7 @@ export class BeaconNode {
133
148
  validatorMonitor,
134
149
  anchorState,
135
150
  isAnchorStateFinalized,
136
- executionEngine: initializeExecutionEngine(opts.executionEngine, {
151
+ executionEngine: initializeExecutionEngine(executionEngineOpts, {
137
152
  metrics,
138
153
  signal,
139
154
  logger: logger.child({ module: LoggerModule.execution }),
@@ -1 +1 @@
1
- {"version":3,"file":"nodejs.js","sourceRoot":"","sources":["../../src/node/nodejs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodejs.js","sourceRoot":"","sources":["../../src/node/nodejs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAKzD,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAA+C,0BAA0B,EAAC,MAAM,4BAA4B,CAAC;AAEpH,OAAO,EAAC,KAAK,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAC,mBAAmB,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAC,WAAW,EAAgB,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAmB,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AAEtF,OAAO,EAAC,0BAA0B,EAAE,yBAAyB,EAAC,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAA6B,aAAa,EAAE,oBAAoB,EAAC,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,OAAO,EAAE,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAC,UAAU,EAAc,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAG9C,cAAc,cAAc,CAAC;AAoC7B,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,uCAAmB,CAAA;IACnB,uCAAmB,CAAA;IACnB,qCAAiB,CAAA;AACnB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAED,IAAK,YAYJ;AAZD,WAAK,YAAY;IACf,2BAAW,CAAA;IACX,qCAAqB,CAAA;IACrB,+BAAe,CAAA;IACf,uCAAuB,CAAA;IACvB,mCAAmB,CAAA;IACnB,yCAAyB,CAAA;IACzB,mCAAmB,CAAA;IACnB,wBAAwB;IACxB,6BAAa,CAAA;IACb,6BAAa,CAAA;IACb,6BAAa,CAAA;AACf,CAAC,EAZI,YAAY,KAAZ,YAAY,QAYhB;AAED;;;GAGG;AACH,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAEvC;;;GAGG;AACH,MAAM,OAAO,UAAU;IACrB,IAAI,CAAqB;IACzB,MAAM,CAAe;IACrB,EAAE,CAAY;IACd,OAAO,CAAiB;IACxB,aAAa,CAA2B;IACxC,UAAU,CAA2B;IACrC,gBAAgB,CAA0B;IAC1C,OAAO,CAAU;IACjB,KAAK,CAAe;IACpB,GAAG,CAAmB;IACtB,OAAO,CAAuB;IAC9B,IAAI,CAAc;IAClB,YAAY,CAAsB;IAElC,MAAM,CAAmB;IACjB,UAAU,CAAmB;IAErC,YAAY,EACV,IAAI,EACJ,MAAM,EACN,EAAE,EACF,OAAO,EACP,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,KAAK,EACL,GAAG,EACH,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,UAAU,GACQ;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAoC,EACnD,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,EAAE,EACF,MAAM,EACN,uBAAuB,EACvB,UAAU,EACV,OAAO,EACP,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,GAAG,EAAE,GACA;QACtB,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,2CAA2C,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,8FAA8F;QAC9F,oDAAoD;QACpD,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAEjC,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IACE,IAAI,CAAC,OAAO,CAAC,OAAO;YACpB,oCAAoC;YACpC,IAAI,CAAC,UAAU,CAAC,QAAQ,EACxB,CAAC;YACD,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;YAClF,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACxC,yFAAyF;YACzF,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,gBAAgB,GACpB,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,oBAAoB;YAChE,CAAC,CAAC,sBAAsB,CACpB,OAAO,EAAE,QAAQ,IAAI,IAAI,EACzB,MAAM,EACN,WAAW,CAAC,WAAW,EACvB,MAAM,CAAC,KAAK,CAAC,EAAC,MAAM,EAAE,YAAY,CAAC,IAAI,EAAC,CAAC,EACzC,IAAI,CAAC,gBAAgB,CACtB;YACH,CAAC,CAAC,IAAI,CAAC;QAEX,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE,MAAM,EAAC,CAAC,CAAC;QAEhF,qBAAqB;QACrB,qCAAqC;QACrC,MAAM,EAAE,CAAC,UAAU,EAAE,CAAC;QAEtB,8DAA8D;QAC9D,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,EAAE,CAAC,wBAAwB,EAAE;aAC1B,IAAI,CAAC,GAAG,EAAE;YACT,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAC,CAAC,CAAC;QACrF,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEL,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ;YACzC,CAAC,CAAC,IAAI,iBAAiB,CACnB,QAAQ,EACR,EAAC,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAC,EACxD,EAAC,QAAQ,EAAG,OAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAC,MAAM,EAAE,YAAY,CAAC,UAAU,EAAC,CAAC,EAAC,CACnG;YACH,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC;QAC/C,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzC,MAAM,aAAa,GAAG,0BAA0B,CAAC,WAAW,CAAC;gBAC3D,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,4BAA4B,CAAC,SAAS,CAAC;gBAC/D,CAAC,CAAC,SAAS,CAAC;YACd,mBAAmB,GAAG;gBACpB,GAAG,IAAI,CAAC,eAAe;gBACvB,gBAAgB,EAAE,aAAa;gBAC/B,aAAa;gBACb,WAAW,EAAE,WAAW,CAAC,WAAW;gBACpC,MAAM;aACP,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;YACxC,UAAU;YACV,MAAM;YACN,KAAK;YACL,YAAY;YACZ,YAAY;YACZ,OAAO;YACP,EAAE;YACF,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI;YACpB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAC,MAAM,EAAE,YAAY,CAAC,KAAK,EAAC,CAAC;YAClD,uBAAuB;YACvB,OAAO;YACP,gBAAgB;YAChB,WAAW;YACX,sBAAsB;YACtB,eAAe,EAAE,yBAAyB,CAAC,mBAAmB,EAAE;gBAC9D,OAAO;gBACP,MAAM;gBACN,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAC,MAAM,EAAE,YAAY,CAAC,SAAS,EAAC,CAAC;aACvD,CAAC;YACF,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO;gBAC7C,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;gBAC5E,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;QAEH,oDAAoD;QACpD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAEnB,kDAAkD;QAClD,wDAAwD;QACxD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YACjC,IAAI,EAAE,IAAI,CAAC,OAAO;YAClB,MAAM;YACN,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAC,MAAM,EAAE,YAAY,CAAC,OAAO,EAAC,CAAC;YACpD,OAAO;YACP,KAAK;YACL,EAAE;YACF,UAAU;YACV,YAAY;YACZ,iBAAiB,EAAE,kBAAkB,CAAC,EAAC,EAAE,EAAE,KAAK,EAAC,CAAC;SACnD,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE;YACrC,MAAM;YACN,EAAE;YACF,KAAK;YACL,OAAO;YACP,OAAO;YACP,YAAY;YACZ,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAC,MAAM,EAAE,YAAY,CAAC,IAAI,EAAC,CAAC;SAClD,CAAC,CAAC;QAEH,MAAM,YAAY,GAChB,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC;YAC7B,CAAC,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACjC,MAAM;gBACN,EAAE;gBACF,KAAK;gBACL,OAAO;gBACP,OAAO;gBACP,YAAY;gBACZ,WAAW;gBACX,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAC,CAAC;gBACrD,MAAM;aACP,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC;QAEX,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YAC3B,MAAM;YACN,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAC,MAAM,EAAE,YAAY,CAAC,GAAG,EAAC,CAAC;YAChD,EAAE;YACF,IAAI;YACJ,OAAO;YACP,KAAK;YACL,OAAO;SACR,CAAC,CAAC;QAEH,sDAAsD;QACtD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;YACxC,CAAC,CAAC,MAAM,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE;gBACvC,QAAQ,EAAG,OAAmB,CAAC,QAAQ;gBACvC,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC;gBACvG,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAC,MAAM,EAAE,YAAY,CAAC,OAAO,EAAC,CAAC;aACrD,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YACrD,MAAM;YACN,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAC,MAAM,EAAE,YAAY,CAAC,IAAI,EAAC,CAAC;YACjD,GAAG;YACH,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;SAC1C,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC;QAED,KAAK,eAAe,CAAC,EAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;QAErE,OAAO,IAAI,UAAU,CAAC;YACpB,IAAI;YACJ,MAAM;YACN,EAAE;YACF,OAAO;YACP,aAAa;YACb,UAAU;YACV,gBAAgB;YAChB,OAAO;YACP,KAAK;YACL,GAAG;YACH,OAAO;YACP,IAAI;YACJ,YAAY;YACZ,UAAU;SACX,CAAM,CAAC;IACV,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,aAAa;gBAAE,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YACzD,IAAI,IAAI,CAAC,UAAU;gBAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,UAAU;gBAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAC7C,MAAM,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;QACxC,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"backfill.d.ts","sourceRoot":"","sources":["../../../src/sync/backfill/backfill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backfill.d.ts","sourceRoot":"","sources":["../../../src/sync/backfill/backfill.ts"],"names":[],"mappings":"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"}
@@ -548,7 +548,7 @@ export class BackfillSync extends EventEmitter {
548
548
  // GENESIS_SLOT doesn't has valid signature
549
549
  if (anchorBlock.message.slot === GENESIS_SLOT)
550
550
  return;
551
- await verifyBlockProposerSignature(this.chain.config, this.chain.index2pubkey, this.chain.bls, this.chain.getHeadState(), [anchorBlock]);
551
+ await verifyBlockProposerSignature(this.chain.config, this.chain.index2pubkey, this.chain.bls, [anchorBlock]);
552
552
  // We can write to the disk if this is ahead of prevFinalizedCheckpointBlock otherwise
553
553
  // we will need to go make checks on the top of sync loop before writing as it might
554
554
  // override prevFinalizedCheckpointBlock
@@ -599,7 +599,7 @@ export class BackfillSync extends EventEmitter {
599
599
  const { nextAnchor, verifiedBlocks, error } = verifyBlockSequence(this.config, blocks, anchorParentRoot);
600
600
  // If any of the block's proposer signature fail, we can't trust this peer at all
601
601
  if (verifiedBlocks.length > 0) {
602
- await verifyBlockProposerSignature(this.chain.config, this.chain.index2pubkey, this.chain.bls, this.chain.getHeadState(), verifiedBlocks);
602
+ await verifyBlockProposerSignature(this.chain.config, this.chain.index2pubkey, this.chain.bls, verifiedBlocks);
603
603
  // This is bad, like super bad. Abort the backfill
604
604
  if (!nextAnchor)
605
605
  throw new BackfillSyncError({
@@ -1 +1 @@
1
- {"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../../src/sync/backfill/backfill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../../src/sync/backfill/backfill.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { BeaconConfig } from "@lodestar/config";
2
- import { CachedBeaconStateAllForks, Index2PubkeyCache } from "@lodestar/state-transition";
2
+ import { Index2PubkeyCache } from "@lodestar/state-transition";
3
3
  import { Root, SignedBeaconBlock, Slot } from "@lodestar/types";
4
4
  import { IBlsVerifier } from "../../chain/bls/index.js";
5
5
  import { BackfillSyncErrorCode } from "./errors.js";
@@ -15,5 +15,5 @@ export declare function verifyBlockSequence(config: BeaconConfig, blocks: Signed
15
15
  verifiedBlocks: SignedBeaconBlock[];
16
16
  error?: BackfillSyncErrorCode.NOT_LINEAR;
17
17
  };
18
- export declare function verifyBlockProposerSignature(config: BeaconConfig, index2pubkey: Index2PubkeyCache, bls: IBlsVerifier, state: CachedBeaconStateAllForks, blocks: SignedBeaconBlock[]): Promise<void>;
18
+ export declare function verifyBlockProposerSignature(config: BeaconConfig, index2pubkey: Index2PubkeyCache, bls: IBlsVerifier, blocks: SignedBeaconBlock[]): Promise<void>;
19
19
  //# sourceMappingURL=verify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/sync/backfill/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EACL,yBAAyB,EAEzB,iBAAiB,EAElB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAM,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAoB,qBAAqB,EAAC,MAAM,aAAa,CAAC;AAErE,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAC,CAAC;AAE7E,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,iBAAiB,EAAE,EAC3B,UAAU,EAAE,IAAI,GACf;IACD,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC;IACjC,cAAc,EAAE,iBAAiB,EAAE,CAAC;IACpC,KAAK,CAAC,EAAE,qBAAqB,CAAC,UAAU,CAAC;CAC1C,CAkBA;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,yBAAyB,EAChC,MAAM,EAAE,iBAAiB,EAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CAWf"}
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/sync/backfill/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAgB,iBAAiB,EAA+B,MAAM,4BAA4B,CAAC;AAC1G,OAAO,EAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAM,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAoB,qBAAqB,EAAC,MAAM,aAAa,CAAC;AAErE,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAC,CAAC;AAE7E,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,iBAAiB,EAAE,EAC3B,UAAU,EAAE,IAAI,GACf;IACD,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC;IACjC,cAAc,EAAE,iBAAiB,EAAE,CAAC;IACpC,KAAK,CAAC,EAAE,qBAAqB,CAAC,UAAU,CAAC;CAC1C,CAkBA;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,iBAAiB,EAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CAWf"}
@@ -1,5 +1,5 @@
1
1
  import { GENESIS_SLOT } from "@lodestar/params";
2
- import { getBlockProposerSignatureSet, } from "@lodestar/state-transition";
2
+ import { getBlockProposerSignatureSet } from "@lodestar/state-transition";
3
3
  import { ssz } from "@lodestar/types";
4
4
  import { BackfillSyncError, BackfillSyncErrorCode } from "./errors.js";
5
5
  export function verifyBlockSequence(config, blocks, anchorRoot) {
@@ -20,7 +20,7 @@ export function verifyBlockSequence(config, blocks, anchorRoot) {
20
20
  }
21
21
  return { nextAnchor, verifiedBlocks };
22
22
  }
23
- export async function verifyBlockProposerSignature(config, index2pubkey, bls, state, blocks) {
23
+ export async function verifyBlockProposerSignature(config, index2pubkey, bls, blocks) {
24
24
  if (blocks.length === 1 && blocks[0].message.slot === GENESIS_SLOT)
25
25
  return;
26
26
  const signatures = blocks.reduce((sigs, block) => {
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/sync/backfill/verify.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAIL,4BAA4B,GAC7B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAgC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAC,iBAAiB,EAAE,qBAAqB,EAAC,MAAM,aAAa,CAAC;AASrE,MAAM,UAAU,mBAAmB,CACjC,MAAoB,EACpB,MAA2B,EAC3B,UAAgB;IAMhB,IAAI,QAAQ,GAAS,UAAU,CAAC;IAChC,IAAI,UAAU,GAAyB,IAAI,CAAC;IAE5C,MAAM,cAAc,GAAwB,EAAE,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC1C,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,iBAAiB,CAAC,EAAC,IAAI,EAAE,qBAAqB,CAAC,YAAY,EAAC,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,EAAC,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,CAAC,UAAU,EAAC,CAAC;QAC/E,CAAC;QACD,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,UAAU,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAC,CAAC;QACtE,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;IACtC,CAAC;IACD,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAAoB,EACpB,YAA+B,EAC/B,GAAiB,EACjB,KAAgC,EAChC,MAA2B;IAE3B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO;IAC3E,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAqB,EAAE,KAAK,EAAE,EAAE;QAChE,6CAA6C;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;YAAE,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9G,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,iBAAiB,CAAC,EAAC,IAAI,EAAE,qBAAqB,CAAC,iBAAiB,EAAC,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/sync/backfill/verify.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAmC,4BAA4B,EAAC,MAAM,4BAA4B,CAAC;AAC1G,OAAO,EAAgC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAC,iBAAiB,EAAE,qBAAqB,EAAC,MAAM,aAAa,CAAC;AASrE,MAAM,UAAU,mBAAmB,CACjC,MAAoB,EACpB,MAA2B,EAC3B,UAAgB;IAMhB,IAAI,QAAQ,GAAS,UAAU,CAAC;IAChC,IAAI,UAAU,GAAyB,IAAI,CAAC;IAE5C,MAAM,cAAc,GAAwB,EAAE,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC1C,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,iBAAiB,CAAC,EAAC,IAAI,EAAE,qBAAqB,CAAC,YAAY,EAAC,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,EAAC,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,CAAC,UAAU,EAAC,CAAC;QAC/E,CAAC;QACD,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,UAAU,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAC,CAAC;QACtE,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;IACtC,CAAC;IACD,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAAoB,EACpB,YAA+B,EAC/B,GAAiB,EACjB,MAA2B;IAE3B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO;IAC3E,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAqB,EAAE,KAAK,EAAE,EAAE;QAChE,6CAA6C;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;YAAE,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9G,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,iBAAiB,CAAC,EAAC,IAAI,EAAE,qBAAqB,CAAC,iBAAiB,EAAC,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "bugs": {
12
12
  "url": "https://github.com/ChainSafe/lodestar/issues"
13
13
  },
14
- "version": "1.39.0-dev.c9c20506d9",
14
+ "version": "1.39.0-dev.cc77fcf3a8",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -134,18 +134,18 @@
134
134
  "@libp2p/peer-id": "^5.1.0",
135
135
  "@libp2p/prometheus-metrics": "^4.3.15",
136
136
  "@libp2p/tcp": "^10.1.8",
137
- "@lodestar/api": "^1.39.0-dev.c9c20506d9",
138
- "@lodestar/config": "^1.39.0-dev.c9c20506d9",
139
- "@lodestar/db": "^1.39.0-dev.c9c20506d9",
140
- "@lodestar/fork-choice": "^1.39.0-dev.c9c20506d9",
141
- "@lodestar/light-client": "^1.39.0-dev.c9c20506d9",
142
- "@lodestar/logger": "^1.39.0-dev.c9c20506d9",
143
- "@lodestar/params": "^1.39.0-dev.c9c20506d9",
144
- "@lodestar/reqresp": "^1.39.0-dev.c9c20506d9",
145
- "@lodestar/state-transition": "^1.39.0-dev.c9c20506d9",
146
- "@lodestar/types": "^1.39.0-dev.c9c20506d9",
147
- "@lodestar/utils": "^1.39.0-dev.c9c20506d9",
148
- "@lodestar/validator": "^1.39.0-dev.c9c20506d9",
137
+ "@lodestar/api": "^1.39.0-dev.cc77fcf3a8",
138
+ "@lodestar/config": "^1.39.0-dev.cc77fcf3a8",
139
+ "@lodestar/db": "^1.39.0-dev.cc77fcf3a8",
140
+ "@lodestar/fork-choice": "^1.39.0-dev.cc77fcf3a8",
141
+ "@lodestar/light-client": "^1.39.0-dev.cc77fcf3a8",
142
+ "@lodestar/logger": "^1.39.0-dev.cc77fcf3a8",
143
+ "@lodestar/params": "^1.39.0-dev.cc77fcf3a8",
144
+ "@lodestar/reqresp": "^1.39.0-dev.cc77fcf3a8",
145
+ "@lodestar/state-transition": "^1.39.0-dev.cc77fcf3a8",
146
+ "@lodestar/types": "^1.39.0-dev.cc77fcf3a8",
147
+ "@lodestar/utils": "^1.39.0-dev.cc77fcf3a8",
148
+ "@lodestar/validator": "^1.39.0-dev.cc77fcf3a8",
149
149
  "@multiformats/multiaddr": "^12.1.3",
150
150
  "datastore-core": "^10.0.2",
151
151
  "datastore-fs": "^10.0.6",
@@ -169,7 +169,7 @@
169
169
  "@chainsafe/swap-or-not-shuffle": "^1.2.1",
170
170
  "@libp2p/interface-internal": "^2.3.18",
171
171
  "@libp2p/logger": "^5.1.21",
172
- "@lodestar/spec-test-util": "^1.39.0-dev.c9c20506d9",
172
+ "@lodestar/spec-test-util": "^1.39.0-dev.cc77fcf3a8",
173
173
  "@types/js-yaml": "^4.0.5",
174
174
  "@types/qs": "^6.9.7",
175
175
  "@types/tmp": "^0.2.3",
@@ -188,5 +188,5 @@
188
188
  "beacon",
189
189
  "blockchain"
190
190
  ],
191
- "gitHead": "f8c8a4000c8273cb032868c1b013530e60eea683"
191
+ "gitHead": "14b3ed4eec50b0155e9b27b9e4ab5736d45a2e4e"
192
192
  }
@@ -418,6 +418,13 @@ export async function importBlock(
418
418
  this.logger.verbose("After importBlock caching postState without SSZ cache", {slot: postState.slot});
419
419
  }
420
420
 
421
+ // Cache shufflings when crossing an epoch boundary
422
+ const parentEpoch = computeEpochAtSlot(parentBlockSlot);
423
+ if (parentEpoch < blockEpoch) {
424
+ this.shufflingCache.processState(postState);
425
+ this.logger.verbose("Processed shuffling for next epoch", {parentEpoch, blockEpoch, slot: blockSlot});
426
+ }
427
+
421
428
  if (blockSlot % SLOTS_PER_EPOCH === 0) {
422
429
  // Cache state to preserve epoch transition work
423
430
  const checkpointState = postState;
@@ -52,6 +52,7 @@ import {computeNodeIdFromPrivateKey} from "../network/subnets/interface.js";
52
52
  import {BufferPool} from "../util/bufferPool.js";
53
53
  import {Clock, ClockEvent, IClock} from "../util/clock.js";
54
54
  import {CustodyConfig, getValidatorsCustodyRequirement} from "../util/dataColumns.js";
55
+ import {callInNextEventLoop} from "../util/eventLoop.js";
55
56
  import {ensureDir, writeIfNotExist} from "../util/file.js";
56
57
  import {isOptimisticBlock} from "../util/forkChoice.js";
57
58
  import {SerializedCache} from "../util/serializedCache.js";
@@ -291,7 +292,8 @@ export class BeaconChain implements IBeaconChain {
291
292
  });
292
293
 
293
294
  this._earliestAvailableSlot = anchorState.slot;
294
- this.shufflingCache = anchorState.epochCtx.shufflingCache = new ShufflingCache(metrics, logger, this.opts, [
295
+
296
+ this.shufflingCache = new ShufflingCache(metrics, logger, this.opts, [
295
297
  {
296
298
  shuffling: anchorState.epochCtx.previousShuffling,
297
299
  decisionRoot: anchorState.epochCtx.previousDecisionRoot,
@@ -417,6 +419,7 @@ export class BeaconChain implements IBeaconChain {
417
419
  clock.addListener(ClockEvent.epoch, this.onClockEpoch.bind(this));
418
420
  emitter.addListener(ChainEvent.forkChoiceFinalized, this.onForkChoiceFinalized.bind(this));
419
421
  emitter.addListener(ChainEvent.forkChoiceJustified, this.onForkChoiceJustified.bind(this));
422
+ emitter.addListener(ChainEvent.checkpoint, this.onCheckpoint.bind(this));
420
423
  }
421
424
 
422
425
  async init(): Promise<void> {
@@ -980,8 +983,8 @@ export class BeaconChain implements IBeaconChain {
980
983
  this.metrics?.gossipAttestation.useHeadBlockState.inc({caller: regenCaller});
981
984
  state = await this.regen.getState(attHeadBlock.stateRoot, regenCaller);
982
985
  }
983
-
984
- // should always be the current epoch of the active context so no need to await a result from the ShufflingCache
986
+ // resolve the promise to unblock other calls of the same epoch and dependent root
987
+ this.shufflingCache.processState(state);
985
988
  return state.epochCtx.getShufflingAtEpoch(attEpoch);
986
989
  }
987
990
 
@@ -1165,6 +1168,13 @@ export class BeaconChain implements IBeaconChain {
1165
1168
  this.logger.verbose("Fork choice justified", {epoch: cp.epoch, root: cp.rootHex});
1166
1169
  }
1167
1170
 
1171
+ private onCheckpoint(this: BeaconChain, _checkpoint: phase0.Checkpoint, state: CachedBeaconStateAllForks): void {
1172
+ // Defer to not block other checkpoint event handlers, which can cause lightclient update delays
1173
+ callInNextEventLoop(() => {
1174
+ this.shufflingCache.processState(state);
1175
+ });
1176
+ }
1177
+
1168
1178
  private async onForkChoiceFinalized(this: BeaconChain, cp: CheckpointWithHex): Promise<void> {
1169
1179
  this.logger.verbose("Fork choice finalized", {epoch: cp.epoch, root: cp.rootHex});
1170
1180
  this.seenBlockProposers.prune(computeStartSlotAtEpoch(cp.epoch));
@@ -5,7 +5,6 @@ import {IForkChoice} from "@lodestar/fork-choice";
5
5
  import {
6
6
  ForkName,
7
7
  ForkSeq,
8
- MAX_ATTESTATIONS,
9
8
  MAX_ATTESTATIONS_ELECTRA,
10
9
  MAX_COMMITTEES_PER_SLOT,
11
10
  MIN_ATTESTATION_INCLUSION_DELAY,
@@ -23,7 +22,6 @@ import {
23
22
  CachedBeaconStateAllForks,
24
23
  CachedBeaconStateAltair,
25
24
  CachedBeaconStateGloas,
26
- CachedBeaconStatePhase0,
27
25
  EffectiveBalanceIncrements,
28
26
  RootCache,
29
27
  computeEpochAtSlot,
@@ -32,17 +30,7 @@ import {
32
30
  getAttestationParticipationStatus,
33
31
  getBlockRootAtSlot,
34
32
  } from "@lodestar/state-transition";
35
- import {
36
- Attestation,
37
- Epoch,
38
- RootHex,
39
- Slot,
40
- ValidatorIndex,
41
- electra,
42
- isElectraAttestation,
43
- phase0,
44
- ssz,
45
- } from "@lodestar/types";
33
+ import {Attestation, Epoch, RootHex, Slot, electra, isElectraAttestation, phase0, ssz} from "@lodestar/types";
46
34
  import {MapDef, assert, toRootHex} from "@lodestar/utils";
47
35
  import {Metrics} from "../../metrics/metrics.js";
48
36
  import {IntersectResult, intersectUint8Arrays} from "../../util/bitArray.js";
@@ -54,8 +42,6 @@ type DataRootHex = string;
54
42
 
55
43
  type CommitteeIndex = number;
56
44
 
57
- // for pre-electra
58
- type AttestationWithScore = {attestation: Attestation; score: number};
59
45
  /**
60
46
  * for electra, this is to consolidate aggregated attestations of the same attestation data into a single attestation to be included in block
61
47
  * note that this is local definition in this file and it's NOT validator consolidation
@@ -110,15 +96,6 @@ const MAX_RETAINED_ATTESTATIONS_PER_GROUP = 4;
110
96
  */
111
97
  const MAX_RETAINED_ATTESTATIONS_PER_GROUP_ELECTRA = 8;
112
98
 
113
- /**
114
- * Pre-electra, each slot has 64 committees, and each block has 128 attestations max so in average
115
- * we get 2 attestation per groups.
116
- * Starting from Jan 2024, we have a performance issue getting attestations for a block. Based on the
117
- * fact that lot of groups will have only 1 full participation attestation, increase this number
118
- * a bit higher than average. This also help decrease number of slots to search for attestations.
119
- */
120
- const MAX_ATTESTATIONS_PER_GROUP = 3;
121
-
122
99
  /**
123
100
  * For electra, there is on chain aggregation of attestations across committees, so we can just pick up to 8
124
101
  * attestations per group, sort by scores to get first 8.
@@ -245,108 +222,7 @@ export class AggregatedAttestationPool {
245
222
  forkChoice: IForkChoice,
246
223
  state: CachedBeaconStateAllForks
247
224
  ): phase0.Attestation[] {
248
- const stateSlot = state.slot;
249
- const stateEpoch = state.epochCtx.epoch;
250
- const statePrevEpoch = stateEpoch - 1;
251
-
252
- const notSeenValidatorsFn = getNotSeenValidatorsFn(this.config, state);
253
- const validateAttestationDataFn = getValidateAttestationDataFn(forkChoice, state);
254
-
255
- const attestationsByScore: AttestationWithScore[] = [];
256
-
257
- const slots = Array.from(this.attestationGroupByIndexByDataHexBySlot.keys()).sort((a, b) => b - a);
258
- let minScore = Number.MAX_SAFE_INTEGER;
259
- let slotCount = 0;
260
- slot: for (const slot of slots) {
261
- slotCount++;
262
- const attestationGroupByIndexByDataHash = this.attestationGroupByIndexByDataHexBySlot.get(slot);
263
- // should not happen
264
- if (!attestationGroupByIndexByDataHash) {
265
- throw Error(`No aggregated attestation pool for slot=${slot}`);
266
- }
267
-
268
- const epoch = computeEpochAtSlot(slot);
269
- // validateAttestation condition: Attestation target epoch not in previous or current epoch
270
- if (!(epoch === stateEpoch || epoch === statePrevEpoch)) {
271
- continue; // Invalid attestations
272
- }
273
- // validateAttestation condition: Attestation slot not within inclusion window
274
- if (
275
- !(
276
- slot + MIN_ATTESTATION_INCLUSION_DELAY <= stateSlot &&
277
- // Post deneb, attestations are valid for current and previous epoch
278
- (ForkSeq[fork] >= ForkSeq.deneb || stateSlot <= slot + SLOTS_PER_EPOCH)
279
- )
280
- ) {
281
- continue; // Invalid attestations
282
- }
283
-
284
- const inclusionDistance = stateSlot - slot;
285
- for (const attestationGroupByIndex of attestationGroupByIndexByDataHash.values()) {
286
- for (const [committeeIndex, attestationGroup] of attestationGroupByIndex.entries()) {
287
- const notSeenCommitteeMembers = notSeenValidatorsFn(epoch, slot, committeeIndex);
288
- if (notSeenCommitteeMembers === null || notSeenCommitteeMembers.size === 0) {
289
- continue;
290
- }
291
-
292
- if (
293
- slotCount > 2 &&
294
- attestationsByScore.length >= MAX_ATTESTATIONS &&
295
- notSeenCommitteeMembers.size / inclusionDistance < minScore
296
- ) {
297
- // after 2 slots, there are a good chance that we have 2 * MAX_ATTESTATIONS attestations and break the for loop early
298
- // if not, we may have to scan all slots in the pool
299
- // if we have enough attestations and the max possible score is lower than scores of `attestationsByScore`, we should skip
300
- // otherwise it takes time to check attestation, add it and remove it later after the sort by score
301
- continue;
302
- }
303
-
304
- if (validateAttestationDataFn(attestationGroup.data) !== null) {
305
- continue;
306
- }
307
-
308
- // TODO: Is it necessary to validateAttestation for:
309
- // - Attestation committee index not within current committee count
310
- // - Attestation aggregation bits length does not match committee length
311
- //
312
- // These properties should not change after being validate in gossip
313
- // IF they have to be validated, do it only with one attestation per group since same data
314
- // The committeeCountPerSlot can be precomputed once per slot
315
- const getAttestationsResult = attestationGroup.getAttestationsForBlock(
316
- fork,
317
- state.epochCtx.effectiveBalanceIncrements,
318
- notSeenCommitteeMembers,
319
- MAX_ATTESTATIONS_PER_GROUP
320
- );
321
- for (const {attestation, newSeenEffectiveBalance} of getAttestationsResult.result) {
322
- const score = newSeenEffectiveBalance / inclusionDistance;
323
- if (score < minScore) {
324
- minScore = score;
325
- }
326
- attestationsByScore.push({
327
- attestation,
328
- score,
329
- });
330
- }
331
-
332
- // Stop accumulating attestations there are enough that may have good scoring
333
- if (attestationsByScore.length >= MAX_ATTESTATIONS * 2) {
334
- break slot;
335
- }
336
- }
337
- }
338
- }
339
-
340
- const sortedAttestationsByScore = attestationsByScore.sort((a, b) => b.score - a.score);
341
- const attestationsForBlock: phase0.Attestation[] = [];
342
- for (const [i, attestationWithScore] of sortedAttestationsByScore.entries()) {
343
- if (i >= MAX_ATTESTATIONS) {
344
- break;
345
- }
346
- // attestations could be modified in this op pool, so we need to clone for block
347
- attestationsForBlock.push(ssz.phase0.Attestation.clone(attestationWithScore.attestation));
348
- }
349
- return attestationsForBlock;
225
+ throw new Error("Does not support producing blocks for pre-electra forks anymore");
350
226
  }
351
227
 
352
228
  /**
@@ -867,38 +743,7 @@ export function aggregateConsolidation({byCommittee, attData}: AttestationsConso
867
743
  export function getNotSeenValidatorsFn(config: BeaconConfig, state: CachedBeaconStateAllForks): GetNotSeenValidatorsFn {
868
744
  const stateSlot = state.slot;
869
745
  if (config.getForkName(stateSlot) === ForkName.phase0) {
870
- // Get attestations to be included in a phase0 block.
871
- // As we are close to altair, this is not really important, it's mainly for e2e.
872
- // The performance is not great due to the different BeaconState data structure to altair.
873
- // check for phase0 block already
874
- const phase0State = state as CachedBeaconStatePhase0;
875
- const stateEpoch = computeEpochAtSlot(stateSlot);
876
-
877
- const previousEpochParticipants = extractParticipationPhase0(
878
- phase0State.previousEpochAttestations.getAllReadonly(),
879
- state
880
- );
881
- const currentEpochParticipants = extractParticipationPhase0(
882
- phase0State.currentEpochAttestations.getAllReadonly(),
883
- state
884
- );
885
-
886
- return (epoch: Epoch, slot: Slot, committeeIndex: number) => {
887
- const participants =
888
- epoch === stateEpoch ? currentEpochParticipants : epoch === stateEpoch - 1 ? previousEpochParticipants : null;
889
- if (participants === null) {
890
- return null;
891
- }
892
- const committee = state.epochCtx.getBeaconCommittee(slot, committeeIndex);
893
-
894
- const notSeenCommitteeMembers = new Set<number>();
895
- for (const [i, validatorIndex] of committee.entries()) {
896
- if (!participants.has(validatorIndex)) {
897
- notSeenCommitteeMembers.add(i);
898
- }
899
- }
900
- return notSeenCommitteeMembers.size === 0 ? null : notSeenCommitteeMembers;
901
- };
746
+ throw new Error("getNotSeenValidatorsFn is not supported phase0 state");
902
747
  }
903
748
 
904
749
  // altair and future forks
@@ -942,26 +787,6 @@ export function getNotSeenValidatorsFn(config: BeaconConfig, state: CachedBeacon
942
787
  };
943
788
  }
944
789
 
945
- export function extractParticipationPhase0(
946
- attestations: phase0.PendingAttestation[],
947
- state: CachedBeaconStateAllForks
948
- ): Set<ValidatorIndex> {
949
- const {epochCtx} = state;
950
- const allParticipants = new Set<ValidatorIndex>();
951
- for (const att of attestations) {
952
- const aggregationBits = att.aggregationBits;
953
- const attData = att.data;
954
- const attSlot = attData.slot;
955
- const committeeIndex = attData.index;
956
- const committee = epochCtx.getBeaconCommittee(attSlot, committeeIndex);
957
- const participants = aggregationBits.intersectValues(committee);
958
- for (const participant of participants) {
959
- allParticipants.add(participant);
960
- }
961
- }
962
- return allParticipants;
963
- }
964
-
965
790
  /**
966
791
  * This returns a function to validate if an attestation data is compatible to a state.
967
792
  *