@lodestar/beacon-node 1.32.0-peerDAS.e15004b365 → 1.32.0-peerDAS.fbabed864b
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/lib/chain/blocks/verifyBlocksDataAvailability.js +2 -2
- package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
- package/lib/chain/chain.js +1 -1
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js +3 -3
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts +1 -1
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js +6 -12
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
- package/lib/chain/seenCache/seenGossipBlockInput.js +1 -1
- package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
- package/lib/chain/validation/blobSidecar.d.ts +1 -1
- package/lib/chain/validation/blobSidecar.js +6 -6
- package/lib/chain/validation/blobSidecar.js.map +1 -1
- package/lib/chain/validation/dataColumnSidecar.d.ts +2 -2
- package/lib/chain/validation/dataColumnSidecar.js +7 -7
- package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
- package/lib/execution/engine/mock.js +3 -3
- package/lib/execution/engine/mock.js.map +1 -1
- package/lib/metrics/metrics/beacon.d.ts +4 -0
- package/lib/metrics/metrics/beacon.js +18 -1
- package/lib/metrics/metrics/beacon.js.map +1 -1
- package/lib/network/networkConfig.js +1 -1
- package/lib/network/networkConfig.js.map +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
- package/lib/node/nodejs.js +0 -6
- package/lib/node/nodejs.js.map +1 -1
- package/lib/util/blobs.js +2 -2
- package/lib/util/blobs.js.map +1 -1
- package/lib/util/dataColumns.d.ts +20 -6
- package/lib/util/dataColumns.js +14 -7
- package/lib/util/dataColumns.js.map +1 -1
- package/lib/util/kzg.d.ts +2 -22
- package/lib/util/kzg.js +2 -47
- package/lib/util/kzg.js.map +1 -1
- package/package.json +15 -15
package/lib/util/dataColumns.js
CHANGED
|
@@ -6,15 +6,17 @@ import { bytesToBigInt } from "@lodestar/utils";
|
|
|
6
6
|
import { BlockSource, DataColumnsSource, getBlockInput, getBlockInputDataColumns, } from "../chain/blocks/types.js";
|
|
7
7
|
import { ChainEvent } from "../chain/emitter.js";
|
|
8
8
|
import { computeKzgCommitmentsInclusionProof, kzgCommitmentToVersionedHash } from "./blobs.js";
|
|
9
|
-
import {
|
|
9
|
+
import { kzg } from "./kzg.js";
|
|
10
10
|
export class CustodyConfig {
|
|
11
|
-
constructor(nodeId, config) {
|
|
11
|
+
constructor(nodeId, config, metrics) {
|
|
12
12
|
this.config = config;
|
|
13
13
|
this.nodeId = nodeId;
|
|
14
|
+
this.metrics = metrics;
|
|
14
15
|
this.targetCustodyGroupCount = Math.max(config.CUSTODY_REQUIREMENT, config.NODE_CUSTODY_REQUIREMENT);
|
|
15
16
|
this.custodyColumns = getDataColumns(this.nodeId, this.targetCustodyGroupCount);
|
|
16
17
|
this.custodyColumnsIndex = this.getCustodyColumnsIndex(this.custodyColumns);
|
|
17
18
|
this.advertisedCustodyGroupCount = this.targetCustodyGroupCount;
|
|
19
|
+
this.metrics?.peerDas.custodyGroupCount.set(this.advertisedCustodyGroupCount);
|
|
18
20
|
this.sampledGroupCount = Math.max(this.targetCustodyGroupCount, this.config.SAMPLES_PER_SLOT);
|
|
19
21
|
this.sampleGroups = getCustodyGroups(this.nodeId, this.sampledGroupCount);
|
|
20
22
|
this.sampledColumns = getDataColumns(this.nodeId, this.sampledGroupCount);
|
|
@@ -33,6 +35,7 @@ export class CustodyConfig {
|
|
|
33
35
|
}
|
|
34
36
|
updateAdvertisedCustodyGroupCount(advertisedCustodyGroupCount) {
|
|
35
37
|
this.advertisedCustodyGroupCount = advertisedCustodyGroupCount;
|
|
38
|
+
this.metrics?.peerDas.custodyGroupCount.set(this.advertisedCustodyGroupCount);
|
|
36
39
|
}
|
|
37
40
|
getCustodyColumnsIndex(custodyColumns) {
|
|
38
41
|
// custody columns map which column maps to which index in the array of columns custodied
|
|
@@ -135,9 +138,9 @@ export function getDataColumns(nodeId, custodyGroupCount) {
|
|
|
135
138
|
* https://github.com/ethereum/consensus-specs/blob/dev/specs/fulu/das-core.md#compute_matrix
|
|
136
139
|
*/
|
|
137
140
|
export function getCellsAndProofs(blobBundles) {
|
|
138
|
-
return blobBundles.map(({ blob, proofs
|
|
139
|
-
const cells =
|
|
140
|
-
return
|
|
141
|
+
return blobBundles.map(({ blob, proofs }) => {
|
|
142
|
+
const cells = kzg.computeCells(blob);
|
|
143
|
+
return { cells, proofs };
|
|
141
144
|
});
|
|
142
145
|
}
|
|
143
146
|
/**
|
|
@@ -155,7 +158,7 @@ export function getDataColumnSidecars(signedBlockHeader, kzgCommitments, kzgComm
|
|
|
155
158
|
for (let columnIndex = 0; columnIndex < NUMBER_OF_COLUMNS; columnIndex++) {
|
|
156
159
|
const columnCells = [];
|
|
157
160
|
const columnProofs = [];
|
|
158
|
-
for (const
|
|
161
|
+
for (const { cells, proofs } of cellsAndKzgProofs) {
|
|
159
162
|
columnCells.push(cells[columnIndex]);
|
|
160
163
|
columnProofs.push(proofs[columnIndex]);
|
|
161
164
|
}
|
|
@@ -198,7 +201,7 @@ export function hasSampledDataColumns(custodyConfig, dataColumnCache) {
|
|
|
198
201
|
return (dataColumnCache.size >= custodyConfig.sampledColumns.length &&
|
|
199
202
|
custodyConfig.sampledColumns.reduce((acc, columnIndex) => acc && dataColumnCache.has(columnIndex), true));
|
|
200
203
|
}
|
|
201
|
-
export async function getDataColumnsFromExecution(config, custodyConfig, executionEngine, emitter, blockCache) {
|
|
204
|
+
export async function getDataColumnsFromExecution(config, custodyConfig, executionEngine, emitter, blockCache, metrics) {
|
|
202
205
|
if (blockCache.fork !== ForkName.fulu) {
|
|
203
206
|
return false;
|
|
204
207
|
}
|
|
@@ -232,11 +235,15 @@ export async function getDataColumnsFromExecution(config, custodyConfig, executi
|
|
|
232
235
|
// Process KZG commitments into versioned hashes
|
|
233
236
|
const versionedHashes = commitments.map(kzgCommitmentToVersionedHash);
|
|
234
237
|
// Get blobs from execution engine
|
|
238
|
+
metrics?.peerDas.getBlobsV2Requests.inc();
|
|
239
|
+
const timer = metrics?.peerDas.getBlobsV2Runtime.startTimer();
|
|
235
240
|
const blobs = await executionEngine.getBlobs(blockCache.fork, versionedHashes);
|
|
241
|
+
timer?.();
|
|
236
242
|
// Execution engine was unable to find one or more blobs
|
|
237
243
|
if (blobs === null) {
|
|
238
244
|
return false;
|
|
239
245
|
}
|
|
246
|
+
metrics?.peerDas.getBlobsV2Responses.inc();
|
|
240
247
|
// Return if we received all data columns while waiting for getBlobs
|
|
241
248
|
if (hasSampledDataColumns(custodyConfig, blockCache.cachedData.dataColumnsCache)) {
|
|
242
249
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataColumns.js","sourceRoot":"","sources":["../../src/util/dataColumns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,QAAQ,EACR,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAA4B,yBAAyB,EAAC,MAAM,4BAA4B,CAAC;AAEhG,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAEL,WAAW,EAEX,iBAAiB,EACjB,aAAa,EACb,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,UAAU,EAAoB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"dataColumns.js","sourceRoot":"","sources":["../../src/util/dataColumns.ts"],"names":[],"mappings":"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"}
|
package/lib/util/kzg.d.ts
CHANGED
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
export declare
|
|
3
|
-
loadTrustedSetup(precompute: number, filePath?: string): void;
|
|
4
|
-
blobToKzgCommitment(blob: Uint8Array): Uint8Array;
|
|
5
|
-
computeKzgProof(blob: Uint8Array, zBytes: Uint8Array): [Uint8Array, Uint8Array];
|
|
6
|
-
computeBlobKzgProof(blob: Uint8Array, commitment: Uint8Array): Uint8Array;
|
|
7
|
-
verifyKzgProof(commitmentBytes: Uint8Array, zBytes: Uint8Array, yBytes: Uint8Array, proofBytes: Uint8Array): boolean;
|
|
8
|
-
verifyBlobKzgProof(blob: Uint8Array, commitment: Uint8Array, proof: Uint8Array): boolean;
|
|
9
|
-
verifyBlobKzgProofBatch(blobs: Uint8Array[], expectedKzgCommitments: Uint8Array[], kzgProofs: Uint8Array[]): boolean;
|
|
10
|
-
computeCells(blob: Uint8Array): Uint8Array[];
|
|
11
|
-
computeCellsAndKzgProofs(blob: Uint8Array): [Uint8Array[], Uint8Array[]];
|
|
12
|
-
recoverCellsAndKzgProofs(cellIndices: number[], cells: Uint8Array[]): [Uint8Array[], Uint8Array[]];
|
|
13
|
-
verifyCellKzgProofBatch(commitmentsBytes: Uint8Array[], cellIndices: number[], cells: Uint8Array[], proofsBytes: Uint8Array[]): boolean;
|
|
14
|
-
};
|
|
15
|
-
export declare function initCKZG(): Promise<void>;
|
|
16
|
-
/**
|
|
17
|
-
* Load our KZG trusted setup into C-KZG for later use.
|
|
18
|
-
* We persist the trusted setup as serialized bytes to save space over TXT or JSON formats.
|
|
19
|
-
* However the current c-kzg API **requires** to read from a file with a specific .txt format
|
|
20
|
-
*/
|
|
21
|
-
export declare function loadEthereumTrustedSetup(precompute?: number, // default to 0 for testing
|
|
22
|
-
filePath?: string): void;
|
|
1
|
+
import { DasContextJs } from "@crate-crypto/node-eth-kzg";
|
|
2
|
+
export declare const kzg: DasContextJs;
|
|
23
3
|
//# sourceMappingURL=kzg.d.ts.map
|
package/lib/util/kzg.js
CHANGED
|
@@ -1,48 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
export const
|
|
3
|
-
function ckzgNotLoaded() {
|
|
4
|
-
throw Error("c-kzg library not loaded");
|
|
5
|
-
}
|
|
6
|
-
export let ckzg = {
|
|
7
|
-
loadTrustedSetup: ckzgNotLoaded,
|
|
8
|
-
blobToKzgCommitment: ckzgNotLoaded,
|
|
9
|
-
computeKzgProof: ckzgNotLoaded,
|
|
10
|
-
computeBlobKzgProof: ckzgNotLoaded,
|
|
11
|
-
verifyKzgProof: ckzgNotLoaded,
|
|
12
|
-
verifyBlobKzgProof: ckzgNotLoaded,
|
|
13
|
-
verifyBlobKzgProofBatch: ckzgNotLoaded,
|
|
14
|
-
computeCells: ckzgNotLoaded,
|
|
15
|
-
computeCellsAndKzgProofs: ckzgNotLoaded,
|
|
16
|
-
recoverCellsAndKzgProofs: ckzgNotLoaded,
|
|
17
|
-
verifyCellKzgProofBatch: ckzgNotLoaded,
|
|
18
|
-
};
|
|
19
|
-
export async function initCKZG() {
|
|
20
|
-
// @ts-ignore
|
|
21
|
-
ckzg = (await import("c-kzg")).default;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Load our KZG trusted setup into C-KZG for later use.
|
|
25
|
-
* We persist the trusted setup as serialized bytes to save space over TXT or JSON formats.
|
|
26
|
-
* However the current c-kzg API **requires** to read from a file with a specific .txt format
|
|
27
|
-
*/
|
|
28
|
-
export function loadEthereumTrustedSetup(precompute = 0, // default to 0 for testing
|
|
29
|
-
filePath) {
|
|
30
|
-
try {
|
|
31
|
-
try {
|
|
32
|
-
// in unit tests, calling loadTrustedSetup() twice has error so we have to free and retry
|
|
33
|
-
ckzg.loadTrustedSetup(precompute, filePath);
|
|
34
|
-
}
|
|
35
|
-
catch (e) {
|
|
36
|
-
if (e.message !== "Error trusted setup is already loaded") {
|
|
37
|
-
throw e;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
catch (e) {
|
|
42
|
-
e.message = filePath
|
|
43
|
-
? `Error loading trusted setup ${filePath}: ${e.message}`
|
|
44
|
-
: `Error loading default trusted setup: ${e.message}`;
|
|
45
|
-
throw e;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
1
|
+
import { DasContextJs } from "@crate-crypto/node-eth-kzg";
|
|
2
|
+
export const kzg = DasContextJs.create({ usePrecomp: true });
|
|
48
3
|
//# sourceMappingURL=kzg.js.map
|
package/lib/util/kzg.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kzg.js","sourceRoot":"","sources":["../../src/util/kzg.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"kzg.js","sourceRoot":"","sources":["../../src/util/kzg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAExD,MAAM,CAAC,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,EAAC,UAAU,EAAE,IAAI,EAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/ChainSafe/lodestar/issues"
|
|
13
13
|
},
|
|
14
|
-
"version": "1.32.0-peerDAS.
|
|
14
|
+
"version": "1.32.0-peerDAS.fbabed864b",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -103,6 +103,7 @@
|
|
|
103
103
|
"@chainsafe/pubkey-index-map": "^3.0.0",
|
|
104
104
|
"@chainsafe/ssz": "^1.2.1",
|
|
105
105
|
"@chainsafe/threads": "^1.11.2",
|
|
106
|
+
"@crate-crypto/node-eth-kzg": "^0.7.1",
|
|
106
107
|
"@ethersproject/abi": "^5.7.0",
|
|
107
108
|
"@fastify/bearer-auth": "^10.0.1",
|
|
108
109
|
"@fastify/cors": "^10.0.1",
|
|
@@ -117,20 +118,19 @@
|
|
|
117
118
|
"@libp2p/peer-id": "^5.1.0",
|
|
118
119
|
"@libp2p/prometheus-metrics": "^4.3.15",
|
|
119
120
|
"@libp2p/tcp": "^10.1.8",
|
|
120
|
-
"@lodestar/api": "1.32.0-peerDAS.
|
|
121
|
-
"@lodestar/config": "1.32.0-peerDAS.
|
|
122
|
-
"@lodestar/db": "1.32.0-peerDAS.
|
|
123
|
-
"@lodestar/fork-choice": "1.32.0-peerDAS.
|
|
124
|
-
"@lodestar/light-client": "1.32.0-peerDAS.
|
|
125
|
-
"@lodestar/logger": "1.32.0-peerDAS.
|
|
126
|
-
"@lodestar/params": "1.32.0-peerDAS.
|
|
127
|
-
"@lodestar/reqresp": "1.32.0-peerDAS.
|
|
128
|
-
"@lodestar/state-transition": "1.32.0-peerDAS.
|
|
129
|
-
"@lodestar/types": "1.32.0-peerDAS.
|
|
130
|
-
"@lodestar/utils": "1.32.0-peerDAS.
|
|
131
|
-
"@lodestar/validator": "1.32.0-peerDAS.
|
|
121
|
+
"@lodestar/api": "1.32.0-peerDAS.fbabed864b",
|
|
122
|
+
"@lodestar/config": "1.32.0-peerDAS.fbabed864b",
|
|
123
|
+
"@lodestar/db": "1.32.0-peerDAS.fbabed864b",
|
|
124
|
+
"@lodestar/fork-choice": "1.32.0-peerDAS.fbabed864b",
|
|
125
|
+
"@lodestar/light-client": "1.32.0-peerDAS.fbabed864b",
|
|
126
|
+
"@lodestar/logger": "1.32.0-peerDAS.fbabed864b",
|
|
127
|
+
"@lodestar/params": "1.32.0-peerDAS.fbabed864b",
|
|
128
|
+
"@lodestar/reqresp": "1.32.0-peerDAS.fbabed864b",
|
|
129
|
+
"@lodestar/state-transition": "1.32.0-peerDAS.fbabed864b",
|
|
130
|
+
"@lodestar/types": "1.32.0-peerDAS.fbabed864b",
|
|
131
|
+
"@lodestar/utils": "1.32.0-peerDAS.fbabed864b",
|
|
132
|
+
"@lodestar/validator": "1.32.0-peerDAS.fbabed864b",
|
|
132
133
|
"@multiformats/multiaddr": "^12.1.3",
|
|
133
|
-
"c-kzg": "^4.1.0",
|
|
134
134
|
"datastore-core": "^10.0.2",
|
|
135
135
|
"datastore-level": "^11.0.1",
|
|
136
136
|
"deepmerge": "^4.3.1",
|
|
@@ -165,5 +165,5 @@
|
|
|
165
165
|
"beacon",
|
|
166
166
|
"blockchain"
|
|
167
167
|
],
|
|
168
|
-
"gitHead": "
|
|
168
|
+
"gitHead": "b3c8710655a377385daaf818266724ac9477c19b"
|
|
169
169
|
}
|