@optimystic/db-p2p 0.24.1 → 0.25.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 (257) hide show
  1. package/{readme.md → README.md} +688 -668
  2. package/dist/src/cluster/block-transfer-service.d.ts +133 -10
  3. package/dist/src/cluster/block-transfer-service.d.ts.map +1 -1
  4. package/dist/src/cluster/block-transfer-service.js +155 -9
  5. package/dist/src/cluster/block-transfer-service.js.map +1 -1
  6. package/dist/src/cluster/block-transfer.d.ts +67 -7
  7. package/dist/src/cluster/block-transfer.d.ts.map +1 -1
  8. package/dist/src/cluster/block-transfer.js +127 -24
  9. package/dist/src/cluster/block-transfer.js.map +1 -1
  10. package/dist/src/cluster/certified-claims.d.ts +170 -0
  11. package/dist/src/cluster/certified-claims.d.ts.map +1 -0
  12. package/dist/src/cluster/certified-claims.js +200 -0
  13. package/dist/src/cluster/certified-claims.js.map +1 -0
  14. package/dist/src/cluster/client-signature-verifier.d.ts +23 -0
  15. package/dist/src/cluster/client-signature-verifier.d.ts.map +1 -0
  16. package/dist/src/cluster/client-signature-verifier.js +33 -0
  17. package/dist/src/cluster/client-signature-verifier.js.map +1 -0
  18. package/dist/src/cluster/cluster-policy.d.ts +9 -3
  19. package/dist/src/cluster/cluster-policy.d.ts.map +1 -1
  20. package/dist/src/cluster/cluster-policy.js +111 -27
  21. package/dist/src/cluster/cluster-policy.js.map +1 -1
  22. package/dist/src/cluster/cluster-repo.d.ts +140 -11
  23. package/dist/src/cluster/cluster-repo.d.ts.map +1 -1
  24. package/dist/src/cluster/cluster-repo.js +485 -29
  25. package/dist/src/cluster/cluster-repo.js.map +1 -1
  26. package/dist/src/cluster/commit-proof.d.ts +134 -0
  27. package/dist/src/cluster/commit-proof.d.ts.map +1 -0
  28. package/dist/src/cluster/commit-proof.js +263 -0
  29. package/dist/src/cluster/commit-proof.js.map +1 -0
  30. package/dist/src/cluster/quorum-restore.d.ts +95 -8
  31. package/dist/src/cluster/quorum-restore.d.ts.map +1 -1
  32. package/dist/src/cluster/quorum-restore.js +113 -14
  33. package/dist/src/cluster/quorum-restore.js.map +1 -1
  34. package/dist/src/cluster/rebalance-monitor.d.ts +84 -0
  35. package/dist/src/cluster/rebalance-monitor.d.ts.map +1 -1
  36. package/dist/src/cluster/rebalance-monitor.js +207 -5
  37. package/dist/src/cluster/rebalance-monitor.js.map +1 -1
  38. package/dist/src/cluster/reconcile-block.d.ts +27 -7
  39. package/dist/src/cluster/reconcile-block.d.ts.map +1 -1
  40. package/dist/src/cluster/reconcile-block.js +179 -38
  41. package/dist/src/cluster/reconcile-block.js.map +1 -1
  42. package/dist/src/cluster/service.d.ts +21 -4
  43. package/dist/src/cluster/service.d.ts.map +1 -1
  44. package/dist/src/cluster/service.js +28 -17
  45. package/dist/src/cluster/service.js.map +1 -1
  46. package/dist/src/cluster/spread-on-churn.d.ts +8 -2
  47. package/dist/src/cluster/spread-on-churn.d.ts.map +1 -1
  48. package/dist/src/cluster/spread-on-churn.js +7 -7
  49. package/dist/src/cluster/spread-on-churn.js.map +1 -1
  50. package/dist/src/cohort-topic/host.d.ts.map +1 -1
  51. package/dist/src/cohort-topic/host.js +8 -7
  52. package/dist/src/cohort-topic/host.js.map +1 -1
  53. package/dist/src/cohort-topic/stream-util.d.ts +7 -6
  54. package/dist/src/cohort-topic/stream-util.d.ts.map +1 -1
  55. package/dist/src/cohort-topic/stream-util.js +14 -41
  56. package/dist/src/cohort-topic/stream-util.js.map +1 -1
  57. package/dist/src/dispute/cascade.d.ts +7 -8
  58. package/dist/src/dispute/cascade.d.ts.map +1 -1
  59. package/dist/src/dispute/cascade.js +24 -7
  60. package/dist/src/dispute/cascade.js.map +1 -1
  61. package/dist/src/dispute/dispute-service.d.ts +5 -0
  62. package/dist/src/dispute/dispute-service.d.ts.map +1 -1
  63. package/dist/src/dispute/dispute-service.js +13 -3
  64. package/dist/src/dispute/dispute-service.js.map +1 -1
  65. package/dist/src/dispute/invalidation.d.ts +33 -15
  66. package/dist/src/dispute/invalidation.d.ts.map +1 -1
  67. package/dist/src/dispute/invalidation.js +127 -34
  68. package/dist/src/dispute/invalidation.js.map +1 -1
  69. package/dist/src/dispute/service.d.ts.map +1 -1
  70. package/dist/src/dispute/service.js +2 -1
  71. package/dist/src/dispute/service.js.map +1 -1
  72. package/dist/src/index.d.ts +7 -0
  73. package/dist/src/index.d.ts.map +1 -1
  74. package/dist/src/index.js +7 -0
  75. package/dist/src/index.js.map +1 -1
  76. package/dist/src/libp2p-key-network.d.ts +78 -6
  77. package/dist/src/libp2p-key-network.d.ts.map +1 -1
  78. package/dist/src/libp2p-key-network.js +136 -57
  79. package/dist/src/libp2p-key-network.js.map +1 -1
  80. package/dist/src/libp2p-node-base.d.ts +38 -7
  81. package/dist/src/libp2p-node-base.d.ts.map +1 -1
  82. package/dist/src/libp2p-node-base.js +150 -62
  83. package/dist/src/libp2p-node-base.js.map +1 -1
  84. package/dist/src/logger.d.ts +2 -2
  85. package/dist/src/logger.js +2 -2
  86. package/dist/src/network/open-protocol-stream.d.ts +56 -0
  87. package/dist/src/network/open-protocol-stream.d.ts.map +1 -0
  88. package/dist/src/network/open-protocol-stream.js +60 -0
  89. package/dist/src/network/open-protocol-stream.js.map +1 -0
  90. package/dist/src/network/register-protocol-handler.d.ts +66 -0
  91. package/dist/src/network/register-protocol-handler.d.ts.map +1 -0
  92. package/dist/src/network/register-protocol-handler.js +51 -0
  93. package/dist/src/network/register-protocol-handler.js.map +1 -0
  94. package/dist/src/peer-address-book.d.ts +128 -1
  95. package/dist/src/peer-address-book.d.ts.map +1 -1
  96. package/dist/src/peer-address-book.js +198 -15
  97. package/dist/src/peer-address-book.js.map +1 -1
  98. package/dist/src/pend-validation.d.ts +65 -0
  99. package/dist/src/pend-validation.d.ts.map +1 -0
  100. package/dist/src/pend-validation.js +69 -0
  101. package/dist/src/pend-validation.js.map +1 -0
  102. package/dist/src/reactivity/notify-transport.d.ts.map +1 -1
  103. package/dist/src/reactivity/notify-transport.js +2 -1
  104. package/dist/src/reactivity/notify-transport.js.map +1 -1
  105. package/dist/src/reactivity/push-state-gossip.d.ts.map +1 -1
  106. package/dist/src/reactivity/push-state-gossip.js +2 -1
  107. package/dist/src/reactivity/push-state-gossip.js.map +1 -1
  108. package/dist/src/repo/cluster-coordinator.d.ts +32 -6
  109. package/dist/src/repo/cluster-coordinator.d.ts.map +1 -1
  110. package/dist/src/repo/cluster-coordinator.js +44 -10
  111. package/dist/src/repo/cluster-coordinator.js.map +1 -1
  112. package/dist/src/repo/coordinator-repo.d.ts +181 -25
  113. package/dist/src/repo/coordinator-repo.d.ts.map +1 -1
  114. package/dist/src/repo/coordinator-repo.js +650 -62
  115. package/dist/src/repo/coordinator-repo.js.map +1 -1
  116. package/dist/src/repo/served-repo-proxy.d.ts +30 -0
  117. package/dist/src/repo/served-repo-proxy.d.ts.map +1 -0
  118. package/dist/src/repo/served-repo-proxy.js +50 -0
  119. package/dist/src/repo/served-repo-proxy.js.map +1 -0
  120. package/dist/src/repo/service.d.ts +22 -1
  121. package/dist/src/repo/service.d.ts.map +1 -1
  122. package/dist/src/repo/service.js +25 -13
  123. package/dist/src/repo/service.js.map +1 -1
  124. package/dist/src/reputation/types.d.ts +3 -1
  125. package/dist/src/reputation/types.d.ts.map +1 -1
  126. package/dist/src/reputation/types.js +3 -1
  127. package/dist/src/reputation/types.js.map +1 -1
  128. package/dist/src/rn.d.ts +24 -2
  129. package/dist/src/rn.d.ts.map +1 -1
  130. package/dist/src/rn.js +33 -4
  131. package/dist/src/rn.js.map +1 -1
  132. package/dist/src/routing/libp2p-known-peers.d.ts.map +1 -1
  133. package/dist/src/routing/libp2p-known-peers.js +5 -0
  134. package/dist/src/routing/libp2p-known-peers.js.map +1 -1
  135. package/dist/src/storage/block-archive.d.ts +153 -0
  136. package/dist/src/storage/block-archive.d.ts.map +1 -0
  137. package/dist/src/storage/block-archive.js +194 -0
  138. package/dist/src/storage/block-archive.js.map +1 -0
  139. package/dist/src/storage/block-latch.d.ts +92 -0
  140. package/dist/src/storage/block-latch.d.ts.map +1 -0
  141. package/dist/src/storage/block-latch.js +132 -0
  142. package/dist/src/storage/block-latch.js.map +1 -0
  143. package/dist/src/storage/block-storage.d.ts +169 -12
  144. package/dist/src/storage/block-storage.d.ts.map +1 -1
  145. package/dist/src/storage/block-storage.js +415 -152
  146. package/dist/src/storage/block-storage.js.map +1 -1
  147. package/dist/src/storage/cached-raw-storage.d.ts +5 -1
  148. package/dist/src/storage/cached-raw-storage.d.ts.map +1 -1
  149. package/dist/src/storage/cached-raw-storage.js +16 -1
  150. package/dist/src/storage/cached-raw-storage.js.map +1 -1
  151. package/dist/src/storage/cached-store-driver.d.ts +14 -4
  152. package/dist/src/storage/cached-store-driver.d.ts.map +1 -1
  153. package/dist/src/storage/cached-store-driver.js +39 -5
  154. package/dist/src/storage/cached-store-driver.js.map +1 -1
  155. package/dist/src/storage/i-block-storage.d.ts +70 -19
  156. package/dist/src/storage/i-block-storage.d.ts.map +1 -1
  157. package/dist/src/storage/i-block-storage.js +21 -1
  158. package/dist/src/storage/i-block-storage.js.map +1 -1
  159. package/dist/src/storage/i-raw-storage.d.ts +38 -0
  160. package/dist/src/storage/i-raw-storage.d.ts.map +1 -1
  161. package/dist/src/storage/kv-raw-storage.d.ts +14 -8
  162. package/dist/src/storage/kv-raw-storage.d.ts.map +1 -1
  163. package/dist/src/storage/kv-raw-storage.js +29 -9
  164. package/dist/src/storage/kv-raw-storage.js.map +1 -1
  165. package/dist/src/storage/memory-store-driver.d.ts +4 -1
  166. package/dist/src/storage/memory-store-driver.d.ts.map +1 -1
  167. package/dist/src/storage/memory-store-driver.js +22 -2
  168. package/dist/src/storage/memory-store-driver.js.map +1 -1
  169. package/dist/src/storage/raw-store-codec.js +2 -2
  170. package/dist/src/storage/raw-store-driver.d.ts +44 -3
  171. package/dist/src/storage/raw-store-driver.d.ts.map +1 -1
  172. package/dist/src/storage/shared-cache-pool.d.ts +60 -3
  173. package/dist/src/storage/shared-cache-pool.d.ts.map +1 -1
  174. package/dist/src/storage/shared-cache-pool.js +68 -4
  175. package/dist/src/storage/shared-cache-pool.js.map +1 -1
  176. package/dist/src/storage/storage-repo.d.ts +204 -26
  177. package/dist/src/storage/storage-repo.d.ts.map +1 -1
  178. package/dist/src/storage/storage-repo.js +422 -119
  179. package/dist/src/storage/storage-repo.js.map +1 -1
  180. package/dist/src/storage/store-identity.d.ts +21 -0
  181. package/dist/src/storage/store-identity.d.ts.map +1 -0
  182. package/dist/src/storage/store-identity.js +33 -0
  183. package/dist/src/storage/store-identity.js.map +1 -0
  184. package/dist/src/storage/struct.d.ts +15 -0
  185. package/dist/src/storage/struct.d.ts.map +1 -1
  186. package/dist/src/storage/with-read-cache.d.ts +92 -0
  187. package/dist/src/storage/with-read-cache.d.ts.map +1 -0
  188. package/dist/src/storage/with-read-cache.js +132 -0
  189. package/dist/src/storage/with-read-cache.js.map +1 -0
  190. package/dist/src/sync/service.d.ts +13 -3
  191. package/dist/src/sync/service.d.ts.map +1 -1
  192. package/dist/src/sync/service.js +7 -30
  193. package/dist/src/sync/service.js.map +1 -1
  194. package/dist/src/testing/mesh-harness.d.ts +75 -2
  195. package/dist/src/testing/mesh-harness.d.ts.map +1 -1
  196. package/dist/src/testing/mesh-harness.js +193 -81
  197. package/dist/src/testing/mesh-harness.js.map +1 -1
  198. package/dist/src/testing/raw-storage-conformance.d.ts +8 -0
  199. package/dist/src/testing/raw-storage-conformance.d.ts.map +1 -1
  200. package/dist/src/testing/raw-storage-conformance.js +97 -2
  201. package/dist/src/testing/raw-storage-conformance.js.map +1 -1
  202. package/package.json +5 -6
  203. package/src/cluster/block-transfer-service.ts +528 -312
  204. package/src/cluster/block-transfer.ts +547 -424
  205. package/src/cluster/certified-claims.ts +319 -0
  206. package/src/cluster/client-signature-verifier.ts +34 -0
  207. package/src/cluster/cluster-policy.ts +294 -203
  208. package/src/cluster/cluster-repo.ts +2501 -2034
  209. package/src/cluster/commit-proof.ts +344 -0
  210. package/src/cluster/quorum-restore.ts +348 -223
  211. package/src/cluster/rebalance-monitor.ts +539 -254
  212. package/src/cluster/reconcile-block.ts +404 -203
  213. package/src/cluster/service.ts +308 -293
  214. package/src/cluster/spread-on-churn.ts +352 -346
  215. package/src/cohort-topic/host.ts +8 -7
  216. package/src/cohort-topic/stream-util.ts +14 -43
  217. package/src/dispute/cascade.ts +31 -15
  218. package/src/dispute/dispute-service.ts +706 -696
  219. package/src/dispute/invalidation.ts +162 -52
  220. package/src/dispute/service.ts +126 -125
  221. package/src/index.ts +7 -0
  222. package/src/libp2p-key-network.ts +142 -58
  223. package/src/libp2p-node-base.ts +1793 -1675
  224. package/src/logger.ts +27 -27
  225. package/src/network/open-protocol-stream.ts +87 -0
  226. package/src/network/register-protocol-handler.ts +85 -0
  227. package/src/peer-address-book.ts +360 -149
  228. package/src/pend-validation.ts +89 -0
  229. package/src/reactivity/notify-transport.ts +145 -144
  230. package/src/reactivity/push-state-gossip.ts +292 -291
  231. package/src/repo/cluster-coordinator.ts +65 -11
  232. package/src/repo/coordinator-repo.ts +729 -71
  233. package/src/repo/served-repo-proxy.ts +55 -0
  234. package/src/repo/service.ts +332 -313
  235. package/src/reputation/types.ts +3 -1
  236. package/src/rn.ts +34 -4
  237. package/src/routing/libp2p-known-peers.ts +31 -26
  238. package/src/storage/block-archive.ts +242 -0
  239. package/src/storage/block-latch.ts +144 -0
  240. package/src/storage/block-storage.ts +787 -498
  241. package/src/storage/cached-raw-storage.ts +21 -1
  242. package/src/storage/cached-store-driver.ts +898 -859
  243. package/src/storage/i-block-storage.ts +172 -116
  244. package/src/storage/i-raw-storage.ts +40 -0
  245. package/src/storage/kv-raw-storage.ts +34 -9
  246. package/src/storage/memory-store-driver.ts +26 -2
  247. package/src/storage/raw-store-codec.ts +42 -42
  248. package/src/storage/raw-store-driver.ts +45 -3
  249. package/src/storage/shared-cache-pool.ts +516 -452
  250. package/src/storage/storage-repo.ts +1421 -1014
  251. package/src/storage/store-identity.ts +41 -0
  252. package/src/storage/struct.ts +52 -34
  253. package/src/storage/with-read-cache.ts +182 -0
  254. package/src/sync/service.ts +178 -198
  255. package/src/testing/cohort-topic-mesh-harness.ts +673 -673
  256. package/src/testing/mesh-harness.ts +524 -344
  257. package/src/testing/raw-storage-conformance.ts +114 -2
@@ -1,6 +1,7 @@
1
1
  import { expect } from 'chai';
2
2
  import { StorageRepo } from '../storage/storage-repo.js';
3
3
  import { BlockStorage } from '../storage/block-storage.js';
4
+ import { withBlockWriteLatch } from '../storage/block-latch.js';
4
5
  const makeHeader = (id) => ({
5
6
  id: id,
6
7
  type: 'test',
@@ -15,6 +16,22 @@ const makeInsertTransforms = (blockId, block) => ({
15
16
  updates: {},
16
17
  deletes: []
17
18
  });
19
+ /**
20
+ * A structurally-valid {@link BlockCommitProof} carrying a recognizable marker. Storage-level
21
+ * suites never VERIFY a proof (that is `commit-proof.spec.ts`); they only assert the proofs
22
+ * store round-trips a proof-shaped object and keeps it in its own keyspace, so the votes are
23
+ * deliberately empty. Exported so every proofs-store suite shares one shape.
24
+ */
25
+ export const makeProof = (marker) => ({
26
+ v: 1,
27
+ messageHash: `hash-${marker}`,
28
+ message: { operations: [] },
29
+ promises: {},
30
+ commits: {},
31
+ membershipVersion: 2,
32
+ membershipDigest: `digest-${marker}`,
33
+ peerIds: ['peer-a', 'peer-b']
34
+ });
18
35
  async function collect(iter) {
19
36
  const out = [];
20
37
  for await (const item of iter)
@@ -185,6 +202,71 @@ export function runRawStorageConformance(name, makeStorage) {
185
202
  await storage.saveTransaction(blockId, 'a1', transform);
186
203
  expect(await storage.getTransaction(blockId, 'a1')).to.deep.equal(transform);
187
204
  });
205
+ // --- Commit proofs (their own (blockId, rev)-keyed store) ---
206
+ it('getBlockProof returns undefined on a miss', async () => {
207
+ expect(await storage.getBlockProof('block', 1)).to.equal(undefined);
208
+ });
209
+ it('commit proof round-trips', async () => {
210
+ const blockId = 'proof-block';
211
+ const proof = makeProof('rt');
212
+ await storage.saveBlockProof(blockId, 5, proof);
213
+ expect(await storage.getBlockProof(blockId, 5)).to.deep.equal(proof);
214
+ });
215
+ it('proofs are per-block and per-revision', async () => {
216
+ const a = 'proof-a';
217
+ const b = 'proof-b';
218
+ await storage.saveBlockProof(a, 1, makeProof('a1'));
219
+ await storage.saveBlockProof(a, 2, makeProof('a2'));
220
+ await storage.saveBlockProof(b, 1, makeProof('b1'));
221
+ expect((await storage.getBlockProof(a, 1)).messageHash).to.equal('hash-a1');
222
+ expect((await storage.getBlockProof(a, 2)).messageHash).to.equal('hash-a2');
223
+ expect((await storage.getBlockProof(b, 1)).messageHash).to.equal('hash-b1');
224
+ expect(await storage.getBlockProof(a, 3), 'an unwritten rev on a block that has proofs')
225
+ .to.equal(undefined);
226
+ });
227
+ it('a later save replaces the proof for that revision only', async () => {
228
+ const blockId = 'proof-replace';
229
+ await storage.saveBlockProof(blockId, 1, makeProof('first'));
230
+ await storage.saveBlockProof(blockId, 2, makeProof('other-rev'));
231
+ await storage.saveBlockProof(blockId, 1, makeProof('second'));
232
+ expect((await storage.getBlockProof(blockId, 1)).messageHash).to.equal('hash-second');
233
+ expect((await storage.getBlockProof(blockId, 2)).messageHash).to.equal('hash-other-rev');
234
+ });
235
+ // The whole point of giving proofs their own store: an action id is chosen by whoever
236
+ // originates a write (a client's `pend`, a peer's restore archive) and is never
237
+ // re-derived or format-checked by the storing node, so a transaction may legitimately
238
+ // be named `~proof:<N>` — the id proofs USED to be filed under in the transactions
239
+ // store. Neither write may disturb the other, in either arrival order.
240
+ it('a transaction named `~proof:<N>` and the proof for revision N do not collide', async () => {
241
+ const blockId = 'proof-collide';
242
+ const collidingId = '~proof:5';
243
+ const transform = { insert: makeBlock('proof-collide', { items: ['committed'] }) };
244
+ // Order A: committed transform first, then the proof.
245
+ await storage.saveTransaction(blockId, collidingId, transform);
246
+ await storage.saveBlockProof(blockId, 5, makeProof('A'));
247
+ expect(await storage.getTransaction(blockId, collidingId), 'the committed transform survives')
248
+ .to.deep.equal(transform);
249
+ expect((await storage.getBlockProof(blockId, 5)).messageHash, 'the proof is stored')
250
+ .to.equal('hash-A');
251
+ // Order B: proof first, then a transaction under the colliding id.
252
+ const other = 'proof-collide-b';
253
+ await storage.saveBlockProof(other, 5, makeProof('B'));
254
+ await storage.saveTransaction(other, collidingId, transform);
255
+ expect((await storage.getBlockProof(other, 5)).messageHash, 'the proof survives')
256
+ .to.equal('hash-B');
257
+ expect(await storage.getTransaction(other, collidingId), 'the transform is stored')
258
+ .to.deep.equal(transform);
259
+ });
260
+ it('saveBlockProof snapshots — a later caller mutation does not corrupt stored state', async () => {
261
+ const blockId = 'proof-clone';
262
+ const proof = makeProof('clone');
263
+ await storage.saveBlockProof(blockId, 1, proof);
264
+ proof.peerIds.push('peer-c');
265
+ proof.messageHash = 'hash-mutated';
266
+ const stored = await storage.getBlockProof(blockId, 1);
267
+ expect(stored.peerIds).to.deep.equal(['peer-a', 'peer-b']);
268
+ expect(stored.messageHash).to.equal('hash-clone');
269
+ });
188
270
  // --- Materialized blocks ---
189
271
  it('getMaterializedBlock returns undefined on a miss', async () => {
190
272
  expect(await storage.getMaterializedBlock('block', 'a')).to.equal(undefined);
@@ -270,6 +352,19 @@ export function runRawStorageConformance(name, makeStorage) {
270
352
  const reread = await storage.getMaterializedBlock(blockId, 'a1');
271
353
  expect(reread.items, 'fresh read unaffected by mutation of a prior read').to.deep.equal(['original']);
272
354
  });
355
+ // --- getStoreIdentity (optional; only when the backend implements it) ---
356
+ it('getStoreIdentity is a stable, scheme-prefixed, non-empty string', async function () {
357
+ const getStoreIdentity = storage.getStoreIdentity;
358
+ if (typeof getStoreIdentity !== 'function') {
359
+ this.skip();
360
+ }
361
+ else {
362
+ const first = getStoreIdentity.call(storage);
363
+ expect(first, 'identity is a non-empty string').to.be.a('string').and.not.equal('');
364
+ expect(first, 'identity is scheme-prefixed').to.include(':');
365
+ expect(getStoreIdentity.call(storage), 'identity is stable across calls').to.equal(first);
366
+ }
367
+ });
273
368
  // --- listBlockIds (optional; only when the driver implements it) ---
274
369
  it('listBlockIds yields exactly the blocks with metadata', async function () {
275
370
  const listBlockIds = storage.listBlockIds;
@@ -347,11 +442,11 @@ export function runRawStorageConformance(name, makeStorage) {
347
442
  it('BlockStorage saveReplica → saveDeletion reads the tombstoned rev back as undefined', async () => {
348
443
  const blockId = 'parity-tombstone';
349
444
  const bs = new BlockStorage(blockId, storage);
350
- await bs.saveReplica(makeBlock('parity-tombstone', { items: ['live'] }), { rev: 1, actionId: 'r1' });
445
+ await withBlockWriteLatch(blockId, l => bs.saveReplica(makeBlock('parity-tombstone', { items: ['live'] }), { rev: 1, actionId: 'r1' }, undefined, l));
351
446
  const meta = await storage.getMetadata(blockId);
352
447
  // saveReplica seeds open-ended coverage anchored at the replica rev, never [[0]].
353
448
  expect(meta.ranges, 'replica seeds open-ended [[1]]').to.deep.equal([[1]]);
354
- const latest = await bs.saveDeletion({ rev: 2, actionId: 'd2' });
449
+ const latest = await withBlockWriteLatch(blockId, l => bs.saveDeletion({ rev: 2, actionId: 'd2' }, l));
355
450
  expect(latest.rev).to.equal(2);
356
451
  // getBlock at the tombstone rev reverse-applies { delete: true } → absent block.
357
452
  expect(await bs.getBlock(), 'tombstoned rev reads back undefined').to.equal(undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"raw-storage-conformance.js","sourceRoot":"","sources":["../../../src/testing/raw-storage-conformance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"raw-storage-conformance.js","sourceRoot":"","sources":["../../../src/testing/raw-storage-conformance.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimystic/db-p2p",
3
- "version": "0.24.1",
3
+ "version": "0.25.0",
4
4
  "type": "module",
5
5
  "description": "P2P database functionality for Optimystic",
6
6
  "main": "dist/src/index.js",
@@ -47,12 +47,12 @@
47
47
  "peer-to-peer",
48
48
  "libp2p",
49
49
  "distributed",
50
- "dht",
51
- "gossipsub"
50
+ "dht"
52
51
  ],
53
52
  "scripts": {
54
53
  "clean": "rimraf dist",
55
54
  "build": "tsc",
55
+ "typecheck": "tsc --noEmit",
56
56
  "test": "node --import ./register.mjs node_modules/mocha/bin/mocha.js \"test/**/*.spec.ts\" --colors --reporter min",
57
57
  "test:verbose": "node --import ./register.mjs node_modules/mocha/bin/mocha.js \"test/**/*.spec.ts\" --colors --reporter spec",
58
58
  "test:integration": "OPTIMYSTIC_INTEGRATION=1 node --import ./register.mjs node_modules/mocha/bin/mocha.js \"test/**/*.integration.spec.ts\" --colors --reporter spec"
@@ -69,7 +69,6 @@
69
69
  "typescript": "^5.9.3"
70
70
  },
71
71
  "dependencies": {
72
- "@chainsafe/libp2p-gossipsub": "^14.1.2",
73
72
  "@chainsafe/libp2p-noise": "^17.0.0",
74
73
  "@chainsafe/libp2p-yamux": "^8.0.1",
75
74
  "@libp2p/autonat": "^3.0.21",
@@ -87,7 +86,7 @@
87
86
  "@multiformats/multiaddr": "^13.0.1",
88
87
  "@noble/curves": "^2.0.1",
89
88
  "@noble/hashes": "^2.0.1",
90
- "@optimystic/db-core": "^0.24.1",
89
+ "@optimystic/db-core": "^0.25.0",
91
90
  "async-mutex": "^0.5.0",
92
91
  "debug": "^4.4.3",
93
92
  "it-all": "^3.0.9",
@@ -96,7 +95,7 @@
96
95
  "it-pushable": "^3.2.3",
97
96
  "libp2p": "^3.1.3",
98
97
  "multiformats": "^13.4.2",
99
- "p2p-fret": "^1.0.0-beta.2",
98
+ "p2p-fret": "^1.0.0-beta.4",
100
99
  "protons-runtime": "^6.0.0",
101
100
  "uint8arraylist": "^2.4.8",
102
101
  "uint8arrays": "^6.1.1"