@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.
- package/README.md +1 -1
- package/lib/api/impl/beacon/pool/index.js +1 -1
- package/lib/api/impl/beacon/pool/index.js.map +1 -1
- package/lib/api/impl/beacon/state/index.js +14 -9
- package/lib/api/impl/beacon/state/index.js.map +1 -1
- package/lib/api/impl/lodestar/index.js.map +1 -1
- package/lib/api/impl/proof/index.js +4 -2
- package/lib/api/impl/proof/index.js.map +1 -1
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/chain/archiveStore/archiveStore.d.ts +0 -1
- package/lib/chain/archiveStore/archiveStore.js +14 -13
- package/lib/chain/archiveStore/archiveStore.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/worker.js +0 -2
- package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
- package/lib/chain/archiveStore/interface.d.ts +1 -0
- package/lib/chain/beaconProposerCache.d.ts +1 -3
- package/lib/chain/beaconProposerCache.js +1 -2
- package/lib/chain/beaconProposerCache.js.map +1 -1
- package/lib/chain/blocks/blockInput/blockInput.d.ts +164 -0
- package/lib/chain/blocks/blockInput/blockInput.js +522 -0
- package/lib/chain/blocks/blockInput/blockInput.js.map +1 -0
- package/lib/chain/blocks/blockInput/errors.d.ts +38 -0
- package/lib/chain/blocks/blockInput/errors.js +17 -0
- package/lib/chain/blocks/blockInput/errors.js.map +1 -0
- package/lib/chain/blocks/blockInput/index.d.ts +4 -0
- package/lib/chain/blocks/blockInput/index.js +4 -0
- package/lib/chain/blocks/blockInput/index.js.map +1 -0
- package/lib/chain/blocks/blockInput/types.d.ts +116 -0
- package/lib/chain/blocks/blockInput/types.js +19 -0
- package/lib/chain/blocks/blockInput/types.js.map +1 -0
- package/lib/chain/bls/multithread/index.d.ts +1 -1
- package/lib/chain/bls/multithread/index.js +1 -1
- package/lib/chain/bls/multithread/index.js.map +1 -1
- package/lib/chain/bls/multithread/jobItem.d.ts +1 -1
- package/lib/chain/bls/multithread/jobItem.js +4 -12
- package/lib/chain/bls/multithread/jobItem.js.map +1 -1
- package/lib/chain/chain.js +3 -0
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/options.js +1 -0
- package/lib/chain/options.js.map +1 -1
- package/lib/chain/regen/queued.d.ts +0 -1
- package/lib/chain/regen/queued.js +0 -1
- package/lib/chain/regen/queued.js.map +1 -1
- package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
- package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
- package/lib/execution/engine/payloadIdCache.d.ts +0 -3
- package/lib/execution/engine/payloadIdCache.js +1 -2
- package/lib/execution/engine/payloadIdCache.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +1 -1
- package/lib/metrics/metrics/lodestar.js +4 -4
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/network/core/networkCore.js +3 -16
- package/lib/network/core/networkCore.js.map +1 -1
- package/lib/network/core/networkCoreWorkerHandler.d.ts +4 -3
- package/lib/network/network.d.ts +0 -1
- package/lib/network/network.js +0 -1
- package/lib/network/network.js.map +1 -1
- package/lib/network/peers/discover.d.ts +0 -4
- package/lib/network/peers/discover.js +1 -3
- package/lib/network/peers/discover.js.map +1 -1
- package/lib/network/peers/peerManager.js +0 -1
- package/lib/network/peers/peerManager.js.map +1 -1
- 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
|
-
}
|
|
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
|
|
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;
|
|
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
|