@lodestar/beacon-node 1.47.0-dev.bd3a76e069 → 1.47.0-dev.be9d5b774d

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 (32) hide show
  1. package/lib/api/impl/events/index.d.ts +1 -1
  2. package/lib/api/impl/events/index.d.ts.map +1 -1
  3. package/lib/api/impl/events/index.js +10 -3
  4. package/lib/api/impl/events/index.js.map +1 -1
  5. package/lib/chain/errors/proposerPreferences.d.ts +6 -0
  6. package/lib/chain/errors/proposerPreferences.d.ts.map +1 -1
  7. package/lib/chain/errors/proposerPreferences.js +1 -0
  8. package/lib/chain/errors/proposerPreferences.js.map +1 -1
  9. package/lib/chain/validation/proposerPreferences.d.ts +1 -1
  10. package/lib/chain/validation/proposerPreferences.d.ts.map +1 -1
  11. package/lib/chain/validation/proposerPreferences.js +11 -2
  12. package/lib/chain/validation/proposerPreferences.js.map +1 -1
  13. package/lib/network/libp2p/index.d.ts.map +1 -1
  14. package/lib/network/libp2p/index.js +10 -2
  15. package/lib/network/libp2p/index.js.map +1 -1
  16. package/lib/network/reqresp/score.d.ts.map +1 -1
  17. package/lib/network/reqresp/score.js +5 -11
  18. package/lib/network/reqresp/score.js.map +1 -1
  19. package/lib/sync/types.d.ts.map +1 -1
  20. package/lib/sync/types.js.map +1 -1
  21. package/lib/sync/unknownBlock.d.ts +9 -0
  22. package/lib/sync/unknownBlock.d.ts.map +1 -1
  23. package/lib/sync/unknownBlock.js +93 -9
  24. package/lib/sync/unknownBlock.js.map +1 -1
  25. package/package.json +14 -14
  26. package/src/api/impl/events/index.ts +10 -4
  27. package/src/chain/errors/proposerPreferences.ts +7 -0
  28. package/src/chain/validation/proposerPreferences.ts +12 -2
  29. package/src/network/libp2p/index.ts +11 -2
  30. package/src/network/reqresp/score.ts +5 -11
  31. package/src/sync/types.ts +3 -1
  32. package/src/sync/unknownBlock.ts +108 -12
@@ -1,5 +1,5 @@
1
1
  import { routes } from "@lodestar/api";
2
2
  import { ApplicationMethods } from "@lodestar/api/server";
3
3
  import { ApiModules } from "../types.js";
4
- export declare function getEventsApi({ chain, }: Pick<ApiModules, "chain" | "config">): ApplicationMethods<routes.events.Endpoints>;
4
+ export declare function getEventsApi({ chain, logger, }: Pick<ApiModules, "chain" | "config" | "logger">): ApplicationMethods<routes.events.Endpoints>;
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/impl/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAEvC,wBAAgB,YAAY,CAAC,EAC3B,KAAK,GACN,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,QAAQ,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CA0BpF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/impl/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAEvC,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,MAAM,GACP,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CA+B/F"}
@@ -1,12 +1,19 @@
1
- export function getEventsApi({ chain, }) {
1
+ export function getEventsApi({ chain, logger, }) {
2
2
  return {
3
3
  async eventstream({ topics, signal, onEvent }) {
4
4
  const onAbortFns = [];
5
5
  for (const topic of topics) {
6
6
  // biome-ignore lint/suspicious/noExplicitAny: We need to use `any` type here
7
7
  const handler = (data) => {
8
- // TODO: What happens if this handler throws? Does it break the other chain.emitter listeners?
9
- onEvent({ type: topic, message: data });
8
+ try {
9
+ onEvent({ type: topic, message: data });
10
+ }
11
+ catch (e) {
12
+ // `chain.emitter` emits synchronously, a throwing listener would propagate the error to
13
+ // whoever emitted the event, e.g. a gossip handler, and skip the remaining listeners.
14
+ // A single misbehaving event or client must not affect the node or other subscribers.
15
+ logger.warn("Error sending event to client", { topic }, e);
16
+ }
10
17
  };
11
18
  chain.emitter.on(topic, handler);
12
19
  onAbortFns.push(() => chain.emitter.off(topic, handler));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/events/index.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,GACgC;IACrC,OAAO;QACL,KAAK,CAAC,WAAW,CAAC,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAC;YACzC,MAAM,UAAU,GAAmB,EAAE,CAAC;YAEtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,6EAA6E;gBAC7E,MAAM,OAAO,GAAG,CAAC,IAAS,EAAQ,EAAE;oBAClC,8FAA8F;oBAE9F,OAAO,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;gBACxC,CAAC,CAAC;gBAEF,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACjC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,CAAC,gBAAgB,CACrB,OAAO,EACP,GAAG,EAAE;gBACH,KAAK,MAAM,OAAO,IAAI,UAAU;oBAAE,OAAO,EAAE,CAAC;YAC9C,CAAC,EACD,EAAC,IAAI,EAAE,IAAI,EAAC,CACb,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/events/index.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,EACL,MAAM,GAC0C;IAChD,OAAO;QACL,KAAK,CAAC,WAAW,CAAC,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAC;YACzC,MAAM,UAAU,GAAmB,EAAE,CAAC;YAEtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,6EAA6E;gBAC7E,MAAM,OAAO,GAAG,CAAC,IAAS,EAAQ,EAAE;oBAClC,IAAI,CAAC;wBACH,OAAO,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;oBACxC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,wFAAwF;wBACxF,sFAAsF;wBACtF,sFAAsF;wBACtF,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAC,KAAK,EAAC,EAAE,CAAU,CAAC,CAAC;oBACpE,CAAC;gBACH,CAAC,CAAC;gBAEF,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACjC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,CAAC,gBAAgB,CACrB,OAAO,EACP,GAAG,EAAE;gBACH,KAAK,MAAM,OAAO,IAAI,UAAU;oBAAE,OAAO,EAAE,CAAC;YAC9C,CAAC,EACD,EAAC,IAAI,EAAE,IAAI,EAAC,CACb,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,6 +1,8 @@
1
+ import { ForkName } from "@lodestar/params";
1
2
  import { Epoch, RootHex, Slot, ValidatorIndex } from "@lodestar/types";
2
3
  import { GossipActionError } from "./gossipValidation.js";
3
4
  export declare enum ProposerPreferencesErrorCode {
5
+ PRE_GLOAS_PROPOSAL_SLOT = "PROPOSER_PREFERENCES_ERROR_PRE_GLOAS_PROPOSAL_SLOT",
4
6
  INVALID_EPOCH = "PROPOSER_PREFERENCES_ERROR_INVALID_EPOCH",
5
7
  PROPOSAL_SLOT_PASSED = "PROPOSER_PREFERENCES_ERROR_PROPOSAL_SLOT_PASSED",
6
8
  UNKNOWN_DEPENDENT_ROOT = "PROPOSER_PREFERENCES_ERROR_UNKNOWN_DEPENDENT_ROOT",
@@ -11,6 +13,10 @@ export declare enum ProposerPreferencesErrorCode {
11
13
  INVALID_SIGNATURE = "PROPOSER_PREFERENCES_ERROR_INVALID_SIGNATURE"
12
14
  }
13
15
  export type ProposerPreferencesErrorType = {
16
+ code: ProposerPreferencesErrorCode.PRE_GLOAS_PROPOSAL_SLOT;
17
+ proposalSlot: Slot;
18
+ proposalFork: ForkName;
19
+ } | {
14
20
  code: ProposerPreferencesErrorCode.INVALID_EPOCH;
15
21
  proposalSlot: Slot;
16
22
  currentEpoch: number;
@@ -1 +1 @@
1
- {"version":3,"file":"proposerPreferences.d.ts","sourceRoot":"","sources":["../../../src/chain/errors/proposerPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAExD,oBAAY,4BAA4B;IACtC,aAAa,6CAA6C;IAC1D,oBAAoB,oDAAoD;IACxE,sBAAsB,sDAAsD;IAC5E,2BAA2B,2DAA2D;IACtF,sBAAsB,sDAAsD;IAC5E,gBAAgB,gDAAgD;IAChE,aAAa,6CAA6C;IAC1D,iBAAiB,iDAAiD;CACnE;AAED,MAAM,MAAM,4BAA4B,GACpC;IACE,IAAI,EAAE,4BAA4B,CAAC,aAAa,CAAC;IACjD,YAAY,EAAE,IAAI,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,4BAA4B,CAAC,oBAAoB,CAAC;IACxD,YAAY,EAAE,IAAI,CAAC;IACnB,WAAW,EAAE,IAAI,CAAC;CACnB,GACD;IACE,IAAI,EAAE,4BAA4B,CAAC,sBAAsB,CAAC;IAC1D,YAAY,EAAE,IAAI,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB,GACD;IACE,IAAI,EAAE,4BAA4B,CAAC,2BAA2B,CAAC;IAC/D,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,IAAI,CAAC;IACzB,iBAAiB,EAAE,IAAI,CAAC;IACxB,cAAc,EAAE,KAAK,CAAC;CACvB,GACD;IACE,IAAI,EAAE,4BAA4B,CAAC,sBAAsB,CAAC;IAC1D,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,IAAI,CAAC;IACzB,cAAc,EAAE,KAAK,CAAC;CACvB,GACD;IACE,IAAI,EAAE,4BAA4B,CAAC,gBAAgB,CAAC;IACpD,YAAY,EAAE,IAAI,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;CACxB,GACD;IACE,IAAI,EAAE,4BAA4B,CAAC,aAAa,CAAC;IACjD,YAAY,EAAE,IAAI,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;CACxB,GACD;IACE,IAAI,EAAE,4BAA4B,CAAC,iBAAiB,CAAC;IACrD,YAAY,EAAE,IAAI,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;CAChC,CAAC;AAEN,qBAAa,wBAAyB,SAAQ,iBAAiB,CAAC,4BAA4B,CAAC;CAAG"}
1
+ {"version":3,"file":"proposerPreferences.d.ts","sourceRoot":"","sources":["../../../src/chain/errors/proposerPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAExD,oBAAY,4BAA4B;IACtC,uBAAuB,uDAAuD;IAC9E,aAAa,6CAA6C;IAC1D,oBAAoB,oDAAoD;IACxE,sBAAsB,sDAAsD;IAC5E,2BAA2B,2DAA2D;IACtF,sBAAsB,sDAAsD;IAC5E,gBAAgB,gDAAgD;IAChE,aAAa,6CAA6C;IAC1D,iBAAiB,iDAAiD;CACnE;AAED,MAAM,MAAM,4BAA4B,GACpC;IACE,IAAI,EAAE,4BAA4B,CAAC,uBAAuB,CAAC;IAC3D,YAAY,EAAE,IAAI,CAAC;IACnB,YAAY,EAAE,QAAQ,CAAC;CACxB,GACD;IACE,IAAI,EAAE,4BAA4B,CAAC,aAAa,CAAC;IACjD,YAAY,EAAE,IAAI,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,4BAA4B,CAAC,oBAAoB,CAAC;IACxD,YAAY,EAAE,IAAI,CAAC;IACnB,WAAW,EAAE,IAAI,CAAC;CACnB,GACD;IACE,IAAI,EAAE,4BAA4B,CAAC,sBAAsB,CAAC;IAC1D,YAAY,EAAE,IAAI,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB,GACD;IACE,IAAI,EAAE,4BAA4B,CAAC,2BAA2B,CAAC;IAC/D,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,IAAI,CAAC;IACzB,iBAAiB,EAAE,IAAI,CAAC;IACxB,cAAc,EAAE,KAAK,CAAC;CACvB,GACD;IACE,IAAI,EAAE,4BAA4B,CAAC,sBAAsB,CAAC;IAC1D,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,IAAI,CAAC;IACzB,cAAc,EAAE,KAAK,CAAC;CACvB,GACD;IACE,IAAI,EAAE,4BAA4B,CAAC,gBAAgB,CAAC;IACpD,YAAY,EAAE,IAAI,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;CACxB,GACD;IACE,IAAI,EAAE,4BAA4B,CAAC,aAAa,CAAC;IACjD,YAAY,EAAE,IAAI,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;CACxB,GACD;IACE,IAAI,EAAE,4BAA4B,CAAC,iBAAiB,CAAC;IACrD,YAAY,EAAE,IAAI,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;CAChC,CAAC;AAEN,qBAAa,wBAAyB,SAAQ,iBAAiB,CAAC,4BAA4B,CAAC;CAAG"}
@@ -1,6 +1,7 @@
1
1
  import { GossipActionError } from "./gossipValidation.js";
2
2
  export var ProposerPreferencesErrorCode;
3
3
  (function (ProposerPreferencesErrorCode) {
4
+ ProposerPreferencesErrorCode["PRE_GLOAS_PROPOSAL_SLOT"] = "PROPOSER_PREFERENCES_ERROR_PRE_GLOAS_PROPOSAL_SLOT";
4
5
  ProposerPreferencesErrorCode["INVALID_EPOCH"] = "PROPOSER_PREFERENCES_ERROR_INVALID_EPOCH";
5
6
  ProposerPreferencesErrorCode["PROPOSAL_SLOT_PASSED"] = "PROPOSER_PREFERENCES_ERROR_PROPOSAL_SLOT_PASSED";
6
7
  ProposerPreferencesErrorCode["UNKNOWN_DEPENDENT_ROOT"] = "PROPOSER_PREFERENCES_ERROR_UNKNOWN_DEPENDENT_ROOT";
@@ -1 +1 @@
1
- {"version":3,"file":"proposerPreferences.js","sourceRoot":"","sources":["../../../src/chain/errors/proposerPreferences.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAExD,MAAM,CAAN,IAAY,4BASX;AATD,WAAY,4BAA4B;IACtC,0FAA0D,CAAA;IAC1D,wGAAwE,CAAA;IACxE,4GAA4E,CAAA;IAC5E,sHAAsF,CAAA;IACtF,4GAA4E,CAAA;IAC5E,gGAAgE,CAAA;IAChE,0FAA0D,CAAA;IAC1D,kGAAkE,CAAA;AACpE,CAAC,EATW,4BAA4B,KAA5B,4BAA4B,QASvC;AAiDD,MAAM,OAAO,wBAAyB,SAAQ,iBAA+C;CAAG"}
1
+ {"version":3,"file":"proposerPreferences.js","sourceRoot":"","sources":["../../../src/chain/errors/proposerPreferences.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAExD,MAAM,CAAN,IAAY,4BAUX;AAVD,WAAY,4BAA4B;IACtC,8GAA8E,CAAA;IAC9E,0FAA0D,CAAA;IAC1D,wGAAwE,CAAA;IACxE,4GAA4E,CAAA;IAC5E,sHAAsF,CAAA;IACtF,4GAA4E,CAAA;IAC5E,gGAAgE,CAAA;IAChE,0FAA0D,CAAA;IAC1D,kGAAkE,CAAA;AACpE,CAAC,EAVW,4BAA4B,KAA5B,4BAA4B,QAUvC;AAsDD,MAAM,OAAO,wBAAyB,SAAQ,iBAA+C;CAAG"}
@@ -3,7 +3,7 @@ import { Epoch, gloas } from "@lodestar/types";
3
3
  import { IBeaconChain } from "../index.js";
4
4
  /**
5
5
  * Validates a gossiped `SignedProposerPreferences` per
6
- * https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.13/specs/gloas/p2p-interface.md#new-proposer_preferences
6
+ * https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.14/specs/gloas/p2p-interface.md#new-proposer_preferences
7
7
  */
8
8
  export declare function validateGossipProposerPreferences(chain: IBeaconChain, signedProposerPreferences: gloas.SignedProposerPreferences): Promise<void>;
9
9
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"proposerPreferences.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/proposerPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAQ9D,OAAO,EAAC,KAAK,EAAwB,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAGnE,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAEzC;;;GAGG;AACH,wBAAsB,iCAAiC,CACrD,KAAK,EAAE,YAAY,EACnB,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,GACzD,OAAO,CAAC,IAAI,CAAC,CAwIf;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAa/G"}
1
+ {"version":3,"file":"proposerPreferences.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/proposerPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAQ9D,OAAO,EAAC,KAAK,EAAwB,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAGnE,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAEzC;;;GAGG;AACH,wBAAsB,iCAAiC,CACrD,KAAK,EAAE,YAAY,EACnB,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,GACzD,OAAO,CAAC,IAAI,CAAC,CAkJf;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAa/G"}
@@ -1,16 +1,25 @@
1
- import { GENESIS_EPOCH, GENESIS_SLOT, MIN_SEED_LOOKAHEAD, SLOTS_PER_EPOCH } from "@lodestar/params";
1
+ import { GENESIS_EPOCH, GENESIS_SLOT, MIN_SEED_LOOKAHEAD, SLOTS_PER_EPOCH, isForkPostGloas } from "@lodestar/params";
2
2
  import { computeEpochAtSlot, computeStartSlotAtEpoch, createSingleSignatureSetFromComponents, getProposerPreferencesSigningRoot, } from "@lodestar/state-transition";
3
3
  import { toRootHex } from "@lodestar/utils";
4
4
  import { GossipAction, ProposerPreferencesError, ProposerPreferencesErrorCode } from "../errors/index.js";
5
5
  /**
6
6
  * Validates a gossiped `SignedProposerPreferences` per
7
- * https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.13/specs/gloas/p2p-interface.md#new-proposer_preferences
7
+ * https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.14/specs/gloas/p2p-interface.md#new-proposer_preferences
8
8
  */
9
9
  export async function validateGossipProposerPreferences(chain, signedProposerPreferences) {
10
10
  const preferences = signedProposerPreferences.message;
11
11
  const { proposalSlot, validatorIndex, dependentRoot } = preferences;
12
12
  const dependentRootHex = toRootHex(dependentRoot);
13
13
  const proposalEpoch = computeEpochAtSlot(proposalSlot);
14
+ // [IGNORE] The proposal epoch is after the Gloas upgrade
15
+ const proposalFork = chain.config.getForkName(proposalSlot);
16
+ if (!isForkPostGloas(proposalFork)) {
17
+ throw new ProposerPreferencesError(GossipAction.IGNORE, {
18
+ code: ProposerPreferencesErrorCode.PRE_GLOAS_PROPOSAL_SLOT,
19
+ proposalSlot,
20
+ proposalFork,
21
+ });
22
+ }
14
23
  // [IGNORE] `preferences.proposal_slot` is within the proposer lookahead,
15
24
  // allowing for `MAXIMUM_GOSSIP_CLOCK_DISPARITY`.
16
25
  const currentEpoch = computeEpochAtSlot(chain.clock.currentSlotWithGossipDisparity);
@@ -1 +1 @@
1
- {"version":3,"file":"proposerPreferences.js","sourceRoot":"","sources":["../../../src/chain/validation/proposerPreferences.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proposerPreferences.js","sourceRoot":"","sources":["../../../src/chain/validation/proposerPreferences.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/network/libp2p/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAMlD,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAKrC,OAAO,EAAC,MAAM,EAAqB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAwB,MAAM,eAAe,CAAC;AAGpE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,QAAQ,CAAC;CAC5B,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAatG;AAED,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,UAAU,EACtB,WAAW,GAAE,OAAO,CAAC,cAAc,CAAM,EACzC,gBAAgB,GAAE,gBAAqB,GACtC,OAAO,CAAC,MAAM,CAAC,CA2IjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/network/libp2p/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAMlD,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAKrC,OAAO,EAAC,MAAM,EAAqB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAwB,MAAM,eAAe,CAAC;AAWpE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,QAAQ,CAAC;CAC5B,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAatG;AAED,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,UAAU,EACtB,WAAW,GAAE,OAAO,CAAC,cAAc,CAAM,EACzC,gBAAgB,GAAE,gBAAqB,GACtC,OAAO,CAAC,MAAM,CAAC,CA2IjB"}
@@ -1,3 +1,4 @@
1
+ import { getCiphers } from "node:crypto";
1
2
  import { bootstrap } from "@libp2p/bootstrap";
2
3
  import { identify } from "@libp2p/identify";
3
4
  import { mdns } from "@libp2p/mdns";
@@ -7,10 +8,17 @@ import { tcp } from "@libp2p/tcp";
7
8
  import { createLibp2p } from "libp2p";
8
9
  import { ENR } from "@chainsafe/enr";
9
10
  import { noise } from "@chainsafe/libp2p-noise";
10
- import { defaultCrypto } from "@chainsafe/libp2p-noise/crypto";
11
+ import { asCrypto, defaultCrypto } from "@chainsafe/libp2p-noise/crypto";
11
12
  import { quic } from "@chainsafe/libp2p-quic";
12
13
  import { defaultNetworkOptions } from "../options.js";
13
14
  import { Eth2PeerDataStore } from "../peers/datastore.js";
15
+ const noiseCrypto = getCiphers().includes("chacha20-poly1305")
16
+ ? defaultCrypto
17
+ : {
18
+ ...defaultCrypto,
19
+ chaCha20Poly1305Encrypt: asCrypto.chaCha20Poly1305Encrypt,
20
+ chaCha20Poly1305Decrypt: asCrypto.chaCha20Poly1305Decrypt,
21
+ };
14
22
  export async function getDiscv5Multiaddrs(bootEnrs, quicEnabled) {
15
23
  const bootMultiaddrs = [];
16
24
  for (const enrStr of bootEnrs) {
@@ -97,7 +105,7 @@ export async function createNodeJsLibp2p(privateKey, networkOpts = {}, nodeJsLib
97
105
  listen: localMultiaddrs,
98
106
  announce: [],
99
107
  },
100
- connectionEncrypters: [noise({ crypto: defaultCrypto })],
108
+ connectionEncrypters: [noise({ crypto: noiseCrypto })],
101
109
  transports,
102
110
  streamMuxers: [mplex({ disconnectThreshold })],
103
111
  peerDiscovery,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/network/libp2p/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/network/libp2p/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../../../src/network/reqresp/score.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAmB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAmBzC,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,GAAG,UAAU,GAAG,IAAI,CAqEhG"}
1
+ {"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../../../src/network/reqresp/score.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAmB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAmBzC,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,GAAG,UAAU,GAAG,IAAI,CA+DhG"}
@@ -37,17 +37,11 @@ export function onOutgoingReqRespError(e, method) {
37
37
  // failure, so keep the stronger penalty (Fatal for Ping, as before).
38
38
  return method === ReqRespMethod.Ping ? PeerAction.Fatal : PeerAction.LowToleranceError;
39
39
  }
40
- switch (method) {
41
- // Ping and Status are liveness probes; their dial timeouts are dominated by transient
42
- // network congestion rather than peer misbehavior, so penalize leniently to avoid
43
- // self-inflicted peer starvation (https://github.com/ChainSafe/lodestar/issues/9562),
44
- // while still applying some penalty so genuinely dead peers eventually free the slot.
45
- case ReqRespMethod.Ping:
46
- case ReqRespMethod.Status:
47
- return PeerAction.HighToleranceError;
48
- default:
49
- return PeerAction.LowToleranceError;
50
- }
40
+ // A dial failure means we could not open a stream. That is evidence about the transport, not
41
+ // about the peer's behavior, and it is dominated by transient congestion on our side, so
42
+ // penalize leniently for every method to avoid self-inflicted peer starvation (#9562). A
43
+ // genuinely dead peer still accumulates penalty and is eventually evicted, freeing the slot.
44
+ return PeerAction.HighToleranceError;
51
45
  // TODO: Detect SSZDecodeError and return PeerAction.Fatal
52
46
  case RequestErrorCode.RESP_TIMEOUT:
53
47
  switch (method) {
@@ -1 +1 @@
1
- {"version":3,"file":"score.js","sourceRoot":"","sources":["../../../src/network/reqresp/score.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"score.js","sourceRoot":"","sources":["../../../src/network/reqresp/score.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAEzC;;;;GAIG;AACH,MAAM,gBAAgB,GAAG;IACvB,wBAAwB,EAAE,0BAA0B;CACrD,CAAC;AAEF;;;GAGG;AACH,MAAM,2BAA2B,GAAG;IAClC,uBAAuB,EAAE,2BAA2B;CACrD,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,CAAe,EAAE,MAAqB;IAC3E,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,gBAAgB,CAAC,eAAe,CAAC;QACtC,KAAK,gBAAgB,CAAC,oBAAoB,CAAC;QAC3C,KAAK,gBAAgB,CAAC,iBAAiB;YACrC,OAAO,UAAU,CAAC,iBAAiB,CAAC;QAEtC,KAAK,gBAAgB,CAAC,YAAY;YAChC,OAAO,UAAU,CAAC,iBAAiB,CAAC;QACtC,KAAK,gBAAgB,CAAC,oBAAoB;YACxC,OAAO,UAAU,CAAC,kBAAkB,CAAC;QAEvC,KAAK,gBAAgB,CAAC,YAAY,CAAC;QACnC,KAAK,gBAAgB,CAAC,UAAU;YAC9B,+FAA+F;YAC/F,4FAA4F;YAC5F,wFAAwF;YACxF,IACE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC,UAAU;gBAC3C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,uBAAuB,CAAC,EAClF,CAAC;gBACD,qFAAqF;gBACrF,qEAAqE;gBACrE,OAAO,MAAM,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC;YACzF,CAAC;YACD,6FAA6F;YAC7F,yFAAyF;YACzF,yFAAyF;YACzF,6FAA6F;YAC7F,OAAO,UAAU,CAAC,kBAAkB,CAAC;QACvC,0DAA0D;QAE1D,KAAK,gBAAgB,CAAC,YAAY;YAChC,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,aAAa,CAAC,IAAI,CAAC;gBACxB,KAAK,aAAa,CAAC,MAAM,CAAC;gBAC1B,KAAK,aAAa,CAAC,QAAQ;oBACzB,OAAO,UAAU,CAAC,iBAAiB,CAAC;gBACtC,KAAK,aAAa,CAAC,mBAAmB,CAAC;gBACvC,KAAK,aAAa,CAAC,kBAAkB,CAAC;gBACtC,KAAK,aAAa,CAAC,kBAAkB,CAAC;gBACtC,KAAK,aAAa,CAAC,+BAA+B,CAAC;gBACnD,KAAK,aAAa,CAAC,gCAAgC;oBACjD,OAAO,UAAU,CAAC,iBAAiB,CAAC;gBACtC;oBACE,OAAO,IAAI,CAAC;YAChB,CAAC;IACL,CAAC;IAED,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAClE,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,aAAa,CAAC,IAAI;gBACrB,OAAO,UAAU,CAAC,KAAK,CAAC;YAC1B,KAAK,aAAa,CAAC,QAAQ,CAAC;YAC5B,KAAK,aAAa,CAAC,MAAM;gBACvB,OAAO,UAAU,CAAC,iBAAiB,CAAC;YACtC;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAED,4HAA4H;IAC5H,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAI1C,MAAM,CAAN,IAAY,gBAuBX;AAvBD,WAAY,gBAAgB;IAC1B;;OAEG;IACH,2DAAuC,CAAA;IACvC;;OAEG;IACH,qDAAiC,CAAA;IACjC;;;OAGG;IACH,mEAA+C,CAAA;IAE/C;;OAEG;IACH,6EAAyD,CAAA;IACzD;;OAEG;IACH,+EAA2D,CAAA;AAC7D,CAAC,EAvBW,gBAAgB,KAAhB,gBAAgB,QAuB3B;AAED,MAAM,CAAN,IAAY,uBAKX;AALD,WAAY,uBAAuB;IACjC,8CAAmB,CAAA;IACnB,gDAAqB,CAAA;IACrB,oDAAyB,CAAA;IACzB,oDAAyB,CAAA;AAC3B,CAAC,EALW,uBAAuB,KAAvB,uBAAuB,QAKlC;AAED,MAAM,CAAN,IAAY,yBAMX;AAND,WAAY,yBAAyB;IACnC,gDAAmB,CAAA;IACnB,kDAAqB,CAAA;IACrB,kEAAqC,CAAA;IACrC,sDAAyB,CAAA;IACzB,sDAAyB,CAAA;AAC3B,CAAC,EANW,yBAAyB,KAAzB,yBAAyB,QAMpC;AAmDD,MAAM,UAAU,mBAAmB,CAAC,OAAgC;IAClE,OAAO,YAAY,IAAI,OAAO,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAA6B;IACjE,OAAO,cAAc,IAAI,OAAO,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAA6B;IACpE,OAAO,UAAU,IAAI,OAAO,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,KAA8B;IAC9E,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,KAA8B;IAC3E,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,OAA6B;IAC1E,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;IAC3C,CAAC;IAED,IAAI,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAA6B;IACvE,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,IAAI,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;IACrD,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAI1C,MAAM,CAAN,IAAY,gBAuBX;AAvBD,WAAY,gBAAgB;IAC1B;;OAEG;IACH,2DAAuC,CAAA;IACvC;;OAEG;IACH,qDAAiC,CAAA;IACjC;;;OAGG;IACH,mEAA+C,CAAA;IAE/C;;OAEG;IACH,6EAAyD,CAAA;IACzD;;OAEG;IACH,+EAA2D,CAAA;AAC7D,CAAC,EAvBW,gBAAgB,KAAhB,gBAAgB,QAuB3B;AAED,MAAM,CAAN,IAAY,uBAKX;AALD,WAAY,uBAAuB;IACjC,8CAAmB,CAAA;IACnB,gDAAqB,CAAA;IACrB,oDAAyB,CAAA;IACzB,oDAAyB,CAAA;AAC3B,CAAC,EALW,uBAAuB,KAAvB,uBAAuB,QAKlC;AAED,MAAM,CAAN,IAAY,yBAMX;AAND,WAAY,yBAAyB;IACnC,gDAAmB,CAAA;IACnB,kDAAqB,CAAA;IACrB,kEAAqC,CAAA;IACrC,sDAAyB,CAAA;IACzB,sDAAyB,CAAA;AAC3B,CAAC,EANW,yBAAyB,KAAzB,yBAAyB,QAMpC;AAqDD,MAAM,UAAU,mBAAmB,CAAC,OAAgC;IAClE,OAAO,YAAY,IAAI,OAAO,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAA6B;IACjE,OAAO,cAAc,IAAI,OAAO,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAA6B;IACpE,OAAO,UAAU,IAAI,OAAO,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,KAA8B;IAC9E,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,KAA8B;IAC3E,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,OAA6B;IAC1E,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;IAC3C,CAAC;IAED,IAAI,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAA6B;IACvE,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,IAAI,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;IACrD,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC;AACnC,CAAC"}
@@ -76,9 +76,18 @@ export declare class BlockInputSync {
76
76
  private onUnknownParent;
77
77
  private onBlockImported;
78
78
  private onPayloadImported;
79
+ /**
80
+ * Drop pending payloads and blocks that fell below the finalized slot.
81
+ * See https://github.com/ChainSafe/lodestar/issues/9800
82
+ */
83
+ private pruneFinalized;
79
84
  private addByRootHex;
80
85
  private addByBlockInput;
81
86
  private addByPayloadRootHex;
87
+ /**
88
+ * Resolve the block slot for a payload root.
89
+ */
90
+ private resolvePayloadSlot;
82
91
  private addByPayloadInput;
83
92
  private onPeerConnected;
84
93
  private onPeerDisconnected;
@@ -1 +1 @@
1
- {"version":3,"file":"unknownBlock.d.ts","sourceRoot":"","sources":["../../src/sync/unknownBlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unknownBlock.d.ts","sourceRoot":"","sources":["../../src/sync/unknownBlock.ts"],"names":[],"mappings":"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"}
@@ -115,6 +115,7 @@ export class BlockInputSync {
115
115
  this.chain.emitter.on(ChainEvent.incompleteBlockInput, this.onIncompleteBlockInput);
116
116
  this.chain.emitter.on(ChainEvent.incompletePayloadEnvelope, this.onIncompletePayloadEnvelope);
117
117
  this.chain.emitter.on(ChainEvent.blockUnknownParent, this.onUnknownParent);
118
+ this.chain.emitter.on(ChainEvent.forkChoiceFinalized, this.pruneFinalized);
118
119
  this.chain.emitter.on(routes.events.EventType.block, this.onBlockImported);
119
120
  this.chain.emitter.on(routes.events.EventType.executionPayload, this.onPayloadImported);
120
121
  this.network.events.on(NetworkEvent.peerConnected, this.onPeerConnected);
@@ -130,6 +131,7 @@ export class BlockInputSync {
130
131
  this.chain.emitter.off(ChainEvent.incompleteBlockInput, this.onIncompleteBlockInput);
131
132
  this.chain.emitter.off(ChainEvent.incompletePayloadEnvelope, this.onIncompletePayloadEnvelope);
132
133
  this.chain.emitter.off(ChainEvent.blockUnknownParent, this.onUnknownParent);
134
+ this.chain.emitter.off(ChainEvent.forkChoiceFinalized, this.pruneFinalized);
133
135
  this.chain.emitter.off(routes.events.EventType.block, this.onBlockImported);
134
136
  this.chain.emitter.off(routes.events.EventType.executionPayload, this.onPayloadImported);
135
137
  this.network.events.off(NetworkEvent.peerConnected, this.onPeerConnected);
@@ -172,7 +174,7 @@ export class BlockInputSync {
172
174
  };
173
175
  onUnknownEnvelopeBlockRoot = (data) => {
174
176
  try {
175
- this.addByPayloadRootHex(data.rootHex, data.peer, data.slot);
177
+ this.addByPayloadRootHex(data.rootHex, data.peer, this.resolvePayloadSlot(data.rootHex));
176
178
  this.triggerUnknownBlockSearch();
177
179
  this.metrics?.blockInputSync.requests.inc({ type: PendingBlockType.UNKNOWN_PAYLOAD_BLOCK_ROOT });
178
180
  this.metrics?.blockInputSync.payloadSource.inc({ source: data.source });
@@ -213,7 +215,7 @@ export class BlockInputSync {
213
215
  return;
214
216
  }
215
217
  if (missingDependency.kind === "parentPayload") {
216
- this.addByPayloadRootHex(missingDependency.rootHex, data.peer);
218
+ this.addByPayloadRootHex(missingDependency.rootHex, data.peer, missingDependency.slot);
217
219
  }
218
220
  else if (missingDependency.kind === "parentBlock") {
219
221
  this.addByRootHex(missingDependency.rootHex, data.peer);
@@ -236,6 +238,54 @@ export class BlockInputSync {
236
238
  this.pendingPayloads.delete(blockRoot);
237
239
  this.triggerUnknownBlockSearch();
238
240
  };
241
+ /**
242
+ * Drop pending payloads and blocks that fell below the finalized slot.
243
+ * See https://github.com/ChainSafe/lodestar/issues/9800
244
+ */
245
+ pruneFinalized = (checkpoint) => {
246
+ // Use the actual finalized block slot, not computeStartSlotAtEpoch(checkpoint.epoch)
247
+ // because the payload at the finalized block is not finalized
248
+ const finalizedSlot = this.chain.forkChoice.getFinalizedBlock().slot;
249
+ let deletedPayloads = 0;
250
+ let unresolvedSlotPayloads = 0;
251
+ for (const [rootHex, payload] of this.pendingPayloads) {
252
+ // Last-effort resolve for a slot-less PendingPayloadRootHex, and store it back for later passes.
253
+ if (!isPendingPayloadInput(payload) && !isPendingPayloadEnvelope(payload) && payload.slot === undefined) {
254
+ payload.slot = this.resolvePayloadSlot(rootHex);
255
+ }
256
+ const slot = getPayloadSyncCacheItemSlot(payload);
257
+ if (typeof slot !== "number") {
258
+ unresolvedSlotPayloads++;
259
+ this.logger.debug("BlockInputSync.pruneFinalized: pending payload with unresolved slot", {
260
+ root: rootHex,
261
+ finalizedSlot,
262
+ });
263
+ continue;
264
+ }
265
+ if (slot < finalizedSlot) {
266
+ this.pendingPayloads.delete(rootHex);
267
+ deletedPayloads++;
268
+ }
269
+ }
270
+ let deletedBlocks = 0;
271
+ for (const [rootHex, block] of this.pendingBlocks) {
272
+ const slot = getBlockInputSyncCacheItemSlot(block);
273
+ if (typeof slot === "number" && slot < finalizedSlot) {
274
+ this.pendingBlocks.delete(rootHex);
275
+ deletedBlocks++;
276
+ }
277
+ }
278
+ if (deletedPayloads > 0 || deletedBlocks > 0) {
279
+ this.metrics?.blockInputSync.removedBlocks.inc(deletedPayloads + deletedBlocks);
280
+ }
281
+ this.logger.debug("BlockInputSync.pruneFinalized dropped pre-finalized pending items", {
282
+ finalizedSlot,
283
+ finalizedRoot: checkpoint.rootHex,
284
+ deletedPayloads,
285
+ deletedBlocks,
286
+ unresolvedSlotPayloads,
287
+ });
288
+ };
239
289
  addByRootHex = (rootHex, peerIdStr) => {
240
290
  let pendingBlock = this.pendingBlocks.get(rootHex);
241
291
  let added = false;
@@ -322,6 +372,26 @@ export class BlockInputSync {
322
372
  }
323
373
  return added;
324
374
  };
375
+ /**
376
+ * Resolve the block slot for a payload root.
377
+ */
378
+ resolvePayloadSlot(rootHex) {
379
+ // a pending block of the same root
380
+ const pendingBlock = this.pendingBlocks.get(rootHex);
381
+ if (pendingBlock) {
382
+ const pendingBlockSlot = getBlockInputSyncCacheItemSlot(pendingBlock);
383
+ if (typeof pendingBlockSlot === "number") {
384
+ return pendingBlockSlot;
385
+ }
386
+ }
387
+ // the block is in fork choice
388
+ const forkChoiceSlot = this.chain.forkChoice.getBlockHexDefaultStatus(rootHex)?.slot;
389
+ if (forkChoiceSlot !== undefined) {
390
+ return forkChoiceSlot;
391
+ }
392
+ // a seen payload envelope input
393
+ return this.chain.seenPayloadEnvelopeInputCache.get(rootHex)?.slot;
394
+ }
325
395
  addByPayloadInput = (payloadInput, peerIdStr, envelope) => {
326
396
  const pendingPayload = this.toPendingPayloadInput(payloadInput, this.pendingPayloads.get(payloadInput.blockRootHex), envelope);
327
397
  if (peerIdStr) {
@@ -360,7 +430,8 @@ export class BlockInputSync {
360
430
  */
361
431
  getMissingBlockDependency(blockInput) {
362
432
  const parentRootHex = blockInput.parentRootHex;
363
- if (!this.chain.forkChoice.hasBlockHex(parentRootHex)) {
433
+ const parentBlock = this.chain.forkChoice.getBlockHexDefaultStatus(parentRootHex);
434
+ if (!parentBlock) {
364
435
  return { kind: "parentBlock", rootHex: parentRootHex };
365
436
  }
366
437
  if (!blockInput.hasBlock()) {
@@ -380,11 +451,11 @@ export class BlockInputSync {
380
451
  const parentPayloadInput = this.chain.seenPayloadEnvelopeInputCache.get(parentRootHex);
381
452
  if (parentPayloadInput) {
382
453
  if (parentPayloadInput.getBlockHashHex() === parentBlockHashHex) {
383
- return { kind: "parentPayload", rootHex: parentRootHex };
454
+ return { kind: "parentPayload", rootHex: parentRootHex, slot: parentBlock.slot };
384
455
  }
385
456
  return { kind: "invalidParentPayload", parentRootHex, parentBlockHashHex };
386
457
  }
387
- return { kind: "parentPayload", rootHex: parentRootHex };
458
+ return { kind: "parentPayload", rootHex: parentRootHex, slot: parentBlock.slot };
388
459
  }
389
460
  advancePendingBlock(pendingBlock) {
390
461
  const missingDependency = this.getMissingBlockDependency(pendingBlock.blockInput);
@@ -402,9 +473,9 @@ export class BlockInputSync {
402
473
  return added ? "queued_parent_block" : "blocked";
403
474
  }
404
475
  case "parentPayload": {
405
- let added = this.addByPayloadRootHex(missingDependency.rootHex);
476
+ let added = this.addByPayloadRootHex(missingDependency.rootHex, undefined, missingDependency.slot);
406
477
  for (const peerIdStr of pendingBlock.peerIdStrings) {
407
- added = this.addByPayloadRootHex(missingDependency.rootHex, peerIdStr) || added;
478
+ added = this.addByPayloadRootHex(missingDependency.rootHex, peerIdStr, missingDependency.slot) || added;
408
479
  }
409
480
  return added ? "queued_parent_payload" : "blocked";
410
481
  }
@@ -775,6 +846,7 @@ export class BlockInputSync {
775
846
  const pendingPayloadByRoot = {
776
847
  status: PendingPayloadInputStatus.pending,
777
848
  rootHex,
849
+ slot: pendingPayload.envelope.message.payload.slotNumber,
778
850
  timeAddedSec: pendingPayload.timeAddedSec,
779
851
  peerIdStrings: new Set(pendingPayload.peerIdStrings),
780
852
  };
@@ -806,6 +878,9 @@ export class BlockInputSync {
806
878
  if (payload.status !== PendingPayloadInputStatus.pending) {
807
879
  return;
808
880
  }
881
+ if (!isPendingPayloadInput(payload) && payload.slot === undefined) {
882
+ payload.slot = this.resolvePayloadSlot(rootHex);
883
+ }
809
884
  const payloadSlot = getPayloadSyncCacheItemSlot(payload);
810
885
  const logCtx = {
811
886
  slot: payloadSlot,
@@ -818,7 +893,13 @@ export class BlockInputSync {
818
893
  const res = await wrapError(this.fetchPayloadInput(payload));
819
894
  if (!res.err) {
820
895
  const pendingPayload = res.result;
821
- this.pendingPayloads.set(getPayloadSyncCacheItemRootHex(pendingPayload), pendingPayload);
896
+ const resultRootHex = getPayloadSyncCacheItemRootHex(pendingPayload);
897
+ // finalization may have deleted this entry while we were awaiting the network, do not resurrect it via the set below
898
+ if (!this.pendingPayloads.has(resultRootHex)) {
899
+ this.logger.verbose("Dropping downloaded payload, entry pruned during fetch", logCtx);
900
+ return;
901
+ }
902
+ this.pendingPayloads.set(resultRootHex, pendingPayload);
822
903
  if (isPendingPayloadEnvelope(pendingPayload)) {
823
904
  await this.reconcilePayloadEnvelope(pendingPayload);
824
905
  }
@@ -926,7 +1007,10 @@ export class BlockInputSync {
926
1007
  if (this.peerBalancer.getNextRateLimitRetryAt(pendingColumns, excludedPeers) !== null) {
927
1008
  throw new UnknownBlockRateLimitedError(`Error fetching payload by root slot=${slot} root=${rootHex} after ${i}: peers with needed columns are rate-limited`);
928
1009
  }
929
- throw Error(`Error fetching payload by root slot=${slot} root=${rootHex} after ${i}: cannot find peer with needed columns=${prettyPrintIndices(Array.from(pendingColumns))}`);
1010
+ const reason = pendingColumns.size > 0
1011
+ ? `cannot find peer with needed columns=${prettyPrintIndices(Array.from(pendingColumns))}`
1012
+ : "no peer available to download pending payload";
1013
+ throw Error(`Error fetching payload by root slot=${slot} root=${rootHex} after ${i}: ${reason}`);
930
1014
  }
931
1015
  const { peerId, client: peerClient } = peerMeta;
932
1016
  cacheItem.peerIdStrings.add(peerId);