@lodestar/beacon-node 1.30.0-dev.2ff1784005 → 1.30.0-dev.3658525884

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 (63) hide show
  1. package/README.md +1 -1
  2. package/lib/api/impl/beacon/pool/index.js +1 -1
  3. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  4. package/lib/api/impl/beacon/state/index.js +14 -9
  5. package/lib/api/impl/beacon/state/index.js.map +1 -1
  6. package/lib/api/impl/lodestar/index.js.map +1 -1
  7. package/lib/api/impl/proof/index.js +4 -2
  8. package/lib/api/impl/proof/index.js.map +1 -1
  9. package/lib/api/impl/validator/index.js.map +1 -1
  10. package/lib/chain/archiveStore/archiveStore.d.ts +0 -1
  11. package/lib/chain/archiveStore/archiveStore.js +14 -13
  12. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  13. package/lib/chain/archiveStore/historicalState/worker.js +0 -2
  14. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  15. package/lib/chain/archiveStore/interface.d.ts +1 -0
  16. package/lib/chain/beaconProposerCache.d.ts +1 -3
  17. package/lib/chain/beaconProposerCache.js +1 -2
  18. package/lib/chain/beaconProposerCache.js.map +1 -1
  19. package/lib/chain/blocks/blockInput/blockInput.d.ts +164 -0
  20. package/lib/chain/blocks/blockInput/blockInput.js +522 -0
  21. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -0
  22. package/lib/chain/blocks/blockInput/errors.d.ts +38 -0
  23. package/lib/chain/blocks/blockInput/errors.js +17 -0
  24. package/lib/chain/blocks/blockInput/errors.js.map +1 -0
  25. package/lib/chain/blocks/blockInput/index.d.ts +4 -0
  26. package/lib/chain/blocks/blockInput/index.js +4 -0
  27. package/lib/chain/blocks/blockInput/index.js.map +1 -0
  28. package/lib/chain/blocks/blockInput/types.d.ts +116 -0
  29. package/lib/chain/blocks/blockInput/types.js +19 -0
  30. package/lib/chain/blocks/blockInput/types.js.map +1 -0
  31. package/lib/chain/bls/multithread/index.d.ts +1 -1
  32. package/lib/chain/bls/multithread/index.js +1 -1
  33. package/lib/chain/bls/multithread/index.js.map +1 -1
  34. package/lib/chain/bls/multithread/jobItem.d.ts +1 -1
  35. package/lib/chain/bls/multithread/jobItem.js +4 -12
  36. package/lib/chain/bls/multithread/jobItem.js.map +1 -1
  37. package/lib/chain/chain.js +3 -0
  38. package/lib/chain/chain.js.map +1 -1
  39. package/lib/chain/options.js +1 -0
  40. package/lib/chain/options.js.map +1 -1
  41. package/lib/chain/regen/queued.d.ts +0 -1
  42. package/lib/chain/regen/queued.js +0 -1
  43. package/lib/chain/regen/queued.js.map +1 -1
  44. package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
  45. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  46. package/lib/execution/engine/payloadIdCache.d.ts +0 -3
  47. package/lib/execution/engine/payloadIdCache.js +1 -2
  48. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  49. package/lib/metrics/metrics/lodestar.d.ts +1 -1
  50. package/lib/metrics/metrics/lodestar.js +4 -4
  51. package/lib/metrics/metrics/lodestar.js.map +1 -1
  52. package/lib/network/core/networkCore.js +3 -16
  53. package/lib/network/core/networkCore.js.map +1 -1
  54. package/lib/network/core/networkCoreWorkerHandler.d.ts +4 -3
  55. package/lib/network/network.d.ts +0 -1
  56. package/lib/network/network.js +0 -1
  57. package/lib/network/network.js.map +1 -1
  58. package/lib/network/peers/discover.d.ts +0 -4
  59. package/lib/network/peers/discover.js +1 -3
  60. package/lib/network/peers/discover.js.map +1 -1
  61. package/lib/network/peers/peerManager.js +0 -1
  62. package/lib/network/peers/peerManager.js.map +1 -1
  63. package/package.json +20 -20
@@ -1,13 +1,11 @@
1
1
  import { routes } from "@lodestar/api";
2
2
  import { Epoch } from "@lodestar/types";
3
- import { Metrics } from "../metrics/index.js";
4
3
  export type ProposerPreparationData = routes.validator.ProposerPreparationData;
5
4
  export declare class BeaconProposerCache {
6
- private readonly metrics?;
7
5
  private readonly feeRecipientByValidatorIndex;
8
6
  constructor(opts: {
9
7
  suggestedFeeRecipient: string;
10
- }, metrics?: (Metrics | null) | undefined);
8
+ });
11
9
  add(epoch: Epoch, { validatorIndex, feeRecipient }: ProposerPreparationData): void;
12
10
  prune(epoch: Epoch): void;
13
11
  getOrDefault(proposerIndex: number): string;
@@ -1,8 +1,7 @@
1
1
  import { MapDef } from "@lodestar/utils";
2
2
  const PROPOSER_PRESERVE_EPOCHS = 2;
3
3
  export class BeaconProposerCache {
4
- constructor(opts, metrics) {
5
- this.metrics = metrics;
4
+ constructor(opts) {
6
5
  this.feeRecipientByValidatorIndex = new MapDef(() => ({
7
6
  epoch: 0,
8
7
  feeRecipient: opts.suggestedFeeRecipient,
@@ -1 +1 @@
1
- {"version":3,"file":"beaconProposerCache.js","sourceRoot":"","sources":["../../src/chain/beaconProposerCache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAGvC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAInC,MAAM,OAAO,mBAAmB;IAE9B,YACE,IAAqC,EACpB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;QAEzC,IAAI,CAAC,4BAA4B,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YACpD,KAAK,EAAE,CAAC;YACR,YAAY,EAAE,IAAI,CAAC,qBAAqB;SACzC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,GAAG,CAAC,KAAY,EAAE,EAAC,cAAc,EAAE,YAAY,EAA0B;QACvE,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,cAAc,EAAE,EAAC,KAAK,EAAE,YAAY,EAAC,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,KAAY;QAChB,2EAA2E;QAC3E,KAAK,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,IAAI,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9F,8DAA8D;YAC9D,IAAI,iBAAiB,CAAC,KAAK,GAAG,wBAAwB,GAAG,KAAK,EAAE,CAAC;gBAC/D,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY,CAAC,aAAqB;QAChC,OAAO,IAAI,CAAC,4BAA4B,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC;IACpF,CAAC;IAED,GAAG,CAAC,aAAqB;QACvB,OAAO,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC;IAC5E,CAAC;CACF"}
1
+ {"version":3,"file":"beaconProposerCache.js","sourceRoot":"","sources":["../../src/chain/beaconProposerCache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAInC,MAAM,OAAO,mBAAmB;IAE9B,YAAY,IAAqC;QAC/C,IAAI,CAAC,4BAA4B,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YACpD,KAAK,EAAE,CAAC;YACR,YAAY,EAAE,IAAI,CAAC,qBAAqB;SACzC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,GAAG,CAAC,KAAY,EAAE,EAAC,cAAc,EAAE,YAAY,EAA0B;QACvE,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,cAAc,EAAE,EAAC,KAAK,EAAE,YAAY,EAAC,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,KAAY;QAChB,2EAA2E;QAC3E,KAAK,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,IAAI,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9F,8DAA8D;YAC9D,IAAI,iBAAiB,CAAC,KAAK,GAAG,wBAAwB,GAAG,KAAK,EAAE,CAAC;gBAC/D,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY,CAAC,aAAqB;QAChC,OAAO,IAAI,CAAC,4BAA4B,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC;IACpF,CAAC;IAED,GAAG,CAAC,aAAqB;QACvB,OAAO,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC;IAC5E,CAAC;CACF"}
@@ -0,0 +1,164 @@
1
+ import { ForkName, ForkPreDeneb } from "@lodestar/params";
2
+ import { BlobIndex, ColumnIndex, SignedBeaconBlock, Slot, deneb, fulu } from "@lodestar/types";
3
+ import { VersionedHashes } from "../../../execution/index.js";
4
+ import { AddBlob, AddBlock, AddColumn, BlobMeta, BlobWithSource, BlockInputInit, ColumnMeta, ColumnWithSource, CreateBlockInputMeta, DAData, DAType, IBlockInput, LogMetaBasic, LogMetaBlobs, LogMetaColumns, PromiseParts, SourceMeta } from "./types.js";
5
+ export type BlockInput = BlockInputPreData | BlockInputBlobs | BlockInputColumns;
6
+ export declare function createPromise<T>(): PromiseParts<T>;
7
+ type BlockInputState<F extends ForkName> = {
8
+ hasBlock: false;
9
+ hasAllData: false;
10
+ } | {
11
+ hasBlock: false;
12
+ hasAllData: true;
13
+ } | {
14
+ hasBlock: true;
15
+ hasAllData: false;
16
+ block: SignedBeaconBlock<F>;
17
+ source: SourceMeta;
18
+ } | {
19
+ hasBlock: true;
20
+ hasAllData: true;
21
+ block: SignedBeaconBlock<F>;
22
+ source: SourceMeta;
23
+ timeCompleteSec: number;
24
+ };
25
+ declare abstract class AbstractBlockInput<F extends ForkName = ForkName, TData extends DAData = DAData> implements IBlockInput<F, TData> {
26
+ abstract type: DAType;
27
+ daOutOfRange: boolean;
28
+ timeCreated: number;
29
+ forkName: ForkName;
30
+ slot: Slot;
31
+ blockRootHex: string;
32
+ parentRootHex: string;
33
+ abstract state: BlockInputState<F>;
34
+ protected blockPromise: PromiseParts<SignedBeaconBlock<F>>;
35
+ protected dataPromise: PromiseParts<TData>;
36
+ constructor(init: BlockInputInit);
37
+ abstract addBlock(props: AddBlock<F>): void;
38
+ hasBlock(): boolean;
39
+ getBlock(): SignedBeaconBlock<F>;
40
+ getBlockSource(): SourceMeta;
41
+ hasAllData(): boolean;
42
+ hasBlockAndAllData(): boolean;
43
+ getLogMeta(): LogMetaBasic;
44
+ getTimeComplete(): number;
45
+ waitForBlock(timeout: number, signal?: AbortSignal): Promise<SignedBeaconBlock<F>>;
46
+ waitForAllData(timeout: number, signal?: AbortSignal): Promise<TData>;
47
+ waitForBlockAndAllData(timeout: number, signal?: AbortSignal): Promise<this>;
48
+ }
49
+ type BlockInputPreDataState = {
50
+ hasBlock: true;
51
+ hasAllData: true;
52
+ block: SignedBeaconBlock<ForkPreDeneb>;
53
+ source: SourceMeta;
54
+ timeCompleteSec: number;
55
+ };
56
+ /**
57
+ * Pre-DA, BlockInput only has a single state.
58
+ * - the block simply exists
59
+ */
60
+ export declare class BlockInputPreData extends AbstractBlockInput<ForkPreDeneb, null> {
61
+ type: DAType.PreData;
62
+ state: BlockInputPreDataState;
63
+ private constructor();
64
+ static createFromBlock(props: AddBlock & CreateBlockInputMeta): BlockInputPreData;
65
+ addBlock(_: AddBlock): void;
66
+ }
67
+ export type ForkBlobsDA = ForkName.deneb | ForkName.electra;
68
+ type BlockInputBlobsState = {
69
+ hasBlock: true;
70
+ hasAllData: true;
71
+ versionedHashes: VersionedHashes;
72
+ block: SignedBeaconBlock<ForkBlobsDA>;
73
+ source: SourceMeta;
74
+ timeCompleteSec: number;
75
+ } | {
76
+ hasBlock: true;
77
+ hasAllData: false;
78
+ versionedHashes: VersionedHashes;
79
+ block: SignedBeaconBlock<ForkBlobsDA>;
80
+ source: SourceMeta;
81
+ } | {
82
+ hasBlock: false;
83
+ hasAllData: false;
84
+ };
85
+ /**
86
+ * With blobs, BlockInput has several states:
87
+ * - The block is seen and all blobs are seen
88
+ * - The block is seen and all blobs are not yet seen
89
+ * - The block is yet not seen and its unknown if all blobs are seen
90
+ */
91
+ export declare class BlockInputBlobs extends AbstractBlockInput<ForkBlobsDA, deneb.BlobSidecars> {
92
+ type: DAType.Blobs;
93
+ state: BlockInputBlobsState;
94
+ private blobsCache;
95
+ private constructor();
96
+ static createFromBlock(props: AddBlock<ForkBlobsDA> & CreateBlockInputMeta): BlockInputBlobs;
97
+ static createFromBlob(props: AddBlob & CreateBlockInputMeta): BlockInputBlobs;
98
+ getLogMeta(): LogMetaBlobs;
99
+ addBlock({ blockRootHex, block, source }: AddBlock<ForkBlobsDA>): void;
100
+ hasBlob(blobIndex: BlobIndex): boolean;
101
+ addBlob({ blockRootHex, blobSidecar, source, peerIdStr, seenTimestampSec }: AddBlob): void;
102
+ getVersionedHashes(): VersionedHashes;
103
+ getMissingBlobMeta(): BlobMeta[];
104
+ getAllBlobsWithSource(): BlobWithSource[];
105
+ getBlobs(): deneb.BlobSidecars;
106
+ }
107
+ export type ForkColumnsDA = ForkName.fulu;
108
+ type BlockInputColumnsState = {
109
+ hasBlock: true;
110
+ hasAllData: true;
111
+ versionedHashes: VersionedHashes;
112
+ block: SignedBeaconBlock<ForkColumnsDA>;
113
+ source: SourceMeta;
114
+ timeCompleteSec: number;
115
+ } | {
116
+ hasBlock: true;
117
+ hasAllData: false;
118
+ versionedHashes: VersionedHashes;
119
+ block: SignedBeaconBlock<ForkColumnsDA>;
120
+ source: SourceMeta;
121
+ } | {
122
+ hasBlock: false;
123
+ hasAllData: true;
124
+ versionedHashes: VersionedHashes;
125
+ } | {
126
+ hasBlock: false;
127
+ hasAllData: false;
128
+ versionedHashes: VersionedHashes;
129
+ };
130
+ /**
131
+ * With columns, BlockInput has several states:
132
+ * - The block is seen and all required sampled columns are seen
133
+ * - The block is seen and all required sampled columns are not yet seen
134
+ * - The block is not yet seen and all required sampled columns are seen
135
+ * - The block is not yet seen and all required sampled columns are not yet seen
136
+ */
137
+ export declare class BlockInputColumns extends AbstractBlockInput<ForkColumnsDA, fulu.DataColumnSidecars> {
138
+ type: DAType.Columns;
139
+ state: BlockInputColumnsState;
140
+ private columnsCache;
141
+ private readonly sampledColumns;
142
+ private readonly custodyColumns;
143
+ private constructor();
144
+ static createFromBlock(props: AddBlock<ForkColumnsDA> & CreateBlockInputMeta & {
145
+ sampledColumns: ColumnIndex[];
146
+ custodyColumns: ColumnIndex[];
147
+ }): BlockInputColumns;
148
+ static createFromColumn(props: AddColumn & CreateBlockInputMeta & {
149
+ sampledColumns: ColumnIndex[];
150
+ custodyColumns: ColumnIndex[];
151
+ }): BlockInputColumns;
152
+ getLogMeta(): LogMetaColumns;
153
+ addBlock(props: AddBlock<ForkColumnsDA>): void;
154
+ addColumn({ blockRootHex, columnSidecar, source, seenTimestampSec, peerIdStr }: AddColumn): void;
155
+ hasColumn(columnIndex: number): boolean;
156
+ getVersionedHashes(): VersionedHashes;
157
+ getCustodyColumns(): fulu.DataColumnSidecars;
158
+ getSampledColumns(): fulu.DataColumnSidecars;
159
+ getAllColumnsWithSource(): ColumnWithSource[];
160
+ getAllColumns(): fulu.DataColumnSidecars;
161
+ getMissingSampledColumnMeta(): ColumnMeta[];
162
+ }
163
+ export {};
164
+ //# sourceMappingURL=blockInput.d.ts.map