@brightchain/brightchain-api-lib 0.14.0 → 0.15.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.
Files changed (242) hide show
  1. package/package.json +5 -5
  2. package/src/index.d.ts +3 -0
  3. package/src/index.d.ts.map +1 -1
  4. package/src/index.js +5 -0
  5. package/src/index.js.map +1 -1
  6. package/src/lib/application.d.ts +1 -0
  7. package/src/lib/application.d.ts.map +1 -1
  8. package/src/lib/application.js +23 -0
  9. package/src/lib/application.js.map +1 -1
  10. package/src/lib/auth/aclEnforcedAvailability.d.ts +57 -0
  11. package/src/lib/auth/aclEnforcedAvailability.d.ts.map +1 -0
  12. package/src/lib/auth/aclEnforcedAvailability.js +87 -0
  13. package/src/lib/auth/aclEnforcedAvailability.js.map +1 -0
  14. package/src/lib/auth/aclEnforcedBlockStore.d.ts +66 -0
  15. package/src/lib/auth/aclEnforcedBlockStore.d.ts.map +1 -0
  16. package/src/lib/auth/aclEnforcedBlockStore.js +83 -0
  17. package/src/lib/auth/aclEnforcedBlockStore.js.map +1 -0
  18. package/src/lib/auth/ecdsaNodeAuthenticator.d.ts +46 -0
  19. package/src/lib/auth/ecdsaNodeAuthenticator.d.ts.map +1 -0
  20. package/src/lib/auth/ecdsaNodeAuthenticator.js +110 -0
  21. package/src/lib/auth/ecdsaNodeAuthenticator.js.map +1 -0
  22. package/src/lib/auth/index.d.ts +7 -0
  23. package/src/lib/auth/index.d.ts.map +1 -0
  24. package/src/lib/auth/index.js +13 -0
  25. package/src/lib/auth/index.js.map +1 -0
  26. package/src/lib/auth/poolAclBootstrap.d.ts +36 -0
  27. package/src/lib/auth/poolAclBootstrap.d.ts.map +1 -0
  28. package/src/lib/auth/poolAclBootstrap.js +64 -0
  29. package/src/lib/auth/poolAclBootstrap.js.map +1 -0
  30. package/src/lib/auth/poolAclStore.d.ts +77 -0
  31. package/src/lib/auth/poolAclStore.d.ts.map +1 -0
  32. package/src/lib/auth/poolAclStore.js +189 -0
  33. package/src/lib/auth/poolAclStore.js.map +1 -0
  34. package/src/lib/auth/poolAclUpdater.d.ts +79 -0
  35. package/src/lib/auth/poolAclUpdater.d.ts.map +1 -0
  36. package/src/lib/auth/poolAclUpdater.js +144 -0
  37. package/src/lib/auth/poolAclUpdater.js.map +1 -0
  38. package/src/lib/availability/availabilityService.d.ts +2 -2
  39. package/src/lib/availability/availabilityService.d.ts.map +1 -1
  40. package/src/lib/availability/availabilityService.js +12 -5
  41. package/src/lib/availability/availabilityService.js.map +1 -1
  42. package/src/lib/availability/blockRegistry.d.ts +45 -3
  43. package/src/lib/availability/blockRegistry.d.ts.map +1 -1
  44. package/src/lib/availability/blockRegistry.js +123 -5
  45. package/src/lib/availability/blockRegistry.js.map +1 -1
  46. package/src/lib/availability/discoveryProtocol.d.ts +30 -1
  47. package/src/lib/availability/discoveryProtocol.d.ts.map +1 -1
  48. package/src/lib/availability/discoveryProtocol.js +76 -0
  49. package/src/lib/availability/discoveryProtocol.js.map +1 -1
  50. package/src/lib/availability/gossipService.d.ts +45 -6
  51. package/src/lib/availability/gossipService.d.ts.map +1 -1
  52. package/src/lib/availability/gossipService.js +177 -5
  53. package/src/lib/availability/gossipService.js.map +1 -1
  54. package/src/lib/availability/reconciliationService.d.ts +88 -1
  55. package/src/lib/availability/reconciliationService.d.ts.map +1 -1
  56. package/src/lib/availability/reconciliationService.js +246 -48
  57. package/src/lib/availability/reconciliationService.js.map +1 -1
  58. package/src/lib/blockFetch/blockFetcher.d.ts +100 -0
  59. package/src/lib/blockFetch/blockFetcher.d.ts.map +1 -0
  60. package/src/lib/blockFetch/blockFetcher.js +279 -0
  61. package/src/lib/blockFetch/blockFetcher.js.map +1 -0
  62. package/src/lib/blockFetch/fetchQueue.d.ts +88 -0
  63. package/src/lib/blockFetch/fetchQueue.d.ts.map +1 -0
  64. package/src/lib/blockFetch/fetchQueue.js +204 -0
  65. package/src/lib/blockFetch/fetchQueue.js.map +1 -0
  66. package/src/lib/blockFetch/httpBlockFetchTransport.d.ts +65 -0
  67. package/src/lib/blockFetch/httpBlockFetchTransport.d.ts.map +1 -0
  68. package/src/lib/blockFetch/httpBlockFetchTransport.js +104 -0
  69. package/src/lib/blockFetch/httpBlockFetchTransport.js.map +1 -0
  70. package/src/lib/blockFetch/index.d.ts +10 -0
  71. package/src/lib/blockFetch/index.d.ts.map +1 -0
  72. package/src/lib/blockFetch/index.js +13 -0
  73. package/src/lib/blockFetch/index.js.map +1 -0
  74. package/src/lib/controllers/api/brightpass.d.ts +72 -0
  75. package/src/lib/controllers/api/brightpass.d.ts.map +1 -0
  76. package/src/lib/controllers/api/brightpass.js +577 -0
  77. package/src/lib/controllers/api/brightpass.js.map +1 -0
  78. package/src/lib/controllers/api/channels.d.ts +122 -0
  79. package/src/lib/controllers/api/channels.d.ts.map +1 -0
  80. package/src/lib/controllers/api/channels.js +701 -0
  81. package/src/lib/controllers/api/channels.js.map +1 -0
  82. package/src/lib/controllers/api/conversations.d.ts +89 -0
  83. package/src/lib/controllers/api/conversations.d.ts.map +1 -0
  84. package/src/lib/controllers/api/conversations.js +259 -0
  85. package/src/lib/controllers/api/conversations.js.map +1 -0
  86. package/src/lib/controllers/api/emails.d.ts +122 -0
  87. package/src/lib/controllers/api/emails.d.ts.map +1 -0
  88. package/src/lib/controllers/api/emails.js +494 -0
  89. package/src/lib/controllers/api/emails.js.map +1 -0
  90. package/src/lib/controllers/api/explodingMessages.d.ts +79 -0
  91. package/src/lib/controllers/api/explodingMessages.d.ts.map +1 -0
  92. package/src/lib/controllers/api/explodingMessages.js +378 -0
  93. package/src/lib/controllers/api/explodingMessages.js.map +1 -0
  94. package/src/lib/controllers/api/groups.d.ts +94 -0
  95. package/src/lib/controllers/api/groups.d.ts.map +1 -0
  96. package/src/lib/controllers/api/groups.js +484 -0
  97. package/src/lib/controllers/api/groups.js.map +1 -0
  98. package/src/lib/controllers/api/index.d.ts +6 -0
  99. package/src/lib/controllers/api/index.d.ts.map +1 -1
  100. package/src/lib/controllers/api/index.js +6 -0
  101. package/src/lib/controllers/api/index.js.map +1 -1
  102. package/src/lib/controllers/api/messages.d.ts.map +1 -1
  103. package/src/lib/controllers/api/messages.js +2 -1
  104. package/src/lib/controllers/api/messages.js.map +1 -1
  105. package/src/lib/controllers/api/sync.d.ts +38 -2
  106. package/src/lib/controllers/api/sync.d.ts.map +1 -1
  107. package/src/lib/controllers/api/sync.js +89 -0
  108. package/src/lib/controllers/api/sync.js.map +1 -1
  109. package/src/lib/controllers/crypto/gitController.d.ts +70 -0
  110. package/src/lib/controllers/crypto/gitController.d.ts.map +1 -0
  111. package/src/lib/controllers/crypto/gitController.js +306 -0
  112. package/src/lib/controllers/crypto/gitController.js.map +1 -0
  113. package/src/lib/controllers/crypto/index.d.ts +3 -0
  114. package/src/lib/controllers/crypto/index.d.ts.map +1 -0
  115. package/src/lib/controllers/crypto/index.js +6 -0
  116. package/src/lib/controllers/crypto/index.js.map +1 -0
  117. package/src/lib/controllers/crypto/walletController.d.ts +64 -0
  118. package/src/lib/controllers/crypto/walletController.d.ts.map +1 -0
  119. package/src/lib/controllers/crypto/walletController.js +260 -0
  120. package/src/lib/controllers/crypto/walletController.js.map +1 -0
  121. package/src/lib/controllers/identity/deviceController.d.ts +96 -0
  122. package/src/lib/controllers/identity/deviceController.d.ts.map +1 -0
  123. package/src/lib/controllers/identity/deviceController.js +355 -0
  124. package/src/lib/controllers/identity/deviceController.js.map +1 -0
  125. package/src/lib/controllers/identity/directoryController.d.ts +75 -0
  126. package/src/lib/controllers/identity/directoryController.d.ts.map +1 -0
  127. package/src/lib/controllers/identity/directoryController.js +288 -0
  128. package/src/lib/controllers/identity/directoryController.js.map +1 -0
  129. package/src/lib/controllers/identity/identityProofController.d.ts +94 -0
  130. package/src/lib/controllers/identity/identityProofController.d.ts.map +1 -0
  131. package/src/lib/controllers/identity/identityProofController.js +454 -0
  132. package/src/lib/controllers/identity/identityProofController.js.map +1 -0
  133. package/src/lib/controllers/identity/index.d.ts +4 -0
  134. package/src/lib/controllers/identity/index.d.ts.map +1 -0
  135. package/src/lib/controllers/identity/index.js +7 -0
  136. package/src/lib/controllers/identity/index.js.map +1 -0
  137. package/src/lib/controllers/index.d.ts +2 -0
  138. package/src/lib/controllers/index.d.ts.map +1 -1
  139. package/src/lib/controllers/index.js +2 -0
  140. package/src/lib/controllers/index.js.map +1 -1
  141. package/src/lib/encryption/encryptedMetadataService.d.ts +87 -0
  142. package/src/lib/encryption/encryptedMetadataService.d.ts.map +1 -0
  143. package/src/lib/encryption/encryptedMetadataService.js +224 -0
  144. package/src/lib/encryption/encryptedMetadataService.js.map +1 -0
  145. package/src/lib/encryption/encryptionAwareReplication.d.ts +76 -0
  146. package/src/lib/encryption/encryptionAwareReplication.d.ts.map +1 -0
  147. package/src/lib/encryption/encryptionAwareReplication.js +116 -0
  148. package/src/lib/encryption/encryptionAwareReplication.js.map +1 -0
  149. package/src/lib/encryption/errors.d.ts +49 -0
  150. package/src/lib/encryption/errors.d.ts.map +1 -0
  151. package/src/lib/encryption/errors.js +80 -0
  152. package/src/lib/encryption/errors.js.map +1 -0
  153. package/src/lib/encryption/index.d.ts +6 -0
  154. package/src/lib/encryption/index.d.ts.map +1 -0
  155. package/src/lib/encryption/index.js +9 -0
  156. package/src/lib/encryption/index.js.map +1 -0
  157. package/src/lib/encryption/poolEncryptionService.d.ts +94 -0
  158. package/src/lib/encryption/poolEncryptionService.d.ts.map +1 -0
  159. package/src/lib/encryption/poolEncryptionService.js +252 -0
  160. package/src/lib/encryption/poolEncryptionService.js.map +1 -0
  161. package/src/lib/encryption/poolKeyManager.d.ts +82 -0
  162. package/src/lib/encryption/poolKeyManager.d.ts.map +1 -0
  163. package/src/lib/encryption/poolKeyManager.js +156 -0
  164. package/src/lib/encryption/poolKeyManager.js.map +1 -0
  165. package/src/lib/environment.d.ts +3 -0
  166. package/src/lib/environment.d.ts.map +1 -1
  167. package/src/lib/environment.js +5 -0
  168. package/src/lib/environment.js.map +1 -1
  169. package/src/lib/interfaces/environment.d.ts +7 -1
  170. package/src/lib/interfaces/environment.d.ts.map +1 -1
  171. package/src/lib/interfaces/index.d.ts +0 -1
  172. package/src/lib/interfaces/index.d.ts.map +1 -1
  173. package/src/lib/interfaces/requests/getBlockDataRequest.d.ts +12 -0
  174. package/src/lib/interfaces/requests/getBlockDataRequest.d.ts.map +1 -0
  175. package/src/lib/interfaces/{blockStore.js → requests/getBlockDataRequest.js} +1 -1
  176. package/src/lib/interfaces/requests/getBlockDataRequest.js.map +1 -0
  177. package/src/lib/interfaces/requests/index.d.ts +1 -0
  178. package/src/lib/interfaces/requests/index.d.ts.map +1 -1
  179. package/src/lib/routers/api.d.ts +54 -1
  180. package/src/lib/routers/api.d.ts.map +1 -1
  181. package/src/lib/routers/api.js +77 -0
  182. package/src/lib/routers/api.js.map +1 -1
  183. package/src/lib/services/blockStore.d.ts +5 -2
  184. package/src/lib/services/blockStore.d.ts.map +1 -1
  185. package/src/lib/services/blockStore.js +4 -0
  186. package/src/lib/services/blockStore.js.map +1 -1
  187. package/src/lib/services/brightpass/auditLogger.d.ts +77 -0
  188. package/src/lib/services/brightpass/auditLogger.d.ts.map +1 -0
  189. package/src/lib/services/brightpass/auditLogger.js +184 -0
  190. package/src/lib/services/brightpass/auditLogger.js.map +1 -0
  191. package/src/lib/services/brightpass/vaultEncryption.d.ts +82 -0
  192. package/src/lib/services/brightpass/vaultEncryption.d.ts.map +1 -0
  193. package/src/lib/services/brightpass/vaultEncryption.js +144 -0
  194. package/src/lib/services/brightpass/vaultEncryption.js.map +1 -0
  195. package/src/lib/services/brightpass.d.ts +294 -0
  196. package/src/lib/services/brightpass.d.ts.map +1 -0
  197. package/src/lib/services/brightpass.js +1260 -0
  198. package/src/lib/services/brightpass.js.map +1 -0
  199. package/src/lib/services/eventNotificationSystem.d.ts +69 -3
  200. package/src/lib/services/eventNotificationSystem.d.ts.map +1 -1
  201. package/src/lib/services/eventNotificationSystem.js +200 -0
  202. package/src/lib/services/eventNotificationSystem.js.map +1 -1
  203. package/src/lib/services/expirationScheduler.d.ts +90 -0
  204. package/src/lib/services/expirationScheduler.d.ts.map +1 -0
  205. package/src/lib/services/expirationScheduler.js +131 -0
  206. package/src/lib/services/expirationScheduler.js.map +1 -0
  207. package/src/lib/services/fecUsageExample.d.ts +2 -2
  208. package/src/lib/services/index.d.ts +2 -0
  209. package/src/lib/services/index.d.ts.map +1 -1
  210. package/src/lib/services/index.js +2 -0
  211. package/src/lib/services/index.js.map +1 -1
  212. package/src/lib/services/paginationService.d.ts +18 -0
  213. package/src/lib/services/paginationService.d.ts.map +1 -0
  214. package/src/lib/services/paginationService.js +32 -0
  215. package/src/lib/services/paginationService.js.map +1 -0
  216. package/src/lib/services/presenceService.d.ts +76 -0
  217. package/src/lib/services/presenceService.d.ts.map +1 -0
  218. package/src/lib/services/presenceService.js +143 -0
  219. package/src/lib/services/presenceService.js.map +1 -0
  220. package/src/lib/services/wireConversationPromotion.d.ts +23 -0
  221. package/src/lib/services/wireConversationPromotion.d.ts.map +1 -0
  222. package/src/lib/services/wireConversationPromotion.js +26 -0
  223. package/src/lib/services/wireConversationPromotion.js.map +1 -0
  224. package/src/lib/stores/availabilityAwareBlockStore.d.ts +115 -10
  225. package/src/lib/stores/availabilityAwareBlockStore.d.ts.map +1 -1
  226. package/src/lib/stores/availabilityAwareBlockStore.js +267 -23
  227. package/src/lib/stores/availabilityAwareBlockStore.js.map +1 -1
  228. package/src/lib/stores/diskBlockAsyncStore.d.ts +81 -2
  229. package/src/lib/stores/diskBlockAsyncStore.d.ts.map +1 -1
  230. package/src/lib/stores/diskBlockAsyncStore.js +297 -10
  231. package/src/lib/stores/diskBlockAsyncStore.js.map +1 -1
  232. package/src/lib/utils/communicationValidation.d.ts +44 -0
  233. package/src/lib/utils/communicationValidation.d.ts.map +1 -0
  234. package/src/lib/utils/communicationValidation.js +291 -0
  235. package/src/lib/utils/communicationValidation.js.map +1 -0
  236. package/src/lib/utils/emailValidation.d.ts +19 -0
  237. package/src/lib/utils/emailValidation.d.ts.map +1 -0
  238. package/src/lib/utils/emailValidation.js +232 -0
  239. package/src/lib/utils/emailValidation.js.map +1 -0
  240. package/src/lib/interfaces/blockStore.d.ts +0 -7
  241. package/src/lib/interfaces/blockStore.d.ts.map +0 -1
  242. package/src/lib/interfaces/blockStore.js.map +0 -1
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @see Requirements 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8
8
8
  */
9
- import { BloomFilter, DiscoveryConfig, DiscoveryResult, IDiscoveryProtocol, ILocationRecord, PeerQueryResult } from '@brightchain/brightchain-lib';
9
+ import { BloomFilter, CBLMetadataSearchQuery, CBLMetadataSearchResult, DiscoveryConfig, DiscoveryResult, ICBLIndexEntry, IDiscoveryProtocol, ILocationRecord, PeerQueryResult, PoolScopedBloomFilter } from '@brightchain/brightchain-lib';
10
10
  /**
11
11
  * Interface for peer network operations.
12
12
  * Abstracts network communication for discovery queries.
@@ -32,6 +32,15 @@ export interface IPeerNetworkProvider {
32
32
  * @returns Promise resolving to whether the peer has the block
33
33
  */
34
34
  queryPeerForBlock(peerId: string, blockId: string, timeoutMs: number): Promise<boolean>;
35
+ /**
36
+ * Query a peer for CBL index entries matching the given metadata criteria.
37
+ *
38
+ * @param peerId - The peer to query
39
+ * @param query - Search criteria (fileName, mimeType, tags, poolId)
40
+ * @param timeoutMs - Query timeout in milliseconds
41
+ * @returns Promise resolving to matching CBL index entries from that peer
42
+ */
43
+ queryPeerForCBLMetadata(peerId: string, query: CBLMetadataSearchQuery, timeoutMs: number): Promise<ICBLIndexEntry[]>;
35
44
  }
36
45
  /**
37
46
  * Discovery Protocol Implementation
@@ -105,6 +114,15 @@ export declare class DiscoveryProtocol implements IDiscoveryProtocol {
105
114
  * @see Requirements 4.2, 5.2
106
115
  */
107
116
  getPeerBloomFilter(peerId: string): Promise<BloomFilter>;
117
+ /**
118
+ * Get the pool-scoped Bloom filter from a peer.
119
+ * Returns per-pool Bloom filters for pool-aware discovery.
120
+ *
121
+ * @param peerId - The peer to get the pool-scoped Bloom filter from
122
+ * @returns Promise resolving to the peer's pool-scoped Bloom filter
123
+ * @see Requirements 4.2, 4.5
124
+ */
125
+ getPeerPoolScopedBloomFilter(peerId: string): Promise<PoolScopedBloomFilter>;
108
126
  /**
109
127
  * Get the current configuration.
110
128
  *
@@ -155,5 +173,16 @@ export declare class DiscoveryProtocol implements IDiscoveryProtocol {
155
173
  * @param locations - Location records to cache
156
174
  */
157
175
  private cacheResults;
176
+ /**
177
+ * Search for CBL index entries by metadata across pool peers.
178
+ *
179
+ * Queries all connected peers for CBL entries matching the given criteria.
180
+ * Results are deduplicated by magnet URL, keeping the first occurrence.
181
+ *
182
+ * @param query - Search criteria with optional fileName, mimeType, tags, poolId
183
+ * @returns Promise resolving to search results with matching entries and source nodes
184
+ * @see Requirements 8.5
185
+ */
186
+ searchCBLMetadata(query: CBLMetadataSearchQuery): Promise<CBLMetadataSearchResult>;
158
187
  }
159
188
  //# sourceMappingURL=discoveryProtocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discoveryProtocol.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/discoveryProtocol.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,WAAW,EACX,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAuBtC;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE,CAAC;IAEhC;;;;;OAKG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEzD;;;;;;;OAOG;IACH,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,iBAAkB,YAAW,kBAAkB;IAkBxD,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAlBzB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsC;IAE5D;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuC;IAExE;;;;;OAKG;gBAEgB,eAAe,EAAE,oBAAoB,EACrC,MAAM,GAAE,eAAwC;IAGnE;;;;;;OAMG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA2D9D;;;;;;;OAOG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAyB1E;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,GAAG,IAAI;IAgB7D;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,aAAa,IAAI,IAAI;IAIrB;;;;;;OAMG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAgB9D;;;;OAIG;IACH,SAAS,IAAI,eAAe;IAI5B;;;;OAIG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI3C;;OAEG;IACH,wBAAwB,IAAI,IAAI;IAIhC;;;;;;;;OAQG;YACW,2BAA2B;IAgCzC;;;;;;;OAOG;YACW,8BAA8B;IAgC5C;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;CAMrB"}
1
+ {"version":3,"file":"discoveryProtocol.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/discoveryProtocol.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,WAAW,EAEX,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AAuBtC;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE,CAAC;IAEhC;;;;;OAKG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEzD;;;;;;;OAOG;IACH,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB;;;;;;;OAOG;IACH,uBAAuB,CACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,sBAAsB,EAC7B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,qBAAa,iBAAkB,YAAW,kBAAkB;IAkBxD,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAlBzB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsC;IAE5D;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuC;IAExE;;;;;OAKG;gBAEgB,eAAe,EAAE,oBAAoB,EACrC,MAAM,GAAE,eAAwC;IAGnE;;;;;;OAMG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA2D9D;;;;;;;OAOG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAyB1E;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,GAAG,IAAI;IAgB7D;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,aAAa,IAAI,IAAI;IAIrB;;;;;;OAMG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAgB9D;;;;;;;OAOG;IACG,4BAA4B,CAChC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,qBAAqB,CAAC;IAUjC;;;;OAIG;IACH,SAAS,IAAI,eAAe;IAI5B;;;;OAIG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI3C;;OAEG;IACH,wBAAwB,IAAI,IAAI;IAIhC;;;;;;;;OAQG;YACW,2BAA2B;IAgCzC;;;;;;;OAOG;YACW,8BAA8B;IAgC5C;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAOpB;;;;;;;;;OASG;IACG,iBAAiB,CACrB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,uBAAuB,CAAC;CAgEpC"}
@@ -179,6 +179,23 @@ class DiscoveryProtocol {
179
179
  this.bloomFilterCache.set(peerId, filter);
180
180
  return filter;
181
181
  }
182
+ /**
183
+ * Get the pool-scoped Bloom filter from a peer.
184
+ * Returns per-pool Bloom filters for pool-aware discovery.
185
+ *
186
+ * @param peerId - The peer to get the pool-scoped Bloom filter from
187
+ * @returns Promise resolving to the peer's pool-scoped Bloom filter
188
+ * @see Requirements 4.2, 4.5
189
+ */
190
+ async getPeerPoolScopedBloomFilter(peerId) {
191
+ // Delegate to the network provider if it supports pool-scoped filters,
192
+ // otherwise return a pool-scoped filter wrapping the global filter
193
+ const globalFilter = await this.getPeerBloomFilter(peerId);
194
+ return {
195
+ filters: new Map(),
196
+ globalFilter,
197
+ };
198
+ }
182
199
  /**
183
200
  * Get the current configuration.
184
201
  *
@@ -297,6 +314,65 @@ class DiscoveryProtocol {
297
314
  cachedAt: Date.now(),
298
315
  });
299
316
  }
317
+ /**
318
+ * Search for CBL index entries by metadata across pool peers.
319
+ *
320
+ * Queries all connected peers for CBL entries matching the given criteria.
321
+ * Results are deduplicated by magnet URL, keeping the first occurrence.
322
+ *
323
+ * @param query - Search criteria with optional fileName, mimeType, tags, poolId
324
+ * @returns Promise resolving to search results with matching entries and source nodes
325
+ * @see Requirements 8.5
326
+ */
327
+ async searchCBLMetadata(query) {
328
+ const startTime = Date.now();
329
+ const connectedPeers = this.networkProvider.getConnectedPeerIds();
330
+ if (connectedPeers.length === 0) {
331
+ return {
332
+ query,
333
+ hits: [],
334
+ queriedPeers: 0,
335
+ duration: Date.now() - startTime,
336
+ };
337
+ }
338
+ const hits = [];
339
+ const seenMagnetUrls = new Set();
340
+ let queriedPeers = 0;
341
+ // Query peers with concurrency limiting
342
+ const pending = [];
343
+ let index = 0;
344
+ const queryNext = async () => {
345
+ while (index < connectedPeers.length) {
346
+ const currentIndex = index++;
347
+ const peerId = connectedPeers[currentIndex];
348
+ try {
349
+ const entries = await this.networkProvider.queryPeerForCBLMetadata(peerId, query, this.config.queryTimeoutMs);
350
+ queriedPeers++;
351
+ for (const entry of entries) {
352
+ if (!seenMagnetUrls.has(entry.magnetUrl)) {
353
+ seenMagnetUrls.add(entry.magnetUrl);
354
+ hits.push({ entry, sourceNodeId: peerId });
355
+ }
356
+ }
357
+ }
358
+ catch {
359
+ queriedPeers++;
360
+ // Peer query failed — skip silently, same pattern as block discovery
361
+ }
362
+ }
363
+ };
364
+ const concurrency = Math.min(this.config.maxConcurrentQueries, connectedPeers.length);
365
+ for (let i = 0; i < concurrency; i++) {
366
+ pending.push(queryNext());
367
+ }
368
+ await Promise.all(pending);
369
+ return {
370
+ query,
371
+ hits,
372
+ queriedPeers,
373
+ duration: Date.now() - startTime,
374
+ };
375
+ }
300
376
  }
301
377
  exports.DiscoveryProtocol = DiscoveryProtocol;
302
378
  //# sourceMappingURL=discoveryProtocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discoveryProtocol.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/discoveryProtocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discoveryProtocol.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/discoveryProtocol.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, IGossipService, MessageDeliveryMetadata } from '@brightchain/brightchain-lib';
10
+ import { AnnouncementHandler, BlockAnnouncement, DeliveryAckMetadata, GossipConfig, ICBLIndexEntry, IGossipService, MessageDeliveryMetadata, PoolId } from '@brightchain/brightchain-lib';
11
11
  import { ECIESService } from '@digitaldefiance/node-ecies-lib';
12
12
  /**
13
13
  * Error thrown when gossip configuration is invalid.
@@ -121,20 +121,59 @@ export declare class GossipService implements IGossipService {
121
121
  * Announce a new block to the network.
122
122
  *
123
123
  * @param blockId - The block ID to announce
124
- * @see Requirements 6.1
124
+ * @param poolId - Optional pool the block belongs to
125
+ * @see Requirements 6.1, 1.1, 6.3
125
126
  */
126
- announceBlock(blockId: string): Promise<void>;
127
+ announceBlock(blockId: string, poolId?: PoolId): Promise<void>;
127
128
  /**
128
129
  * Announce block removal to the network.
129
130
  *
130
131
  * @param blockId - The block ID being removed
131
- * @see Requirements 6.5
132
+ * @param poolId - Optional pool the block belonged to
133
+ * @see Requirements 6.5, 1.1
132
134
  */
133
- announceRemoval(blockId: string): Promise<void>;
135
+ announceRemoval(blockId: string, poolId?: PoolId): Promise<void>;
136
+ /**
137
+ * Announce that a pool has been deleted.
138
+ * Creates a pool_deleted announcement propagated as a tombstone.
139
+ *
140
+ * @param poolId - The pool that was deleted
141
+ * @see Requirements 2.2, 2.7
142
+ */
143
+ announcePoolDeletion(poolId: PoolId): Promise<void>;
144
+ /**
145
+ * Announce a new or updated CBL index entry to peers in the same pool.
146
+ * Creates a cbl_index_update announcement scoped to the entry's pool.
147
+ *
148
+ * @param entry - The CBL index entry being announced
149
+ * @see Requirements 8.1
150
+ */
151
+ announceCBLIndexUpdate(entry: ICBLIndexEntry): Promise<void>;
152
+ /**
153
+ * Announce a soft-deleted CBL index entry to peers in the same pool.
154
+ * Creates a cbl_index_delete announcement so peers also mark the entry as deleted.
155
+ *
156
+ * @param entry - The CBL index entry that was soft-deleted (with deletedAt set)
157
+ * @see Requirements 8.6
158
+ */
159
+ announceCBLIndexDelete(entry: ICBLIndexEntry): Promise<void>;
160
+ /**
161
+ * Announce a HeadRegistry head pointer update to peer nodes.
162
+ * Creates a head_update announcement with the database name, collection name,
163
+ * and new head block ID.
164
+ *
165
+ * @param dbName - The database name containing the collection
166
+ * @param collectionName - The collection whose head pointer was updated
167
+ * @param blockId - The new head block ID
168
+ * @see Requirements 2.1
169
+ */
170
+ announceHeadUpdate(dbName: string, collectionName: string, blockId: string): Promise<void>;
171
+ announceACLUpdate(poolId: string, aclBlockId: string): Promise<void>;
134
172
  /**
135
173
  * Handle an incoming block announcement from a peer.
136
174
  *
137
175
  * Dispatches announcements based on their type and metadata:
176
+ * - 'pool_deleted' type: dispatches to general handlers and forwards with decremented TTL (Req 2.7)
138
177
  * - 'ack' type: dispatches to delivery ack handlers only (Req 4.4)
139
178
  * - 'add' with messageDelivery and matching local recipients: triggers message delivery
140
179
  * handlers and auto-sends ack if ackRequired (Req 3.4, 3.5)
@@ -142,7 +181,7 @@ export declare class GossipService implements IGossipService {
142
181
  * - Plain 'add'/'remove' without messageDelivery: notifies general handlers and forwards (backward compat)
143
182
  *
144
183
  * @param announcement - The received announcement
145
- * @see Requirements 3.4, 3.5, 3.6, 4.4
184
+ * @see Requirements 2.7, 3.4, 3.5, 3.6, 4.4
146
185
  */
147
186
  handleAnnouncement(announcement: BlockAnnouncement): Promise<void>;
148
187
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"gossipService.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/gossipService.ts"],"names":[],"mappings":"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"}
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,MAAM,EAEP,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAI/D;;;;;GAKG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAI5B;AAgBD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,gBAAgB,EAAE,MAAM,CAAC;IACzB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,cAAc,IAAI,MAAM,CAAC;IAEzB;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE,CAAC;IAEhC;;;;;;OAMG;IACH,qBAAqB,CACnB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,iBAAiB,EAAE,EAClC,SAAS,CAAC,EAAE,qBAAqB,GAChC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC1D;AAED;;;;;;;GAOG;AACH,qBAAa,aAAc,YAAW,cAAc;IA6DhD,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IAhEnC;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAA2B;IAEvD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAuC;IAEvD;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB,CAEjB;IAEd;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB,CACf;IAEZ;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAE3C;;OAEG;IACH,OAAO,CAAC,UAAU,CAA+C;IAEjE;;OAEG;IACH,OAAO,CAAC,OAAO,CAAS;IAExB;;;;;;;;;;OAUG;gBAEgB,YAAY,EAAE,aAAa,EAC3B,MAAM,GAAE,YAAkC,EAC3D,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EACT,YAAY,CAAC,EAAE,YAAY,YAAA,EAC3B,eAAe,CAAC,EAAE,MAAM,YAAA;IAU3C;;;;;;OAMG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAapE;;;;;;OAMG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAatE;;;;;;OAMG;IACG,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAazD;;;;;;OAMG;IACG,sBAAsB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAclE;;;;;;OAMG;IACG,sBAAsB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAclE;;;;;;;;;OASG;IACG,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAgBV,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc1E;;;;;;;;;;;;;OAaG;IACG,kBAAkB,CAAC,YAAY,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmKxE;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAIlD;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAInD;;;;;OAKG;IACH,uBAAuB,IAAI,iBAAiB,EAAE;IAI9C;;;;;;;;;OASG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAgEzC;;OAEG;IACH,KAAK,IAAI,IAAI;IAab;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B;;;;OAIG;IACH,SAAS,IAAI,YAAY;IAIzB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;;;;;OAMG;IACH,OAAO,CAAC,8BAA8B;IAQtC;;;;;;;;;OASG;YACW,mBAAmB;IA2BjC;;;;;;;;;;OAUG;YACW,eAAe;IA6B7B;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;;;;;;;OAQG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAAE,EAClB,QAAQ,EAAE,uBAAuB,GAChC,OAAO,CAAC,IAAI,CAAC;IAoBhB;;;;;;OAMG;IACG,eAAe,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAa9D;;;;;;;OAOG;IACH,iBAAiB,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI;IAI3E;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI;IAI5E;;;;;;OAMG;IACH,aAAa,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI;IAIvE;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI;CAGzE"}
@@ -103,15 +103,17 @@ class GossipService {
103
103
  * Announce a new block to the network.
104
104
  *
105
105
  * @param blockId - The block ID to announce
106
- * @see Requirements 6.1
106
+ * @param poolId - Optional pool the block belongs to
107
+ * @see Requirements 6.1, 1.1, 6.3
107
108
  */
108
- async announceBlock(blockId) {
109
+ async announceBlock(blockId, poolId) {
109
110
  const announcement = {
110
111
  type: 'add',
111
112
  blockId,
112
113
  nodeId: this.peerProvider.getLocalNodeId(),
113
114
  timestamp: new Date(),
114
115
  ttl: this.config.defaultTtl,
116
+ ...(poolId && { poolId }),
115
117
  };
116
118
  this.queueAnnouncement(announcement);
117
119
  }
@@ -119,15 +121,109 @@ class GossipService {
119
121
  * Announce block removal to the network.
120
122
  *
121
123
  * @param blockId - The block ID being removed
122
- * @see Requirements 6.5
124
+ * @param poolId - Optional pool the block belonged to
125
+ * @see Requirements 6.5, 1.1
123
126
  */
124
- async announceRemoval(blockId) {
127
+ async announceRemoval(blockId, poolId) {
125
128
  const announcement = {
126
129
  type: 'remove',
127
130
  blockId,
128
131
  nodeId: this.peerProvider.getLocalNodeId(),
129
132
  timestamp: new Date(),
130
133
  ttl: this.config.defaultTtl,
134
+ ...(poolId && { poolId }),
135
+ };
136
+ this.queueAnnouncement(announcement);
137
+ }
138
+ /**
139
+ * Announce that a pool has been deleted.
140
+ * Creates a pool_deleted announcement propagated as a tombstone.
141
+ *
142
+ * @param poolId - The pool that was deleted
143
+ * @see Requirements 2.2, 2.7
144
+ */
145
+ async announcePoolDeletion(poolId) {
146
+ const announcement = {
147
+ type: 'pool_deleted',
148
+ blockId: '',
149
+ poolId,
150
+ nodeId: this.peerProvider.getLocalNodeId(),
151
+ timestamp: new Date(),
152
+ ttl: this.config.defaultTtl,
153
+ };
154
+ this.queueAnnouncement(announcement);
155
+ }
156
+ /**
157
+ * Announce a new or updated CBL index entry to peers in the same pool.
158
+ * Creates a cbl_index_update announcement scoped to the entry's pool.
159
+ *
160
+ * @param entry - The CBL index entry being announced
161
+ * @see Requirements 8.1
162
+ */
163
+ async announceCBLIndexUpdate(entry) {
164
+ const announcement = {
165
+ type: 'cbl_index_update',
166
+ blockId: '',
167
+ poolId: entry.poolId ?? 'default',
168
+ cblIndexEntry: entry,
169
+ nodeId: this.peerProvider.getLocalNodeId(),
170
+ timestamp: new Date(),
171
+ ttl: this.config.defaultTtl,
172
+ };
173
+ this.queueAnnouncement(announcement);
174
+ }
175
+ /**
176
+ * Announce a soft-deleted CBL index entry to peers in the same pool.
177
+ * Creates a cbl_index_delete announcement so peers also mark the entry as deleted.
178
+ *
179
+ * @param entry - The CBL index entry that was soft-deleted (with deletedAt set)
180
+ * @see Requirements 8.6
181
+ */
182
+ async announceCBLIndexDelete(entry) {
183
+ const announcement = {
184
+ type: 'cbl_index_delete',
185
+ blockId: '',
186
+ poolId: entry.poolId ?? 'default',
187
+ cblIndexEntry: entry,
188
+ nodeId: this.peerProvider.getLocalNodeId(),
189
+ timestamp: new Date(),
190
+ ttl: this.config.defaultTtl,
191
+ };
192
+ this.queueAnnouncement(announcement);
193
+ }
194
+ /**
195
+ * Announce a HeadRegistry head pointer update to peer nodes.
196
+ * Creates a head_update announcement with the database name, collection name,
197
+ * and new head block ID.
198
+ *
199
+ * @param dbName - The database name containing the collection
200
+ * @param collectionName - The collection whose head pointer was updated
201
+ * @param blockId - The new head block ID
202
+ * @see Requirements 2.1
203
+ */
204
+ async announceHeadUpdate(dbName, collectionName, blockId) {
205
+ const announcement = {
206
+ type: 'head_update',
207
+ blockId,
208
+ nodeId: this.peerProvider.getLocalNodeId(),
209
+ timestamp: new Date(),
210
+ ttl: this.config.defaultTtl,
211
+ headUpdate: {
212
+ dbName,
213
+ collectionName,
214
+ },
215
+ };
216
+ this.queueAnnouncement(announcement);
217
+ }
218
+ async announceACLUpdate(poolId, aclBlockId) {
219
+ const announcement = {
220
+ type: 'acl_update',
221
+ blockId: aclBlockId,
222
+ nodeId: this.peerProvider.getLocalNodeId(),
223
+ timestamp: new Date(),
224
+ ttl: this.config.defaultTtl,
225
+ poolId,
226
+ aclBlockId,
131
227
  };
132
228
  this.queueAnnouncement(announcement);
133
229
  }
@@ -135,6 +231,7 @@ class GossipService {
135
231
  * Handle an incoming block announcement from a peer.
136
232
  *
137
233
  * Dispatches announcements based on their type and metadata:
234
+ * - 'pool_deleted' type: dispatches to general handlers and forwards with decremented TTL (Req 2.7)
138
235
  * - 'ack' type: dispatches to delivery ack handlers only (Req 4.4)
139
236
  * - 'add' with messageDelivery and matching local recipients: triggers message delivery
140
237
  * handlers and auto-sends ack if ackRequired (Req 3.4, 3.5)
@@ -142,9 +239,82 @@ class GossipService {
142
239
  * - Plain 'add'/'remove' without messageDelivery: notifies general handlers and forwards (backward compat)
143
240
  *
144
241
  * @param announcement - The received announcement
145
- * @see Requirements 3.4, 3.5, 3.6, 4.4
242
+ * @see Requirements 2.7, 3.4, 3.5, 3.6, 4.4
146
243
  */
147
244
  async handleAnnouncement(announcement) {
245
+ // Case 0: Pool deletion announcements — dispatch to handlers and forward
246
+ if (announcement.type === 'pool_deleted') {
247
+ if (!announcement.poolId)
248
+ return; // Invalid pool_deleted without poolId, ignore
249
+ for (const handler of this.handlers) {
250
+ try {
251
+ handler(announcement);
252
+ }
253
+ catch {
254
+ // Ignore handler errors to prevent one handler from affecting others
255
+ }
256
+ }
257
+ // Forward with decremented TTL (Req 2.7)
258
+ if (announcement.ttl > 0) {
259
+ this.queueAnnouncement({ ...announcement, ttl: announcement.ttl - 1 });
260
+ }
261
+ return;
262
+ }
263
+ // Case 0b: CBL index announcements — dispatch to handlers and forward (Req 8.1, 8.6)
264
+ if (announcement.type === 'cbl_index_update' ||
265
+ announcement.type === 'cbl_index_delete') {
266
+ if (!announcement.poolId || !announcement.cblIndexEntry)
267
+ return;
268
+ for (const handler of this.handlers) {
269
+ try {
270
+ handler(announcement);
271
+ }
272
+ catch {
273
+ // Ignore handler errors to prevent one handler from affecting others
274
+ }
275
+ }
276
+ // Forward with decremented TTL
277
+ if (announcement.ttl > 0) {
278
+ this.queueAnnouncement({ ...announcement, ttl: announcement.ttl - 1 });
279
+ }
280
+ return;
281
+ }
282
+ // Case 0c: Head update announcements — dispatch to handlers and forward (Req 2.1)
283
+ if (announcement.type === 'head_update') {
284
+ if (!announcement.blockId || !announcement.headUpdate)
285
+ return;
286
+ for (const handler of this.handlers) {
287
+ try {
288
+ handler(announcement);
289
+ }
290
+ catch {
291
+ // Ignore handler errors to prevent one handler from affecting others
292
+ }
293
+ }
294
+ // Forward with decremented TTL
295
+ if (announcement.ttl > 0) {
296
+ this.queueAnnouncement({ ...announcement, ttl: announcement.ttl - 1 });
297
+ }
298
+ return;
299
+ }
300
+ // Case 0d: ACL update announcements — dispatch to handlers and forward (Req 13.4)
301
+ if (announcement.type === 'acl_update') {
302
+ if (!announcement.poolId || !announcement.aclBlockId)
303
+ return;
304
+ for (const handler of this.handlers) {
305
+ try {
306
+ handler(announcement);
307
+ }
308
+ catch {
309
+ // Ignore handler errors to prevent one handler from affecting others
310
+ }
311
+ }
312
+ // Forward with decremented TTL
313
+ if (announcement.ttl > 0) {
314
+ this.queueAnnouncement({ ...announcement, ttl: announcement.ttl - 1 });
315
+ }
316
+ return;
317
+ }
148
318
  // Case 1: Ack announcements — dispatch to delivery ack handlers only
149
319
  if (announcement.type === 'ack') {
150
320
  for (const handler of this.deliveryAckHandlers) {
@@ -420,8 +590,10 @@ class GossipService {
420
590
  blockId: a.blockId,
421
591
  nodeId: a.nodeId,
422
592
  ttl: a.ttl,
593
+ ...(a.poolId ? { poolId: a.poolId } : {}),
423
594
  ...(a.messageDelivery ? { messageDelivery: a.messageDelivery } : {}),
424
595
  ...(a.deliveryAck ? { deliveryAck: a.deliveryAck } : {}),
596
+ ...(a.headUpdate ? { headUpdate: a.headUpdate } : {}),
425
597
  })));
426
598
  const plaintext = Buffer.from(json, 'utf-8');
427
599
  const ciphertext = await this.eciesService.encryptWithLength(peerPublicKey, plaintext);
@@ -1 +1 @@
1
- {"version":3,"file":"gossipService.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/gossipService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gossipService.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/gossipService.ts"],"names":[],"mappings":"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"}