@mainsail/consensus 0.0.1-rc.6 → 0.0.1-rc.7
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/distribution/bootstrapper.js +3 -3
- package/distribution/bootstrapper.js.map +1 -1
- package/distribution/consensus.d.ts +3 -2
- package/distribution/consensus.d.ts.map +1 -1
- package/distribution/consensus.js +52 -29
- package/distribution/consensus.js.map +1 -1
- package/distribution/index.js +1 -1
- package/distribution/index.js.map +1 -1
- package/distribution/processors/precommit-processor.d.ts +1 -0
- package/distribution/processors/precommit-processor.d.ts.map +1 -1
- package/distribution/processors/precommit-processor.js +41 -3
- package/distribution/processors/precommit-processor.js.map +1 -1
- package/distribution/processors/prevote-processor.d.ts +1 -0
- package/distribution/processors/prevote-processor.d.ts.map +1 -1
- package/distribution/processors/prevote-processor.js +44 -4
- package/distribution/processors/prevote-processor.js.map +1 -1
- package/distribution/processors/proposal-processor.d.ts.map +1 -1
- package/distribution/processors/proposal-processor.js +3 -3
- package/distribution/processors/proposal-processor.js.map +1 -1
- package/distribution/round-state.js +2 -2
- package/distribution/round-state.js.map +1 -1
- package/package.json +6 -7
|
@@ -15,19 +15,19 @@ let Bootstrapper = class Bootstrapper {
|
|
|
15
15
|
storage;
|
|
16
16
|
async run() {
|
|
17
17
|
const proposals = await this.storage.getProposals();
|
|
18
|
-
this.logger.info(`Consensus Bootstrap - Proposals: ${proposals.length}
|
|
18
|
+
this.logger.info(`Consensus Bootstrap - Proposals: ${proposals.length}`, "consensus");
|
|
19
19
|
for (const proposal of proposals) {
|
|
20
20
|
const roundState = this.roundStateRepo.getRoundState(proposal.blockNumber, proposal.round);
|
|
21
21
|
roundState.addProposal(proposal);
|
|
22
22
|
}
|
|
23
23
|
const prevotes = await this.storage.getPrevotes();
|
|
24
|
-
this.logger.info(`Consensus Bootstrap - Prevotes: ${prevotes.length}
|
|
24
|
+
this.logger.info(`Consensus Bootstrap - Prevotes: ${prevotes.length}`, "consensus");
|
|
25
25
|
for (const prevote of prevotes) {
|
|
26
26
|
const roundState = this.roundStateRepo.getRoundState(prevote.blockNumber, prevote.round);
|
|
27
27
|
roundState.addPrevote(prevote);
|
|
28
28
|
}
|
|
29
29
|
const precommits = await this.storage.getPrecommits();
|
|
30
|
-
this.logger.info(`Consensus Bootstrap - Precommits: ${precommits.length}
|
|
30
|
+
this.logger.info(`Consensus Bootstrap - Precommits: ${precommits.length}`, "consensus");
|
|
31
31
|
for (const precommit of precommits) {
|
|
32
32
|
const roundState = this.roundStateRepo.getRoundState(precommit.blockNumber, precommit.round);
|
|
33
33
|
roundState.addPrecommit(precommit);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrapper.js","sourceRoot":"","sources":["../source/bootstrapper.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAS,MAAM,qBAAqB,CAAC;AAG7D,IAAM,YAAY,GAAlB,MAAM,YAAY;IAEP,MAAM,CAA2B;IAGjC,cAAc,CAA4C;IAG1D,OAAO,CAAsC;IAEvD,KAAK,CAAC,GAAG;QACf,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAEpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrapper.js","sourceRoot":"","sources":["../source/bootstrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ export declare class Consensus implements Contracts.Consensus.Service {
|
|
|
16
16
|
private readonly validatorSet;
|
|
17
17
|
private readonly eventDispatcher;
|
|
18
18
|
private readonly logger;
|
|
19
|
+
private readonly statisticService;
|
|
19
20
|
getBlockNumber(): number;
|
|
20
21
|
getRound(): number;
|
|
21
22
|
setRound(round: number): void;
|
|
@@ -24,7 +25,7 @@ export declare class Consensus implements Contracts.Consensus.Service {
|
|
|
24
25
|
getLockedRound(): number | undefined;
|
|
25
26
|
getValidRound(): number | undefined;
|
|
26
27
|
setValidRound(round: Contracts.Consensus.RoundState): void;
|
|
27
|
-
setProposal(proposalPromise: Promise<Contracts.Crypto.Proposal
|
|
28
|
+
setProposal(proposalPromise: Promise<Contracts.Crypto.Proposal>, block: Contracts.Crypto.Block): void;
|
|
28
29
|
getState(): Contracts.Consensus.State;
|
|
29
30
|
run(): Promise<void>;
|
|
30
31
|
dispose(): Promise<void>;
|
|
@@ -38,7 +39,7 @@ export declare class Consensus implements Contracts.Consensus.Service {
|
|
|
38
39
|
protected onMajorityPrevoteAny(roundState: Contracts.Consensus.RoundState): Promise<void>;
|
|
39
40
|
protected onMajorityPrevoteNull(roundState: Contracts.Consensus.RoundState): Promise<void>;
|
|
40
41
|
protected onMajorityPrecommitAny(roundState: Contracts.Consensus.RoundState): Promise<void>;
|
|
41
|
-
protected onMajorityPrecommit(
|
|
42
|
+
protected onMajorityPrecommit(processState: Contracts.Processor.ProcessableUnit, isRoundState?: boolean): Promise<void>;
|
|
42
43
|
protected onMinorityWithHigherRound(roundState: Contracts.Processor.ProcessableUnit): Promise<void>;
|
|
43
44
|
onTimeoutPropose(blockNumber: number, round: number): Promise<void>;
|
|
44
45
|
onTimeoutPrevote(blockNumber: number, round: number): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consensus.d.ts","sourceRoot":"","sources":["../source/consensus.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,SAAS,EAAuB,MAAM,qBAAqB,CAAC;AAIhF,qBACa,SAAU,YAAW,SAAS,CAAC,SAAS,CAAC,OAAO;;IAE5D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgC;IAGpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IAGjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAGhE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAGhE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IAGpD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyC;IAG3E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwC;IAGzE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA0C;IAG7E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAG3D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA2C;IAGhF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA4C;IAGjF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IAGpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAG/D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoC;IAGpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;
|
|
1
|
+
{"version":3,"file":"consensus.d.ts","sourceRoot":"","sources":["../source/consensus.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
};
|
|
10
10
|
import { inject, injectable } from "@mainsail/container";
|
|
11
11
|
import { Constants, Contracts, Events, Identifiers } from "@mainsail/contracts";
|
|
12
|
-
import { Lock } from "@mainsail/utils";
|
|
12
|
+
import { assert, Lock } from "@mainsail/utils";
|
|
13
13
|
import dayjs from "dayjs";
|
|
14
14
|
let Consensus = class Consensus {
|
|
15
15
|
app;
|
|
@@ -27,6 +27,7 @@ let Consensus = class Consensus {
|
|
|
27
27
|
validatorSet;
|
|
28
28
|
eventDispatcher;
|
|
29
29
|
logger;
|
|
30
|
+
statisticService;
|
|
30
31
|
#blockNumber = 1;
|
|
31
32
|
#round = 0;
|
|
32
33
|
#step = Contracts.Consensus.Step.Propose;
|
|
@@ -34,8 +35,10 @@ let Consensus = class Consensus {
|
|
|
34
35
|
#validValue;
|
|
35
36
|
#didMajorityPrevote = false;
|
|
36
37
|
#didMajorityPrecommit = false;
|
|
38
|
+
#didMajorityPrecommitAndProposalIsMissing = false;
|
|
37
39
|
#isDisposed = false;
|
|
38
40
|
#pendingJobs = new Set();
|
|
41
|
+
#proposedBlock;
|
|
39
42
|
#proposalPromise;
|
|
40
43
|
#roundStartTime = 0;
|
|
41
44
|
// Handler lock is different than commit lock. It is used to prevent parallel processing and it is similar to queue.
|
|
@@ -68,8 +71,9 @@ let Consensus = class Consensus {
|
|
|
68
71
|
this.#validValue = round;
|
|
69
72
|
}
|
|
70
73
|
// TODO: Only for tests
|
|
71
|
-
setProposal(proposalPromise) {
|
|
74
|
+
setProposal(proposalPromise, block) {
|
|
72
75
|
this.#proposalPromise = proposalPromise;
|
|
76
|
+
this.#proposedBlock = block;
|
|
73
77
|
}
|
|
74
78
|
getState() {
|
|
75
79
|
return {
|
|
@@ -133,7 +137,7 @@ let Consensus = class Consensus {
|
|
|
133
137
|
return;
|
|
134
138
|
}
|
|
135
139
|
await this.#processBlock(commitState);
|
|
136
|
-
await this.onMajorityPrecommit(commitState);
|
|
140
|
+
await this.onMajorityPrecommit(commitState, false);
|
|
137
141
|
});
|
|
138
142
|
}
|
|
139
143
|
async startRound(round) {
|
|
@@ -143,11 +147,12 @@ let Consensus = class Consensus {
|
|
|
143
147
|
this.#didMajorityPrecommit = false;
|
|
144
148
|
this.#roundStartTime = dayjs().valueOf();
|
|
145
149
|
this.scheduler.clear();
|
|
150
|
+
this.statisticService.newRound(this.#blockNumber, round);
|
|
146
151
|
if (this.#isDisposed) {
|
|
147
152
|
return;
|
|
148
153
|
}
|
|
149
154
|
const roundState = this.roundStateRepository.getRoundState(this.#blockNumber, this.#round);
|
|
150
|
-
this.logger.info(`>> Starting new round: ${this.#getHeightRoundString()} with proposer: ${roundState.proposer.address}
|
|
155
|
+
this.logger.info(`>> Starting new round: ${this.#getHeightRoundString()} with proposer: ${roundState.proposer.address}`, "consensus");
|
|
151
156
|
await this.eventDispatcher.dispatch(Events.ConsensusEvent.RoundStarted, this.getState());
|
|
152
157
|
this.scheduler.scheduleTimeoutBlockPrepare(this.scheduler.getNextBlockTimestamp(this.#roundStartTime));
|
|
153
158
|
// TODO: Skip on sync
|
|
@@ -157,7 +162,10 @@ let Consensus = class Consensus {
|
|
|
157
162
|
this.scheduler.scheduleTimeoutPropose(this.#blockNumber, this.#round);
|
|
158
163
|
if (this.#proposalPromise) {
|
|
159
164
|
const proposal = await this.#proposalPromise;
|
|
165
|
+
assert.defined(this.#proposedBlock);
|
|
166
|
+
this.logger.info(`Proposing block ${this.#getBlockString(this.#proposedBlock)}`, "consensus");
|
|
160
167
|
this.#proposalPromise = undefined;
|
|
168
|
+
this.#proposedBlock = undefined;
|
|
161
169
|
await this.proposalProcessor.process(proposal);
|
|
162
170
|
}
|
|
163
171
|
}
|
|
@@ -171,7 +179,7 @@ let Consensus = class Consensus {
|
|
|
171
179
|
}
|
|
172
180
|
this.#step = Contracts.Consensus.Step.Prevote;
|
|
173
181
|
const { block } = proposal.getData();
|
|
174
|
-
this.logger.info(`Received proposal ${this.#getBlockString(block)}
|
|
182
|
+
this.logger.info(`Received proposal ${this.#getBlockString(block)}`, "consensus");
|
|
175
183
|
await this.eventDispatcher.dispatch(Events.ConsensusEvent.ProposalAccepted, this.getState());
|
|
176
184
|
await this.prevote(roundState.getProcessorResult() ? block.data.hash : undefined);
|
|
177
185
|
}
|
|
@@ -187,7 +195,7 @@ let Consensus = class Consensus {
|
|
|
187
195
|
}
|
|
188
196
|
const { block } = proposal.getData();
|
|
189
197
|
this.#step = Contracts.Consensus.Step.Prevote;
|
|
190
|
-
this.logger.info(`Received locked proposal ${this.#getBlockString(block)}
|
|
198
|
+
this.logger.info(`Received locked proposal ${this.#getBlockString(block)}`, "consensus");
|
|
191
199
|
await this.eventDispatcher.dispatch(Events.ConsensusEvent.ProposalAccepted, this.getState());
|
|
192
200
|
const lockedRound = this.getLockedRound();
|
|
193
201
|
if ((!lockedRound || lockedRound <= proposal.validRound) && roundState.getProcessorResult()) {
|
|
@@ -207,7 +215,7 @@ let Consensus = class Consensus {
|
|
|
207
215
|
return;
|
|
208
216
|
}
|
|
209
217
|
const { block } = proposal.getData();
|
|
210
|
-
this.logger.info(`Received +2/3 prevotes for ${this.#getBlockString(block)}
|
|
218
|
+
this.logger.info(`Received +2/3 prevotes for ${this.#getBlockString(block)}`, "consensus");
|
|
211
219
|
this.#didMajorityPrevote = true;
|
|
212
220
|
if (this.#step === Contracts.Consensus.Step.Prevote) {
|
|
213
221
|
this.#lockedValue = roundState;
|
|
@@ -233,7 +241,7 @@ let Consensus = class Consensus {
|
|
|
233
241
|
if (this.#step !== Contracts.Consensus.Step.Prevote || this.#isInvalidRoundState(roundState)) {
|
|
234
242
|
return;
|
|
235
243
|
}
|
|
236
|
-
this.logger.info(`Received +2/3 prevotes for ${this.#getHeightRoundString()}/null
|
|
244
|
+
this.logger.info(`Received +2/3 prevotes for ${this.#getHeightRoundString()}/null`, "consensus");
|
|
237
245
|
this.#step = Contracts.Consensus.Step.Precommit;
|
|
238
246
|
await this.eventDispatcher.dispatch(Events.ConsensusEvent.PrevotedNull, this.getState());
|
|
239
247
|
await this.precommit();
|
|
@@ -246,22 +254,33 @@ let Consensus = class Consensus {
|
|
|
246
254
|
await this.eventDispatcher.dispatch(Events.ConsensusEvent.PrecommitedAny, this.getState());
|
|
247
255
|
}
|
|
248
256
|
}
|
|
249
|
-
async onMajorityPrecommit(
|
|
257
|
+
async onMajorityPrecommit(processState, isRoundState = true) {
|
|
250
258
|
// TODO: Only block number must match. Round can be any. Add tests
|
|
251
|
-
if (this.#didMajorityPrecommit ||
|
|
259
|
+
if ((isRoundState && this.#didMajorityPrecommit) || processState.blockNumber !== this.#blockNumber) {
|
|
252
260
|
return;
|
|
253
261
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
this.logger.info(`
|
|
262
|
+
if (processState.hasProcessorResult() === false) {
|
|
263
|
+
if (this.#didMajorityPrecommitAndProposalIsMissing) {
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
this.logger.info(`Received +2/3 precommits for ${this.#getHeightRoundString()}, but proposal is missing`, "consensus");
|
|
267
|
+
this.#didMajorityPrecommitAndProposalIsMissing = true;
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
if (isRoundState) {
|
|
271
|
+
// Sets it only once for round state
|
|
272
|
+
this.#didMajorityPrecommit = true;
|
|
273
|
+
}
|
|
274
|
+
const block = processState.getBlock();
|
|
275
|
+
this.logger.info(`Received +2/3 precommits for ${this.#getBlockString(block)}`, "consensus");
|
|
276
|
+
if (!processState.getProcessorResult().success) {
|
|
277
|
+
this.logger.info(`Block ${this.#getBlockString(block)} is invalid`, "consensus");
|
|
259
278
|
return;
|
|
260
279
|
}
|
|
261
280
|
await this.eventDispatcher.dispatch(Events.ConsensusEvent.PrecommitedProposal, this.getState());
|
|
262
281
|
await this.commitLock.runExclusive(async () => {
|
|
263
282
|
try {
|
|
264
|
-
await this.processor.commit(
|
|
283
|
+
await this.processor.commit(processState);
|
|
265
284
|
}
|
|
266
285
|
catch (error) {
|
|
267
286
|
await this.app.terminate("Failed to commit block", error);
|
|
@@ -286,7 +305,7 @@ let Consensus = class Consensus {
|
|
|
286
305
|
this.#round !== round) {
|
|
287
306
|
return;
|
|
288
307
|
}
|
|
289
|
-
this.logger.info(`Timeout to propose ${this.#getHeightRoundString()} expired
|
|
308
|
+
this.logger.info(`Timeout to propose ${this.#getHeightRoundString()} expired`, "consensus");
|
|
290
309
|
this.#step = Contracts.Consensus.Step.Prevote;
|
|
291
310
|
await this.prevote();
|
|
292
311
|
});
|
|
@@ -298,7 +317,7 @@ let Consensus = class Consensus {
|
|
|
298
317
|
this.#round !== round) {
|
|
299
318
|
return;
|
|
300
319
|
}
|
|
301
|
-
this.logger.info(`Timeout to prevote ${this.#getHeightRoundString()} expired
|
|
320
|
+
this.logger.info(`Timeout to prevote ${this.#getHeightRoundString()} expired`, "consensus");
|
|
302
321
|
this.roundStateRepository.getRoundState(this.#blockNumber, this.#round).logPrevotes();
|
|
303
322
|
this.#step = Contracts.Consensus.Step.Precommit;
|
|
304
323
|
await this.precommit();
|
|
@@ -309,7 +328,7 @@ let Consensus = class Consensus {
|
|
|
309
328
|
if (this.#blockNumber !== blockNumber || this.#round !== round) {
|
|
310
329
|
return;
|
|
311
330
|
}
|
|
312
|
-
this.logger.info(`Timeout to precommit ${this.#getHeightRoundString()} expired
|
|
331
|
+
this.logger.info(`Timeout to precommit ${this.#getHeightRoundString()} expired`, "consensus");
|
|
313
332
|
this.roundStateRepository.getRoundState(this.#blockNumber, this.#round).logPrevotes();
|
|
314
333
|
this.roundStateRepository.getRoundState(this.#blockNumber, this.#round).logPrecommits();
|
|
315
334
|
await this.startRound(this.#round + 1);
|
|
@@ -332,20 +351,20 @@ let Consensus = class Consensus {
|
|
|
332
351
|
if (registeredProposer === undefined) {
|
|
333
352
|
return;
|
|
334
353
|
}
|
|
335
|
-
this.logger.info(`Found registered proposer: ${roundState.proposer.address}
|
|
354
|
+
this.logger.info(`Found registered proposer: ${roundState.proposer.address}`, "consensus");
|
|
336
355
|
this.#proposalPromise = this.#makeProposal(roundState, registeredProposer);
|
|
337
356
|
}
|
|
338
357
|
async #makeProposal(roundState, registeredProposer) {
|
|
339
358
|
if (this.#validValue) {
|
|
340
|
-
|
|
359
|
+
this.#proposedBlock = this.#validValue.getBlock();
|
|
341
360
|
const lockProof = await this.#validValue.aggregatePrevotes();
|
|
342
|
-
this.logger.info(`
|
|
343
|
-
return await registeredProposer.propose(this.validatorSet.getValidatorIndexByWalletAddress(roundState.proposer.address), this.#round, this.#validValue.round,
|
|
361
|
+
this.logger.info(`Created proposal with existing block ${this.#getBlockString(this.#proposedBlock)}`, "consensus");
|
|
362
|
+
return await registeredProposer.propose(this.validatorSet.getValidatorIndexByWalletAddress(roundState.proposer.address), this.#round, this.#validValue.round, this.#proposedBlock, lockProof);
|
|
344
363
|
}
|
|
345
|
-
|
|
346
|
-
this.logger.info(`
|
|
347
|
-
void this.eventDispatcher.dispatch(Events.BlockEvent.Forged,
|
|
348
|
-
return registeredProposer.propose(this.validatorSet.getValidatorIndexByWalletAddress(roundState.proposer.address), this.#round, undefined,
|
|
364
|
+
this.#proposedBlock = this.#proposedBlock = await registeredProposer.prepareBlock(roundState.proposer.address, this.#round, this.scheduler.getNextBlockTimestamp(this.#roundStartTime));
|
|
365
|
+
this.logger.info(`Created proposal with new block ${this.#getBlockString(this.#proposedBlock)}`, "consensus");
|
|
366
|
+
void this.eventDispatcher.dispatch(Events.BlockEvent.Forged, this.#proposedBlock.data);
|
|
367
|
+
return registeredProposer.propose(this.validatorSet.getValidatorIndexByWalletAddress(roundState.proposer.address), this.#round, undefined, this.#proposedBlock);
|
|
349
368
|
}
|
|
350
369
|
async prevote(value) {
|
|
351
370
|
const roundState = this.roundStateRepository.getRoundState(this.#blockNumber, this.#round);
|
|
@@ -390,14 +409,14 @@ let Consensus = class Consensus {
|
|
|
390
409
|
else {
|
|
391
410
|
const storedBlockNumber = state.blockNumber.toLocaleString(Constants.Locale);
|
|
392
411
|
const currentBlockNumber = this.#blockNumber.toLocaleString(Constants.Locale);
|
|
393
|
-
this.logger.
|
|
412
|
+
this.logger.warn(`Skipping state restore, because stored block number is ${storedBlockNumber}, but should be ${currentBlockNumber}`, "consensus");
|
|
394
413
|
this.roundStateRepository.clear();
|
|
395
414
|
}
|
|
396
415
|
}
|
|
397
416
|
if (this.#blockNumber !== this.configuration.getHeight()) {
|
|
398
417
|
throw new Error(`bootstrapped block number ${this.#blockNumber} does not match configuration block number ${this.configuration.getHeight()}`);
|
|
399
418
|
}
|
|
400
|
-
this.logger.info(`Completed consensus bootstrap for ${this.#getHeightRoundString()} with total round ${this.stateStore.getTotalRound()}
|
|
419
|
+
this.logger.info(`Completed consensus bootstrap for ${this.#getHeightRoundString()} with total round ${this.stateStore.getTotalRound()}`, "consensus");
|
|
401
420
|
await this.eventDispatcher.dispatch(Events.ConsensusEvent.Bootstrapped, this.getState());
|
|
402
421
|
}
|
|
403
422
|
async #processProposal(roundState) {
|
|
@@ -501,6 +520,10 @@ __decorate([
|
|
|
501
520
|
inject(Identifiers.Services.Log.Service),
|
|
502
521
|
__metadata("design:type", Object)
|
|
503
522
|
], Consensus.prototype, "logger", void 0);
|
|
523
|
+
__decorate([
|
|
524
|
+
inject(Identifiers.P2P.Statistic.Service),
|
|
525
|
+
__metadata("design:type", Object)
|
|
526
|
+
], Consensus.prototype, "statisticService", void 0);
|
|
504
527
|
Consensus = __decorate([
|
|
505
528
|
injectable()
|
|
506
529
|
], Consensus);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consensus.js","sourceRoot":"","sources":["../source/consensus.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"consensus.js","sourceRoot":"","sources":["../source/consensus.ts"],"names":[],"mappings":"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"}
|
package/distribution/index.js
CHANGED
|
@@ -29,7 +29,7 @@ let ServiceProvider = class ServiceProvider extends Providers.ServiceProvider {
|
|
|
29
29
|
.bind(Identifiers.Consensus.CommitState.Factory)
|
|
30
30
|
.toFactory((context) => (commit) => context.get(CommitState, { autobind: true }).configure(commit));
|
|
31
31
|
this.app.bind(Identifiers.Consensus.Bootstrapper).to(Bootstrapper).inSingletonScope();
|
|
32
|
-
this.app.bind(Identifiers.Consensus.Service).
|
|
32
|
+
this.app.bind(Identifiers.Consensus.Service).to(Consensus).inSingletonScope();
|
|
33
33
|
}
|
|
34
34
|
async dispose() {
|
|
35
35
|
const consensus = this.app.get(Identifiers.Consensus.Service);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAa,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACjH,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGpC,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,SAAS,CAAC,eAAe;IACtD,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAClF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACtG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAChF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACjG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC/F,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACnG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC7F,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAE5E,IAAI,CAAC,GAAG;aACN,IAAI,CAAmD,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC;aACjG,SAAS,CACT,CAAC,OAAqD,EAAE,EAAE,CAAC,CAAC,MAA+B,EAAE,EAAE,CAC9F,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAC/D,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACtF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export declare class PrecommitProcessor extends AbstractProcessor implements Con
|
|
|
7
7
|
private readonly roundStateRepo;
|
|
8
8
|
private readonly broadcaster;
|
|
9
9
|
private readonly workerPool;
|
|
10
|
+
protected readonly logger: Contracts.Kernel.Logger;
|
|
10
11
|
process(precommit: Contracts.Crypto.Precommit, broadcast?: boolean): Promise<Contracts.Consensus.ProcessorResult>;
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=precommit-processor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"precommit-processor.d.ts","sourceRoot":"","sources":["../../source/processors/precommit-processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"precommit-processor.d.ts","sourceRoot":"","sources":["../../source/processors/precommit-processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAQ5D,qBACa,kBAAmB,SAAQ,iBAAkB,YAAW,SAAS,CAAC,SAAS,CAAC,kBAAkB;;IAE1G,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsC;IAGjE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAG/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAG3E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAGzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAG1D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;IAI9C,OAAO,CACZ,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,EACrC,SAAS,UAAO,GACd,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC;CAyE/C"}
|
|
@@ -10,12 +10,20 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
import { inject, injectable } from "@mainsail/container";
|
|
11
11
|
import { Contracts, Identifiers } from "@mainsail/contracts";
|
|
12
12
|
import { AbstractProcessor } from "./abstract-processor.js";
|
|
13
|
+
var SignatureCheckResult;
|
|
14
|
+
(function (SignatureCheckResult) {
|
|
15
|
+
SignatureCheckResult[SignatureCheckResult["Skip"] = 0] = "Skip";
|
|
16
|
+
SignatureCheckResult[SignatureCheckResult["Invalid"] = 1] = "Invalid";
|
|
17
|
+
SignatureCheckResult[SignatureCheckResult["Accepted"] = 2] = "Accepted";
|
|
18
|
+
})(SignatureCheckResult || (SignatureCheckResult = {}));
|
|
13
19
|
let PrecommitProcessor = class PrecommitProcessor extends AbstractProcessor {
|
|
14
20
|
serializer;
|
|
15
21
|
validatorSet;
|
|
16
22
|
roundStateRepo;
|
|
17
23
|
broadcaster;
|
|
18
24
|
workerPool;
|
|
25
|
+
logger;
|
|
26
|
+
#pendingPrecommits = new Map();
|
|
19
27
|
async process(precommit, broadcast = true) {
|
|
20
28
|
return this.commitLock.runNonExclusive(async () => {
|
|
21
29
|
if (!this.hasValidBlockNumberOrRound(precommit)) {
|
|
@@ -24,13 +32,22 @@ let PrecommitProcessor = class PrecommitProcessor extends AbstractProcessor {
|
|
|
24
32
|
if (!this.isRoundInBounds(precommit)) {
|
|
25
33
|
return Contracts.Consensus.ProcessorResult.Invalid;
|
|
26
34
|
}
|
|
27
|
-
if (!(await this.#hasValidSignature(precommit))) {
|
|
28
|
-
return Contracts.Consensus.ProcessorResult.Invalid;
|
|
29
|
-
}
|
|
30
35
|
const roundState = this.roundStateRepo.getRoundState(precommit.blockNumber, precommit.round);
|
|
31
36
|
if (roundState.hasPrecommit(precommit.validatorIndex)) {
|
|
37
|
+
const existingPrecommit = roundState.getPrecommit(precommit.validatorIndex);
|
|
38
|
+
if (existingPrecommit && !existingPrecommit.serialized.equals(precommit.serialized)) {
|
|
39
|
+
this.logger.warn(`Conflicting precommits for validator index ${precommit.validatorIndex} in block ${precommit.blockNumber}/${precommit.round}. Existing: ${existingPrecommit.serialized.toString("hex")}, New: ${precommit.serialized.toString("hex")}`);
|
|
40
|
+
}
|
|
32
41
|
return Contracts.Consensus.ProcessorResult.Skipped;
|
|
33
42
|
}
|
|
43
|
+
switch (await this.#signatureCheck(precommit)) {
|
|
44
|
+
case SignatureCheckResult.Skip: {
|
|
45
|
+
return Contracts.Consensus.ProcessorResult.Skipped;
|
|
46
|
+
}
|
|
47
|
+
case SignatureCheckResult.Invalid: {
|
|
48
|
+
return Contracts.Consensus.ProcessorResult.Invalid;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
34
51
|
roundState.addPrecommit(precommit);
|
|
35
52
|
if (broadcast) {
|
|
36
53
|
void this.broadcaster.broadcastPrecommit(precommit);
|
|
@@ -39,6 +56,23 @@ let PrecommitProcessor = class PrecommitProcessor extends AbstractProcessor {
|
|
|
39
56
|
return Contracts.Consensus.ProcessorResult.Accepted;
|
|
40
57
|
});
|
|
41
58
|
}
|
|
59
|
+
async #signatureCheck(precommit) {
|
|
60
|
+
const serializedHex = precommit.serialized.toString("hex");
|
|
61
|
+
if (this.#pendingPrecommits.has(serializedHex)) {
|
|
62
|
+
return new Promise((resolve) => {
|
|
63
|
+
this.#pendingPrecommits.get(serializedHex).push(resolve);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
this.#pendingPrecommits.set(serializedHex, []);
|
|
68
|
+
}
|
|
69
|
+
const hasValidSignature = await this.#hasValidSignature(precommit);
|
|
70
|
+
for (const resolve of this.#pendingPrecommits.get(serializedHex)) {
|
|
71
|
+
resolve(hasValidSignature ? SignatureCheckResult.Skip : SignatureCheckResult.Invalid);
|
|
72
|
+
}
|
|
73
|
+
this.#pendingPrecommits.delete(serializedHex);
|
|
74
|
+
return hasValidSignature ? SignatureCheckResult.Accepted : SignatureCheckResult.Invalid;
|
|
75
|
+
}
|
|
42
76
|
async #hasValidSignature(precommit) {
|
|
43
77
|
const worker = await this.workerPool.getWorker();
|
|
44
78
|
return worker.consensusSignature("verify", Buffer.from(precommit.signature, "hex"), await this.serializer.serializePrecommitForSignature(precommit), Buffer.from(this.validatorSet.getValidator(precommit.validatorIndex).blsPublicKey, "hex"));
|
|
@@ -64,6 +98,10 @@ __decorate([
|
|
|
64
98
|
inject(Identifiers.CryptoWorker.WorkerPool),
|
|
65
99
|
__metadata("design:type", Object)
|
|
66
100
|
], PrecommitProcessor.prototype, "workerPool", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
inject(Identifiers.Services.Log.Service),
|
|
103
|
+
__metadata("design:type", Object)
|
|
104
|
+
], PrecommitProcessor.prototype, "logger", void 0);
|
|
67
105
|
PrecommitProcessor = __decorate([
|
|
68
106
|
injectable()
|
|
69
107
|
], PrecommitProcessor);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"precommit-processor.js","sourceRoot":"","sources":["../../source/processors/precommit-processor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"precommit-processor.js","sourceRoot":"","sources":["../../source/processors/precommit-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export declare class PrevoteProcessor extends AbstractProcessor implements Contr
|
|
|
7
7
|
private readonly roundStateRepo;
|
|
8
8
|
private readonly broadcaster;
|
|
9
9
|
private readonly workerPool;
|
|
10
|
+
protected readonly logger: Contracts.Kernel.Logger;
|
|
10
11
|
process(prevote: Contracts.Crypto.Prevote, broadcast?: boolean): Promise<Contracts.Consensus.ProcessorResult>;
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=prevote-processor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prevote-processor.d.ts","sourceRoot":"","sources":["../../source/processors/prevote-processor.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"prevote-processor.d.ts","sourceRoot":"","sources":["../../source/processors/prevote-processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAGxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAQ5D,qBACa,gBAAiB,SAAQ,iBAAkB,YAAW,SAAS,CAAC,SAAS,CAAC,gBAAgB;;IAEtG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsC;IAGjE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAG/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAG3E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAGzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAG1D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;IAI9C,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,UAAO,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC;CA2EhH"}
|
|
@@ -8,14 +8,23 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
10
|
import { inject, injectable } from "@mainsail/container";
|
|
11
|
-
import { Contracts, Identifiers } from "@mainsail/contracts";
|
|
11
|
+
import { Constants, Contracts, Identifiers } from "@mainsail/contracts";
|
|
12
|
+
import { assert } from "@mainsail/utils";
|
|
12
13
|
import { AbstractProcessor } from "./abstract-processor.js";
|
|
14
|
+
var SignatureCheckResult;
|
|
15
|
+
(function (SignatureCheckResult) {
|
|
16
|
+
SignatureCheckResult[SignatureCheckResult["Skip"] = 0] = "Skip";
|
|
17
|
+
SignatureCheckResult[SignatureCheckResult["Invalid"] = 1] = "Invalid";
|
|
18
|
+
SignatureCheckResult[SignatureCheckResult["Accepted"] = 2] = "Accepted";
|
|
19
|
+
})(SignatureCheckResult || (SignatureCheckResult = {}));
|
|
13
20
|
let PrevoteProcessor = class PrevoteProcessor extends AbstractProcessor {
|
|
14
21
|
serializer;
|
|
15
22
|
validatorSet;
|
|
16
23
|
roundStateRepo;
|
|
17
24
|
broadcaster;
|
|
18
25
|
workerPool;
|
|
26
|
+
logger;
|
|
27
|
+
#pendingPrevotes = new Map();
|
|
19
28
|
async process(prevote, broadcast = true) {
|
|
20
29
|
return this.commitLock.runNonExclusive(async () => {
|
|
21
30
|
if (!this.hasValidBlockNumberOrRound(prevote)) {
|
|
@@ -24,13 +33,23 @@ let PrevoteProcessor = class PrevoteProcessor extends AbstractProcessor {
|
|
|
24
33
|
if (!this.isRoundInBounds(prevote)) {
|
|
25
34
|
return Contracts.Consensus.ProcessorResult.Invalid;
|
|
26
35
|
}
|
|
27
|
-
if (!(await this.#hasValidSignature(prevote))) {
|
|
28
|
-
return Contracts.Consensus.ProcessorResult.Invalid;
|
|
29
|
-
}
|
|
30
36
|
const roundState = this.roundStateRepo.getRoundState(prevote.blockNumber, prevote.round);
|
|
31
37
|
if (roundState.hasPrevote(prevote.validatorIndex)) {
|
|
38
|
+
const existingPrevote = roundState.getPrevote(prevote.validatorIndex);
|
|
39
|
+
assert.defined(existingPrevote);
|
|
40
|
+
if (!existingPrevote.serialized.equals(prevote.serialized)) {
|
|
41
|
+
this.logger.warn(`Conflicting prevotes for validator index ${prevote.validatorIndex} in block ${prevote.blockNumber.toLocaleString(Constants.Locale)}/${prevote.round}. Existing: ${existingPrevote.serialized.toString("hex")}, New: ${prevote.serialized.toString("hex")}`);
|
|
42
|
+
}
|
|
32
43
|
return Contracts.Consensus.ProcessorResult.Skipped;
|
|
33
44
|
}
|
|
45
|
+
switch (await this.#signatureCheck(prevote)) {
|
|
46
|
+
case SignatureCheckResult.Skip: {
|
|
47
|
+
return Contracts.Consensus.ProcessorResult.Skipped;
|
|
48
|
+
}
|
|
49
|
+
case SignatureCheckResult.Invalid: {
|
|
50
|
+
return Contracts.Consensus.ProcessorResult.Invalid;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
34
53
|
roundState.addPrevote(prevote);
|
|
35
54
|
if (broadcast) {
|
|
36
55
|
void this.broadcaster.broadcastPrevote(prevote);
|
|
@@ -39,6 +58,23 @@ let PrevoteProcessor = class PrevoteProcessor extends AbstractProcessor {
|
|
|
39
58
|
return Contracts.Consensus.ProcessorResult.Accepted;
|
|
40
59
|
});
|
|
41
60
|
}
|
|
61
|
+
async #signatureCheck(prevote) {
|
|
62
|
+
const serializedHex = prevote.serialized.toString("hex");
|
|
63
|
+
if (this.#pendingPrevotes.has(serializedHex)) {
|
|
64
|
+
return new Promise((resolve) => {
|
|
65
|
+
this.#pendingPrevotes.get(serializedHex).push(resolve);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
this.#pendingPrevotes.set(serializedHex, []);
|
|
70
|
+
}
|
|
71
|
+
const hasValidSignature = await this.#hasValidSignature(prevote);
|
|
72
|
+
for (const resolve of this.#pendingPrevotes.get(serializedHex)) {
|
|
73
|
+
resolve(hasValidSignature ? SignatureCheckResult.Skip : SignatureCheckResult.Invalid);
|
|
74
|
+
}
|
|
75
|
+
this.#pendingPrevotes.delete(serializedHex);
|
|
76
|
+
return hasValidSignature ? SignatureCheckResult.Accepted : SignatureCheckResult.Invalid;
|
|
77
|
+
}
|
|
42
78
|
async #hasValidSignature(prevote) {
|
|
43
79
|
const worker = await this.workerPool.getWorker();
|
|
44
80
|
return worker.consensusSignature("verify", Buffer.from(prevote.signature, "hex"), await this.serializer.serializePrevoteForSignature(prevote), Buffer.from(this.validatorSet.getValidator(prevote.validatorIndex).blsPublicKey, "hex"));
|
|
@@ -64,6 +100,10 @@ __decorate([
|
|
|
64
100
|
inject(Identifiers.CryptoWorker.WorkerPool),
|
|
65
101
|
__metadata("design:type", Object)
|
|
66
102
|
], PrevoteProcessor.prototype, "workerPool", void 0);
|
|
103
|
+
__decorate([
|
|
104
|
+
inject(Identifiers.Services.Log.Service),
|
|
105
|
+
__metadata("design:type", Object)
|
|
106
|
+
], PrevoteProcessor.prototype, "logger", void 0);
|
|
67
107
|
PrevoteProcessor = __decorate([
|
|
68
108
|
injectable()
|
|
69
109
|
], PrevoteProcessor);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prevote-processor.js","sourceRoot":"","sources":["../../source/processors/prevote-processor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"prevote-processor.js","sourceRoot":"","sources":["../../source/processors/prevote-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proposal-processor.d.ts","sourceRoot":"","sources":["../../source/processors/proposal-processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,qBACa,iBAAkB,SAAQ,iBAAkB,YAAW,SAAS,CAAC,SAAS,CAAC,iBAAiB;;IAExG,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsC;IAIxE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8B;IAGjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAGhE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAG7D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgD;IAGnF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAG/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAG3E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAGzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAE5C,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,UAAO,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC;IAsC5G,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"proposal-processor.d.ts","sourceRoot":"","sources":["../../source/processors/proposal-processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,qBACa,iBAAkB,SAAQ,iBAAkB,YAAW,SAAS,CAAC,SAAS,CAAC,iBAAiB;;IAExG,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsC;IAIxE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8B;IAGjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAGhE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAG7D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgD;IAGnF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAG/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAG3E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAGzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAE5C,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,UAAO,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC;IAsC5G,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;CAsD9E"}
|
|
@@ -54,12 +54,12 @@ let ProposalProcessor = class ProposalProcessor extends AbstractProcessor {
|
|
|
54
54
|
return true;
|
|
55
55
|
}
|
|
56
56
|
if (proposal.validRound >= proposal.round) {
|
|
57
|
-
this.logger.debug(`Received proposal ${proposal.blockNumber}/${proposal.round} has validRound ${proposal.validRound} >= round ${proposal.round}
|
|
57
|
+
this.logger.debug(`Received proposal ${proposal.blockNumber}/${proposal.round} has validRound ${proposal.validRound} >= round ${proposal.round}`, "consensus");
|
|
58
58
|
return false;
|
|
59
59
|
}
|
|
60
60
|
const lockProof = proposal.getData().lockProof;
|
|
61
61
|
if (!lockProof) {
|
|
62
|
-
this.logger.debug(`Received proposal ${proposal.blockNumber}/${proposal.round} with missing lock proof
|
|
62
|
+
this.logger.debug(`Received proposal ${proposal.blockNumber}/${proposal.round} with missing lock proof`, "consensus");
|
|
63
63
|
return true;
|
|
64
64
|
}
|
|
65
65
|
const data = await this.messageSerializer.serializePrevoteForSignature({
|
|
@@ -71,7 +71,7 @@ let ProposalProcessor = class ProposalProcessor extends AbstractProcessor {
|
|
|
71
71
|
const { roundValidators } = this.configuration.getMilestone(proposal.blockNumber);
|
|
72
72
|
const verified = await this.aggregator.verify(lockProof, data, roundValidators);
|
|
73
73
|
if (!verified) {
|
|
74
|
-
this.logger.debug(`Received proposal ${proposal.blockNumber}/${proposal.round} with invalid lock proof
|
|
74
|
+
this.logger.debug(`Received proposal ${proposal.blockNumber}/${proposal.round} with invalid lock proof`, "consensus");
|
|
75
75
|
}
|
|
76
76
|
return verified;
|
|
77
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proposal-processor.js","sourceRoot":"","sources":["../../source/processors/proposal-processor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGrD,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,iBAAiB;IAEtC,iBAAiB,CAAsC;IAIvD,kBAAkB,CAA8B;IAGhD,aAAa,CAAkC;IAG/C,UAAU,CAAkC;IAG5C,kBAAkB,CAAgD;IAGlE,YAAY,CAAkC;IAG9C,cAAc,CAA4C;IAG1D,WAAW,CAA6B;IAGxC,MAAM,CAA2B;IAElD,KAAK,CAAC,OAAO,CAAC,QAAmC,EAAE,SAAS,GAAG,IAAI;QAClE,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE;YACjD,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChD,OAAO,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC;YACpD,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrC,OAAO,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC;YACpD,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvC,OAAO,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC;YACpD,CAAC;YAED,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAChD,OAAO,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC;YACpD,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3F,IAAI,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC9B,OAAO,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC;YACpD,CAAC;YAED,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAEjC,IAAI,SAAS,EAAE,CAAC;gBACf,KAAK,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACnD,CAAC;YAED,6FAA6F;YAC7F,UAAU,CAAC,GAAG,EAAE;gBACf,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC7C,CAAC,EAAE,CAAC,CAAC,CAAC;YAEN,OAAO,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC;QACrD,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,QAAmC;QAC1D,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAChB,qBAAqB,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,KAAK,mBAAmB,QAAQ,CAAC,UAAU,aAAa,QAAQ,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"proposal-processor.js","sourceRoot":"","sources":["../../source/processors/proposal-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -201,7 +201,7 @@ let RoundState = class RoundState {
|
|
|
201
201
|
const voters = [...this.#prevotes.values()]
|
|
202
202
|
.filter((prevote) => prevote.blockHash === key)
|
|
203
203
|
.map((prevote) => this.validatorSet.getValidator(prevote.validatorIndex).address);
|
|
204
|
-
this.logger.debug(`Block ${key ?? "null"} prevoted by: ${voters.join(", ")}
|
|
204
|
+
this.logger.debug(`Block ${key ?? "null"} prevoted by: ${voters.join(", ")}`, "consensus");
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
207
|
logPrecommits() {
|
|
@@ -209,7 +209,7 @@ let RoundState = class RoundState {
|
|
|
209
209
|
const voters = [...this.#precommits.values()]
|
|
210
210
|
.filter((precommit) => precommit.blockHash === key)
|
|
211
211
|
.map((precommit) => this.validatorSet.getValidator(precommit.validatorIndex).address);
|
|
212
|
-
this.logger.debug(`Block ${key ?? "null"} precommitted by: ${voters.join(", ")}
|
|
212
|
+
this.logger.debug(`Block ${key ?? "null"} precommitted by: ${voters.join(", ")}`, "consensus");
|
|
213
213
|
}
|
|
214
214
|
}
|
|
215
215
|
#hasMinorityPrevotes() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"round-state.js","sourceRoot":"","sources":["../source/round-state.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"round-state.js","sourceRoot":"","sources":["../source/round-state.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGlC,IAAM,UAAU,GAAhB,MAAM,UAAU;IAEL,UAAU,CAAkC;IAG5C,aAAa,CAAkC;IAG/C,YAAY,CAAkC;IAG9C,kBAAkB,CAAgD;IAGlE,gBAAgB,CAAqC;IAGrD,MAAM,CAA2B;IAElD,YAAY,GAAG,CAAC,CAAC;IACjB,MAAM,GAAG,CAAC,CAAC;IACX,SAAS,CAA6B;IACtC,gBAAgB,CAA4C;IAC5D,eAAe,GAAuC,EAAE,CAAC;IACzD,SAAS,GAAG,IAAI,GAAG,EAAoC,CAAC;IACxD,cAAc,GAAG,IAAI,GAAG,EAA8B,CAAC;IACvD,WAAW,GAAG,IAAI,GAAG,EAAsC,CAAC;IAC5D,gBAAgB,GAAG,IAAI,GAAG,EAA8B,CAAC;IACzD,WAAW,GAAG,IAAI,GAAG,EAA2C,CAAC;IACjE,wBAAwB,GAAc,EAAE,CAAC;IACzC,0BAA0B,GAAc,EAAE,CAAC;IAC3C,SAAS,CAAmC;IAE5C,OAAO,CAAsC;IAE7C,IAAW,WAAW;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAED,IAAW,KAAK;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,IAAW,OAAO;QACjB,OAAO,IAAI,CAAC,CAAC,qCAAqC;IACnD,CAAC;IAED,IAAW,UAAU;QACpB,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAEM,SAAS,CAAC,WAAmB,EAAE,KAAa;QAClD,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC;QAC1D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,kBAAkB,GAAG,SAAS,CAAC,YAAY,CAAC;YAClD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;YACpD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAExE,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,YAAY,CAAC,kBAA0B;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC3D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,SAAS,CAAC;IAClB,CAAC;IAEM,WAAW;QACjB,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IACzB,CAAC;IAEM,WAAW,CAAC,QAAmC;QACrD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,WAAW;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAEM,QAAQ;QACd,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;QACvC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACxF,CAAC;IAEM,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAElD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEzB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;YAEvC,MAAM,MAAM,GAAwC;gBACnD,KAAK;gBACL,KAAK,EAAE;oBACN,KAAK;oBACL,GAAG,QAAQ;iBACX;aACD,CAAC;YAEF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAEvE,IAAI,CAAC,OAAO,GAAG;gBACd,GAAG,MAAM;gBACT,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;aACtC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAEM,kBAAkB,CAAC,eAAyD;QAClF,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;IACzC,CAAC;IAEM,kBAAkB;QACxB,OAAO,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAC;IAC5C,CAAC;IAEM,kBAAkB;QACxB,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC9B,CAAC;IAEM,iBAAiB;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;IAEM,iBAAiB,CAAC,QAA4C;QACpE,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;IACjC,CAAC;IAEM,UAAU,CAAC,cAAsB;QACvC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC;IAEM,UAAU,CAAC,OAAiC;QAClD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;QAC7D,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAEM,YAAY,CAAC,cAAsB;QACzC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC;IAEM,YAAY,CAAC,SAAqC;QACxD,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;QACjE,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAEM,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;YAC3D,OAAO,KAAK,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1F,CAAC;IAEM,sBAAsB;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEM,uBAAuB;QAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClD,CAAC;IAEM,qBAAqB;QAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;YAC3D,OAAO,KAAK,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5F,CAAC;IAEM,wBAAwB;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAEM,+BAA+B;QACrC,OAAO,IAAI,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACrE,CAAC;IAEM,UAAU,CAAC,cAAsB;QACvC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC;IAEM,WAAW;QACjB,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IAEM,YAAY,CAAC,cAAsB;QACzC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC;IAEM,aAAa;QACnB,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;IAEM,0BAA0B;QAChC,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACtC,CAAC;IAEM,4BAA4B;QAClC,OAAO,IAAI,CAAC,0BAA0B,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC7B,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC;IACxF,CAAC;IAEM,KAAK,CAAC,mBAAmB;QAC/B,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC,CAAC;IAC1F,CAAC;IAEM,WAAW;QACjB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;iBACzC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,GAAG,CAAC;iBAC9C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC;YAEnF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,MAAM,iBAAiB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAC5F,CAAC;IACF,CAAC;IAEM,aAAa;QACnB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;iBAC3C,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,KAAK,GAAG,CAAC;iBAClD,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC;YAEvF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,MAAM,qBAAqB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAChG,CAAC;IACF,CAAC;IAED,oBAAoB;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,sBAAsB;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,WAAW,CAAC,IAAY;QACvB,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/E,OAAO,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED,WAAW,CAAC,IAAY;QACvB,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/E,OAAO,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED,qBAAqB,CAAC,SAAkB;QACvC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,gBAAgB,CAAC,SAAkB;QAClC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,uBAAuB,CAAC,SAAkB;QACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,kBAAkB,CAAC,SAAkB;QACpC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,cAAc,CAAC,CAAyD;QACvE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAuC,IAAI,GAAG,EAAE,CAAC;QAE/D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;QAE7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC3C,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;QAED,OAAO,QAAQ,CAAC;IACjB,CAAC;CACD,CAAA;AA7TiB;IADhB,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC;;8CACoB;AAG5C;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC;;iDACiB;AAG/C;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC;;gDACsB;AAG9C;IADhB,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,kBAAkB,CAAC;;sDAC4B;AAGlE;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC;;oDACmB;AAGrD;IADhB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;;0CACS;AAjBtC,UAAU;IADtB,UAAU,EAAE;GACA,UAAU,CA+TtB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mainsail/consensus",
|
|
3
|
-
"version": "0.0.1-rc.
|
|
3
|
+
"version": "0.0.1-rc.7",
|
|
4
4
|
"description": "Consensus for the Mainsail blockchain",
|
|
5
5
|
"license": "GPL-3.0-only",
|
|
6
6
|
"contributors": [],
|
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
],
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"dayjs": "1.11.13",
|
|
15
|
-
"@mainsail/blockchain-utils": "0.0.1-rc.
|
|
16
|
-
"@mainsail/
|
|
17
|
-
"@mainsail/
|
|
18
|
-
"@mainsail/
|
|
19
|
-
"@mainsail/utils": "0.0.1-rc.
|
|
15
|
+
"@mainsail/blockchain-utils": "0.0.1-rc.7",
|
|
16
|
+
"@mainsail/container": "0.0.1-rc.7",
|
|
17
|
+
"@mainsail/contracts": "0.0.1-rc.7",
|
|
18
|
+
"@mainsail/kernel": "0.0.1-rc.7",
|
|
19
|
+
"@mainsail/utils": "0.0.1-rc.7"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"esmock": "2.7.1",
|
|
@@ -28,7 +28,6 @@
|
|
|
28
28
|
"scripts": {
|
|
29
29
|
"build": "tsc -b",
|
|
30
30
|
"build:watch": "pnpm run clean && tsc -w",
|
|
31
|
-
"clean": "del distribution && del tsconfig.tsbuildinfo",
|
|
32
31
|
"release": "pnpm publish --access public",
|
|
33
32
|
"test": "pnpm run uvu source .test.ts",
|
|
34
33
|
"test:coverage": "c8 -r=text -r=lcov --all pnpm run test",
|