@brightchain/brightchain-api-lib 0.19.0 → 0.21.0
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/package.json +8 -3
- package/src/index.d.ts +0 -1
- package/src/index.d.ts.map +1 -1
- package/src/index.js +0 -1
- package/src/index.js.map +1 -1
- package/src/lib/application.d.ts +12 -3
- package/src/lib/application.d.ts.map +1 -1
- package/src/lib/application.js +153 -7
- package/src/lib/application.js.map +1 -1
- package/src/lib/availability/gossipService.d.ts +59 -1
- package/src/lib/availability/gossipService.d.ts.map +1 -1
- package/src/lib/availability/gossipService.js +125 -1
- package/src/lib/availability/gossipService.js.map +1 -1
- package/src/lib/availability/index.d.ts +1 -0
- package/src/lib/availability/index.d.ts.map +1 -1
- package/src/lib/availability/index.js +1 -0
- package/src/lib/availability/index.js.map +1 -1
- package/src/lib/availability/quorumGossipHandler.d.ts +126 -0
- package/src/lib/availability/quorumGossipHandler.d.ts.map +1 -0
- package/src/lib/availability/quorumGossipHandler.js +246 -0
- package/src/lib/availability/quorumGossipHandler.js.map +1 -0
- package/src/lib/constants.d.ts.map +1 -1
- package/src/lib/constants.js +4 -0
- package/src/lib/constants.js.map +1 -1
- package/src/lib/controllers/api/quorum.d.ts +110 -2
- package/src/lib/controllers/api/quorum.d.ts.map +1 -1
- package/src/lib/controllers/api/quorum.js +389 -0
- package/src/lib/controllers/api/quorum.js.map +1 -1
- package/src/lib/controllers/api/user.d.ts +12 -15
- package/src/lib/controllers/api/user.d.ts.map +1 -1
- package/src/lib/controllers/api/user.js +312 -94
- package/src/lib/controllers/api/user.js.map +1 -1
- package/src/lib/databaseInit.d.ts +3 -2
- package/src/lib/databaseInit.d.ts.map +1 -1
- package/src/lib/databaseInit.js +24 -12
- package/src/lib/databaseInit.js.map +1 -1
- package/src/lib/datastore/index.d.ts +0 -1
- package/src/lib/datastore/index.d.ts.map +1 -1
- package/src/lib/datastore/index.js +0 -1
- package/src/lib/datastore/index.js.map +1 -1
- package/src/lib/environment.d.ts +6 -0
- package/src/lib/environment.d.ts.map +1 -1
- package/src/lib/environment.js +14 -0
- package/src/lib/environment.js.map +1 -1
- package/src/lib/hydration/energyAccountHydration.d.ts +17 -0
- package/src/lib/hydration/energyAccountHydration.d.ts.map +1 -0
- package/src/lib/hydration/energyAccountHydration.js +24 -0
- package/src/lib/hydration/energyAccountHydration.js.map +1 -0
- package/src/lib/hydration/index.d.ts +13 -0
- package/src/lib/hydration/index.d.ts.map +1 -0
- package/src/lib/hydration/index.js +21 -0
- package/src/lib/hydration/index.js.map +1 -0
- package/src/lib/hydration/rbacHydration.d.ts +28 -0
- package/src/lib/hydration/rbacHydration.d.ts.map +1 -0
- package/src/lib/hydration/rbacHydration.js +56 -0
- package/src/lib/hydration/rbacHydration.js.map +1 -0
- package/src/lib/interfaces/environment.d.ts +7 -1
- package/src/lib/interfaces/environment.d.ts.map +1 -1
- package/src/lib/interfaces/responses/api-backup-codes-response.d.ts +1 -1
- package/src/lib/interfaces/responses/api-code-count-response.d.ts +1 -1
- package/src/lib/interfaces/responses/api-password-change-response.d.ts +9 -0
- package/src/lib/interfaces/responses/api-password-change-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-password-change-response.js +3 -0
- package/src/lib/interfaces/responses/api-password-change-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-recovery-response.d.ts +9 -0
- package/src/lib/interfaces/responses/api-recovery-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-recovery-response.js +3 -0
- package/src/lib/interfaces/responses/api-recovery-response.js.map +1 -0
- package/src/lib/interfaces/responses/index.d.ts +2 -0
- package/src/lib/interfaces/responses/index.d.ts.map +1 -1
- package/src/lib/interfaces/storage/index.d.ts +1 -0
- package/src/lib/interfaces/storage/index.d.ts.map +1 -1
- package/src/lib/interfaces/storage/index.js.map +1 -1
- package/src/lib/interfaces/storage/storedDocumentTypes.d.ts +73 -0
- package/src/lib/interfaces/storage/storedDocumentTypes.d.ts.map +1 -0
- package/src/lib/interfaces/storage/storedDocumentTypes.js +15 -0
- package/src/lib/interfaces/storage/storedDocumentTypes.js.map +1 -0
- package/src/lib/plugins/brightchain-database-plugin.d.ts +29 -20
- package/src/lib/plugins/brightchain-database-plugin.d.ts.map +1 -1
- package/src/lib/plugins/brightchain-database-plugin.js +103 -53
- package/src/lib/plugins/brightchain-database-plugin.js.map +1 -1
- package/src/lib/plugins/configure-brightchain-app.d.ts.map +1 -1
- package/src/lib/plugins/configure-brightchain-app.js +5 -0
- package/src/lib/plugins/configure-brightchain-app.js.map +1 -1
- package/src/lib/services/auth.d.ts +6 -2
- package/src/lib/services/auth.d.ts.map +1 -1
- package/src/lib/services/auth.js +43 -7
- package/src/lib/services/auth.js.map +1 -1
- package/src/lib/services/backupCodeService.d.ts +35 -0
- package/src/lib/services/backupCodeService.d.ts.map +1 -0
- package/src/lib/services/backupCodeService.js +109 -0
- package/src/lib/services/backupCodeService.js.map +1 -0
- package/src/lib/services/brightchain-authentication-provider.d.ts.map +1 -1
- package/src/lib/services/brightchain-authentication-provider.js +28 -9
- package/src/lib/services/brightchain-authentication-provider.js.map +1 -1
- package/src/lib/services/brightchain-member-init.service.d.ts +39 -20
- package/src/lib/services/brightchain-member-init.service.d.ts.map +1 -1
- package/src/lib/services/brightchain-member-init.service.js +139 -53
- package/src/lib/services/brightchain-member-init.service.js.map +1 -1
- package/src/lib/services/cliOperatorPrompt.d.ts +81 -0
- package/src/lib/services/cliOperatorPrompt.d.ts.map +1 -0
- package/src/lib/services/cliOperatorPrompt.js +177 -0
- package/src/lib/services/cliOperatorPrompt.js.map +1 -0
- package/src/lib/services/contentAwareBlocksService.d.ts +92 -0
- package/src/lib/services/contentAwareBlocksService.d.ts.map +1 -0
- package/src/lib/services/contentAwareBlocksService.js +102 -0
- package/src/lib/services/contentAwareBlocksService.js.map +1 -0
- package/src/lib/services/contentIngestionService.d.ts +68 -0
- package/src/lib/services/contentIngestionService.d.ts.map +1 -0
- package/src/lib/services/contentIngestionService.js +139 -0
- package/src/lib/services/contentIngestionService.js.map +1 -0
- package/src/lib/services/identityExpirationScheduler.d.ts +77 -0
- package/src/lib/services/identityExpirationScheduler.d.ts.map +1 -0
- package/src/lib/services/identityExpirationScheduler.js +157 -0
- package/src/lib/services/identityExpirationScheduler.js.map +1 -0
- package/src/lib/services/index.d.ts +7 -0
- package/src/lib/services/index.d.ts.map +1 -1
- package/src/lib/services/index.js +7 -0
- package/src/lib/services/index.js.map +1 -1
- package/src/lib/services/quorumDatabaseAdapter.d.ts +60 -0
- package/src/lib/services/quorumDatabaseAdapter.d.ts.map +1 -0
- package/src/lib/services/quorumDatabaseAdapter.js +652 -0
- package/src/lib/services/quorumDatabaseAdapter.js.map +1 -0
- package/src/lib/services/secureKeyStorage.js +3 -3
- package/src/lib/services/secureKeyStorage.js.map +1 -1
- package/src/lib/services/sessionAdapter.d.ts +62 -0
- package/src/lib/services/sessionAdapter.d.ts.map +1 -0
- package/src/lib/services/sessionAdapter.js +105 -0
- package/src/lib/services/sessionAdapter.js.map +1 -0
- package/src/lib/utils/rehydration.d.ts +31 -0
- package/src/lib/utils/rehydration.d.ts.map +1 -0
- package/src/lib/utils/rehydration.js +111 -0
- package/src/lib/utils/rehydration.js.map +1 -0
- package/src/lib/utils/serialization.d.ts +21 -0
- package/src/lib/utils/serialization.d.ts.map +1 -0
- package/src/lib/utils/serialization.js +41 -0
- package/src/lib/utils/serialization.js.map +1 -0
- package/src/lib/validation/userValidation.d.ts +17 -0
- package/src/lib/validation/userValidation.d.ts.map +1 -1
- package/src/lib/validation/userValidation.js +77 -0
- package/src/lib/validation/userValidation.js.map +1 -1
- package/src/lib/adapters/brightChainDbDocumentStoreAdapter.d.ts +0 -24
- package/src/lib/adapters/brightChainDbDocumentStoreAdapter.d.ts.map +0 -1
- package/src/lib/adapters/brightChainDbDocumentStoreAdapter.js +0 -53
- package/src/lib/adapters/brightChainDbDocumentStoreAdapter.js.map +0 -1
- package/src/lib/datastore/document-model-adapter.d.ts +0 -48
- package/src/lib/datastore/document-model-adapter.d.ts.map +0 -1
- package/src/lib/datastore/document-model-adapter.js +0 -178
- package/src/lib/datastore/document-model-adapter.js.map +0 -1
- /package/{brightchain-api-lib/README.md → README.md} +0 -0
package/package.json
CHANGED
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brightchain/brightchain-api-lib",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
4
4
|
"main": "./src/index.js",
|
|
5
5
|
"types": "./src/index.d.ts",
|
|
6
|
+
"files": [
|
|
7
|
+
"src",
|
|
8
|
+
"README.md"
|
|
9
|
+
],
|
|
6
10
|
"dependencies": {
|
|
7
11
|
"@aws-sdk/client-ses": "^3.859.0",
|
|
8
|
-
"@brightchain/brightchain-lib": "0.
|
|
12
|
+
"@brightchain/brightchain-lib": "^0.21.0",
|
|
9
13
|
"@digitaldefiance/branded-enum": "^0.0.7",
|
|
14
|
+
"@digitaldefiance/ecies-lib": "^4.19.6",
|
|
10
15
|
"@digitaldefiance/enclave-bridge-client": "^1.1.0",
|
|
11
16
|
"@digitaldefiance/i18n-lib": "^4.6.4",
|
|
12
|
-
"@digitaldefiance/node-ecies-lib": "^4.19.
|
|
17
|
+
"@digitaldefiance/node-ecies-lib": "^4.19.7",
|
|
13
18
|
"@ethereumjs/wallet": "^10.0.0",
|
|
14
19
|
"bip39": "^3.1.0",
|
|
15
20
|
"buffer": "^6.0.3",
|
package/src/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export * from './lib/stores';
|
|
2
2
|
export * from './lib/transforms';
|
|
3
3
|
export * from './lib/services';
|
|
4
|
-
export * from './lib/adapters/brightChainDbDocumentStoreAdapter';
|
|
5
4
|
export * from './lib/databaseInit';
|
|
6
5
|
export * from './lib/appConstants';
|
|
7
6
|
export * from './lib/application';
|
package/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../brightchain-api-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../brightchain-api-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,oBAAoB,CAAC;AAGnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAKjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAG9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAG5C,cAAc,iCAAiC,CAAC;AAEhD,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,SAAS,GACV,MAAM,oBAAoB,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AAGpC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC"}
|
package/src/index.js
CHANGED
|
@@ -7,7 +7,6 @@ tslib_1.__exportStar(require("./lib/transforms"), exports);
|
|
|
7
7
|
// Export Node.js specific services
|
|
8
8
|
tslib_1.__exportStar(require("./lib/services"), exports);
|
|
9
9
|
// Database initialization
|
|
10
|
-
tslib_1.__exportStar(require("./lib/adapters/brightChainDbDocumentStoreAdapter"), exports);
|
|
11
10
|
tslib_1.__exportStar(require("./lib/databaseInit"), exports);
|
|
12
11
|
// API lib exports
|
|
13
12
|
tslib_1.__exportStar(require("./lib/appConstants"), exports);
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../brightchain-api-lib/src/index.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,uDAA6B;AAC7B,2DAAiC;AAEjC,mCAAmC;AACnC,yDAA+B;AAE/B,0BAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../brightchain-api-lib/src/index.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,uDAA6B;AAC7B,2DAAiC;AAEjC,mCAAmC;AACnC,yDAA+B;AAE/B,0BAA0B;AAC1B,6DAAmC;AAEnC,kBAAkB;AAClB,6DAAmC;AACnC,4DAAkC;AAClC,0DAAgC;AAChC,4DAAkC;AAClC,6GAA6G;AAC7G,6DAAmC;AACnC,4DAAkC;AAClC,uDAA6B;AAC7B,2DAAiC;AACjC,iGAAiG;AACjG,+EAA+E;AAC/E,gFAAgF;AAEhF,0DAAgC;AAChC,2DAAiC;AACjC,4DAAkC;AAClC,wDAA8B;AAC9B,oGAAoG;AACpG,kFAAkF;AAClF,6DAAmC;AACnC,2DAAiC;AACjC,oEAA0C;AAC1C,sEAA4C;AAE5C,uBAAuB;AACvB,0EAAgD;AAQhD,eAAe;AACf,qDAA2B;AAE3B,qBAAqB;AACrB,2DAAiC;AAEjC,kBAAkB;AAClB,+DAAqC;AACrC,4DAAkC;AAClC,qEAA2C;AAC3C,8DAAoC;AAEpC,sBAAsB;AACtB,oFAA0D;AAC1D,kFAAwD"}
|
package/src/lib/application.d.ts
CHANGED
|
@@ -35,6 +35,11 @@ export declare class App<TID extends PlatformID> extends UpstreamApplication<TID
|
|
|
35
35
|
private clientWsServer;
|
|
36
36
|
private messagePassingService;
|
|
37
37
|
private upnpManager;
|
|
38
|
+
private quorumDbAdapter;
|
|
39
|
+
private quorumStateMachine;
|
|
40
|
+
private identityExpirationScheduler;
|
|
41
|
+
private quorumGossipHandler;
|
|
42
|
+
private contentAwareBlocksService;
|
|
38
43
|
/**
|
|
39
44
|
* Captured HTTP server reference for WebSocket attachment.
|
|
40
45
|
* The upstream Application stores the server as a private field,
|
|
@@ -49,9 +54,13 @@ export declare class App<TID extends PlatformID> extends UpstreamApplication<TID
|
|
|
49
54
|
*/
|
|
50
55
|
get db(): DocumentStore;
|
|
51
56
|
/**
|
|
52
|
-
* Get a collection from the BrightChain document store by name.
|
|
53
|
-
*
|
|
54
|
-
*
|
|
57
|
+
* Get a model or collection from the BrightChain document store by name.
|
|
58
|
+
*
|
|
59
|
+
* If a typed Model has been registered on the BrightChainDb instance
|
|
60
|
+
* (via `db.model()`), returns that Model — giving callers automatic
|
|
61
|
+
* hydration/dehydration. Otherwise falls back to a raw DocumentCollection.
|
|
62
|
+
*
|
|
63
|
+
* Overrides the upstream Mongoose-specific `getModel()`.
|
|
55
64
|
*/
|
|
56
65
|
getModel<U extends DocumentRecord>(modelName: string): DocumentCollection<U>;
|
|
57
66
|
start(mongoUri?: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,oBAAoB,EAGpB,kBAAkB,EAClB,sBAAsB,EAIvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAGL,UAAU,EAEV,WAAW,IAAI,mBAAmB,EACnC,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAe1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E;;;;;;;;;;;;GAYG;AACH,qBAAa,GAAG,CAAC,GAAG,SAAS,UAAU,CAAE,SAAQ,mBAAmB,CAClE,GAAG,EACH,WAAW,CAAC,GAAG,CAAC,EAChB,UAAU,EACV,SAAS,CAAC,GAAG,CAAC,CACf;IACC,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAgB;IAC1D,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,cAAc,CAAsC;IAC5D,OAAO,CAAC,qBAAqB,CAAsC;IACnE,OAAO,CAAC,WAAW,CAA4B;IAG/C,OAAO,CAAC,eAAe,CAA2C;IAClE,OAAO,CAAC,kBAAkB,CAAwC;IAClE,OAAO,CAAC,2BAA2B,CAC5B;IACP,OAAO,CAAC,mBAAmB,CAAyC;IACpE,OAAO,CAAC,yBAAyB,CAC1B;IAEP;;;;OAIG;IACH,OAAO,CAAC,WAAW,CAAuB;gBAE9B,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC;IA0BzC;;;;OAIG;IAEH,IAAoB,EAAE,IAAI,aAAa,CAEtC;IAED;;;;;;;;OAQG;IAEa,QAAQ,CAAC,CAAC,SAAS,cAAc,EAC/C,SAAS,EAAE,MAAM,GAChB,kBAAkB,CAAC,CAAC,CAAC;IAiBF,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6SvC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAsEpC,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAI3C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;IAI7D;;;OAGG;IACI,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI;IAI5C;;;OAGG;IACI,cAAc,IAAI,uBAAuB,GAAG,IAAI;IAIvD;;;OAGG;IACI,kBAAkB,IAAI,sBAAsB,GAAG,IAAI;IAI1D;;;;OAIG;IACI,wBAAwB,IAAI,qBAAqB,GAAG,IAAI;IAI/D;;;;;OAKG;IACI,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAQrE;;;;;OAKG;IACI,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAO/D;;;;;OAKG;IACI,sBAAsB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAQlE;;;;;OAKG;IACI,wBAAwB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAOtE;;;;;;;;OAQG;IACI,uBAAuB,CAC5B,oBAAoB,EAAE,oBAAoB,EAC1C,aAAa,EAAE,aAAa,GAC3B,IAAI;CA8BR"}
|
package/src/lib/application.js
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.App = void 0;
|
|
4
4
|
const brightchain_lib_1 = require("@brightchain/brightchain-lib");
|
|
5
|
+
const db_1 = require("@brightchain/db");
|
|
5
6
|
const node_express_suite_1 = require("@digitaldefiance/node-express-suite");
|
|
6
7
|
const appConstants_1 = require("./appConstants");
|
|
8
|
+
const quorumGossipHandler_1 = require("./availability/quorumGossipHandler");
|
|
7
9
|
const block_document_store_factory_1 = require("./datastore/block-document-store-factory");
|
|
8
10
|
const middlewares_1 = require("./middlewares");
|
|
9
11
|
const configure_brightchain_app_1 = require("./plugins/configure-brightchain-app");
|
|
@@ -46,6 +48,12 @@ class App extends node_express_suite_1.Application {
|
|
|
46
48
|
this.clientWsServer = null;
|
|
47
49
|
this.messagePassingService = null;
|
|
48
50
|
this.upnpManager = null;
|
|
51
|
+
// ── Quorum subsystem ──────────────────────────────────────────────
|
|
52
|
+
this.quorumDbAdapter = null;
|
|
53
|
+
this.quorumStateMachine = null;
|
|
54
|
+
this.identityExpirationScheduler = null;
|
|
55
|
+
this.quorumGossipHandler = null;
|
|
56
|
+
this.contentAwareBlocksService = null;
|
|
49
57
|
/**
|
|
50
58
|
* Captured HTTP server reference for WebSocket attachment.
|
|
51
59
|
* The upstream Application stores the server as a private field,
|
|
@@ -70,12 +78,30 @@ class App extends node_express_suite_1.Application {
|
|
|
70
78
|
return this._brightchainDocumentStore;
|
|
71
79
|
}
|
|
72
80
|
/**
|
|
73
|
-
* Get a collection from the BrightChain document store by name.
|
|
74
|
-
*
|
|
75
|
-
*
|
|
81
|
+
* Get a model or collection from the BrightChain document store by name.
|
|
82
|
+
*
|
|
83
|
+
* If a typed Model has been registered on the BrightChainDb instance
|
|
84
|
+
* (via `db.model()`), returns that Model — giving callers automatic
|
|
85
|
+
* hydration/dehydration. Otherwise falls back to a raw DocumentCollection.
|
|
86
|
+
*
|
|
87
|
+
* Overrides the upstream Mongoose-specific `getModel()`.
|
|
76
88
|
*/
|
|
77
|
-
// @ts-expect-error — BrightChain returns DocumentCollection, not mongoose Model
|
|
89
|
+
// @ts-expect-error — BrightChain returns DocumentCollection | Model, not mongoose Model
|
|
78
90
|
getModel(modelName) {
|
|
91
|
+
// Prefer a registered Model when available
|
|
92
|
+
try {
|
|
93
|
+
const db = this._plugin.brightChainDb;
|
|
94
|
+
if (db.hasModel(modelName)) {
|
|
95
|
+
// Return the Model instance — callers that know the typed shape
|
|
96
|
+
// can cast to Model<TStored, TTyped>. The Model also exposes
|
|
97
|
+
// .collection for raw access, so it's a superset of functionality.
|
|
98
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
99
|
+
return db.model(modelName);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
// Plugin not connected yet — fall through to document store
|
|
104
|
+
}
|
|
79
105
|
return this._brightchainDocumentStore.collection(modelName);
|
|
80
106
|
}
|
|
81
107
|
async start(mongoUri) {
|
|
@@ -98,23 +124,40 @@ class App extends node_express_suite_1.Application {
|
|
|
98
124
|
// After super.start(), the plugin lifecycle is complete:
|
|
99
125
|
// plugin.connect() → brightchainDatabaseInit()
|
|
100
126
|
// plugin.init(app) → BrightChainAuthenticationProvider created
|
|
127
|
+
// (dev mode) initializeDevStore() → seedMembers(useMemoryStore=true)
|
|
101
128
|
// Retrieve stores from the plugin instead of calling brightchainDatabaseInit() directly.
|
|
129
|
+
// Production-mode member seeding: when DEV_DATABASE is NOT set, the upstream
|
|
130
|
+
// lifecycle does not call initializeDevStore(). We seed members here with
|
|
131
|
+
// useMemoryStore=false so system/admin/member users are persisted to the
|
|
132
|
+
// disk-backed database.
|
|
133
|
+
if (!this.environment.devDatabase) {
|
|
134
|
+
const prodConfig = this._plugin.buildMemberInitConfig();
|
|
135
|
+
const memberResult = await this._plugin.seedMembers(prodConfig);
|
|
136
|
+
services_1.BrightChainMemberInitService.printBaseInitResults(memberResult.input, memberResult, prodConfig);
|
|
137
|
+
}
|
|
102
138
|
await this.keyStorage.initializeFromEnvironment();
|
|
103
139
|
const blockStore = this._plugin.blockStore;
|
|
104
|
-
const
|
|
140
|
+
const brightChainDb = this._plugin.brightChainDb;
|
|
105
141
|
const memberStore = this._plugin.memberStore;
|
|
106
142
|
const energyStore = this._plugin.energyStore;
|
|
107
143
|
const energyLedger = new brightchain_lib_1.EnergyLedger();
|
|
108
144
|
const emailService = new services_1.EmailService(this);
|
|
109
|
-
const
|
|
145
|
+
const authProvider = this._plugin.authenticationProvider;
|
|
146
|
+
const authService = new services_1.AuthService(this, memberStore, energyStore, emailService, this.environment.jwtSecret, authProvider);
|
|
110
147
|
// Register services from plugin stores and additional services
|
|
111
148
|
this.services.register('blockStore', () => blockStore);
|
|
112
|
-
this.services.register('db', () =>
|
|
149
|
+
this.services.register('db', () => brightChainDb);
|
|
113
150
|
this.services.register('memberStore', () => memberStore);
|
|
114
151
|
this.services.register('energyStore', () => energyStore);
|
|
115
152
|
this.services.register('energyLedger', () => energyLedger);
|
|
116
153
|
this.services.register('emailService', () => emailService);
|
|
117
154
|
this.services.register('auth', () => authService);
|
|
155
|
+
// BackupCodeService — singleton backed by MemberStore
|
|
156
|
+
const backupCodeService = new services_1.BackupCodeService(memberStore);
|
|
157
|
+
this.services.register('backupCodeService', () => backupCodeService);
|
|
158
|
+
// BrightChainSessionAdapter — singleton backed by BrightChainDb
|
|
159
|
+
const sessionAdapter = new services_1.BrightChainSessionAdapter(brightChainDb);
|
|
160
|
+
this.services.register('sessionAdapter', () => sessionAdapter);
|
|
118
161
|
// EventNotificationSystem for WebSocket events
|
|
119
162
|
this.eventSystem = new eventNotificationSystem_1.EventNotificationSystem();
|
|
120
163
|
this.services.register('eventSystem', () => this.eventSystem);
|
|
@@ -133,6 +176,85 @@ class App extends node_express_suite_1.Application {
|
|
|
133
176
|
if (this.apiRouter) {
|
|
134
177
|
this.apiRouter.setSyncEventSystem(this.eventSystem);
|
|
135
178
|
}
|
|
179
|
+
// ── Quorum subsystem initialization ─────────────────────────────
|
|
180
|
+
// Task 23.1: Initialize QuorumDatabaseAdapter with pool ID "quorum-system"
|
|
181
|
+
try {
|
|
182
|
+
const quorumDb = new db_1.BrightChainDb(blockStore, {
|
|
183
|
+
name: 'quorum-system',
|
|
184
|
+
poolId: 'quorum-system',
|
|
185
|
+
});
|
|
186
|
+
this.quorumDbAdapter = new services_1.QuorumDatabaseAdapter(quorumDb);
|
|
187
|
+
this.services.register('quorumDbAdapter', () => this.quorumDbAdapter);
|
|
188
|
+
(0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] Quorum database adapter initialized (pool: quorum-system)');
|
|
189
|
+
// Task 23.2: Initialize QuorumStateMachine with dependencies
|
|
190
|
+
const serviceProvider = brightchain_lib_1.ServiceProvider.getInstance();
|
|
191
|
+
const sealingService = serviceProvider.sealingService;
|
|
192
|
+
const eciesService = serviceProvider.eciesService;
|
|
193
|
+
// AuditLogService needs a signing member — use the system member from
|
|
194
|
+
// the plugin if available, otherwise defer audit log creation.
|
|
195
|
+
// For now, create without block store persistence (audit entries go to DB only).
|
|
196
|
+
const auditLogService = new brightchain_lib_1.AuditLogService(this.quorumDbAdapter,
|
|
197
|
+
// The signing member is set when the node operator is configured.
|
|
198
|
+
// At startup we pass null — appendEntry will skip signature generation.
|
|
199
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
200
|
+
null,
|
|
201
|
+
// ECIESService<TID> is runtime-compatible with ECIESService; cast needed
|
|
202
|
+
// because AuditLogService imports the base ECIESService type.
|
|
203
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
204
|
+
eciesService);
|
|
205
|
+
this.services.register('auditLogService', () => auditLogService);
|
|
206
|
+
// Create IdentitySealingPipeline for content ingestion
|
|
207
|
+
const identitySealingPipeline = new brightchain_lib_1.IdentitySealingPipeline(this.quorumDbAdapter, sealingService, eciesService, () => this.quorumStateMachine.getCurrentEpoch(), () => this.quorumDbAdapter.getStatuteConfig());
|
|
208
|
+
this.services.register('identitySealingPipeline', () => identitySealingPipeline);
|
|
209
|
+
// Create AliasRegistry
|
|
210
|
+
const aliasRegistry = new brightchain_lib_1.AliasRegistry(this.quorumDbAdapter, identitySealingPipeline, eciesService, () => this.quorumStateMachine.getCurrentEpoch());
|
|
211
|
+
this.services.register('aliasRegistry', () => aliasRegistry);
|
|
212
|
+
// Create the QuorumStateMachine — central coordinator
|
|
213
|
+
// GossipService is wired externally via setPoolDiscoveryService.
|
|
214
|
+
// We pass a no-op stub until the real gossip service is available.
|
|
215
|
+
// The QuorumGossipHandler (Task 23.4) bridges gossip ↔ state machine.
|
|
216
|
+
const gossipStub = {
|
|
217
|
+
announceQuorumProposal: async () => { },
|
|
218
|
+
announceQuorumVote: async () => { },
|
|
219
|
+
onQuorumProposal: () => { },
|
|
220
|
+
offQuorumProposal: () => { },
|
|
221
|
+
onQuorumVote: () => { },
|
|
222
|
+
offQuorumVote: () => { },
|
|
223
|
+
};
|
|
224
|
+
this.quorumStateMachine = new brightchain_lib_1.QuorumStateMachine(this.quorumDbAdapter, sealingService,
|
|
225
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
226
|
+
gossipStub, auditLogService, aliasRegistry);
|
|
227
|
+
this.services.register('quorumStateMachine', () => this.quorumStateMachine);
|
|
228
|
+
(0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] Quorum state machine initialized');
|
|
229
|
+
// Task 23.3: Start IdentityExpirationScheduler
|
|
230
|
+
this.identityExpirationScheduler = new services_1.IdentityExpirationScheduler(this.quorumDbAdapter, auditLogService);
|
|
231
|
+
this.identityExpirationScheduler.start();
|
|
232
|
+
this.services.register('identityExpirationScheduler', () => this.identityExpirationScheduler);
|
|
233
|
+
(0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] Identity expiration scheduler started');
|
|
234
|
+
// Task 23.4: Register gossip message handlers for quorum_proposal and quorum_vote
|
|
235
|
+
// The QuorumGossipHandler is created here but gossip service binding
|
|
236
|
+
// happens when setQuorumGossipService() is called externally.
|
|
237
|
+
// For now, store the state machine reference so it can be wired later.
|
|
238
|
+
this.services.register('quorumGossipHandlerFactory', () => (gossipService) => {
|
|
239
|
+
this.quorumGossipHandler = new quorumGossipHandler_1.QuorumGossipHandler(gossipService, this.quorumStateMachine, this.quorumDbAdapter);
|
|
240
|
+
this.quorumGossipHandler.start();
|
|
241
|
+
this.services.register('quorumGossipHandler', () => this.quorumGossipHandler);
|
|
242
|
+
(0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] Quorum gossip handlers registered (quorum_proposal, quorum_vote)');
|
|
243
|
+
});
|
|
244
|
+
// Task 23.5: Wire content ingestion middleware (IdentityValidator + IdentitySealingPipeline)
|
|
245
|
+
const membershipProofService = new brightchain_lib_1.MembershipProofService();
|
|
246
|
+
const identityValidator = new brightchain_lib_1.IdentityValidator(this.quorumDbAdapter, eciesService, membershipProofService);
|
|
247
|
+
this.services.register('identityValidator', () => identityValidator);
|
|
248
|
+
const contentIngestionService = new services_1.ContentIngestionService(identityValidator, identitySealingPipeline);
|
|
249
|
+
this.services.register('contentIngestionService', () => contentIngestionService);
|
|
250
|
+
// CLIOperatorPrompt for interactive voting
|
|
251
|
+
const operatorPrompt = new services_1.CLIOperatorPrompt();
|
|
252
|
+
this.services.register('operatorPrompt', () => operatorPrompt);
|
|
253
|
+
(0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] Quorum subsystem fully initialized');
|
|
254
|
+
}
|
|
255
|
+
catch (quorumErr) {
|
|
256
|
+
console.warn('[ warning ] Quorum subsystem initialization failed, continuing without quorum:', quorumErr);
|
|
257
|
+
}
|
|
136
258
|
// UPnP port mapping (non-fatal on failure)
|
|
137
259
|
try {
|
|
138
260
|
if (this.environment.upnp?.enabled) {
|
|
@@ -151,6 +273,23 @@ class App extends node_express_suite_1.Application {
|
|
|
151
273
|
}
|
|
152
274
|
async stop() {
|
|
153
275
|
// BrightChain-specific cleanup first, then delegate to upstream
|
|
276
|
+
// ── Quorum subsystem shutdown ─────────────────────────────────────
|
|
277
|
+
// Task 23.3: Stop ExpirationScheduler (graceful cleanup)
|
|
278
|
+
if (this.identityExpirationScheduler) {
|
|
279
|
+
(0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] Identity expiration scheduler');
|
|
280
|
+
this.identityExpirationScheduler.stop();
|
|
281
|
+
this.identityExpirationScheduler = null;
|
|
282
|
+
}
|
|
283
|
+
// Task 23.4: Unregister gossip handlers
|
|
284
|
+
if (this.quorumGossipHandler) {
|
|
285
|
+
(0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] Quorum gossip handlers');
|
|
286
|
+
this.quorumGossipHandler.stop();
|
|
287
|
+
this.quorumGossipHandler = null;
|
|
288
|
+
}
|
|
289
|
+
// Clean up quorum references
|
|
290
|
+
this.quorumStateMachine = null;
|
|
291
|
+
this.quorumDbAdapter = null;
|
|
292
|
+
this.contentAwareBlocksService = null;
|
|
154
293
|
// Shutdown UPnP port mappings
|
|
155
294
|
if (this.upnpManager) {
|
|
156
295
|
(0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] UPnP port mapping');
|
|
@@ -286,6 +425,13 @@ class App extends node_express_suite_1.Application {
|
|
|
286
425
|
poolDiscoveryService.handlePoolRemoval(announcement.poolId, announcement.nodeId);
|
|
287
426
|
}
|
|
288
427
|
});
|
|
428
|
+
// Task 23.4: Wire quorum gossip handlers when gossip service becomes available
|
|
429
|
+
if (this.services.has('quorumGossipHandlerFactory')) {
|
|
430
|
+
const gossipHandlerFactory = this.services.get('quorumGossipHandlerFactory');
|
|
431
|
+
if (gossipHandlerFactory) {
|
|
432
|
+
gossipHandlerFactory(gossipService);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
289
435
|
// Pass to IntrospectionController via ApiRouter
|
|
290
436
|
if (this.apiRouter) {
|
|
291
437
|
this.apiRouter.setIntrospectionPoolDiscoveryService(poolDiscoveryService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @see Requirements 6.1, 6.2, 6.3, 6.4, 6.5, 6.6
|
|
9
9
|
*/
|
|
10
|
-
import { AnnouncementHandler, BlockAnnouncement, DeliveryAckMetadata, GossipConfig, ICBLIndexEntry, IGossipService, MessageDeliveryMetadata, PoolAnnouncementMetadata, PoolId } from '@brightchain/brightchain-lib';
|
|
10
|
+
import { AnnouncementHandler, BlockAnnouncement, DeliveryAckMetadata, GossipConfig, ICBLIndexEntry, IGossipService, MessageDeliveryMetadata, PoolAnnouncementMetadata, PoolId, QuorumProposalMetadata, QuorumVoteMetadata } from '@brightchain/brightchain-lib';
|
|
11
11
|
import { ECIESService } from '@digitaldefiance/node-ecies-lib';
|
|
12
12
|
/**
|
|
13
13
|
* Error thrown when gossip configuration is invalid.
|
|
@@ -90,6 +90,20 @@ export declare class GossipService implements IGossipService {
|
|
|
90
90
|
* @see Requirements 4.4
|
|
91
91
|
*/
|
|
92
92
|
private deliveryAckHandlers;
|
|
93
|
+
/**
|
|
94
|
+
* Registered quorum proposal handlers.
|
|
95
|
+
* Called when a BlockAnnouncement of type 'quorum_proposal' is received.
|
|
96
|
+
*
|
|
97
|
+
* @see Requirements 5.5
|
|
98
|
+
*/
|
|
99
|
+
private quorumProposalHandlers;
|
|
100
|
+
/**
|
|
101
|
+
* Registered quorum vote handlers.
|
|
102
|
+
* Called when a BlockAnnouncement of type 'quorum_vote' is received.
|
|
103
|
+
*
|
|
104
|
+
* @see Requirements 7.3
|
|
105
|
+
*/
|
|
106
|
+
private quorumVoteHandlers;
|
|
93
107
|
/**
|
|
94
108
|
* Set of local user IDs on this node.
|
|
95
109
|
* Used to determine if a message delivery announcement targets local users.
|
|
@@ -354,5 +368,49 @@ export declare class GossipService implements IGossipService {
|
|
|
354
368
|
* @param handler - The handler to remove
|
|
355
369
|
*/
|
|
356
370
|
offDeliveryAck(handler: (announcement: BlockAnnouncement) => void): void;
|
|
371
|
+
/**
|
|
372
|
+
* Announce a quorum proposal to the network via priority gossip.
|
|
373
|
+
* Creates a BlockAnnouncement of type 'quorum_proposal' with the proposal metadata
|
|
374
|
+
* and queues it for propagation using high-priority fanout/TTL.
|
|
375
|
+
*
|
|
376
|
+
* @param metadata - The quorum proposal metadata to announce
|
|
377
|
+
* @see Requirements 5.2, 5.3
|
|
378
|
+
*/
|
|
379
|
+
announceQuorumProposal(metadata: QuorumProposalMetadata): Promise<void>;
|
|
380
|
+
/**
|
|
381
|
+
* Announce a quorum vote to the network via priority gossip.
|
|
382
|
+
* Creates a BlockAnnouncement of type 'quorum_vote' with the vote metadata
|
|
383
|
+
* and queues it for propagation using high-priority fanout/TTL.
|
|
384
|
+
*
|
|
385
|
+
* @param metadata - The quorum vote metadata to announce
|
|
386
|
+
* @see Requirements 7.1, 7.2
|
|
387
|
+
*/
|
|
388
|
+
announceQuorumVote(metadata: QuorumVoteMetadata): Promise<void>;
|
|
389
|
+
/**
|
|
390
|
+
* Register a handler for quorum proposal events.
|
|
391
|
+
*
|
|
392
|
+
* @param handler - Function to call when a quorum proposal announcement is received
|
|
393
|
+
* @see Requirements 5.5
|
|
394
|
+
*/
|
|
395
|
+
onQuorumProposal(handler: (announcement: BlockAnnouncement) => void): void;
|
|
396
|
+
/**
|
|
397
|
+
* Remove a quorum proposal event handler.
|
|
398
|
+
*
|
|
399
|
+
* @param handler - The handler to remove
|
|
400
|
+
*/
|
|
401
|
+
offQuorumProposal(handler: (announcement: BlockAnnouncement) => void): void;
|
|
402
|
+
/**
|
|
403
|
+
* Register a handler for quorum vote events.
|
|
404
|
+
*
|
|
405
|
+
* @param handler - Function to call when a quorum vote announcement is received
|
|
406
|
+
* @see Requirements 7.3
|
|
407
|
+
*/
|
|
408
|
+
onQuorumVote(handler: (announcement: BlockAnnouncement) => void): void;
|
|
409
|
+
/**
|
|
410
|
+
* Remove a quorum vote event handler.
|
|
411
|
+
*
|
|
412
|
+
* @param handler - The handler to remove
|
|
413
|
+
*/
|
|
414
|
+
offQuorumVote(handler: (announcement: BlockAnnouncement) => void): void;
|
|
357
415
|
}
|
|
358
416
|
//# sourceMappingURL=gossipService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gossipService.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/gossipService.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,wBAAwB,EACxB,MAAM,
|
|
1
|
+
{"version":3,"file":"gossipService.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/gossipService.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,6 +86,20 @@ class GossipService {
|
|
|
86
86
|
* @see Requirements 4.4
|
|
87
87
|
*/
|
|
88
88
|
this.deliveryAckHandlers = new Set();
|
|
89
|
+
/**
|
|
90
|
+
* Registered quorum proposal handlers.
|
|
91
|
+
* Called when a BlockAnnouncement of type 'quorum_proposal' is received.
|
|
92
|
+
*
|
|
93
|
+
* @see Requirements 5.5
|
|
94
|
+
*/
|
|
95
|
+
this.quorumProposalHandlers = new Set();
|
|
96
|
+
/**
|
|
97
|
+
* Registered quorum vote handlers.
|
|
98
|
+
* Called when a BlockAnnouncement of type 'quorum_vote' is received.
|
|
99
|
+
*
|
|
100
|
+
* @see Requirements 7.3
|
|
101
|
+
*/
|
|
102
|
+
this.quorumVoteHandlers = new Set();
|
|
89
103
|
/**
|
|
90
104
|
* Batch timer handle.
|
|
91
105
|
*/
|
|
@@ -374,6 +388,42 @@ class GossipService {
|
|
|
374
388
|
}
|
|
375
389
|
return;
|
|
376
390
|
}
|
|
391
|
+
// Case 0e: Quorum proposal announcements — dispatch to quorum proposal handlers and forward (Req 5.5)
|
|
392
|
+
if (announcement.type === 'quorum_proposal') {
|
|
393
|
+
if (!announcement.quorumProposal)
|
|
394
|
+
return;
|
|
395
|
+
for (const handler of this.quorumProposalHandlers) {
|
|
396
|
+
try {
|
|
397
|
+
handler(announcement);
|
|
398
|
+
}
|
|
399
|
+
catch {
|
|
400
|
+
// Ignore handler errors to prevent one handler from affecting others
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
// Forward with decremented TTL
|
|
404
|
+
if (announcement.ttl > 0) {
|
|
405
|
+
this.queueAnnouncement({ ...announcement, ttl: announcement.ttl - 1 });
|
|
406
|
+
}
|
|
407
|
+
return;
|
|
408
|
+
}
|
|
409
|
+
// Case 0f: Quorum vote announcements — dispatch to quorum vote handlers and forward (Req 7.3)
|
|
410
|
+
if (announcement.type === 'quorum_vote') {
|
|
411
|
+
if (!announcement.quorumVote)
|
|
412
|
+
return;
|
|
413
|
+
for (const handler of this.quorumVoteHandlers) {
|
|
414
|
+
try {
|
|
415
|
+
handler(announcement);
|
|
416
|
+
}
|
|
417
|
+
catch {
|
|
418
|
+
// Ignore handler errors to prevent one handler from affecting others
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
// Forward with decremented TTL
|
|
422
|
+
if (announcement.ttl > 0) {
|
|
423
|
+
this.queueAnnouncement({ ...announcement, ttl: announcement.ttl - 1 });
|
|
424
|
+
}
|
|
425
|
+
return;
|
|
426
|
+
}
|
|
377
427
|
// Case 1: Ack announcements — dispatch to delivery ack handlers only
|
|
378
428
|
if (announcement.type === 'ack') {
|
|
379
429
|
for (const handler of this.deliveryAckHandlers) {
|
|
@@ -628,7 +678,9 @@ class GossipService {
|
|
|
628
678
|
* @see Requirements 4.1, 4.2
|
|
629
679
|
*/
|
|
630
680
|
batchContainsSensitiveMetadata(announcements) {
|
|
631
|
-
return announcements.some((a) => a.messageDelivery !== undefined ||
|
|
681
|
+
return announcements.some((a) => a.messageDelivery !== undefined ||
|
|
682
|
+
a.deliveryAck !== undefined ||
|
|
683
|
+
a.quorumVote !== undefined);
|
|
632
684
|
}
|
|
633
685
|
/**
|
|
634
686
|
* Encrypt a batch of announcements for a specific peer using ECIES.
|
|
@@ -775,6 +827,78 @@ class GossipService {
|
|
|
775
827
|
offDeliveryAck(handler) {
|
|
776
828
|
this.deliveryAckHandlers.delete(handler);
|
|
777
829
|
}
|
|
830
|
+
/**
|
|
831
|
+
* Announce a quorum proposal to the network via priority gossip.
|
|
832
|
+
* Creates a BlockAnnouncement of type 'quorum_proposal' with the proposal metadata
|
|
833
|
+
* and queues it for propagation using high-priority fanout/TTL.
|
|
834
|
+
*
|
|
835
|
+
* @param metadata - The quorum proposal metadata to announce
|
|
836
|
+
* @see Requirements 5.2, 5.3
|
|
837
|
+
*/
|
|
838
|
+
async announceQuorumProposal(metadata) {
|
|
839
|
+
const announcement = {
|
|
840
|
+
type: 'quorum_proposal',
|
|
841
|
+
blockId: metadata.proposalId,
|
|
842
|
+
nodeId: this.peerProvider.getLocalNodeId(),
|
|
843
|
+
timestamp: new Date(),
|
|
844
|
+
ttl: this.config.messagePriority.high.ttl,
|
|
845
|
+
quorumProposal: metadata,
|
|
846
|
+
};
|
|
847
|
+
this.queueAnnouncement(announcement);
|
|
848
|
+
}
|
|
849
|
+
/**
|
|
850
|
+
* Announce a quorum vote to the network via priority gossip.
|
|
851
|
+
* Creates a BlockAnnouncement of type 'quorum_vote' with the vote metadata
|
|
852
|
+
* and queues it for propagation using high-priority fanout/TTL.
|
|
853
|
+
*
|
|
854
|
+
* @param metadata - The quorum vote metadata to announce
|
|
855
|
+
* @see Requirements 7.1, 7.2
|
|
856
|
+
*/
|
|
857
|
+
async announceQuorumVote(metadata) {
|
|
858
|
+
const announcement = {
|
|
859
|
+
type: 'quorum_vote',
|
|
860
|
+
blockId: metadata.proposalId,
|
|
861
|
+
nodeId: this.peerProvider.getLocalNodeId(),
|
|
862
|
+
timestamp: new Date(),
|
|
863
|
+
ttl: this.config.messagePriority.high.ttl,
|
|
864
|
+
quorumVote: metadata,
|
|
865
|
+
};
|
|
866
|
+
this.queueAnnouncement(announcement);
|
|
867
|
+
}
|
|
868
|
+
/**
|
|
869
|
+
* Register a handler for quorum proposal events.
|
|
870
|
+
*
|
|
871
|
+
* @param handler - Function to call when a quorum proposal announcement is received
|
|
872
|
+
* @see Requirements 5.5
|
|
873
|
+
*/
|
|
874
|
+
onQuorumProposal(handler) {
|
|
875
|
+
this.quorumProposalHandlers.add(handler);
|
|
876
|
+
}
|
|
877
|
+
/**
|
|
878
|
+
* Remove a quorum proposal event handler.
|
|
879
|
+
*
|
|
880
|
+
* @param handler - The handler to remove
|
|
881
|
+
*/
|
|
882
|
+
offQuorumProposal(handler) {
|
|
883
|
+
this.quorumProposalHandlers.delete(handler);
|
|
884
|
+
}
|
|
885
|
+
/**
|
|
886
|
+
* Register a handler for quorum vote events.
|
|
887
|
+
*
|
|
888
|
+
* @param handler - Function to call when a quorum vote announcement is received
|
|
889
|
+
* @see Requirements 7.3
|
|
890
|
+
*/
|
|
891
|
+
onQuorumVote(handler) {
|
|
892
|
+
this.quorumVoteHandlers.add(handler);
|
|
893
|
+
}
|
|
894
|
+
/**
|
|
895
|
+
* Remove a quorum vote event handler.
|
|
896
|
+
*
|
|
897
|
+
* @param handler - The handler to remove
|
|
898
|
+
*/
|
|
899
|
+
offQuorumVote(handler) {
|
|
900
|
+
this.quorumVoteHandlers.delete(handler);
|
|
901
|
+
}
|
|
778
902
|
}
|
|
779
903
|
exports.GossipService = GossipService;
|
|
780
904
|
//# sourceMappingURL=gossipService.js.map
|