@lodestar/state-transition 1.43.0 → 1.44.0-dev.055b83cb3d

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 (82) hide show
  1. package/lib/block/processDepositRequest.d.ts +3 -11
  2. package/lib/block/processDepositRequest.d.ts.map +1 -1
  3. package/lib/block/processDepositRequest.js +27 -35
  4. package/lib/block/processDepositRequest.js.map +1 -1
  5. package/lib/block/processParentExecutionPayload.d.ts.map +1 -1
  6. package/lib/block/processParentExecutionPayload.js +4 -3
  7. package/lib/block/processParentExecutionPayload.js.map +1 -1
  8. package/lib/cache/epochCache.d.ts.map +1 -1
  9. package/lib/cache/epochCache.js +10 -7
  10. package/lib/cache/epochCache.js.map +1 -1
  11. package/lib/lightClient/spec/index.d.ts +22 -0
  12. package/lib/lightClient/spec/index.d.ts.map +1 -0
  13. package/lib/lightClient/spec/index.js +58 -0
  14. package/lib/lightClient/spec/index.js.map +1 -0
  15. package/lib/lightClient/spec/isBetterUpdate.d.ts +23 -0
  16. package/lib/lightClient/spec/isBetterUpdate.d.ts.map +1 -0
  17. package/lib/lightClient/spec/isBetterUpdate.js +66 -0
  18. package/lib/lightClient/spec/isBetterUpdate.js.map +1 -0
  19. package/lib/lightClient/spec/processLightClientUpdate.d.ts +12 -0
  20. package/lib/lightClient/spec/processLightClientUpdate.d.ts.map +1 -0
  21. package/lib/lightClient/spec/processLightClientUpdate.js +80 -0
  22. package/lib/lightClient/spec/processLightClientUpdate.js.map +1 -0
  23. package/lib/lightClient/spec/store.d.ts +45 -0
  24. package/lib/lightClient/spec/store.d.ts.map +1 -0
  25. package/lib/lightClient/spec/store.js +56 -0
  26. package/lib/lightClient/spec/store.js.map +1 -0
  27. package/lib/lightClient/spec/utils.d.ts +47 -0
  28. package/lib/lightClient/spec/utils.d.ts.map +1 -0
  29. package/lib/lightClient/spec/utils.js +197 -0
  30. package/lib/lightClient/spec/utils.js.map +1 -0
  31. package/lib/lightClient/spec/validateLightClientBootstrap.d.ts +4 -0
  32. package/lib/lightClient/spec/validateLightClientBootstrap.d.ts.map +1 -0
  33. package/lib/lightClient/spec/validateLightClientBootstrap.js +22 -0
  34. package/lib/lightClient/spec/validateLightClientBootstrap.js.map +1 -0
  35. package/lib/lightClient/spec/validateLightClientUpdate.d.ts +5 -0
  36. package/lib/lightClient/spec/validateLightClientUpdate.d.ts.map +1 -0
  37. package/lib/lightClient/spec/validateLightClientUpdate.js +88 -0
  38. package/lib/lightClient/spec/validateLightClientUpdate.js.map +1 -0
  39. package/lib/slot/upgradeStateToGloas.d.ts.map +1 -1
  40. package/lib/slot/upgradeStateToGloas.js +35 -29
  41. package/lib/slot/upgradeStateToGloas.js.map +1 -1
  42. package/lib/stateView/beaconStateView.d.ts +9 -3
  43. package/lib/stateView/beaconStateView.d.ts.map +1 -1
  44. package/lib/stateView/beaconStateView.js +23 -4
  45. package/lib/stateView/beaconStateView.js.map +1 -1
  46. package/lib/stateView/interface.d.ts +2 -1
  47. package/lib/stateView/interface.d.ts.map +1 -1
  48. package/lib/stateView/interface.js.map +1 -1
  49. package/lib/util/gloas.d.ts +14 -0
  50. package/lib/util/gloas.d.ts.map +1 -1
  51. package/lib/util/gloas.js +24 -0
  52. package/lib/util/gloas.js.map +1 -1
  53. package/lib/util/index.d.ts +1 -0
  54. package/lib/util/index.d.ts.map +1 -1
  55. package/lib/util/index.js +1 -0
  56. package/lib/util/index.js.map +1 -1
  57. package/lib/util/pendingDepositsLookup.d.ts +40 -0
  58. package/lib/util/pendingDepositsLookup.d.ts.map +1 -0
  59. package/lib/util/pendingDepositsLookup.js +84 -0
  60. package/lib/util/pendingDepositsLookup.js.map +1 -0
  61. package/lib/util/shuffling.d.ts +6 -5
  62. package/lib/util/shuffling.d.ts.map +1 -1
  63. package/lib/util/shuffling.js +13 -15
  64. package/lib/util/shuffling.js.map +1 -1
  65. package/package.json +12 -7
  66. package/src/block/processDepositRequest.ts +29 -47
  67. package/src/block/processParentExecutionPayload.ts +4 -3
  68. package/src/cache/epochCache.ts +10 -7
  69. package/src/lightClient/spec/index.ts +101 -0
  70. package/src/lightClient/spec/isBetterUpdate.ts +94 -0
  71. package/src/lightClient/spec/processLightClientUpdate.ts +119 -0
  72. package/src/lightClient/spec/store.ts +106 -0
  73. package/src/lightClient/spec/utils.ts +317 -0
  74. package/src/lightClient/spec/validateLightClientBootstrap.ts +39 -0
  75. package/src/lightClient/spec/validateLightClientUpdate.ts +145 -0
  76. package/src/slot/upgradeStateToGloas.ts +43 -45
  77. package/src/stateView/beaconStateView.ts +23 -4
  78. package/src/stateView/interface.ts +2 -1
  79. package/src/util/gloas.ts +28 -0
  80. package/src/util/index.ts +1 -0
  81. package/src/util/pendingDepositsLookup.ts +105 -0
  82. package/src/util/shuffling.ts +17 -15
@@ -1,19 +1,11 @@
1
- import { BeaconConfig } from "@lodestar/config";
2
1
  import { ForkSeq } from "@lodestar/params";
3
- import { BLSPubkey, Bytes32, PubkeyHex, UintNum64, electra } from "@lodestar/types";
2
+ import { BLSPubkey, Bytes32, UintNum64, electra } from "@lodestar/types";
4
3
  import { CachedBeaconStateElectra, CachedBeaconStateGloas } from "../types.js";
4
+ import { PendingDepositsLookup } from "../util/pendingDepositsLookup.js";
5
5
  /**
6
6
  * Apply a deposit for a builder. Either increases balance for existing builder or adds new builder to registry.
7
7
  * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#new-apply_deposit_for_builder
8
8
  */
9
9
  export declare function applyDepositForBuilder(state: CachedBeaconStateGloas, pubkey: BLSPubkey, withdrawalCredentials: Bytes32, amount: UintNum64, signature: Bytes32, slot: UintNum64): void;
10
- export declare function processDepositRequest(fork: ForkSeq, state: CachedBeaconStateElectra | CachedBeaconStateGloas, depositRequest: electra.DepositRequest, pendingValidatorPubkeysCache?: Set<PubkeyHex>): void;
11
- /**
12
- * Build a set of pubkeys (hex-encoded) from pending deposits that have valid signatures.
13
- * This is computed once and passed to each processDepositRequest call to avoid
14
- * repeatedly iterating state.pendingDeposits.
15
- *
16
- * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.3/specs/gloas/beacon-chain.md#new-is_pending_validator
17
- */
18
- export declare function getPendingValidatorPubkeys(config: BeaconConfig, state: CachedBeaconStateGloas): Set<PubkeyHex>;
10
+ export declare function processDepositRequest(fork: ForkSeq, state: CachedBeaconStateElectra | CachedBeaconStateGloas, depositRequest: electra.DepositRequest, pendingDepositsLookup?: PendingDepositsLookup): void;
19
11
  //# sourceMappingURL=processDepositRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"processDepositRequest.d.ts","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAmB,OAAO,EAAqC,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAEvF,OAAO,EAAC,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAK7E;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,sBAAsB,EAC7B,MAAM,EAAE,SAAS,EACjB,qBAAqB,EAAE,OAAO,EAC9B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,SAAS,GACd,IAAI,CAaN;AAiDD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,wBAAwB,GAAG,sBAAsB,EACxD,cAAc,EAAE,OAAO,CAAC,cAAc,EACtC,4BAA4B,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,GAC5C,IAAI,CAkDN;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,sBAAsB,GAAG,GAAG,CAAC,SAAS,CAAC,CAgB9G"}
1
+ {"version":3,"file":"processDepositRequest.d.ts","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,OAAO,EAAqC,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAE5E,OAAO,EAAC,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAG7E,OAAO,EAAC,qBAAqB,EAAC,MAAM,kCAAkC,CAAC;AAGvE;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,sBAAsB,EAC7B,MAAM,EAAE,SAAS,EACjB,qBAAqB,EAAE,OAAO,EAC9B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,SAAS,GACd,IAAI,CAaN;AAiDD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,wBAAwB,GAAG,sBAAsB,EACxD,cAAc,EAAE,OAAO,CAAC,cAAc,EACtC,qBAAqB,CAAC,EAAE,qBAAqB,GAC5C,IAAI,CAyDN"}
@@ -3,6 +3,7 @@ import { ssz } from "@lodestar/types";
3
3
  import { toPubkeyHex } from "@lodestar/utils";
4
4
  import { findBuilderIndexByPubkey, isBuilderWithdrawalCredential } from "../util/gloas.js";
5
5
  import { computeEpochAtSlot, isValidatorKnown } from "../util/index.js";
6
+ import { PendingDepositsLookup } from "../util/pendingDepositsLookup.js";
6
7
  import { isValidDepositSignature } from "./processDeposit.js";
7
8
  /**
8
9
  * Apply a deposit for a builder. Either increases balance for existing builder or adds new builder to registry.
@@ -56,40 +57,47 @@ function addBuilderToRegistry(state, pubkey, withdrawalCredentials, amount, slot
56
57
  state.builders.push(newBuilder);
57
58
  }
58
59
  }
59
- // TODO GLOAS: pendingValidatorPubkeys cache is currently naive and has room for improvement.
60
- // Currently the cache lives in process_block, but we should put it in epochCache or elsewhere that has longer
61
- // lifetime to avoid duplicated deposit signature computation
60
+ // TODO GLOAS: the PendingDepositsLookup is currently scoped to a single envelope of
61
+ // deposit-requests. We can track it as ephemeral within EpochCache and transfer to the next block
62
+ // transition to reuse cached signature verifications.
62
63
  // See https://github.com/ChainSafe/lodestar/issues/9181
63
- export function processDepositRequest(fork, state, depositRequest, pendingValidatorPubkeysCache) {
64
+ export function processDepositRequest(fork, state, depositRequest, pendingDepositsLookup) {
64
65
  const { pubkey, withdrawalCredentials, amount, signature } = depositRequest;
65
- // Check if this is a builder or validator deposit
66
66
  if (fork >= ForkSeq.gloas) {
67
67
  const stateGloas = state;
68
- const pendingValidatorPubkeys = pendingValidatorPubkeysCache ?? getPendingValidatorPubkeys(state.config, stateGloas);
68
+ const lookup = pendingDepositsLookup ?? PendingDepositsLookup.build(stateGloas);
69
69
  const pubkeyHex = toPubkeyHex(pubkey);
70
70
  const builderIndex = findBuilderIndexByPubkey(stateGloas, pubkey);
71
71
  const validatorIndex = state.epochCtx.getValidatorIndex(pubkey);
72
- // Regardless of the withdrawal credentials prefix, if a builder/validator
73
- // already exists with this pubkey, apply the deposit to their balance
74
72
  const isBuilder = builderIndex !== null;
75
73
  const isValidator = isValidatorKnown(state, validatorIndex);
76
- const isPendingValidator = pendingValidatorPubkeys.has(pubkeyHex);
77
- if (isBuilder || (isBuilderWithdrawalCredential(withdrawalCredentials) && !isValidator && !isPendingValidator)) {
78
- // Apply builder deposits immediately
74
+ if (isBuilder) {
75
+ // Top up an existing builder regardless of withdrawal credential prefix
79
76
  applyDepositForBuilder(stateGloas, pubkey, withdrawalCredentials, amount, signature, state.slot);
80
77
  return;
81
78
  }
82
- // Keep the shared cache in sync: if this deposit has a valid signature, subsequent
83
- // deposit requests for the same pubkey in this envelope must see it as a pending validator
84
- if (pendingValidatorPubkeysCache &&
79
+ // Only check the (expensive) "pending validator" condition when needed
80
+ if (isBuilderWithdrawalCredential(withdrawalCredentials) &&
85
81
  !isValidator &&
86
- !isPendingValidator &&
87
- isValidDepositSignature(state.config, pubkey, withdrawalCredentials, amount, signature)) {
88
- pendingValidatorPubkeys.add(pubkeyHex);
82
+ !lookup.hasPendingValidator(state.config, pubkeyHex)) {
83
+ applyDepositForBuilder(stateGloas, pubkey, withdrawalCredentials, amount, signature, state.slot);
84
+ return;
89
85
  }
86
+ const pendingDeposit = ssz.electra.PendingDeposit.toViewDU({
87
+ pubkey,
88
+ withdrawalCredentials,
89
+ amount,
90
+ signature,
91
+ slot: state.slot,
92
+ });
93
+ // Keep the lookup in sync with state.pendingDeposits so later deposit-requests
94
+ // in the same envelope see this deposit
95
+ lookup.add(pendingDeposit, pubkeyHex);
96
+ state.pendingDeposits.push(pendingDeposit);
97
+ return;
90
98
  }
91
- // Only set deposit_requests_start_index in Electra fork, not Gloas
92
- if (fork < ForkSeq.gloas && state.depositRequestsStartIndex === UNSET_DEPOSIT_REQUESTS_START_INDEX) {
99
+ // Pre-Gloas (Electra) path
100
+ if (state.depositRequestsStartIndex === UNSET_DEPOSIT_REQUESTS_START_INDEX) {
93
101
  state.depositRequestsStartIndex = depositRequest.index;
94
102
  }
95
103
  // Add validator deposits to the queue
@@ -102,20 +110,4 @@ export function processDepositRequest(fork, state, depositRequest, pendingValida
102
110
  });
103
111
  state.pendingDeposits.push(pendingDeposit);
104
112
  }
105
- /**
106
- * Build a set of pubkeys (hex-encoded) from pending deposits that have valid signatures.
107
- * This is computed once and passed to each processDepositRequest call to avoid
108
- * repeatedly iterating state.pendingDeposits.
109
- *
110
- * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.3/specs/gloas/beacon-chain.md#new-is_pending_validator
111
- */
112
- export function getPendingValidatorPubkeys(config, state) {
113
- const result = new Set();
114
- for (const pendingDeposit of state.pendingDeposits.getAllReadonly()) {
115
- if (isValidDepositSignature(config, pendingDeposit.pubkey, pendingDeposit.withdrawalCredentials, pendingDeposit.amount, pendingDeposit.signature)) {
116
- result.add(toPubkeyHex(pendingDeposit.pubkey));
117
- }
118
- }
119
- return result;
120
- }
121
113
  //# sourceMappingURL=processDepositRequest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processDepositRequest.js","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processDepositRequest.js","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"processParentExecutionPayload.d.ts","sourceRoot":"","sources":["../../src/block/processParentExecutionPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAA6C,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAC,WAAW,EAAE,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAMnD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI,CAqBpH;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,OAAO,CAAC,iBAAiB,GAAG,IAAI,CA4CpH"}
1
+ {"version":3,"file":"processParentExecutionPayload.d.ts","sourceRoot":"","sources":["../../src/block/processParentExecutionPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAA6C,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAC,WAAW,EAAE,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAOnD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI,CAqBpH;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,OAAO,CAAC,iBAAiB,GAAG,IAAI,CA4CpH"}
@@ -2,8 +2,9 @@ import { SLOTS_PER_EPOCH, SLOTS_PER_HISTORICAL_ROOT } from "@lodestar/params";
2
2
  import { ssz } from "@lodestar/types";
3
3
  import { byteArrayEquals, toRootHex } from "@lodestar/utils";
4
4
  import { computeEpochAtSlot } from "../util/epoch.js";
5
+ import { PendingDepositsLookup } from "../util/pendingDepositsLookup.js";
5
6
  import { processConsolidationRequest } from "./processConsolidationRequest.js";
6
- import { getPendingValidatorPubkeys, processDepositRequest } from "./processDepositRequest.js";
7
+ import { processDepositRequest } from "./processDepositRequest.js";
7
8
  import { processWithdrawalRequest } from "./processWithdrawalRequest.js";
8
9
  /**
9
10
  * Process parent execution payload effects as the first step of processBlock.
@@ -45,9 +46,9 @@ export function applyParentExecutionPayload(state, requests) {
45
46
  // Process execution requests from parent's payload. The execution
46
47
  // requests are processed at state.slot (child's slot), not the parent's slot.
47
48
  if (requests.deposits.length > 0) {
48
- const pendingValidatorPubkeys = getPendingValidatorPubkeys(state.config, state);
49
+ const pendingDepositsLookup = PendingDepositsLookup.build(state);
49
50
  for (const deposit of requests.deposits) {
50
- processDepositRequest(fork, state, deposit, pendingValidatorPubkeys);
51
+ processDepositRequest(fork, state, deposit, pendingDepositsLookup);
51
52
  }
52
53
  }
53
54
  for (const withdrawal of requests.withdrawals) {
@@ -1 +1 @@
1
- {"version":3,"file":"processParentExecutionPayload.js","sourceRoot":"","sources":["../../src/block/processParentExecutionPayload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processParentExecutionPayload.js","sourceRoot":"","sources":["../../src/block/processParentExecutionPayload.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"epochCache.d.ts","sourceRoot":"","sources":["../../src/cache/epochCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"epochCache.d.ts","sourceRoot":"","sources":["../../src/cache/epochCache.ts"],"names":[],"mappings":"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"}
@@ -599,14 +599,17 @@ export class EpochCache {
599
599
  */
600
600
  getBeaconProposer(slot) {
601
601
  const epoch = computeEpochAtSlot(slot);
602
- if (epoch !== this.currentShuffling.epoch) {
603
- throw new EpochCacheError({
604
- code: EpochCacheErrorCode.PROPOSER_EPOCH_MISMATCH,
605
- currentEpoch: this.currentShuffling.epoch,
606
- requestedEpoch: epoch,
607
- });
602
+ if (epoch === this.currentShuffling.epoch) {
603
+ return this.proposers[slot % SLOTS_PER_EPOCH];
604
+ }
605
+ if (epoch === this.nextEpoch) {
606
+ return this.getBeaconProposersNextEpoch()[slot % SLOTS_PER_EPOCH];
608
607
  }
609
- return this.proposers[slot % SLOTS_PER_EPOCH];
608
+ throw new EpochCacheError({
609
+ code: EpochCacheErrorCode.PROPOSER_EPOCH_MISMATCH,
610
+ currentEpoch: this.currentShuffling.epoch,
611
+ requestedEpoch: epoch,
612
+ });
610
613
  }
611
614
  getBeaconProposers() {
612
615
  return this.proposers;
@@ -1 +1 @@
1
- {"version":3,"file":"epochCache.js","sourceRoot":"","sources":["../../src/cache/epochCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"epochCache.js","sourceRoot":"","sources":["../../src/cache/epochCache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { BeaconConfig } from "@lodestar/config";
2
+ import { LightClientBootstrap, LightClientFinalityUpdate, LightClientOptimisticUpdate, LightClientUpdate, Slot } from "@lodestar/types";
3
+ import { type ProcessUpdateOpts } from "./processLightClientUpdate.js";
4
+ import { type ILightClientStore, type LightClientStoreEvents } from "./store.js";
5
+ export type { LightClientUpdateSummary } from "./isBetterUpdate.js";
6
+ export { isBetterUpdate, toLightClientUpdateSummary } from "./isBetterUpdate.js";
7
+ export { type ProcessUpdateOpts, getSyncCommitteeAtPeriod, isSafeLightClientUpdate, processLightClientUpdate, } from "./processLightClientUpdate.js";
8
+ export { type ILightClientStore, LightClientStore, type LightClientStoreEvents, type LightClientUpdateWithSummary, type SyncCommitteeFast, } from "./store.js";
9
+ export { getSafetyThreshold, isFinalityUpdate, isSyncCommitteeUpdate, isValidLightClientHeader, normalizeMerkleBranch, upgradeLightClientFinalityUpdate, upgradeLightClientHeader, upgradeLightClientOptimisticUpdate, upgradeLightClientStore, upgradeLightClientUpdate, } from "./utils.js";
10
+ export { validateLightClientBootstrap } from "./validateLightClientBootstrap.js";
11
+ export { validateLightClientUpdate } from "./validateLightClientUpdate.js";
12
+ export declare class LightclientSpec {
13
+ private readonly opts;
14
+ readonly store: ILightClientStore;
15
+ readonly config: BeaconConfig;
16
+ constructor(config: BeaconConfig, opts: ProcessUpdateOpts & LightClientStoreEvents, bootstrap: LightClientBootstrap);
17
+ onUpdate(currentSlot: Slot, update: LightClientUpdate): void;
18
+ onFinalityUpdate(currentSlot: Slot, finalityUpdate: LightClientFinalityUpdate): void;
19
+ onOptimisticUpdate(currentSlot: Slot, optimisticUpdate: LightClientOptimisticUpdate): void;
20
+ forceUpdate(currentSlot: Slot): void;
21
+ }
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lightClient/spec/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,EACjB,IAAI,EACL,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,KAAK,iBAAiB,EAGvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAC,KAAK,iBAAiB,EAAoB,KAAK,sBAAsB,EAAC,MAAM,YAAY,CAAC;AAGjG,YAAY,EAAC,wBAAwB,EAAC,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAC,cAAc,EAAE,0BAA0B,EAAC,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,KAAK,iBAAiB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,GACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,gCAAgC,EAChC,wBAAwB,EACxB,kCAAkC,EAClC,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AAEzE,qBAAa,eAAe;IAMxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IALvB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAE9B,YACE,MAAM,EAAE,YAAY,EACH,IAAI,EAAE,iBAAiB,GAAG,sBAAsB,EACjE,SAAS,EAAE,oBAAoB,EAIhC;IAED,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAE3D;IAED,gBAAgB,CAAC,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,yBAAyB,GAAG,IAAI,CAUnF;IAED,kBAAkB,CAAC,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,2BAA2B,GAAG,IAAI,CAUzF;IAED,WAAW,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAUnC;CACF"}
@@ -0,0 +1,58 @@
1
+ import { UPDATE_TIMEOUT } from "@lodestar/params";
2
+ import { computeSyncPeriodAtSlot } from "../../util/epoch.js";
3
+ import { getSyncCommitteeAtPeriod, processLightClientUpdate, } from "./processLightClientUpdate.js";
4
+ import { LightClientStore } from "./store.js";
5
+ import { ZERO_HEADER, ZERO_SYNC_COMMITTEE, getZeroFinalityBranch, getZeroSyncCommitteeBranch } from "./utils.js";
6
+ export { isBetterUpdate, toLightClientUpdateSummary } from "./isBetterUpdate.js";
7
+ export { getSyncCommitteeAtPeriod, isSafeLightClientUpdate, processLightClientUpdate, } from "./processLightClientUpdate.js";
8
+ export { LightClientStore, } from "./store.js";
9
+ export { getSafetyThreshold, isFinalityUpdate, isSyncCommitteeUpdate, isValidLightClientHeader, normalizeMerkleBranch, upgradeLightClientFinalityUpdate, upgradeLightClientHeader, upgradeLightClientOptimisticUpdate, upgradeLightClientStore, upgradeLightClientUpdate, } from "./utils.js";
10
+ export { validateLightClientBootstrap } from "./validateLightClientBootstrap.js";
11
+ export { validateLightClientUpdate } from "./validateLightClientUpdate.js";
12
+ export class LightclientSpec {
13
+ opts;
14
+ store;
15
+ config;
16
+ constructor(config, opts, bootstrap) {
17
+ this.opts = opts;
18
+ this.store = new LightClientStore(config, bootstrap, opts);
19
+ this.config = config;
20
+ }
21
+ onUpdate(currentSlot, update) {
22
+ processLightClientUpdate(this.config, this.store, currentSlot, this.opts, update);
23
+ }
24
+ onFinalityUpdate(currentSlot, finalityUpdate) {
25
+ this.onUpdate(currentSlot, {
26
+ attestedHeader: finalityUpdate.attestedHeader,
27
+ nextSyncCommittee: ZERO_SYNC_COMMITTEE,
28
+ nextSyncCommitteeBranch: getZeroSyncCommitteeBranch(this.config.getForkName(finalityUpdate.signatureSlot)),
29
+ finalizedHeader: finalityUpdate.finalizedHeader,
30
+ finalityBranch: finalityUpdate.finalityBranch,
31
+ syncAggregate: finalityUpdate.syncAggregate,
32
+ signatureSlot: finalityUpdate.signatureSlot,
33
+ });
34
+ }
35
+ onOptimisticUpdate(currentSlot, optimisticUpdate) {
36
+ this.onUpdate(currentSlot, {
37
+ attestedHeader: optimisticUpdate.attestedHeader,
38
+ nextSyncCommittee: ZERO_SYNC_COMMITTEE,
39
+ nextSyncCommitteeBranch: getZeroSyncCommitteeBranch(this.config.getForkName(optimisticUpdate.signatureSlot)),
40
+ finalizedHeader: { beacon: ZERO_HEADER },
41
+ finalityBranch: getZeroFinalityBranch(this.config.getForkName(optimisticUpdate.signatureSlot)),
42
+ syncAggregate: optimisticUpdate.syncAggregate,
43
+ signatureSlot: optimisticUpdate.signatureSlot,
44
+ });
45
+ }
46
+ forceUpdate(currentSlot) {
47
+ for (const bestValidUpdate of this.store.bestValidUpdates.values()) {
48
+ if (currentSlot > bestValidUpdate.update.finalizedHeader.beacon.slot + UPDATE_TIMEOUT) {
49
+ const updatePeriod = computeSyncPeriodAtSlot(bestValidUpdate.update.signatureSlot);
50
+ // Simulate process_light_client_store_force_update() by forcing to apply a bestValidUpdate
51
+ // https://github.com/ethereum/consensus-specs/blob/a57e15636013eeba3610ff3ade41781dba1bb0cd/specs/altair/light-client/sync-protocol.md?plain=1#L394
52
+ // Call for `updatePeriod + 1` to force the update at `update.signatureSlot` to be applied
53
+ getSyncCommitteeAtPeriod(this.store, updatePeriod + 1, this.opts);
54
+ }
55
+ }
56
+ }
57
+ }
58
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lightClient/spec/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { LightClientUpdate, Slot } from "@lodestar/types";
2
+ /**
3
+ * Wrapper type for `isBetterUpdate()` so we can apply its logic without requiring the full LightClientUpdate type.
4
+ */
5
+ export type LightClientUpdateSummary = {
6
+ activeParticipants: number;
7
+ attestedHeaderSlot: Slot;
8
+ signatureSlot: Slot;
9
+ finalizedHeaderSlot: Slot;
10
+ /** `if update.next_sync_committee_branch != [Bytes32() for _ in range(floorlog2(NEXT_SYNC_COMMITTEE_INDEX))]` */
11
+ isSyncCommitteeUpdate: boolean;
12
+ /** `if update.finality_branch != [Bytes32() for _ in range(floorlog2(FINALIZED_ROOT_INDEX))]` */
13
+ isFinalityUpdate: boolean;
14
+ };
15
+ /**
16
+ * Returns the update with more bits. On ties, prevUpdate is the better
17
+ *
18
+ * https://github.com/ethereum/consensus-specs/blob/be3c774069e16e89145660be511c1b183056017e/specs/altair/light-client/sync-protocol.md#is_better_update
19
+ */
20
+ export declare function isBetterUpdate(newUpdate: LightClientUpdateSummary, oldUpdate: LightClientUpdateSummary): boolean;
21
+ export declare function isSafeLightClientUpdate(update: LightClientUpdateSummary): boolean;
22
+ export declare function toLightClientUpdateSummary(update: LightClientUpdate): LightClientUpdateSummary;
23
+ //# sourceMappingURL=isBetterUpdate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isBetterUpdate.d.ts","sourceRoot":"","sources":["../../../src/lightClient/spec/isBetterUpdate.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAIxD;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,IAAI,CAAC;IACzB,aAAa,EAAE,IAAI,CAAC;IACpB,mBAAmB,EAAE,IAAI,CAAC;IAC1B,iHAAiH;IACjH,qBAAqB,EAAE,OAAO,CAAC;IAC/B,iGAAiG;IACjG,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,wBAAwB,EAAE,SAAS,EAAE,wBAAwB,GAAG,OAAO,CAoDhH;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAIjF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,iBAAiB,GAAG,wBAAwB,CAS9F"}
@@ -0,0 +1,66 @@
1
+ import { SYNC_COMMITTEE_SIZE } from "@lodestar/params";
2
+ import { computeSyncPeriodAtSlot } from "../../util/epoch.js";
3
+ import { isFinalityUpdate, isSyncCommitteeUpdate, sumBits } from "./utils.js";
4
+ /**
5
+ * Returns the update with more bits. On ties, prevUpdate is the better
6
+ *
7
+ * https://github.com/ethereum/consensus-specs/blob/be3c774069e16e89145660be511c1b183056017e/specs/altair/light-client/sync-protocol.md#is_better_update
8
+ */
9
+ export function isBetterUpdate(newUpdate, oldUpdate) {
10
+ // Compare supermajority (> 2/3) sync committee participation
11
+ const newNumActiveParticipants = newUpdate.activeParticipants;
12
+ const oldNumActiveParticipants = oldUpdate.activeParticipants;
13
+ const newHasSupermajority = newNumActiveParticipants * 3 >= SYNC_COMMITTEE_SIZE * 2;
14
+ const oldHasSupermajority = oldNumActiveParticipants * 3 >= SYNC_COMMITTEE_SIZE * 2;
15
+ if (newHasSupermajority !== oldHasSupermajority) {
16
+ return newHasSupermajority;
17
+ }
18
+ if (!newHasSupermajority && newNumActiveParticipants !== oldNumActiveParticipants) {
19
+ return newNumActiveParticipants > oldNumActiveParticipants;
20
+ }
21
+ // Compare presence of relevant sync committee
22
+ const newHasRelevantSyncCommittee = newUpdate.isSyncCommitteeUpdate &&
23
+ computeSyncPeriodAtSlot(newUpdate.attestedHeaderSlot) === computeSyncPeriodAtSlot(newUpdate.signatureSlot);
24
+ const oldHasRelevantSyncCommittee = oldUpdate.isSyncCommitteeUpdate &&
25
+ computeSyncPeriodAtSlot(oldUpdate.attestedHeaderSlot) === computeSyncPeriodAtSlot(oldUpdate.signatureSlot);
26
+ if (newHasRelevantSyncCommittee !== oldHasRelevantSyncCommittee) {
27
+ return newHasRelevantSyncCommittee;
28
+ }
29
+ // Compare indication of any finality
30
+ const newHasFinality = newUpdate.isFinalityUpdate;
31
+ const oldHasFinality = oldUpdate.isFinalityUpdate;
32
+ if (newHasFinality !== oldHasFinality) {
33
+ return newHasFinality;
34
+ }
35
+ // Compare sync committee finality
36
+ if (newHasFinality) {
37
+ const newHasSyncCommitteeFinality = computeSyncPeriodAtSlot(newUpdate.finalizedHeaderSlot) === computeSyncPeriodAtSlot(newUpdate.attestedHeaderSlot);
38
+ const oldHasSyncCommitteeFinality = computeSyncPeriodAtSlot(oldUpdate.finalizedHeaderSlot) === computeSyncPeriodAtSlot(oldUpdate.attestedHeaderSlot);
39
+ if (newHasSyncCommitteeFinality !== oldHasSyncCommitteeFinality) {
40
+ return newHasSyncCommitteeFinality;
41
+ }
42
+ }
43
+ // Tiebreaker 1: Sync committee participation beyond supermajority
44
+ if (newNumActiveParticipants !== oldNumActiveParticipants) {
45
+ return newNumActiveParticipants > oldNumActiveParticipants;
46
+ }
47
+ // Tiebreaker 2: Prefer older data (fewer changes to best)
48
+ if (newUpdate.attestedHeaderSlot !== oldUpdate.attestedHeaderSlot) {
49
+ return newUpdate.attestedHeaderSlot < oldUpdate.attestedHeaderSlot;
50
+ }
51
+ return newUpdate.signatureSlot < oldUpdate.signatureSlot;
52
+ }
53
+ export function isSafeLightClientUpdate(update) {
54
+ return (update.activeParticipants * 3 >= SYNC_COMMITTEE_SIZE * 2 && update.isFinalityUpdate && update.isSyncCommitteeUpdate);
55
+ }
56
+ export function toLightClientUpdateSummary(update) {
57
+ return {
58
+ activeParticipants: sumBits(update.syncAggregate.syncCommitteeBits),
59
+ attestedHeaderSlot: update.attestedHeader.beacon.slot,
60
+ signatureSlot: update.signatureSlot,
61
+ finalizedHeaderSlot: update.finalizedHeader.beacon.slot,
62
+ isSyncCommitteeUpdate: isSyncCommitteeUpdate(update),
63
+ isFinalityUpdate: isFinalityUpdate(update),
64
+ };
65
+ }
66
+ //# sourceMappingURL=isBetterUpdate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isBetterUpdate.js","sourceRoot":"","sources":["../../../src/lightClient/spec/isBetterUpdate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { ChainForkConfig } from "@lodestar/config";
2
+ import { LightClientUpdate, Slot, SyncPeriod } from "@lodestar/types";
3
+ import { LightClientUpdateSummary } from "./isBetterUpdate.js";
4
+ import { type ILightClientStore, type SyncCommitteeFast } from "./store.js";
5
+ export interface ProcessUpdateOpts {
6
+ allowForcedUpdates?: boolean;
7
+ updateHeadersOnForcedUpdate?: boolean;
8
+ }
9
+ export declare function processLightClientUpdate(config: ChainForkConfig, store: ILightClientStore, currentSlot: Slot, opts: ProcessUpdateOpts, update: LightClientUpdate): void;
10
+ export declare function getSyncCommitteeAtPeriod(store: ILightClientStore, period: SyncPeriod, opts: ProcessUpdateOpts): SyncCommitteeFast;
11
+ export declare function isSafeLightClientUpdate(update: LightClientUpdateSummary): boolean;
12
+ //# sourceMappingURL=processLightClientUpdate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processLightClientUpdate.d.ts","sourceRoot":"","sources":["../../../src/lightClient/spec/processLightClientUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAC,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAGpE,OAAO,EAAC,wBAAwB,EAA6C,MAAM,qBAAqB,CAAC;AACzG,OAAO,EAAC,KAAK,iBAAiB,EAA0B,KAAK,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAIlG,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,IAAI,EACjB,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,iBAAiB,GACxB,IAAI,CA8CN;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,iBAAiB,GACtB,iBAAiB,CAuCnB;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAIjF"}