@brightchain/brightchain-api-lib 0.0.1
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/brightchain-api-lib/README.md +101 -0
- package/package.json +53 -0
- package/src/index.d.ts +88 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.js +101 -0
- package/src/index.js.map +1 -0
- package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.d.ts +71 -0
- package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.d.ts.map +1 -0
- package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.js +119 -0
- package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.js.map +1 -0
- package/src/lib/__tests__/fixtures/mocked-model.d.ts +90 -0
- package/src/lib/__tests__/fixtures/mocked-model.d.ts.map +1 -0
- package/src/lib/__tests__/fixtures/mocked-model.js +101 -0
- package/src/lib/__tests__/fixtures/mocked-model.js.map +1 -0
- package/src/lib/__tests__/helpers/application.mock.d.ts +5 -0
- package/src/lib/__tests__/helpers/application.mock.d.ts.map +1 -0
- package/src/lib/__tests__/helpers/application.mock.js +52 -0
- package/src/lib/__tests__/helpers/application.mock.js.map +1 -0
- package/src/lib/__tests__/helpers/model-mocks.mock.d.ts +43 -0
- package/src/lib/__tests__/helpers/model-mocks.mock.d.ts.map +1 -0
- package/src/lib/__tests__/helpers/model-mocks.mock.js +67 -0
- package/src/lib/__tests__/helpers/model-mocks.mock.js.map +1 -0
- package/src/lib/appConstants.d.ts +87 -0
- package/src/lib/appConstants.d.ts.map +1 -0
- package/src/lib/appConstants.js +25 -0
- package/src/lib/appConstants.js.map +1 -0
- package/src/lib/application-base.d.ts +39 -0
- package/src/lib/application-base.d.ts.map +1 -0
- package/src/lib/application-base.js +84 -0
- package/src/lib/application-base.js.map +1 -0
- package/src/lib/application.d.ts +14 -0
- package/src/lib/application.d.ts.map +1 -0
- package/src/lib/application.js +105 -0
- package/src/lib/application.js.map +1 -0
- package/src/lib/availability/availabilityMetrics.d.ts +241 -0
- package/src/lib/availability/availabilityMetrics.d.ts.map +1 -0
- package/src/lib/availability/availabilityMetrics.js +425 -0
- package/src/lib/availability/availabilityMetrics.js.map +1 -0
- package/src/lib/availability/availabilityService.d.ts +250 -0
- package/src/lib/availability/availabilityService.d.ts.map +1 -0
- package/src/lib/availability/availabilityService.js +593 -0
- package/src/lib/availability/availabilityService.js.map +1 -0
- package/src/lib/availability/blockRegistry.d.ts +141 -0
- package/src/lib/availability/blockRegistry.d.ts.map +1 -0
- package/src/lib/availability/blockRegistry.js +257 -0
- package/src/lib/availability/blockRegistry.js.map +1 -0
- package/src/lib/availability/configValidation.d.ts +72 -0
- package/src/lib/availability/configValidation.d.ts.map +1 -0
- package/src/lib/availability/configValidation.js +261 -0
- package/src/lib/availability/configValidation.js.map +1 -0
- package/src/lib/availability/discoveryProtocol.d.ts +160 -0
- package/src/lib/availability/discoveryProtocol.d.ts.map +1 -0
- package/src/lib/availability/discoveryProtocol.js +304 -0
- package/src/lib/availability/discoveryProtocol.js.map +1 -0
- package/src/lib/availability/gossipService.d.ts +158 -0
- package/src/lib/availability/gossipService.d.ts.map +1 -0
- package/src/lib/availability/gossipService.js +271 -0
- package/src/lib/availability/gossipService.js.map +1 -0
- package/src/lib/availability/heartbeatMonitor.d.ts +204 -0
- package/src/lib/availability/heartbeatMonitor.d.ts.map +1 -0
- package/src/lib/availability/heartbeatMonitor.js +375 -0
- package/src/lib/availability/heartbeatMonitor.js.map +1 -0
- package/src/lib/availability/index.d.ts +15 -0
- package/src/lib/availability/index.d.ts.map +1 -0
- package/src/lib/availability/index.js +18 -0
- package/src/lib/availability/index.js.map +1 -0
- package/src/lib/availability/reconciliationService.d.ts +237 -0
- package/src/lib/availability/reconciliationService.d.ts.map +1 -0
- package/src/lib/availability/reconciliationService.js +513 -0
- package/src/lib/availability/reconciliationService.js.map +1 -0
- package/src/lib/blocks/handle.d.ts +45 -0
- package/src/lib/blocks/handle.d.ts.map +1 -0
- package/src/lib/blocks/handle.js +221 -0
- package/src/lib/blocks/handle.js.map +1 -0
- package/src/lib/constants.d.ts +50 -0
- package/src/lib/constants.d.ts.map +1 -0
- package/src/lib/constants.js +58 -0
- package/src/lib/constants.js.map +1 -0
- package/src/lib/controllers/base.d.ts +50 -0
- package/src/lib/controllers/base.d.ts.map +1 -0
- package/src/lib/controllers/base.js +235 -0
- package/src/lib/controllers/base.js.map +1 -0
- package/src/lib/controllers/user.d.ts +9 -0
- package/src/lib/controllers/user.d.ts.map +1 -0
- package/src/lib/controllers/user.js +21 -0
- package/src/lib/controllers/user.js.map +1 -0
- package/src/lib/datastore/block-document-store-factory.d.ts +19 -0
- package/src/lib/datastore/block-document-store-factory.d.ts.map +1 -0
- package/src/lib/datastore/block-document-store-factory.js +29 -0
- package/src/lib/datastore/block-document-store-factory.js.map +1 -0
- package/src/lib/datastore/block-document-store.d.ts +185 -0
- package/src/lib/datastore/block-document-store.d.ts.map +1 -0
- package/src/lib/datastore/block-document-store.js +590 -0
- package/src/lib/datastore/block-document-store.js.map +1 -0
- package/src/lib/datastore/document-model-adapter.d.ts +48 -0
- package/src/lib/datastore/document-model-adapter.d.ts.map +1 -0
- package/src/lib/datastore/document-model-adapter.js +178 -0
- package/src/lib/datastore/document-model-adapter.js.map +1 -0
- package/src/lib/datastore/document-store.d.ts +64 -0
- package/src/lib/datastore/document-store.d.ts.map +1 -0
- package/src/lib/datastore/document-store.js +3 -0
- package/src/lib/datastore/document-store.js.map +1 -0
- package/src/lib/datastore/memory-document-store.d.ts +6 -0
- package/src/lib/datastore/memory-document-store.d.ts.map +1 -0
- package/src/lib/datastore/memory-document-store.js +196 -0
- package/src/lib/datastore/memory-document-store.js.map +1 -0
- package/src/lib/documents/base.d.ts +5 -0
- package/src/lib/documents/base.d.ts.map +1 -0
- package/src/lib/documents/base.js +3 -0
- package/src/lib/documents/base.js.map +1 -0
- package/src/lib/documents/email-token.d.ts +8 -0
- package/src/lib/documents/email-token.d.ts.map +1 -0
- package/src/lib/documents/email-token.js +3 -0
- package/src/lib/documents/email-token.js.map +1 -0
- package/src/lib/documents/index.d.ts +7 -0
- package/src/lib/documents/index.d.ts.map +1 -0
- package/src/lib/documents/index.js +3 -0
- package/src/lib/documents/index.js.map +1 -0
- package/src/lib/documents/mnemonic.d.ts +8 -0
- package/src/lib/documents/mnemonic.d.ts.map +1 -0
- package/src/lib/documents/mnemonic.js +3 -0
- package/src/lib/documents/mnemonic.js.map +1 -0
- package/src/lib/documents/role.d.ts +8 -0
- package/src/lib/documents/role.d.ts.map +1 -0
- package/src/lib/documents/role.js +3 -0
- package/src/lib/documents/role.js.map +1 -0
- package/src/lib/documents/used-direct-login-token.d.ts +5 -0
- package/src/lib/documents/used-direct-login-token.d.ts.map +1 -0
- package/src/lib/documents/used-direct-login-token.js +3 -0
- package/src/lib/documents/used-direct-login-token.js.map +1 -0
- package/src/lib/documents/user-role.d.ts +8 -0
- package/src/lib/documents/user-role.d.ts.map +1 -0
- package/src/lib/documents/user-role.js +3 -0
- package/src/lib/documents/user-role.js.map +1 -0
- package/src/lib/documents/user.d.ts +13 -0
- package/src/lib/documents/user.d.ts.map +1 -0
- package/src/lib/documents/user.js +3 -0
- package/src/lib/documents/user.js.map +1 -0
- package/src/lib/enumerations/model-name.d.ts +30 -0
- package/src/lib/enumerations/model-name.d.ts.map +1 -0
- package/src/lib/enumerations/model-name.js +34 -0
- package/src/lib/enumerations/model-name.js.map +1 -0
- package/src/lib/enumerations/schema-collection.d.ts +30 -0
- package/src/lib/enumerations/schema-collection.d.ts.map +1 -0
- package/src/lib/enumerations/schema-collection.js +34 -0
- package/src/lib/enumerations/schema-collection.js.map +1 -0
- package/src/lib/enumerations/symmetric-error-type.d.ts +5 -0
- package/src/lib/enumerations/symmetric-error-type.d.ts.map +1 -0
- package/src/lib/enumerations/symmetric-error-type.js +9 -0
- package/src/lib/enumerations/symmetric-error-type.js.map +1 -0
- package/src/lib/environment.d.ts +23 -0
- package/src/lib/environment.d.ts.map +1 -0
- package/src/lib/environment.js +75 -0
- package/src/lib/environment.js.map +1 -0
- package/src/lib/errors/admin-role-not-found.d.ts +6 -0
- package/src/lib/errors/admin-role-not-found.d.ts.map +1 -0
- package/src/lib/errors/admin-role-not-found.js +14 -0
- package/src/lib/errors/admin-role-not-found.js.map +1 -0
- package/src/lib/errors/email-already-verified.d.ts +5 -0
- package/src/lib/errors/email-already-verified.d.ts.map +1 -0
- package/src/lib/errors/email-already-verified.js +11 -0
- package/src/lib/errors/email-already-verified.js.map +1 -0
- package/src/lib/errors/email-token-failed-to-send.d.ts +7 -0
- package/src/lib/errors/email-token-failed-to-send.d.ts.map +1 -0
- package/src/lib/errors/email-token-failed-to-send.js +14 -0
- package/src/lib/errors/email-token-failed-to-send.js.map +1 -0
- package/src/lib/errors/express-validation.d.ts +7 -0
- package/src/lib/errors/express-validation.d.ts.map +1 -0
- package/src/lib/errors/express-validation.js +14 -0
- package/src/lib/errors/express-validation.js.map +1 -0
- package/src/lib/errors/invalid-backup-code-version.d.ts +5 -0
- package/src/lib/errors/invalid-backup-code-version.d.ts.map +1 -0
- package/src/lib/errors/invalid-backup-code-version.js +12 -0
- package/src/lib/errors/invalid-backup-code-version.js.map +1 -0
- package/src/lib/errors/invalid-challenge-response.d.ts +5 -0
- package/src/lib/errors/invalid-challenge-response.d.ts.map +1 -0
- package/src/lib/errors/invalid-challenge-response.js +14 -0
- package/src/lib/errors/invalid-challenge-response.js.map +1 -0
- package/src/lib/errors/invalid-expired-token.d.ts +5 -0
- package/src/lib/errors/invalid-expired-token.d.ts.map +1 -0
- package/src/lib/errors/invalid-expired-token.js +13 -0
- package/src/lib/errors/invalid-expired-token.js.map +1 -0
- package/src/lib/errors/invalid-jwt-token.d.ts +5 -0
- package/src/lib/errors/invalid-jwt-token.d.ts.map +1 -0
- package/src/lib/errors/invalid-jwt-token.js +12 -0
- package/src/lib/errors/invalid-jwt-token.js.map +1 -0
- package/src/lib/errors/last-admin-error.d.ts +7 -0
- package/src/lib/errors/last-admin-error.d.ts.map +1 -0
- package/src/lib/errors/last-admin-error.js +16 -0
- package/src/lib/errors/last-admin-error.js.map +1 -0
- package/src/lib/errors/login-challenge-expired.d.ts +5 -0
- package/src/lib/errors/login-challenge-expired.d.ts.map +1 -0
- package/src/lib/errors/login-challenge-expired.js +14 -0
- package/src/lib/errors/login-challenge-expired.js.map +1 -0
- package/src/lib/errors/member-role-not-found.d.ts +7 -0
- package/src/lib/errors/member-role-not-found.d.ts.map +1 -0
- package/src/lib/errors/member-role-not-found.js +14 -0
- package/src/lib/errors/member-role-not-found.js.map +1 -0
- package/src/lib/errors/missing-validated-data.d.ts +8 -0
- package/src/lib/errors/missing-validated-data.d.ts.map +1 -0
- package/src/lib/errors/missing-validated-data.js +32 -0
- package/src/lib/errors/missing-validated-data.js.map +1 -0
- package/src/lib/errors/mnemonic-or-password-required.d.ts +5 -0
- package/src/lib/errors/mnemonic-or-password-required.d.ts.map +1 -0
- package/src/lib/errors/mnemonic-or-password-required.js +14 -0
- package/src/lib/errors/mnemonic-or-password-required.js.map +1 -0
- package/src/lib/errors/restricted.d.ts +5 -0
- package/src/lib/errors/restricted.d.ts.map +1 -0
- package/src/lib/errors/restricted.js +15 -0
- package/src/lib/errors/restricted.js.map +1 -0
- package/src/lib/errors/symmetric.d.ts +9 -0
- package/src/lib/errors/symmetric.d.ts.map +1 -0
- package/src/lib/errors/symmetric.js +24 -0
- package/src/lib/errors/symmetric.js.map +1 -0
- package/src/lib/errors/token-expired.d.ts +5 -0
- package/src/lib/errors/token-expired.d.ts.map +1 -0
- package/src/lib/errors/token-expired.js +12 -0
- package/src/lib/errors/token-expired.js.map +1 -0
- package/src/lib/errors/token-not-found.d.ts +8 -0
- package/src/lib/errors/token-not-found.d.ts.map +1 -0
- package/src/lib/errors/token-not-found.js +19 -0
- package/src/lib/errors/token-not-found.js.map +1 -0
- package/src/lib/errors/translatable-error-local.d.ts +7 -0
- package/src/lib/errors/translatable-error-local.d.ts.map +1 -0
- package/src/lib/errors/translatable-error-local.js +17 -0
- package/src/lib/errors/translatable-error-local.js.map +1 -0
- package/src/lib/errors/typed-error-local.d.ts +10 -0
- package/src/lib/errors/typed-error-local.d.ts.map +1 -0
- package/src/lib/errors/typed-error-local.js +24 -0
- package/src/lib/errors/typed-error-local.js.map +1 -0
- package/src/lib/factories/blockStoreFactory.d.ts +14 -0
- package/src/lib/factories/blockStoreFactory.d.ts.map +1 -0
- package/src/lib/factories/blockStoreFactory.js +18 -0
- package/src/lib/factories/blockStoreFactory.js.map +1 -0
- package/src/lib/interfaces/api-constants.d.ts +51 -0
- package/src/lib/interfaces/api-constants.d.ts.map +1 -0
- package/src/lib/interfaces/api-constants.js +13 -0
- package/src/lib/interfaces/api-constants.js.map +1 -0
- package/src/lib/interfaces/api-express-validation-error-response.d.ts +7 -0
- package/src/lib/interfaces/api-express-validation-error-response.d.ts.map +1 -0
- package/src/lib/interfaces/api-express-validation-error-response.js +3 -0
- package/src/lib/interfaces/api-express-validation-error-response.js.map +1 -0
- package/src/lib/interfaces/api-mongo-validation-error-response.d.ts +6 -0
- package/src/lib/interfaces/api-mongo-validation-error-response.d.ts.map +1 -0
- package/src/lib/interfaces/api-mongo-validation-error-response.js +3 -0
- package/src/lib/interfaces/api-mongo-validation-error-response.js.map +1 -0
- package/src/lib/interfaces/application.d.ts +10 -0
- package/src/lib/interfaces/application.d.ts.map +1 -0
- package/src/lib/interfaces/application.js +3 -0
- package/src/lib/interfaces/application.js.map +1 -0
- package/src/lib/interfaces/authenticated-cipher.d.ts +10 -0
- package/src/lib/interfaces/authenticated-cipher.d.ts.map +1 -0
- package/src/lib/interfaces/authenticated-cipher.js +3 -0
- package/src/lib/interfaces/authenticated-cipher.js.map +1 -0
- package/src/lib/interfaces/authenticated-decipher.d.ts +9 -0
- package/src/lib/interfaces/authenticated-decipher.d.ts.map +1 -0
- package/src/lib/interfaces/authenticated-decipher.js +3 -0
- package/src/lib/interfaces/authenticated-decipher.js.map +1 -0
- package/src/lib/interfaces/backend-objects/email-token.d.ts +4 -0
- package/src/lib/interfaces/backend-objects/email-token.d.ts.map +1 -0
- package/src/lib/interfaces/backend-objects/email-token.js +3 -0
- package/src/lib/interfaces/backend-objects/email-token.js.map +1 -0
- package/src/lib/interfaces/backend-objects/request-user.d.ts +5 -0
- package/src/lib/interfaces/backend-objects/request-user.d.ts.map +1 -0
- package/src/lib/interfaces/backend-objects/request-user.js +3 -0
- package/src/lib/interfaces/backend-objects/request-user.js.map +1 -0
- package/src/lib/interfaces/backend-objects/role.d.ts +4 -0
- package/src/lib/interfaces/backend-objects/role.d.ts.map +1 -0
- package/src/lib/interfaces/backend-objects/role.js +3 -0
- package/src/lib/interfaces/backend-objects/role.js.map +1 -0
- package/src/lib/interfaces/backend-objects/user.d.ts +5 -0
- package/src/lib/interfaces/backend-objects/user.d.ts.map +1 -0
- package/src/lib/interfaces/backend-objects/user.js +3 -0
- package/src/lib/interfaces/backend-objects/user.js.map +1 -0
- package/src/lib/interfaces/bases/mnemonic.d.ts +4 -0
- package/src/lib/interfaces/bases/mnemonic.d.ts.map +1 -0
- package/src/lib/interfaces/bases/mnemonic.js +3 -0
- package/src/lib/interfaces/bases/mnemonic.js.map +1 -0
- package/src/lib/interfaces/bases/role.d.ts +4 -0
- package/src/lib/interfaces/bases/role.d.ts.map +1 -0
- package/src/lib/interfaces/bases/role.js +3 -0
- package/src/lib/interfaces/bases/role.js.map +1 -0
- package/src/lib/interfaces/bases/user-role.d.ts +4 -0
- package/src/lib/interfaces/bases/user-role.d.ts.map +1 -0
- package/src/lib/interfaces/bases/user-role.js +3 -0
- package/src/lib/interfaces/bases/user-role.js.map +1 -0
- package/src/lib/interfaces/bases/user.d.ts +5 -0
- package/src/lib/interfaces/bases/user.d.ts.map +1 -0
- package/src/lib/interfaces/bases/user.js +3 -0
- package/src/lib/interfaces/bases/user.js.map +1 -0
- package/src/lib/interfaces/checksum-config.d.ts +5 -0
- package/src/lib/interfaces/checksum-config.d.ts.map +1 -0
- package/src/lib/interfaces/checksum-config.js +3 -0
- package/src/lib/interfaces/checksum-config.js.map +1 -0
- package/src/lib/interfaces/discriminator-collections.d.ts +5 -0
- package/src/lib/interfaces/discriminator-collections.d.ts.map +1 -0
- package/src/lib/interfaces/discriminator-collections.js +3 -0
- package/src/lib/interfaces/discriminator-collections.js.map +1 -0
- package/src/lib/interfaces/ecies-consts.d.ts +88 -0
- package/src/lib/interfaces/ecies-consts.d.ts.map +1 -0
- package/src/lib/interfaces/ecies-consts.js +3 -0
- package/src/lib/interfaces/ecies-consts.js.map +1 -0
- package/src/lib/interfaces/environment-aws.d.ts +7 -0
- package/src/lib/interfaces/environment-aws.d.ts.map +1 -0
- package/src/lib/interfaces/environment-aws.js +3 -0
- package/src/lib/interfaces/environment-aws.js.map +1 -0
- package/src/lib/interfaces/environment-mongo.d.ts +76 -0
- package/src/lib/interfaces/environment-mongo.d.ts.map +1 -0
- package/src/lib/interfaces/environment-mongo.js +3 -0
- package/src/lib/interfaces/environment-mongo.js.map +1 -0
- package/src/lib/interfaces/environment.d.ts +28 -0
- package/src/lib/interfaces/environment.d.ts.map +1 -0
- package/src/lib/interfaces/environment.js +3 -0
- package/src/lib/interfaces/environment.js.map +1 -0
- package/src/lib/interfaces/jwt-sign-response.d.ts +12 -0
- package/src/lib/interfaces/jwt-sign-response.d.ts.map +1 -0
- package/src/lib/interfaces/jwt-sign-response.js +3 -0
- package/src/lib/interfaces/jwt-sign-response.js.map +1 -0
- package/src/lib/interfaces/member/member-with-mnemonic.d.ts +6 -0
- package/src/lib/interfaces/member/member-with-mnemonic.d.ts.map +1 -0
- package/src/lib/interfaces/member/member-with-mnemonic.js +3 -0
- package/src/lib/interfaces/member/member-with-mnemonic.js.map +1 -0
- package/src/lib/interfaces/member/operational.d.ts +36 -0
- package/src/lib/interfaces/member/operational.d.ts.map +1 -0
- package/src/lib/interfaces/member/operational.js +3 -0
- package/src/lib/interfaces/member/operational.js.map +1 -0
- package/src/lib/interfaces/mongo-errors.d.ts +9 -0
- package/src/lib/interfaces/mongo-errors.d.ts.map +1 -0
- package/src/lib/interfaces/mongo-errors.js +3 -0
- package/src/lib/interfaces/mongo-errors.js.map +1 -0
- package/src/lib/interfaces/multi-encrypted-message.d.ts +8 -0
- package/src/lib/interfaces/multi-encrypted-message.d.ts.map +1 -0
- package/src/lib/interfaces/multi-encrypted-message.js +3 -0
- package/src/lib/interfaces/multi-encrypted-message.js.map +1 -0
- package/src/lib/interfaces/multi-encrypted-parsed-header.d.ts +24 -0
- package/src/lib/interfaces/multi-encrypted-parsed-header.d.ts.map +1 -0
- package/src/lib/interfaces/multi-encrypted-parsed-header.js +3 -0
- package/src/lib/interfaces/multi-encrypted-parsed-header.js.map +1 -0
- package/src/lib/interfaces/pbkdf2-result.d.ts +6 -0
- package/src/lib/interfaces/pbkdf2-result.d.ts.map +1 -0
- package/src/lib/interfaces/pbkdf2-result.js +3 -0
- package/src/lib/interfaces/pbkdf2-result.js.map +1 -0
- package/src/lib/interfaces/request-user.d.ts +51 -0
- package/src/lib/interfaces/request-user.d.ts.map +1 -0
- package/src/lib/interfaces/request-user.js +3 -0
- package/src/lib/interfaces/request-user.js.map +1 -0
- package/src/lib/interfaces/responses/api-backup-codes-response.d.ts +11 -0
- package/src/lib/interfaces/responses/api-backup-codes-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-backup-codes-response.js +3 -0
- package/src/lib/interfaces/responses/api-backup-codes-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-challenge-response.d.ts +11 -0
- package/src/lib/interfaces/responses/api-challenge-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-challenge-response.js +3 -0
- package/src/lib/interfaces/responses/api-challenge-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-code-count-response.d.ts +11 -0
- package/src/lib/interfaces/responses/api-code-count-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-code-count-response.js +3 -0
- package/src/lib/interfaces/responses/api-code-count-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-login-response.d.ts +20 -0
- package/src/lib/interfaces/responses/api-login-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-login-response.js +3 -0
- package/src/lib/interfaces/responses/api-login-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-mnemonic-response.d.ts +11 -0
- package/src/lib/interfaces/responses/api-mnemonic-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-mnemonic-response.js +3 -0
- package/src/lib/interfaces/responses/api-mnemonic-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-registration-response.d.ts +16 -0
- package/src/lib/interfaces/responses/api-registration-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-registration-response.js +3 -0
- package/src/lib/interfaces/responses/api-registration-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-request-user-response.d.ts +12 -0
- package/src/lib/interfaces/responses/api-request-user-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-request-user-response.js +3 -0
- package/src/lib/interfaces/responses/api-request-user-response.js.map +1 -0
- package/src/lib/interfaces/responses/index.d.ts +9 -0
- package/src/lib/interfaces/responses/index.d.ts.map +1 -0
- package/src/lib/interfaces/responses/index.js +11 -0
- package/src/lib/interfaces/responses/index.js.map +1 -0
- package/src/lib/interfaces/schema.d.ts +28 -0
- package/src/lib/interfaces/schema.d.ts.map +1 -0
- package/src/lib/interfaces/schema.js +3 -0
- package/src/lib/interfaces/schema.js.map +1 -0
- package/src/lib/interfaces/server-init-result.d.ts +34 -0
- package/src/lib/interfaces/server-init-result.d.ts.map +1 -0
- package/src/lib/interfaces/server-init-result.js +3 -0
- package/src/lib/interfaces/server-init-result.js.map +1 -0
- package/src/lib/interfaces/single-encrypted-parsed-header.d.ts +35 -0
- package/src/lib/interfaces/single-encrypted-parsed-header.d.ts.map +1 -0
- package/src/lib/interfaces/single-encrypted-parsed-header.js +3 -0
- package/src/lib/interfaces/single-encrypted-parsed-header.js.map +1 -0
- package/src/lib/interfaces/status-code-response.d.ts +7 -0
- package/src/lib/interfaces/status-code-response.d.ts.map +1 -0
- package/src/lib/interfaces/status-code-response.js +3 -0
- package/src/lib/interfaces/status-code-response.js.map +1 -0
- package/src/lib/interfaces/symmetric-encryption-results.d.ts +5 -0
- package/src/lib/interfaces/symmetric-encryption-results.d.ts.map +1 -0
- package/src/lib/interfaces/symmetric-encryption-results.js +3 -0
- package/src/lib/interfaces/symmetric-encryption-results.js.map +1 -0
- package/src/lib/interfaces/token-user.d.ts +9 -0
- package/src/lib/interfaces/token-user.d.ts.map +1 -0
- package/src/lib/interfaces/token-user.js +3 -0
- package/src/lib/interfaces/token-user.js.map +1 -0
- package/src/lib/interfaces/wallet-seed.d.ts +7 -0
- package/src/lib/interfaces/wallet-seed.d.ts.map +1 -0
- package/src/lib/interfaces/wallet-seed.js +3 -0
- package/src/lib/interfaces/wallet-seed.js.map +1 -0
- package/src/lib/middlewares/cleanup-crypto.d.ts +7 -0
- package/src/lib/middlewares/cleanup-crypto.d.ts.map +1 -0
- package/src/lib/middlewares/cleanup-crypto.js +32 -0
- package/src/lib/middlewares/cleanup-crypto.js.map +1 -0
- package/src/lib/middlewares/index.d.ts +3 -0
- package/src/lib/middlewares/index.d.ts.map +1 -0
- package/src/lib/middlewares/index.js +10 -0
- package/src/lib/middlewares/index.js.map +1 -0
- package/src/lib/middlewares.d.ts +19 -0
- package/src/lib/middlewares.d.ts.map +1 -0
- package/src/lib/middlewares.js +95 -0
- package/src/lib/middlewares.js.map +1 -0
- package/src/lib/models/email-token.d.ts +47 -0
- package/src/lib/models/email-token.d.ts.map +1 -0
- package/src/lib/models/email-token.js +11 -0
- package/src/lib/models/email-token.js.map +1 -0
- package/src/lib/models/mnemonic.d.ts +26 -0
- package/src/lib/models/mnemonic.d.ts.map +1 -0
- package/src/lib/models/mnemonic.js +11 -0
- package/src/lib/models/mnemonic.js.map +1 -0
- package/src/lib/models/role.d.ts +23 -0
- package/src/lib/models/role.d.ts.map +1 -0
- package/src/lib/models/role.js +8 -0
- package/src/lib/models/role.js.map +1 -0
- package/src/lib/models/used-direct-login-token.d.ts +29 -0
- package/src/lib/models/used-direct-login-token.d.ts.map +1 -0
- package/src/lib/models/used-direct-login-token.js +11 -0
- package/src/lib/models/used-direct-login-token.js.map +1 -0
- package/src/lib/models/user-role.d.ts +59 -0
- package/src/lib/models/user-role.d.ts.map +1 -0
- package/src/lib/models/user-role.js +11 -0
- package/src/lib/models/user-role.js.map +1 -0
- package/src/lib/models/user.d.ts +132 -0
- package/src/lib/models/user.d.ts.map +1 -0
- package/src/lib/models/user.js +8 -0
- package/src/lib/models/user.js.map +1 -0
- package/src/lib/routers/api.d.ts +21 -0
- package/src/lib/routers/api.d.ts.map +1 -0
- package/src/lib/routers/api.js +41 -0
- package/src/lib/routers/api.js.map +1 -0
- package/src/lib/routers/app.d.ts +22 -0
- package/src/lib/routers/app.d.ts.map +1 -0
- package/src/lib/routers/app.js +131 -0
- package/src/lib/routers/app.js.map +1 -0
- package/src/lib/routers/base.d.ts +8 -0
- package/src/lib/routers/base.d.ts.map +1 -0
- package/src/lib/routers/base.js +12 -0
- package/src/lib/routers/base.js.map +1 -0
- package/src/lib/routers/messageRouter.d.ts +4 -0
- package/src/lib/routers/messageRouter.d.ts.map +1 -0
- package/src/lib/routers/messageRouter.js +81 -0
- package/src/lib/routers/messageRouter.js.map +1 -0
- package/src/lib/schemas/email-token.d.ts +44 -0
- package/src/lib/schemas/email-token.d.ts.map +1 -0
- package/src/lib/schemas/email-token.js +29 -0
- package/src/lib/schemas/email-token.js.map +1 -0
- package/src/lib/schemas/mnemonic.d.ts +22 -0
- package/src/lib/schemas/mnemonic.d.ts.map +1 -0
- package/src/lib/schemas/mnemonic.js +21 -0
- package/src/lib/schemas/mnemonic.js.map +1 -0
- package/src/lib/schemas/role.d.ts +21 -0
- package/src/lib/schemas/role.d.ts.map +1 -0
- package/src/lib/schemas/role.js +36 -0
- package/src/lib/schemas/role.js.map +1 -0
- package/src/lib/schemas/schema.d.ts +3 -0
- package/src/lib/schemas/schema.d.ts.map +1 -0
- package/src/lib/schemas/schema.js +74 -0
- package/src/lib/schemas/schema.js.map +1 -0
- package/src/lib/schemas/used-direct-login-token.d.ts +25 -0
- package/src/lib/schemas/used-direct-login-token.d.ts.map +1 -0
- package/src/lib/schemas/used-direct-login-token.js +14 -0
- package/src/lib/schemas/used-direct-login-token.js.map +1 -0
- package/src/lib/schemas/user-role.d.ts +55 -0
- package/src/lib/schemas/user-role.d.ts.map +1 -0
- package/src/lib/schemas/user-role.js +22 -0
- package/src/lib/schemas/user-role.js.map +1 -0
- package/src/lib/schemas/user.d.ts +129 -0
- package/src/lib/schemas/user.d.ts.map +1 -0
- package/src/lib/schemas/user.js +84 -0
- package/src/lib/schemas/user.js.map +1 -0
- package/src/lib/services/diskQuorumService.d.ts +55 -0
- package/src/lib/services/diskQuorumService.d.ts.map +1 -0
- package/src/lib/services/diskQuorumService.js +247 -0
- package/src/lib/services/diskQuorumService.js.map +1 -0
- package/src/lib/services/email.d.ts +27 -0
- package/src/lib/services/email.d.ts.map +1 -0
- package/src/lib/services/email.js +81 -0
- package/src/lib/services/email.js.map +1 -0
- package/src/lib/services/eventNotificationSystem.d.ts +46 -0
- package/src/lib/services/eventNotificationSystem.d.ts.map +1 -0
- package/src/lib/services/eventNotificationSystem.js +83 -0
- package/src/lib/services/eventNotificationSystem.js.map +1 -0
- package/src/lib/services/fec.d.ts +87 -0
- package/src/lib/services/fec.d.ts.map +1 -0
- package/src/lib/services/fec.js +256 -0
- package/src/lib/services/fec.js.map +1 -0
- package/src/lib/services/fecServiceFactory.d.ts +89 -0
- package/src/lib/services/fecServiceFactory.d.ts.map +1 -0
- package/src/lib/services/fecServiceFactory.js +154 -0
- package/src/lib/services/fecServiceFactory.js.map +1 -0
- package/src/lib/services/fecUsageExample.d.ts +33 -0
- package/src/lib/services/fecUsageExample.d.ts.map +1 -0
- package/src/lib/services/fecUsageExample.js +79 -0
- package/src/lib/services/fecUsageExample.js.map +1 -0
- package/src/lib/services/keyWrapping.d.ts +61 -0
- package/src/lib/services/keyWrapping.d.ts.map +1 -0
- package/src/lib/services/keyWrapping.js +297 -0
- package/src/lib/services/keyWrapping.js.map +1 -0
- package/src/lib/services/messageEventsWebSocketHandler.d.ts +15 -0
- package/src/lib/services/messageEventsWebSocketHandler.d.ts.map +1 -0
- package/src/lib/services/messageEventsWebSocketHandler.js +59 -0
- package/src/lib/services/messageEventsWebSocketHandler.js.map +1 -0
- package/src/lib/services/messagePassingService.d.ts +31 -0
- package/src/lib/services/messagePassingService.d.ts.map +1 -0
- package/src/lib/services/messagePassingService.js +88 -0
- package/src/lib/services/messagePassingService.js.map +1 -0
- package/src/lib/services/nativeRsFecService.d.ts +79 -0
- package/src/lib/services/nativeRsFecService.d.ts.map +1 -0
- package/src/lib/services/nativeRsFecService.js +295 -0
- package/src/lib/services/nativeRsFecService.js.map +1 -0
- package/src/lib/services/pbkdf2.d.ts +6 -0
- package/src/lib/services/pbkdf2.d.ts.map +1 -0
- package/src/lib/services/pbkdf2.js +31 -0
- package/src/lib/services/pbkdf2.js.map +1 -0
- package/src/lib/services/user.d.ts +10 -0
- package/src/lib/services/user.d.ts.map +1 -0
- package/src/lib/services/user.js +11 -0
- package/src/lib/services/user.js.map +1 -0
- package/src/lib/services/webSocketMessageServer.d.ts +53 -0
- package/src/lib/services/webSocketMessageServer.d.ts.map +1 -0
- package/src/lib/services/webSocketMessageServer.js +159 -0
- package/src/lib/services/webSocketMessageServer.js.map +1 -0
- package/src/lib/shared-types.d.ts +82 -0
- package/src/lib/shared-types.d.ts.map +1 -0
- package/src/lib/shared-types.js +6 -0
- package/src/lib/shared-types.js.map +1 -0
- package/src/lib/stores/availabilityAwareBlockStore.d.ts +287 -0
- package/src/lib/stores/availabilityAwareBlockStore.d.ts.map +1 -0
- package/src/lib/stores/availabilityAwareBlockStore.js +458 -0
- package/src/lib/stores/availabilityAwareBlockStore.js.map +1 -0
- package/src/lib/stores/diskBlockAsyncStore.d.ts +212 -0
- package/src/lib/stores/diskBlockAsyncStore.d.ts.map +1 -0
- package/src/lib/stores/diskBlockAsyncStore.js +803 -0
- package/src/lib/stores/diskBlockAsyncStore.js.map +1 -0
- package/src/lib/stores/diskBlockMetadataStore.d.ts +125 -0
- package/src/lib/stores/diskBlockMetadataStore.d.ts.map +1 -0
- package/src/lib/stores/diskBlockMetadataStore.js +347 -0
- package/src/lib/stores/diskBlockMetadataStore.js.map +1 -0
- package/src/lib/stores/diskBlockStore.d.ts +41 -0
- package/src/lib/stores/diskBlockStore.d.ts.map +1 -0
- package/src/lib/stores/diskBlockStore.js +87 -0
- package/src/lib/stores/diskBlockStore.js.map +1 -0
- package/src/lib/stores/diskBlockSyncStore.d.ts +12 -0
- package/src/lib/stores/diskBlockSyncStore.d.ts.map +1 -0
- package/src/lib/stores/diskBlockSyncStore.js +55 -0
- package/src/lib/stores/diskBlockSyncStore.js.map +1 -0
- package/src/lib/stores/diskCblStore.d.ts +30 -0
- package/src/lib/stores/diskCblStore.d.ts.map +1 -0
- package/src/lib/stores/diskCblStore.js +139 -0
- package/src/lib/stores/diskCblStore.js.map +1 -0
- package/src/lib/stores/diskMessageMetadataStore.d.ts +17 -0
- package/src/lib/stores/diskMessageMetadataStore.d.ts.map +1 -0
- package/src/lib/stores/diskMessageMetadataStore.js +214 -0
- package/src/lib/stores/diskMessageMetadataStore.js.map +1 -0
- package/src/lib/transforms/checksumTransform.d.ts +8 -0
- package/src/lib/transforms/checksumTransform.d.ts.map +1 -0
- package/src/lib/transforms/checksumTransform.js +22 -0
- package/src/lib/transforms/checksumTransform.js.map +1 -0
- package/src/lib/transforms/memoryWritableStream.d.ts +8 -0
- package/src/lib/transforms/memoryWritableStream.d.ts.map +1 -0
- package/src/lib/transforms/memoryWritableStream.js +20 -0
- package/src/lib/transforms/memoryWritableStream.js.map +1 -0
- package/src/lib/transforms/xorMultipleTransform.d.ts +12 -0
- package/src/lib/transforms/xorMultipleTransform.d.ts.map +1 -0
- package/src/lib/transforms/xorMultipleTransform.js +52 -0
- package/src/lib/transforms/xorMultipleTransform.js.map +1 -0
- package/src/lib/utils/type-converters.d.ts +10 -0
- package/src/lib/utils/type-converters.d.ts.map +1 -0
- package/src/lib/utils/type-converters.js +42 -0
- package/src/lib/utils/type-converters.js.map +1 -0
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Gossip Service Implementation
|
|
4
|
+
*
|
|
5
|
+
* Implements gossip-based block announcements across the network.
|
|
6
|
+
* Supports announcement batching, TTL decrement on forwarding,
|
|
7
|
+
* and fanout to random peers.
|
|
8
|
+
*
|
|
9
|
+
* @see Requirements 6.1, 6.2, 6.3, 6.4, 6.5, 6.6
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.GossipService = exports.DEFAULT_GOSSIP_CONFIG = void 0;
|
|
13
|
+
// Re-export DEFAULT_GOSSIP_CONFIG from brightchain-lib for convenience
|
|
14
|
+
var brightchain_lib_1 = require("@brightchain/brightchain-lib");
|
|
15
|
+
Object.defineProperty(exports, "DEFAULT_GOSSIP_CONFIG", { enumerable: true, get: function () { return brightchain_lib_1.DEFAULT_GOSSIP_CONFIG; } });
|
|
16
|
+
/**
|
|
17
|
+
* Default gossip configuration values (local copy for use in this module).
|
|
18
|
+
*/
|
|
19
|
+
const defaultGossipConfig = {
|
|
20
|
+
fanout: 3,
|
|
21
|
+
defaultTtl: 3,
|
|
22
|
+
batchIntervalMs: 1000,
|
|
23
|
+
maxBatchSize: 100,
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Gossip Service Implementation
|
|
27
|
+
*
|
|
28
|
+
* Handles gossip-based block announcements across the network.
|
|
29
|
+
* Implements batching, TTL management, and random peer selection.
|
|
30
|
+
*
|
|
31
|
+
* @see Requirements 6.1, 6.2, 6.3, 6.4, 6.5, 6.6
|
|
32
|
+
*/
|
|
33
|
+
class GossipService {
|
|
34
|
+
/**
|
|
35
|
+
* Create a new GossipService.
|
|
36
|
+
*
|
|
37
|
+
* @param peerProvider - Provider for peer management operations
|
|
38
|
+
* @param config - Gossip configuration (uses defaults if not provided)
|
|
39
|
+
*/
|
|
40
|
+
constructor(peerProvider, config = defaultGossipConfig) {
|
|
41
|
+
this.peerProvider = peerProvider;
|
|
42
|
+
this.config = config;
|
|
43
|
+
/**
|
|
44
|
+
* Pending announcements waiting to be batched and sent.
|
|
45
|
+
*/
|
|
46
|
+
this.pendingAnnouncements = [];
|
|
47
|
+
/**
|
|
48
|
+
* Registered announcement handlers.
|
|
49
|
+
*/
|
|
50
|
+
this.handlers = new Set();
|
|
51
|
+
/**
|
|
52
|
+
* Batch timer handle.
|
|
53
|
+
*/
|
|
54
|
+
this.batchTimer = null;
|
|
55
|
+
/**
|
|
56
|
+
* Whether the service is running.
|
|
57
|
+
*/
|
|
58
|
+
this.running = false;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Announce a new block to the network.
|
|
62
|
+
*
|
|
63
|
+
* @param blockId - The block ID to announce
|
|
64
|
+
* @see Requirements 6.1
|
|
65
|
+
*/
|
|
66
|
+
async announceBlock(blockId) {
|
|
67
|
+
const announcement = {
|
|
68
|
+
type: 'add',
|
|
69
|
+
blockId,
|
|
70
|
+
nodeId: this.peerProvider.getLocalNodeId(),
|
|
71
|
+
timestamp: new Date(),
|
|
72
|
+
ttl: this.config.defaultTtl,
|
|
73
|
+
};
|
|
74
|
+
this.queueAnnouncement(announcement);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Announce block removal to the network.
|
|
78
|
+
*
|
|
79
|
+
* @param blockId - The block ID being removed
|
|
80
|
+
* @see Requirements 6.5
|
|
81
|
+
*/
|
|
82
|
+
async announceRemoval(blockId) {
|
|
83
|
+
const announcement = {
|
|
84
|
+
type: 'remove',
|
|
85
|
+
blockId,
|
|
86
|
+
nodeId: this.peerProvider.getLocalNodeId(),
|
|
87
|
+
timestamp: new Date(),
|
|
88
|
+
ttl: this.config.defaultTtl,
|
|
89
|
+
};
|
|
90
|
+
this.queueAnnouncement(announcement);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Handle an incoming block announcement from a peer.
|
|
94
|
+
* Notifies handlers and optionally forwards with decremented TTL.
|
|
95
|
+
*
|
|
96
|
+
* @param announcement - The received announcement
|
|
97
|
+
* @see Requirements 6.2, 6.4
|
|
98
|
+
*/
|
|
99
|
+
async handleAnnouncement(announcement) {
|
|
100
|
+
// Notify all registered handlers
|
|
101
|
+
for (const handler of this.handlers) {
|
|
102
|
+
try {
|
|
103
|
+
handler(announcement);
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
// Ignore handler errors to prevent one handler from affecting others
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// Forward with decremented TTL if TTL > 0
|
|
110
|
+
if (announcement.ttl > 0) {
|
|
111
|
+
const forwardedAnnouncement = {
|
|
112
|
+
...announcement,
|
|
113
|
+
ttl: announcement.ttl - 1,
|
|
114
|
+
};
|
|
115
|
+
this.queueAnnouncement(forwardedAnnouncement);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Subscribe to announcement events.
|
|
120
|
+
*
|
|
121
|
+
* @param handler - Function to call when an announcement is received
|
|
122
|
+
* @see Requirements 6.2
|
|
123
|
+
*/
|
|
124
|
+
onAnnouncement(handler) {
|
|
125
|
+
this.handlers.add(handler);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Remove an announcement handler.
|
|
129
|
+
*
|
|
130
|
+
* @param handler - The handler to remove
|
|
131
|
+
*/
|
|
132
|
+
offAnnouncement(handler) {
|
|
133
|
+
this.handlers.delete(handler);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Get pending announcements that have not yet been sent.
|
|
137
|
+
*
|
|
138
|
+
* @returns Array of pending announcements
|
|
139
|
+
* @see Requirements 6.6
|
|
140
|
+
*/
|
|
141
|
+
getPendingAnnouncements() {
|
|
142
|
+
return [...this.pendingAnnouncements];
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Immediately flush all pending announcements.
|
|
146
|
+
*
|
|
147
|
+
* @see Requirements 6.6
|
|
148
|
+
*/
|
|
149
|
+
async flushAnnouncements() {
|
|
150
|
+
if (this.pendingAnnouncements.length === 0) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
// Get connected peers
|
|
154
|
+
const connectedPeers = this.peerProvider.getConnectedPeerIds();
|
|
155
|
+
if (connectedPeers.length === 0) {
|
|
156
|
+
// No peers to send to, clear pending
|
|
157
|
+
this.pendingAnnouncements = [];
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
// Select random peers for fanout
|
|
161
|
+
const selectedPeers = this.selectRandomPeers(connectedPeers, this.config.fanout);
|
|
162
|
+
// Split announcements into batches
|
|
163
|
+
const batches = this.splitIntoBatches(this.pendingAnnouncements, this.config.maxBatchSize);
|
|
164
|
+
// Clear pending before sending to avoid duplicates on retry
|
|
165
|
+
this.pendingAnnouncements = [];
|
|
166
|
+
// Send batches to selected peers
|
|
167
|
+
const sendPromises = [];
|
|
168
|
+
for (const peerId of selectedPeers) {
|
|
169
|
+
for (const batch of batches) {
|
|
170
|
+
sendPromises.push(this.peerProvider.sendAnnouncementBatch(peerId, batch).catch(() => {
|
|
171
|
+
// Ignore send errors - best effort delivery
|
|
172
|
+
}));
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
await Promise.all(sendPromises);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Start the gossip service.
|
|
179
|
+
*/
|
|
180
|
+
start() {
|
|
181
|
+
if (this.running) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
this.running = true;
|
|
185
|
+
this.batchTimer = setInterval(() => {
|
|
186
|
+
this.flushAnnouncements().catch(() => {
|
|
187
|
+
// Ignore flush errors
|
|
188
|
+
});
|
|
189
|
+
}, this.config.batchIntervalMs);
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Stop the gossip service.
|
|
193
|
+
*/
|
|
194
|
+
async stop() {
|
|
195
|
+
if (!this.running) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
this.running = false;
|
|
199
|
+
if (this.batchTimer) {
|
|
200
|
+
clearInterval(this.batchTimer);
|
|
201
|
+
this.batchTimer = null;
|
|
202
|
+
}
|
|
203
|
+
// Flush any remaining announcements
|
|
204
|
+
await this.flushAnnouncements();
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Get the current configuration.
|
|
208
|
+
*
|
|
209
|
+
* @returns The gossip configuration
|
|
210
|
+
*/
|
|
211
|
+
getConfig() {
|
|
212
|
+
return { ...this.config };
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Queue an announcement for batching.
|
|
216
|
+
*
|
|
217
|
+
* @param announcement - The announcement to queue
|
|
218
|
+
*/
|
|
219
|
+
queueAnnouncement(announcement) {
|
|
220
|
+
this.pendingAnnouncements.push(announcement);
|
|
221
|
+
// If we've reached max batch size, flush immediately
|
|
222
|
+
if (this.pendingAnnouncements.length >= this.config.maxBatchSize) {
|
|
223
|
+
this.flushAnnouncements().catch(() => {
|
|
224
|
+
// Ignore flush errors
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Select random peers from the available peers.
|
|
230
|
+
*
|
|
231
|
+
* @param peers - Available peer IDs
|
|
232
|
+
* @param count - Number of peers to select
|
|
233
|
+
* @returns Selected peer IDs
|
|
234
|
+
* @see Requirements 6.3
|
|
235
|
+
*/
|
|
236
|
+
selectRandomPeers(peers, count) {
|
|
237
|
+
if (peers.length <= count) {
|
|
238
|
+
return [...peers];
|
|
239
|
+
}
|
|
240
|
+
// Fisher-Yates shuffle and take first `count` elements
|
|
241
|
+
const shuffled = [...peers];
|
|
242
|
+
for (let i = shuffled.length - 1; i > 0; i--) {
|
|
243
|
+
const j = Math.floor(Math.random() * (i + 1));
|
|
244
|
+
[shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]];
|
|
245
|
+
}
|
|
246
|
+
return shuffled.slice(0, count);
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Split announcements into batches of maximum size.
|
|
250
|
+
*
|
|
251
|
+
* @param announcements - Announcements to split
|
|
252
|
+
* @param maxSize - Maximum batch size
|
|
253
|
+
* @returns Array of batches
|
|
254
|
+
* @see Requirements 6.6
|
|
255
|
+
*/
|
|
256
|
+
splitIntoBatches(announcements, maxSize) {
|
|
257
|
+
const batches = [];
|
|
258
|
+
for (let i = 0; i < announcements.length; i += maxSize) {
|
|
259
|
+
batches.push(announcements.slice(i, i + maxSize));
|
|
260
|
+
}
|
|
261
|
+
return batches;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Clear all pending announcements (for testing).
|
|
265
|
+
*/
|
|
266
|
+
clearPending() {
|
|
267
|
+
this.pendingAnnouncements = [];
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
exports.GossipService = GossipService;
|
|
271
|
+
//# sourceMappingURL=gossipService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gossipService.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/gossipService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Heartbeat Monitor Implementation
|
|
3
|
+
*
|
|
4
|
+
* Implements peer connectivity monitoring through periodic heartbeat messages.
|
|
5
|
+
* Detects network partitions when all peers become unreachable and
|
|
6
|
+
* triggers reconnection events when peers become available again.
|
|
7
|
+
*
|
|
8
|
+
* @see Requirements 7.1, 7.2, 7.5, 7.6
|
|
9
|
+
*/
|
|
10
|
+
import { ConnectivityEventHandler, HeartbeatConfig, IHeartbeatMonitor } from '@brightchain/brightchain-lib';
|
|
11
|
+
export { DEFAULT_HEARTBEAT_CONFIG } from '@brightchain/brightchain-lib';
|
|
12
|
+
/**
|
|
13
|
+
* Interface for heartbeat transport operations.
|
|
14
|
+
* Abstracts the underlying transport mechanism (WebSocket, etc.).
|
|
15
|
+
*/
|
|
16
|
+
export interface IHeartbeatTransport {
|
|
17
|
+
/**
|
|
18
|
+
* Send a ping to a peer.
|
|
19
|
+
*
|
|
20
|
+
* @param peerId - The peer to ping
|
|
21
|
+
* @returns Promise that resolves with latency in ms, or rejects on timeout/error
|
|
22
|
+
*/
|
|
23
|
+
sendPing(peerId: string): Promise<number>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Heartbeat Monitor Implementation
|
|
27
|
+
*
|
|
28
|
+
* Monitors peer connectivity using periodic heartbeat messages.
|
|
29
|
+
* Detects network partitions when all peers become unreachable and
|
|
30
|
+
* triggers reconnection events when peers become available again.
|
|
31
|
+
*
|
|
32
|
+
* @see Requirements 7.1, 7.2, 7.5, 7.6
|
|
33
|
+
*/
|
|
34
|
+
export declare class HeartbeatMonitor implements IHeartbeatMonitor {
|
|
35
|
+
private readonly transport;
|
|
36
|
+
private readonly config;
|
|
37
|
+
/**
|
|
38
|
+
* Map of peer ID to heartbeat state.
|
|
39
|
+
*/
|
|
40
|
+
private peerStates;
|
|
41
|
+
/**
|
|
42
|
+
* Registered connectivity event handlers.
|
|
43
|
+
*/
|
|
44
|
+
private handlers;
|
|
45
|
+
/**
|
|
46
|
+
* Heartbeat interval timer handle.
|
|
47
|
+
*/
|
|
48
|
+
private heartbeatTimer;
|
|
49
|
+
/**
|
|
50
|
+
* Whether the monitor is currently running.
|
|
51
|
+
*/
|
|
52
|
+
private running;
|
|
53
|
+
/**
|
|
54
|
+
* Whether we are currently in a partition state (all peers unreachable).
|
|
55
|
+
*/
|
|
56
|
+
private inPartition;
|
|
57
|
+
/**
|
|
58
|
+
* Create a new HeartbeatMonitor.
|
|
59
|
+
*
|
|
60
|
+
* @param transport - Transport for sending heartbeat pings
|
|
61
|
+
* @param config - Heartbeat configuration (uses defaults if not provided)
|
|
62
|
+
*/
|
|
63
|
+
constructor(transport: IHeartbeatTransport, config?: HeartbeatConfig);
|
|
64
|
+
/**
|
|
65
|
+
* Start the heartbeat monitor.
|
|
66
|
+
* Begins sending periodic heartbeat pings to all known peers.
|
|
67
|
+
*
|
|
68
|
+
* @see Requirements 7.1
|
|
69
|
+
*/
|
|
70
|
+
start(): void;
|
|
71
|
+
/**
|
|
72
|
+
* Stop the heartbeat monitor.
|
|
73
|
+
* Stops sending heartbeats and clears all tracking state.
|
|
74
|
+
*/
|
|
75
|
+
stop(): void;
|
|
76
|
+
/**
|
|
77
|
+
* Check if the monitor is currently running.
|
|
78
|
+
*
|
|
79
|
+
* @returns True if the monitor is active
|
|
80
|
+
*/
|
|
81
|
+
isRunning(): boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Check if a specific peer is currently reachable.
|
|
84
|
+
*
|
|
85
|
+
* @param peerId - The peer ID to check
|
|
86
|
+
* @returns True if the peer is reachable (responding to heartbeats)
|
|
87
|
+
* @see Requirements 7.5
|
|
88
|
+
*/
|
|
89
|
+
isPeerReachable(peerId: string): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Get all peers that are currently reachable.
|
|
92
|
+
*
|
|
93
|
+
* @returns Array of peer IDs that are responding to heartbeats
|
|
94
|
+
* @see Requirements 7.5
|
|
95
|
+
*/
|
|
96
|
+
getReachablePeers(): string[];
|
|
97
|
+
/**
|
|
98
|
+
* Get all peers that are currently unreachable.
|
|
99
|
+
*
|
|
100
|
+
* @returns Array of peer IDs that have exceeded the missed threshold
|
|
101
|
+
* @see Requirements 7.5
|
|
102
|
+
*/
|
|
103
|
+
getUnreachablePeers(): string[];
|
|
104
|
+
/**
|
|
105
|
+
* Get the number of consecutive missed heartbeats for a peer.
|
|
106
|
+
*
|
|
107
|
+
* @param peerId - The peer ID to check
|
|
108
|
+
* @returns Number of missed heartbeats, or 0 if peer is unknown
|
|
109
|
+
*/
|
|
110
|
+
getMissedCount(peerId: string): number;
|
|
111
|
+
/**
|
|
112
|
+
* Add a peer to be monitored.
|
|
113
|
+
*
|
|
114
|
+
* @param peerId - The peer ID to start monitoring
|
|
115
|
+
*/
|
|
116
|
+
addPeer(peerId: string): void;
|
|
117
|
+
/**
|
|
118
|
+
* Remove a peer from monitoring.
|
|
119
|
+
*
|
|
120
|
+
* @param peerId - The peer ID to stop monitoring
|
|
121
|
+
*/
|
|
122
|
+
removePeer(peerId: string): void;
|
|
123
|
+
/**
|
|
124
|
+
* Get all peers being monitored.
|
|
125
|
+
*
|
|
126
|
+
* @returns Array of all peer IDs being monitored
|
|
127
|
+
*/
|
|
128
|
+
getMonitoredPeers(): string[];
|
|
129
|
+
/**
|
|
130
|
+
* Subscribe to connectivity change events.
|
|
131
|
+
*
|
|
132
|
+
* @param handler - Function to call when connectivity changes
|
|
133
|
+
* @see Requirements 7.2, 7.5, 7.7
|
|
134
|
+
*/
|
|
135
|
+
onConnectivityChange(handler: ConnectivityEventHandler): void;
|
|
136
|
+
/**
|
|
137
|
+
* Remove a connectivity change handler.
|
|
138
|
+
*
|
|
139
|
+
* @param handler - The handler to remove
|
|
140
|
+
*/
|
|
141
|
+
offConnectivityChange(handler: ConnectivityEventHandler): void;
|
|
142
|
+
/**
|
|
143
|
+
* Record a successful heartbeat response from a peer.
|
|
144
|
+
* Called when a pong is received in response to a ping.
|
|
145
|
+
*
|
|
146
|
+
* @param peerId - The peer that responded
|
|
147
|
+
* @param latencyMs - Round-trip latency in milliseconds
|
|
148
|
+
*/
|
|
149
|
+
recordHeartbeatResponse(peerId: string, latencyMs: number): void;
|
|
150
|
+
/**
|
|
151
|
+
* Get the last recorded latency for a peer.
|
|
152
|
+
*
|
|
153
|
+
* @param peerId - The peer ID to check
|
|
154
|
+
* @returns Last recorded latency in milliseconds, or undefined if unknown
|
|
155
|
+
*/
|
|
156
|
+
getLastLatency(peerId: string): number | undefined;
|
|
157
|
+
/**
|
|
158
|
+
* Get the current configuration.
|
|
159
|
+
*
|
|
160
|
+
* @returns The heartbeat configuration
|
|
161
|
+
*/
|
|
162
|
+
getConfig(): HeartbeatConfig;
|
|
163
|
+
/**
|
|
164
|
+
* Send heartbeats to all monitored peers.
|
|
165
|
+
* @private
|
|
166
|
+
*/
|
|
167
|
+
private sendHeartbeats;
|
|
168
|
+
/**
|
|
169
|
+
* Send a heartbeat to a specific peer and handle the response.
|
|
170
|
+
* @private
|
|
171
|
+
*/
|
|
172
|
+
private sendHeartbeatToPeer;
|
|
173
|
+
/**
|
|
174
|
+
* Record a missed heartbeat for a peer.
|
|
175
|
+
* @private
|
|
176
|
+
*/
|
|
177
|
+
private recordMissedHeartbeat;
|
|
178
|
+
/**
|
|
179
|
+
* Check if we should enter partition mode (all peers unreachable).
|
|
180
|
+
* @private
|
|
181
|
+
*/
|
|
182
|
+
private checkPartitionEntry;
|
|
183
|
+
/**
|
|
184
|
+
* Check if we should exit partition mode (at least one peer reachable).
|
|
185
|
+
* @private
|
|
186
|
+
*/
|
|
187
|
+
private checkPartitionExit;
|
|
188
|
+
/**
|
|
189
|
+
* Emit a connectivity event to all handlers.
|
|
190
|
+
* @private
|
|
191
|
+
*/
|
|
192
|
+
private emitEvent;
|
|
193
|
+
/**
|
|
194
|
+
* Check if currently in partition mode.
|
|
195
|
+
*
|
|
196
|
+
* @returns True if all peers are unreachable
|
|
197
|
+
*/
|
|
198
|
+
isInPartition(): boolean;
|
|
199
|
+
/**
|
|
200
|
+
* Clear all peer states (for testing).
|
|
201
|
+
*/
|
|
202
|
+
clearPeers(): void;
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=heartbeatMonitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heartbeatMonitor.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/heartbeatMonitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAEL,wBAAwB,EACxB,eAAe,EACf,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAWxE;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C;AA2BD;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IAiCtD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAjCzB;;OAEG;IACH,OAAO,CAAC,UAAU,CAA8C;IAEhE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAA4C;IAE5D;;OAEG;IACH,OAAO,CAAC,cAAc,CAA+C;IAErE;;OAEG;IACH,OAAO,CAAC,OAAO,CAAS;IAExB;;OAEG;IACH,OAAO,CAAC,WAAW,CAAS;IAE5B;;;;;OAKG;gBAEgB,SAAS,EAAE,mBAAmB,EAC9B,MAAM,GAAE,eAAwC;IAGnE;;;;;OAKG;IACH,KAAK,IAAI,IAAI;IAkBb;;;OAGG;IACH,IAAI,IAAI,IAAI;IAaZ;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;;;OAMG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAKxC;;;;;OAKG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAU7B;;;;;OAKG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAU/B;;;;;OAKG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAItC;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAS7B;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIhC;;;;OAIG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAI7B;;;;;OAKG;IACH,oBAAoB,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAI7D;;;;OAIG;IACH,qBAAqB,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAI9D;;;;;;OAMG;IACH,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IA8BhE;;;;;OAKG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIlD;;;;OAIG;IACH,SAAS,IAAI,eAAe;IAI5B;;;OAGG;YACW,cAAc;IAa5B;;;OAGG;YACW,mBAAmB;IAUjC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA2B7B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;;OAGG;IACH,OAAO,CAAC,SAAS;IAUjB;;;;OAIG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,UAAU,IAAI,IAAI;CAInB"}
|