@mainsail/consensus 0.0.1-alpha.2 → 0.0.1-alpha.20
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 +19 -0
- package/distribution/aggregator.d.ts +1 -1
- package/distribution/aggregator.d.ts.map +1 -1
- package/distribution/aggregator.js +10 -13
- package/distribution/aggregator.js.map +1 -1
- package/distribution/bootstrapper.d.ts +1 -1
- package/distribution/bootstrapper.d.ts.map +1 -1
- package/distribution/bootstrapper.js +8 -11
- package/distribution/bootstrapper.js.map +1 -1
- package/distribution/commit-state.js +8 -11
- package/distribution/commit-state.js.map +1 -1
- package/distribution/consensus.d.ts +7 -2
- package/distribution/consensus.d.ts.map +1 -1
- package/distribution/consensus.js +157 -108
- package/distribution/consensus.js.map +1 -1
- package/distribution/index.d.ts.map +1 -1
- package/distribution/index.js +23 -51
- package/distribution/index.js.map +1 -1
- package/distribution/processors/abstract-processor.d.ts +1 -1
- package/distribution/processors/abstract-processor.d.ts.map +1 -1
- package/distribution/processors/abstract-processor.js +14 -20
- package/distribution/processors/abstract-processor.js.map +1 -1
- package/distribution/processors/commit-processor.d.ts +1 -1
- package/distribution/processors/commit-processor.d.ts.map +1 -1
- package/distribution/processors/commit-processor.js +19 -22
- package/distribution/processors/commit-processor.js.map +1 -1
- package/distribution/processors/index.d.ts +4 -4
- package/distribution/processors/index.d.ts.map +1 -1
- package/distribution/processors/index.js +4 -20
- package/distribution/processors/index.js.map +1 -1
- package/distribution/processors/precommit-processor.d.ts +1 -1
- package/distribution/processors/precommit-processor.d.ts.map +1 -1
- package/distribution/processors/precommit-processor.js +17 -21
- package/distribution/processors/precommit-processor.js.map +1 -1
- package/distribution/processors/prevote-processor.d.ts +1 -1
- package/distribution/processors/prevote-processor.d.ts.map +1 -1
- package/distribution/processors/prevote-processor.js +17 -21
- package/distribution/processors/prevote-processor.js.map +1 -1
- package/distribution/processors/proposal-processor.d.ts +3 -2
- package/distribution/processors/proposal-processor.d.ts.map +1 -1
- package/distribution/processors/proposal-processor.js +58 -78
- package/distribution/processors/proposal-processor.js.map +1 -1
- package/distribution/round-state-repository.d.ts.map +1 -1
- package/distribution/round-state-repository.js +8 -11
- package/distribution/round-state-repository.js.map +1 -1
- package/distribution/round-state.d.ts.map +1 -1
- package/distribution/round-state.js +30 -31
- package/distribution/round-state.js.map +1 -1
- package/distribution/scheduler.d.ts +5 -4
- package/distribution/scheduler.d.ts.map +1 -1
- package/distribution/scheduler.js +26 -26
- package/distribution/scheduler.js.map +1 -1
- package/package.json +10 -14
- package/distribution/storage.d.ts +0 -19
- package/distribution/storage.d.ts.map +0 -1
- package/distribution/storage.js +0 -114
- package/distribution/storage.js.map +0 -1
package/README.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Mainsail - Consensus
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+
|
|
5
|
+
## Documentation
|
|
6
|
+
|
|
7
|
+
You can find installation instructions and detailed instructions on how to use this package at the [dedicated documentation site](https://ark.dev/docs/mainsail).
|
|
8
|
+
|
|
9
|
+
## Security
|
|
10
|
+
|
|
11
|
+
If you discover a security vulnerability within this package, please send an e-mail to [security@ark.io](mailto:security@ark.io). All security vulnerabilities will be promptly addressed.
|
|
12
|
+
|
|
13
|
+
## Credits
|
|
14
|
+
|
|
15
|
+
This project exists thanks to all the people who [contribute](https://github.com/ArkEcosystem/mainsail/graphs/contributors).
|
|
16
|
+
|
|
17
|
+
## License
|
|
18
|
+
|
|
19
|
+
[GPL-3.0-only](https://github.com/ArkEcosystem/mainsail/blob/main/LICENSE) © [ARK Ecosystem](https://ark.io)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregator.d.ts","sourceRoot":"","sources":["../source/aggregator.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAG7D,qBACa,UAAW,YAAW,SAAS,CAAC,SAAS,CAAC,UAAU;IAEhE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAG/D,OAAO,CAAC,QAAQ,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"aggregator.d.ts","sourceRoot":"","sources":["../source/aggregator.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAG7D,qBACa,UAAW,YAAW,SAAS,CAAC,SAAS,CAAC,UAAU;IAEhE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAG/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAE7C,SAAS,CACrB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,EAC5C,gBAAgB,EAAE,MAAM,GACtB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAuB1C,MAAM,CACX,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAC/C,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,GACtB,OAAO,CAAC,OAAO,CAAC;CAsBnB"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -8,14 +7,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const contracts_1 = require("@mainsail/contracts");
|
|
15
|
-
const kernel_1 = require("@mainsail/kernel");
|
|
10
|
+
import { inject, injectable } from "@mainsail/container";
|
|
11
|
+
import { Contracts, Identifiers } from "@mainsail/contracts";
|
|
12
|
+
import { Utils } from "@mainsail/kernel";
|
|
16
13
|
let Aggregator = class Aggregator {
|
|
17
14
|
async aggregate(majority, activeValidators) {
|
|
18
|
-
if (!
|
|
15
|
+
if (!Utils.isMajority(majority.size, activeValidators)) {
|
|
19
16
|
throw new Error("Failed to aggregate signatures, because the majority is not reached.");
|
|
20
17
|
}
|
|
21
18
|
const signatures = [];
|
|
@@ -35,7 +32,7 @@ let Aggregator = class Aggregator {
|
|
|
35
32
|
const validatorPublicKeys = signature.validators
|
|
36
33
|
.map((v, index) => v ? Buffer.from(this.validatorSet.getValidator(index).getConsensusPublicKey(), "hex") : undefined)
|
|
37
34
|
.filter((item) => !!item);
|
|
38
|
-
if (!
|
|
35
|
+
if (!Utils.isMajority(validatorPublicKeys.length, activeValidators)) {
|
|
39
36
|
return false;
|
|
40
37
|
}
|
|
41
38
|
const worker = await this.workerPool.getWorker();
|
|
@@ -43,16 +40,16 @@ let Aggregator = class Aggregator {
|
|
|
43
40
|
return await worker.consensusSignature("verify", Buffer.from(signature.signature, "hex"), data, Buffer.from(aggregatedPublicKey, "hex"));
|
|
44
41
|
}
|
|
45
42
|
};
|
|
46
|
-
exports.Aggregator = Aggregator;
|
|
47
43
|
__decorate([
|
|
48
|
-
|
|
44
|
+
inject(Identifiers.ValidatorSet.Service),
|
|
49
45
|
__metadata("design:type", Object)
|
|
50
46
|
], Aggregator.prototype, "validatorSet", void 0);
|
|
51
47
|
__decorate([
|
|
52
|
-
|
|
48
|
+
inject(Identifiers.CryptoWorker.WorkerPool),
|
|
53
49
|
__metadata("design:type", Object)
|
|
54
50
|
], Aggregator.prototype, "workerPool", void 0);
|
|
55
|
-
|
|
56
|
-
|
|
51
|
+
Aggregator = __decorate([
|
|
52
|
+
injectable()
|
|
57
53
|
], Aggregator);
|
|
54
|
+
export { Aggregator };
|
|
58
55
|
//# sourceMappingURL=aggregator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregator.js","sourceRoot":"","sources":["../source/aggregator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aggregator.js","sourceRoot":"","sources":["../source/aggregator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGlC,IAAM,UAAU,GAAhB,MAAM,UAAU;IAOf,KAAK,CAAC,SAAS,CACrB,QAA4C,EAC5C,gBAAwB;QAExB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,MAAM,UAAU,GAAc,KAAK,CAAC,IAAI,CAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5F,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC7C,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YAC/C,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAE3E,OAAO;YACN,SAAS;YACT,UAAU;SACV,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CACX,SAA+C,EAC/C,IAAY,EACZ,gBAAwB;QAExB,MAAM,mBAAmB,GAAa,SAAS,CAAC,UAAU;aACxD,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CACjB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,qBAAqB,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CACjG;aACA,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAEjD,MAAM,mBAAmB,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QAE5F,OAAO,MAAM,MAAM,CAAC,kBAAkB,CACrC,QAAQ,EACR,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,EACvC,IAAI,EACJ,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,CACvC,CAAC;IACH,CAAC;CACD,CAAA;AAzDiB;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC;;gDACsB;AAG9C;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC;;8CACc;AAL9C,UAAU;IADtB,UAAU,EAAE;GACA,UAAU,CA2DtB"}
|
|
@@ -3,6 +3,6 @@ export declare class Bootstrapper implements Contracts.Consensus.Bootstrapper {
|
|
|
3
3
|
private readonly logger;
|
|
4
4
|
private readonly roundStateRepo;
|
|
5
5
|
private readonly storage;
|
|
6
|
-
run(): Promise<Contracts.Consensus.
|
|
6
|
+
run(): Promise<Contracts.Consensus.State | undefined>;
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=bootstrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrapper.d.ts","sourceRoot":"","sources":["../source/bootstrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAsB,MAAM,qBAAqB,CAAC;AAEpE,qBACa,YAAa,YAAW,SAAS,CAAC,SAAS,CAAC,YAAY;IAEpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAGlD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAG3E,OAAO,CAAC,QAAQ,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"bootstrapper.d.ts","sourceRoot":"","sources":["../source/bootstrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAsB,MAAM,qBAAqB,CAAC;AAEpE,qBACa,YAAa,YAAW,SAAS,CAAC,SAAS,CAAC,YAAY;IAEpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAGlD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAG3E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAEjD,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC;CA6ClE"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -8,10 +7,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const container_1 = require("@mainsail/container");
|
|
14
|
-
const contracts_1 = require("@mainsail/contracts");
|
|
10
|
+
import { inject, injectable } from "@mainsail/container";
|
|
11
|
+
import { Contracts, Identifiers } from "@mainsail/contracts";
|
|
15
12
|
let Bootstrapper = class Bootstrapper {
|
|
16
13
|
async run() {
|
|
17
14
|
const proposals = await this.storage.getProposals();
|
|
@@ -49,20 +46,20 @@ let Bootstrapper = class Bootstrapper {
|
|
|
49
46
|
return state;
|
|
50
47
|
}
|
|
51
48
|
};
|
|
52
|
-
exports.Bootstrapper = Bootstrapper;
|
|
53
49
|
__decorate([
|
|
54
|
-
|
|
50
|
+
inject(Identifiers.Services.Log.Service),
|
|
55
51
|
__metadata("design:type", Object)
|
|
56
52
|
], Bootstrapper.prototype, "logger", void 0);
|
|
57
53
|
__decorate([
|
|
58
|
-
|
|
54
|
+
inject(Identifiers.Consensus.RoundStateRepository),
|
|
59
55
|
__metadata("design:type", Object)
|
|
60
56
|
], Bootstrapper.prototype, "roundStateRepo", void 0);
|
|
61
57
|
__decorate([
|
|
62
|
-
|
|
58
|
+
inject(Identifiers.ConsensusStorage.Service),
|
|
63
59
|
__metadata("design:type", Object)
|
|
64
60
|
], Bootstrapper.prototype, "storage", void 0);
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
Bootstrapper = __decorate([
|
|
62
|
+
injectable()
|
|
67
63
|
], Bootstrapper);
|
|
64
|
+
export { Bootstrapper };
|
|
68
65
|
//# sourceMappingURL=bootstrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrapper.js","sourceRoot":"","sources":["../source/bootstrapper.ts"],"names":[],"mappings":"
|
|
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;IAUjB,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;QAEzE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YACtF,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAElD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACpF,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAEtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3E,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YACxF,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAyD,CAAC;QACtG,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,uDAAuD;YACvD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YACrF,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACrC,wDAAwD;YACxD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YACtF,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC;QAChC,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAA;AArDiB;IADhB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;;4CACS;AAGjC;IADhB,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,oBAAoB,CAAC;;oDACwB;AAG1D;IADhB,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC;;6CACiB;AARlD,YAAY;IADxB,UAAU,EAAE;GACA,YAAY,CAuDxB"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -20,10 +19,8 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
20
19
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
21
20
|
};
|
|
22
21
|
var _CommitState_store, _CommitState_commit, _CommitState_processorResult, _CommitState_validators;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const container_1 = require("@mainsail/container");
|
|
26
|
-
const contracts_1 = require("@mainsail/contracts");
|
|
22
|
+
import { inject, injectable, postConstruct } from "@mainsail/container";
|
|
23
|
+
import { Contracts, Identifiers } from "@mainsail/contracts";
|
|
27
24
|
let CommitState = class CommitState {
|
|
28
25
|
constructor() {
|
|
29
26
|
_CommitState_store.set(this, void 0);
|
|
@@ -77,26 +74,26 @@ let CommitState = class CommitState {
|
|
|
77
74
|
return __classPrivateFieldGet(this, _CommitState_commit, "f");
|
|
78
75
|
}
|
|
79
76
|
};
|
|
80
|
-
exports.CommitState = CommitState;
|
|
81
77
|
_CommitState_store = new WeakMap();
|
|
82
78
|
_CommitState_commit = new WeakMap();
|
|
83
79
|
_CommitState_processorResult = new WeakMap();
|
|
84
80
|
_CommitState_validators = new WeakMap();
|
|
85
81
|
__decorate([
|
|
86
|
-
|
|
82
|
+
inject(Identifiers.State.Service),
|
|
87
83
|
__metadata("design:type", Object)
|
|
88
84
|
], CommitState.prototype, "stateService", void 0);
|
|
89
85
|
__decorate([
|
|
90
|
-
|
|
86
|
+
inject(Identifiers.ValidatorSet.Service),
|
|
91
87
|
__metadata("design:type", Object)
|
|
92
88
|
], CommitState.prototype, "validatorSet", void 0);
|
|
93
89
|
__decorate([
|
|
94
|
-
|
|
90
|
+
postConstruct(),
|
|
95
91
|
__metadata("design:type", Function),
|
|
96
92
|
__metadata("design:paramtypes", []),
|
|
97
93
|
__metadata("design:returntype", void 0)
|
|
98
94
|
], CommitState.prototype, "initialize", null);
|
|
99
|
-
|
|
100
|
-
|
|
95
|
+
CommitState = __decorate([
|
|
96
|
+
injectable()
|
|
101
97
|
], CommitState);
|
|
98
|
+
export { CommitState };
|
|
102
99
|
//# sourceMappingURL=commit-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit-state.js","sourceRoot":"","sources":["../source/commit-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commit-state.js","sourceRoot":"","sources":["../source/commit-state.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGtD,IAAM,WAAW,GAAjB,MAAM,WAAW;IAAjB;QAON,qCAA+B;QAC/B,sCAAkC;QAClC,+CAA2B;QAC3B,kCAAc,IAAI,GAAG,EAA2C,EAAC;IA8DlE,CAAC;IA3DO,UAAU;QAChB,uBAAA,IAAI,sBAAU,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAA,CAAC;IACpD,CAAC;IAED,IAAW,MAAM;QAChB,OAAO,uBAAA,IAAI,2BAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;IACvC,CAAC;IAED,IAAW,KAAK;QACf,OAAO,uBAAA,IAAI,2BAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;IACjC,CAAC;IAED,IAAW,OAAO;QACjB,OAAO,KAAK,CAAC,CAAC,wEAAwE;IACvF,CAAC;IAED,IAAW,UAAU;QACpB,OAAO,CAAC,GAAG,uBAAA,IAAI,+BAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,IAAW,KAAK;QACf,OAAO,uBAAA,IAAI,0BAAO,CAAC;IACpB,CAAC;IAEM,SAAS,CAAC,MAA+B;QAC/C,uBAAA,IAAI,uBAAW,MAAM,MAAA,CAAC;QAEtB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;QAC3D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,kBAAkB,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC;YAC7D,uBAAA,IAAI,+BAAY,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,QAAQ;QACd,OAAO,uBAAA,IAAI,2BAAQ,CAAC,KAAK,CAAC;IAC3B,CAAC;IAEM,kBAAkB,CAAC,eAAwB;QACjD,uBAAA,IAAI,gCAAoB,eAAe,MAAA,CAAC;IACzC,CAAC;IAEM,kBAAkB;QACxB,OAAO,uBAAA,IAAI,oCAAiB,KAAK,SAAS,CAAC;IAC5C,CAAC;IAEM,kBAAkB;QACxB,IAAI,uBAAA,IAAI,oCAAiB,IAAI,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,uBAAA,IAAI,oCAAiB,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,SAAS;QACrB,OAAO,uBAAA,IAAI,2BAAQ,CAAC;IACrB,CAAC;CACD,CAAA;;;;;AAtEiB;IADhB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;;iDACsB;AAGvC;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC;;iDACsB;AAQxD;IADN,aAAa,EAAE;;;;6CAGf;AAfW,WAAW;IADvB,UAAU,EAAE;GACA,WAAW,CAwEvB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Contracts } from "@mainsail/contracts";
|
|
2
|
-
export declare class Consensus implements Contracts.Consensus.
|
|
2
|
+
export declare class Consensus implements Contracts.Consensus.Service {
|
|
3
3
|
#private;
|
|
4
4
|
private readonly app;
|
|
5
5
|
private readonly bootstrapper;
|
|
@@ -14,6 +14,7 @@ export declare class Consensus implements Contracts.Consensus.ConsensusService {
|
|
|
14
14
|
private readonly roundStateRepository;
|
|
15
15
|
private readonly commitLock;
|
|
16
16
|
private readonly validatorSet;
|
|
17
|
+
private readonly eventDispatcher;
|
|
17
18
|
private readonly logger;
|
|
18
19
|
getHeight(): number;
|
|
19
20
|
getRound(): number;
|
|
@@ -23,7 +24,8 @@ export declare class Consensus implements Contracts.Consensus.ConsensusService {
|
|
|
23
24
|
getLockedRound(): number | undefined;
|
|
24
25
|
getValidRound(): number | undefined;
|
|
25
26
|
setValidRound(round: Contracts.Consensus.RoundState): void;
|
|
26
|
-
|
|
27
|
+
setProposal(proposalPromise: Promise<Contracts.Crypto.Proposal>): void;
|
|
28
|
+
getState(): Contracts.Consensus.State;
|
|
27
29
|
run(): Promise<void>;
|
|
28
30
|
dispose(): Promise<void>;
|
|
29
31
|
handle(roundState: Contracts.Consensus.RoundState): Promise<void>;
|
|
@@ -41,5 +43,8 @@ export declare class Consensus implements Contracts.Consensus.ConsensusService {
|
|
|
41
43
|
onTimeoutPropose(height: number, round: number): Promise<void>;
|
|
42
44
|
onTimeoutPrevote(height: number, round: number): Promise<void>;
|
|
43
45
|
onTimeoutPrecommit(height: number, round: number): Promise<void>;
|
|
46
|
+
propose(roundState: Contracts.Consensus.RoundState): Promise<void>;
|
|
47
|
+
prevote(value?: string): Promise<void>;
|
|
48
|
+
precommit(value?: string): Promise<void>;
|
|
44
49
|
}
|
|
45
50
|
//# sourceMappingURL=consensus.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consensus.d.ts","sourceRoot":"","sources":["../source/consensus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"consensus.d.ts","sourceRoot":"","sources":["../source/consensus.ts"],"names":[],"mappings":"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"}
|