@lodestar/validator 1.34.0-dev.d5be46d90d → 1.34.0-dev.ece38879ec
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/services/block.js +24 -37
- package/lib/services/block.js.map +1 -1
- package/package.json +10 -10
package/lib/services/block.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { routes } from "@lodestar/api";
|
|
2
|
-
import { ProducedBlockSource, isBlindedSignedBeaconBlock,
|
|
2
|
+
import { ProducedBlockSource, isBlindedSignedBeaconBlock, } from "@lodestar/types";
|
|
3
3
|
import { extendError, prettyBytes, prettyWeiToEth, toPubkeyHex } from "@lodestar/utils";
|
|
4
4
|
import { BlockDutiesService, GENESIS_SLOT } from "./blockDuties.js";
|
|
5
5
|
/**
|
|
@@ -30,23 +30,18 @@ export class BlockProposingService {
|
|
|
30
30
|
this.logger.error("Error on block duties", { slot }, e);
|
|
31
31
|
});
|
|
32
32
|
};
|
|
33
|
-
this.publishBlockWrapper = async (
|
|
34
|
-
if (isBlindedSignedBeaconBlock(signedBlock)) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
this.publishBlockWrapper = async (signedBlindedBlockOrBlockContents, opts = {}) => {
|
|
34
|
+
if (isBlindedSignedBeaconBlock(signedBlindedBlockOrBlockContents.signedBlock)) {
|
|
35
|
+
(await this.api.beacon.publishBlindedBlockV2({
|
|
36
|
+
signedBlindedBlock: signedBlindedBlockOrBlockContents.signedBlock,
|
|
37
|
+
...opts,
|
|
38
|
+
})).assertOk();
|
|
39
39
|
}
|
|
40
40
|
else {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
(await this.api.beacon.publishBlockV2({
|
|
46
|
-
signedBlockOrContents: { ...contents, signedBlock: signedBlock },
|
|
47
|
-
...opts,
|
|
48
|
-
})).assertOk();
|
|
49
|
-
}
|
|
41
|
+
(await this.api.beacon.publishBlockV2({
|
|
42
|
+
signedBlockContents: signedBlindedBlockOrBlockContents,
|
|
43
|
+
...opts,
|
|
44
|
+
})).assertOk();
|
|
50
45
|
}
|
|
51
46
|
};
|
|
52
47
|
this.produceBlockWrapper = async (_config, slot, randaoReveal, graffiti, builderBoostFactor, { feeRecipient, strictFeeRecipientCheck, blindedLocal }, builderSelection) => {
|
|
@@ -107,22 +102,29 @@ export class BlockProposingService {
|
|
|
107
102
|
strictFeeRecipientCheck,
|
|
108
103
|
blindedLocal,
|
|
109
104
|
};
|
|
110
|
-
const
|
|
105
|
+
const blockContentsWrapper = await this.produceBlockWrapper(this.config, slot, randaoReveal, graffiti, builderBoostFactor, produceOpts, builderSelection).catch((e) => {
|
|
111
106
|
this.metrics?.blockProposingErrors.inc({ error: "produce" });
|
|
112
107
|
throw extendError(e, "Failed to produce block");
|
|
113
108
|
});
|
|
114
|
-
this.logger.debug("Produced block", { ...debugLogCtx, ...
|
|
109
|
+
this.logger.debug("Produced block", { ...debugLogCtx, ...blockContentsWrapper.debugLogCtx });
|
|
115
110
|
this.metrics?.blocksProduced.inc();
|
|
116
|
-
const
|
|
111
|
+
const block = blockContentsWrapper.executionPayloadBlinded
|
|
112
|
+
? blockContentsWrapper.block
|
|
113
|
+
: blockContentsWrapper.blockContents.block;
|
|
114
|
+
const signedBlock = await this.validatorStore.signBlock(pubkey, block, slot, this.logger);
|
|
117
115
|
const { broadcastValidation } = this.opts;
|
|
118
116
|
const publishOpts = { broadcastValidation };
|
|
119
|
-
|
|
117
|
+
const signedBlindedBlockOrBlockContents = blockContentsWrapper.executionPayloadBlinded
|
|
118
|
+
? { signedBlock }
|
|
119
|
+
: { signedBlock, ...blockContentsWrapper.blockContents };
|
|
120
|
+
delete signedBlindedBlockOrBlockContents.block; // remove block if present
|
|
121
|
+
await this.publishBlockWrapper(signedBlindedBlockOrBlockContents, publishOpts).catch((e) => {
|
|
120
122
|
this.metrics?.blockProposingErrors.inc({ error: "publish" });
|
|
121
123
|
throw extendError(e, "Failed to publish block");
|
|
122
124
|
});
|
|
123
125
|
this.metrics?.proposerStepCallPublishBlock.observe(this.clock.secFromSlot(slot));
|
|
124
126
|
this.metrics?.blocksPublished.inc();
|
|
125
|
-
this.logger.info("Published block", { ...logCtx, graffiti, ...
|
|
127
|
+
this.logger.info("Published block", { ...logCtx, graffiti, ...blockContentsWrapper.debugLogCtx });
|
|
126
128
|
}
|
|
127
129
|
catch (e) {
|
|
128
130
|
this.logger.error("Error proposing block", logCtx, e);
|
|
@@ -140,28 +142,13 @@ function parseProduceBlockResponse(response, debugLogCtx, builderSelection) {
|
|
|
140
142
|
if (response.executionPayloadBlinded) {
|
|
141
143
|
return {
|
|
142
144
|
block: response.data,
|
|
143
|
-
contents: null,
|
|
144
|
-
version: response.version,
|
|
145
145
|
executionPayloadBlinded: true,
|
|
146
146
|
executionPayloadSource,
|
|
147
147
|
debugLogCtx,
|
|
148
148
|
};
|
|
149
149
|
}
|
|
150
|
-
const data = response.data;
|
|
151
|
-
if (isBlockContents(data)) {
|
|
152
|
-
return {
|
|
153
|
-
block: data.block,
|
|
154
|
-
contents: { blobs: data.blobs, kzgProofs: data.kzgProofs },
|
|
155
|
-
version: response.version,
|
|
156
|
-
executionPayloadBlinded: false,
|
|
157
|
-
executionPayloadSource,
|
|
158
|
-
debugLogCtx,
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
150
|
return {
|
|
162
|
-
|
|
163
|
-
contents: null,
|
|
164
|
-
version: response.version,
|
|
151
|
+
blockContents: response.data,
|
|
165
152
|
executionPayloadBlinded: false,
|
|
166
153
|
executionPayloadSource,
|
|
167
154
|
debugLogCtx,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block.js","sourceRoot":"","sources":["../../src/services/block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"block.js","sourceRoot":"","sources":["../../src/services/block.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lodestar/validator",
|
|
3
|
-
"version": "1.34.0-dev.
|
|
3
|
+
"version": "1.34.0-dev.ece38879ec",
|
|
4
4
|
"description": "A Typescript implementation of the validator client",
|
|
5
5
|
"author": "ChainSafe Systems",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -47,19 +47,19 @@
|
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@chainsafe/blst": "^2.2.0",
|
|
49
49
|
"@chainsafe/ssz": "^1.2.1",
|
|
50
|
-
"@lodestar/api": "1.34.0-dev.
|
|
51
|
-
"@lodestar/config": "1.34.0-dev.
|
|
52
|
-
"@lodestar/db": "1.34.0-dev.
|
|
53
|
-
"@lodestar/params": "1.34.0-dev.
|
|
54
|
-
"@lodestar/state-transition": "1.34.0-dev.
|
|
55
|
-
"@lodestar/types": "1.34.0-dev.
|
|
56
|
-
"@lodestar/utils": "1.34.0-dev.
|
|
50
|
+
"@lodestar/api": "1.34.0-dev.ece38879ec",
|
|
51
|
+
"@lodestar/config": "1.34.0-dev.ece38879ec",
|
|
52
|
+
"@lodestar/db": "1.34.0-dev.ece38879ec",
|
|
53
|
+
"@lodestar/params": "1.34.0-dev.ece38879ec",
|
|
54
|
+
"@lodestar/state-transition": "1.34.0-dev.ece38879ec",
|
|
55
|
+
"@lodestar/types": "1.34.0-dev.ece38879ec",
|
|
56
|
+
"@lodestar/utils": "1.34.0-dev.ece38879ec",
|
|
57
57
|
"strict-event-emitter-types": "^2.0.0"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@lodestar/test-utils": "1.34.0-dev.
|
|
60
|
+
"@lodestar/test-utils": "1.34.0-dev.ece38879ec",
|
|
61
61
|
"bigint-buffer": "^1.1.5",
|
|
62
62
|
"rimraf": "^4.4.1"
|
|
63
63
|
},
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "fea83bcc49086069bfb33e7e67703aa91247997a"
|
|
65
65
|
}
|