@optimystic/db-p2p 0.22.0 → 0.24.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.
Files changed (194) hide show
  1. package/dist/src/cluster/client.d.ts +10 -0
  2. package/dist/src/cluster/client.d.ts.map +1 -1
  3. package/dist/src/cluster/client.js +30 -1
  4. package/dist/src/cluster/client.js.map +1 -1
  5. package/dist/src/cluster/cluster-repo.d.ts +39 -14
  6. package/dist/src/cluster/cluster-repo.d.ts.map +1 -1
  7. package/dist/src/cluster/cluster-repo.js +226 -119
  8. package/dist/src/cluster/cluster-repo.js.map +1 -1
  9. package/dist/src/cluster/service.d.ts +32 -1
  10. package/dist/src/cluster/service.d.ts.map +1 -1
  11. package/dist/src/cluster/service.js +43 -2
  12. package/dist/src/cluster/service.js.map +1 -1
  13. package/dist/src/cohort-topic/host.js +34 -11
  14. package/dist/src/cohort-topic/host.js.map +1 -1
  15. package/dist/src/cohort-topic/stream-util.d.ts +37 -7
  16. package/dist/src/cohort-topic/stream-util.d.ts.map +1 -1
  17. package/dist/src/cohort-topic/stream-util.js +77 -19
  18. package/dist/src/cohort-topic/stream-util.js.map +1 -1
  19. package/dist/src/dispute/dispute-service.d.ts.map +1 -1
  20. package/dist/src/dispute/dispute-service.js +9 -3
  21. package/dist/src/dispute/dispute-service.js.map +1 -1
  22. package/dist/src/index.d.ts +3 -0
  23. package/dist/src/index.d.ts.map +1 -1
  24. package/dist/src/index.js +3 -0
  25. package/dist/src/index.js.map +1 -1
  26. package/dist/src/libp2p-key-network.d.ts +88 -2
  27. package/dist/src/libp2p-key-network.d.ts.map +1 -1
  28. package/dist/src/libp2p-key-network.js +134 -28
  29. package/dist/src/libp2p-key-network.js.map +1 -1
  30. package/dist/src/libp2p-node-base.d.ts.map +1 -1
  31. package/dist/src/libp2p-node-base.js +25 -1
  32. package/dist/src/libp2p-node-base.js.map +1 -1
  33. package/dist/src/logger.d.ts +17 -1
  34. package/dist/src/logger.d.ts.map +1 -1
  35. package/dist/src/logger.js +19 -2
  36. package/dist/src/logger.js.map +1 -1
  37. package/dist/src/matchmaking/query-transport.js +3 -3
  38. package/dist/src/matchmaking/query-transport.js.map +1 -1
  39. package/dist/src/owned-block-seed.d.ts +6 -3
  40. package/dist/src/owned-block-seed.d.ts.map +1 -1
  41. package/dist/src/owned-block-seed.js +16 -3
  42. package/dist/src/owned-block-seed.js.map +1 -1
  43. package/dist/src/peer-address-book.d.ts +72 -0
  44. package/dist/src/peer-address-book.d.ts.map +1 -0
  45. package/dist/src/peer-address-book.js +123 -0
  46. package/dist/src/peer-address-book.js.map +1 -0
  47. package/dist/src/reactivity/notify-transport.d.ts +4 -4
  48. package/dist/src/reactivity/notify-transport.js +6 -6
  49. package/dist/src/reactivity/notify-transport.js.map +1 -1
  50. package/dist/src/reactivity/push-state-gossip.js +2 -2
  51. package/dist/src/reactivity/push-state-gossip.js.map +1 -1
  52. package/dist/src/reactivity/recover-transport.d.ts +6 -2
  53. package/dist/src/reactivity/recover-transport.d.ts.map +1 -1
  54. package/dist/src/reactivity/recover-transport.js +7 -3
  55. package/dist/src/reactivity/recover-transport.js.map +1 -1
  56. package/dist/src/repo/client.d.ts.map +1 -1
  57. package/dist/src/repo/client.js +11 -2
  58. package/dist/src/repo/client.js.map +1 -1
  59. package/dist/src/repo/cluster-coordinator.d.ts +30 -0
  60. package/dist/src/repo/cluster-coordinator.d.ts.map +1 -1
  61. package/dist/src/repo/cluster-coordinator.js +95 -3
  62. package/dist/src/repo/cluster-coordinator.js.map +1 -1
  63. package/dist/src/repo/coordinator-repo.d.ts +62 -9
  64. package/dist/src/repo/coordinator-repo.d.ts.map +1 -1
  65. package/dist/src/repo/coordinator-repo.js +242 -73
  66. package/dist/src/repo/coordinator-repo.js.map +1 -1
  67. package/dist/src/rn.d.ts +3 -0
  68. package/dist/src/rn.d.ts.map +1 -1
  69. package/dist/src/rn.js +3 -0
  70. package/dist/src/rn.js.map +1 -1
  71. package/dist/src/storage/cached-raw-storage.d.ts +83 -0
  72. package/dist/src/storage/cached-raw-storage.d.ts.map +1 -0
  73. package/dist/src/storage/cached-raw-storage.js +152 -0
  74. package/dist/src/storage/cached-raw-storage.js.map +1 -0
  75. package/dist/src/storage/cached-store-driver.d.ts +186 -0
  76. package/dist/src/storage/cached-store-driver.d.ts.map +1 -0
  77. package/dist/src/storage/cached-store-driver.js +775 -0
  78. package/dist/src/storage/cached-store-driver.js.map +1 -0
  79. package/dist/src/storage/i-raw-storage.d.ts +12 -5
  80. package/dist/src/storage/i-raw-storage.d.ts.map +1 -1
  81. package/dist/src/storage/shared-cache-pool.d.ts +234 -0
  82. package/dist/src/storage/shared-cache-pool.d.ts.map +1 -0
  83. package/dist/src/storage/shared-cache-pool.js +354 -0
  84. package/dist/src/storage/shared-cache-pool.js.map +1 -0
  85. package/dist/src/testing/cohort-topic-mesh-harness.d.ts +13 -6
  86. package/dist/src/testing/cohort-topic-mesh-harness.d.ts.map +1 -1
  87. package/dist/src/testing/cohort-topic-mesh-harness.js +15 -6
  88. package/dist/src/testing/cohort-topic-mesh-harness.js.map +1 -1
  89. package/dist/src/testing/raw-storage-conformance.d.ts +2 -1
  90. package/dist/src/testing/raw-storage-conformance.d.ts.map +1 -1
  91. package/dist/src/testing/raw-storage-conformance.js +35 -2
  92. package/dist/src/testing/raw-storage-conformance.js.map +1 -1
  93. package/package.json +3 -3
  94. package/readme.md +668 -668
  95. package/src/cluster/block-transfer.ts +424 -424
  96. package/src/cluster/client.ts +119 -88
  97. package/src/cluster/cluster-error.ts +64 -64
  98. package/src/cluster/cluster-policy.ts +203 -203
  99. package/src/cluster/cluster-repo.ts +242 -122
  100. package/src/cluster/cluster-size-coupling.ts +45 -45
  101. package/src/cluster/commit-cert.ts +139 -139
  102. package/src/cluster/i-transaction-state-store.ts +43 -43
  103. package/src/cluster/memory-transaction-state-store.ts +56 -56
  104. package/src/cluster/peer-key-binding.ts +37 -37
  105. package/src/cluster/persistent-transaction-state-store.ts +92 -92
  106. package/src/cluster/quorum-restore.ts +223 -223
  107. package/src/cluster/reconcile-block.ts +203 -203
  108. package/src/cluster/service.ts +293 -241
  109. package/src/cluster/supermajority-coupling.ts +37 -37
  110. package/src/cohort-topic/bootstrap-evidence-builder.ts +122 -122
  111. package/src/cohort-topic/bootstrap-evidence-verifiers.ts +132 -132
  112. package/src/cohort-topic/bootstrap-parent-reference.ts +159 -159
  113. package/src/cohort-topic/change-bridge.ts +109 -109
  114. package/src/cohort-topic/cohort-gossip-driver.ts +231 -231
  115. package/src/cohort-topic/cohort-gossip-transport.ts +84 -84
  116. package/src/cohort-topic/fret-trust-anchor.ts +153 -153
  117. package/src/cohort-topic/host.ts +42 -11
  118. package/src/cohort-topic/index.ts +13 -13
  119. package/src/cohort-topic/membership-publish-sink.ts +20 -20
  120. package/src/cohort-topic/membership-source.ts +68 -68
  121. package/src/cohort-topic/peer-codec.ts +31 -31
  122. package/src/cohort-topic/peer-sig.ts +86 -86
  123. package/src/cohort-topic/protocols.ts +71 -71
  124. package/src/cohort-topic/reactivity-membership-gate.ts +77 -77
  125. package/src/cohort-topic/size-estimator.ts +16 -16
  126. package/src/cohort-topic/stream-util.ts +79 -19
  127. package/src/cohort-topic/threshold-crypto.ts +239 -239
  128. package/src/cohort-topic/topic-router.ts +77 -77
  129. package/src/dispute/arbitrator-selection.ts +138 -138
  130. package/src/dispute/cascade.ts +524 -524
  131. package/src/dispute/dispute-service.ts +11 -5
  132. package/src/dispute/invalidation.ts +625 -625
  133. package/src/inbound-authorization.ts +190 -190
  134. package/src/index.ts +52 -49
  135. package/src/libp2p-key-network.ts +1120 -990
  136. package/src/libp2p-node-base.ts +1675 -1651
  137. package/src/libp2p-node-rn.ts +30 -30
  138. package/src/libp2p-node.ts +36 -36
  139. package/src/logger.ts +19 -2
  140. package/src/matchmaking/aggregate-counts.ts +104 -104
  141. package/src/matchmaking/index.ts +20 -20
  142. package/src/matchmaking/module.ts +363 -363
  143. package/src/matchmaking/protocols.ts +51 -51
  144. package/src/matchmaking/provider-manager.ts +95 -95
  145. package/src/matchmaking/query-handler.ts +88 -88
  146. package/src/matchmaking/query-transport.ts +3 -3
  147. package/src/matchmaking/seeker-manager.ts +64 -64
  148. package/src/matchmaking/seeker-walk-client.ts +293 -293
  149. package/src/matchmaking/traffic-validation.ts +195 -195
  150. package/src/optimystic-node.ts +36 -36
  151. package/src/owned-block-seed.ts +53 -40
  152. package/src/peer-address-book.ts +149 -0
  153. package/src/protocol-limits.ts +33 -33
  154. package/src/reactivity/forwarder-host.ts +438 -438
  155. package/src/reactivity/index.ts +19 -19
  156. package/src/reactivity/notify-transport.ts +144 -144
  157. package/src/reactivity/origination-manager.ts +192 -192
  158. package/src/reactivity/protocols.ts +61 -61
  159. package/src/reactivity/push-state-gossip.ts +291 -291
  160. package/src/reactivity/recover-transport.ts +7 -3
  161. package/src/reactivity/rotation-rereg-scheduler.ts +256 -256
  162. package/src/reactivity/subscriber-registry.ts +96 -96
  163. package/src/reactivity/subscription-manager.ts +450 -450
  164. package/src/reactivity/topic-bytes.ts +37 -37
  165. package/src/repo/client.ts +12 -2
  166. package/src/repo/cluster-coordinator.ts +99 -3
  167. package/src/repo/coordinator-repo.ts +281 -74
  168. package/src/repo/types.ts +7 -7
  169. package/src/rn.ts +39 -36
  170. package/src/rpc-deadline.ts +45 -45
  171. package/src/storage/arachnode-partition.ts +74 -74
  172. package/src/storage/cached-raw-storage.ts +180 -0
  173. package/src/storage/cached-store-driver.ts +859 -0
  174. package/src/storage/i-kv-store.ts +8 -8
  175. package/src/storage/i-raw-storage.ts +12 -5
  176. package/src/storage/kv-raw-storage.ts +135 -135
  177. package/src/storage/memory-kv-store.ts +28 -28
  178. package/src/storage/memory-storage.ts +25 -25
  179. package/src/storage/memory-store-driver.ts +157 -157
  180. package/src/storage/raw-store-codec.ts +42 -42
  181. package/src/storage/raw-store-driver.ts +80 -80
  182. package/src/storage/ring-selector.ts +317 -317
  183. package/src/storage/ring-shift-coordinator.ts +271 -271
  184. package/src/storage/shared-cache-pool.ts +452 -0
  185. package/src/storage/storage-repo.ts +1014 -1014
  186. package/src/testing/cohort-topic-mesh-harness.ts +673 -663
  187. package/src/testing/index.ts +8 -8
  188. package/src/testing/matchmaking-mesh-harness.ts +475 -475
  189. package/src/testing/raw-storage-conformance.ts +453 -417
  190. package/src/testing/reactivity-mesh-harness.ts +922 -922
  191. package/dist/src/storage/restoration-coordinator-v2.d.ts +0 -67
  192. package/dist/src/storage/restoration-coordinator-v2.d.ts.map +0 -1
  193. package/dist/src/storage/restoration-coordinator-v2.js +0 -172
  194. package/dist/src/storage/restoration-coordinator-v2.js.map +0 -1
@@ -0,0 +1,354 @@
1
+ /**
2
+ * A store's registration with the pool. `id` is process-unique and never reused (monotonic
3
+ * counter), so entries and ghost keys of a departed store can never alias a later one.
4
+ * `bytes`/`entries` are live occupancy, maintained by the pool — read-only for callers.
5
+ */
6
+ export class CacheStoreHandle {
7
+ id;
8
+ label;
9
+ bytes = 0;
10
+ entries = 0;
11
+ constructor(id, label) {
12
+ this.id = id;
13
+ this.label = label;
14
+ }
15
+ }
16
+ /**
17
+ * Separator for pool keys: NUL, spelled as an escape so this file stays plain text — a literal
18
+ * NUL byte in the source makes the whole file binary to git (no diff, no blame, no review).
19
+ * NUL is the one character no id can carry: block ids are user-supplied collection URI paths
20
+ * (which may well contain spaces) and action ids are base64url with an optional `tx:`/`stamp:`
21
+ * prefix, so `(storeId, class, blockId, actionId?)` always splits back unambiguously.
22
+ */
23
+ const SEP = '\u0000';
24
+ /**
25
+ * A shared, bounded, clean-value cache pool: one per process (see {@link defaultCachePool}),
26
+ * shared by every `CachedStoreDriver` so that N stores compete inside ONE memory budget
27
+ * instead of keeping N unbounded caches. The pool owns residency and eviction only; all
28
+ * cache *semantics* (coherence, negatives, completeness) stay in the owning store.
29
+ *
30
+ * **Always evict, never refuse, never grow unbounded.** Entries are never pinned and never
31
+ * dirty (the cache is write-through; see `CachedStoreDriver`), so eviction is always safe
32
+ * and there is no exhaustion condition to raise. At the bound the pool evicts; the one entry
33
+ * class that can grow while resident (a store's revision map) is simply evicted like any
34
+ * other when its growth pushes the pool over budget.
35
+ *
36
+ * **2Q admission** (default): a first-touch entry enters the A1in probation FIFO; re-hits
37
+ * inside A1in do NOT promote (FIFO order stands, which is also what absorbs the several
38
+ * correlated touches one logical operation makes); eviction from A1in demotes the key to
39
+ * the A1out ghost set; a later admission of a ghosted key — reuse across operations — goes
40
+ * straight to the protected Am LRU. Am evictions do NOT ghost. One-pass bulk scans
41
+ * therefore live and die inside A1in without displacing any store's hot Am set.
42
+ *
43
+ * **Large values bypass**: an entry whose charge exceeds 1/16 of the byte budget is not
44
+ * admitted at all (the owner reads/writes through), so one oversized value cannot flush
45
+ * the pool.
46
+ *
47
+ * **Budget sanity**: `maxBytes`/`maxEntries` must be positive finite numbers — anything else
48
+ * throws. Absurdly small values are accepted as-is: they cannot break coherence (the owning
49
+ * cache is correct at any residency, including zero), they just degrade toward read-through.
50
+ *
51
+ * Not safe for use from multiple threads; like the caches it serves, it relies on JS
52
+ * single-threaded execution — every mutation completes synchronously.
53
+ */
54
+ export class SharedCachePool {
55
+ maxBytesValue;
56
+ maxEntriesValue;
57
+ admission;
58
+ bypassLimit = 0;
59
+ a1inTargetBytes = 0;
60
+ a1inTargetEntries = 0;
61
+ ghostCap = 0;
62
+ a1in = new Map();
63
+ am = new Map();
64
+ ghost = new Set();
65
+ a1inBytes = 0;
66
+ bytesTotal = 0;
67
+ entriesTotal = 0;
68
+ storeCounter = 0;
69
+ stores = new Map();
70
+ hits = 0;
71
+ admissions = 0;
72
+ ghostHits = 0;
73
+ evictions = 0;
74
+ bypasses = 0;
75
+ constructor(options) {
76
+ this.admission = options?.admission ?? '2q';
77
+ this.maxBytesValue = validateBound('maxBytes', options?.maxBytes ?? platformDefaultBytes());
78
+ this.maxEntriesValue = validateBound('maxEntries', options?.maxEntries ?? Math.max(16, Math.floor(this.maxBytesValue / 512)));
79
+ this.recomputeDerived();
80
+ }
81
+ get maxBytes() { return this.maxBytesValue; }
82
+ get maxEntries() { return this.maxEntriesValue; }
83
+ get bytes() { return this.bytesTotal; }
84
+ get entries() { return this.entriesTotal; }
85
+ /**
86
+ * Re-budget a live pool (e.g. host config change, or a host correcting the platform
87
+ * default). Shrinking evicts immediately down to the new bound.
88
+ */
89
+ setBudget(budget) {
90
+ if (budget.maxBytes !== undefined) {
91
+ this.maxBytesValue = validateBound('maxBytes', budget.maxBytes);
92
+ }
93
+ if (budget.maxEntries !== undefined) {
94
+ this.maxEntriesValue = validateBound('maxEntries', budget.maxEntries);
95
+ }
96
+ this.recomputeDerived();
97
+ this.evictToFit(0, 0);
98
+ this.trimGhost();
99
+ }
100
+ /** Register a store. The returned handle's `id` is unique for the pool's lifetime — never reused. */
101
+ registerStore(label) {
102
+ const handle = new CacheStoreHandle(`s${++this.storeCounter}`, label);
103
+ this.stores.set(handle.id, handle);
104
+ return handle;
105
+ }
106
+ /**
107
+ * Release a departing store: evict any of its entries still resident (defensively — the
108
+ * owner normally clears first), purge its ghost keys, and remove it from the registry.
109
+ * Idempotent. This forced removal notifies the owner like any other eviction — `drop` here
110
+ * would de-account entries the owner still references, leaving it serving values the pool
111
+ * no longer counts. It does NOT ghost (the ghosts are being purged anyway) and does NOT
112
+ * count as a budget eviction: it is a lifecycle release, not memory pressure.
113
+ */
114
+ unregisterStore(handle) {
115
+ for (const queue of [this.a1in, this.am]) {
116
+ for (const entry of [...queue.values()]) {
117
+ if (entry.store !== handle)
118
+ continue;
119
+ this.unlink(entry);
120
+ entry.owner.onPoolEvict(entry);
121
+ }
122
+ }
123
+ this.purgeGhosts(handle);
124
+ this.stores.delete(handle.id);
125
+ }
126
+ /** Drop every ghost key belonging to `handle` (used by store clear/close — pre-clear recency must not survive the clear). */
127
+ purgeGhosts(handle) {
128
+ const prefix = handle.id + SEP;
129
+ for (const key of [...this.ghost]) {
130
+ if (key.startsWith(prefix))
131
+ this.ghost.delete(key);
132
+ }
133
+ }
134
+ /** Build the pool key for an entry. Store-id first: keying by block id alone would alias name-derived header block ids across stores. */
135
+ keyFor(store, cls, blockId, actionId) {
136
+ return actionId === undefined
137
+ ? store.id + SEP + cls + SEP + blockId
138
+ : store.id + SEP + cls + SEP + blockId + SEP + actionId;
139
+ }
140
+ /**
141
+ * Would an entry of this total charge be admitted? `false` = large-value bypass (counted);
142
+ * the owner must then read/write through without caching. Also the gate for value
143
+ * *updates*: an update growing past the limit should drop the entry instead.
144
+ */
145
+ admits(charge) {
146
+ if (charge > this.bypassLimit) {
147
+ this.bypasses++;
148
+ return false;
149
+ }
150
+ return true;
151
+ }
152
+ /**
153
+ * Admit a non-resident entry the owner has ALREADY installed in its own state. Evicts
154
+ * first (so the incoming entry can never be its own victim), then links: to Am when the
155
+ * key is in the ghost set (2Q reuse signal), to A1in probation otherwise.
156
+ */
157
+ admit(entry) {
158
+ if (entry.where !== 'none') {
159
+ throw new Error(`pool admit of already-resident entry ${entry.key}`);
160
+ }
161
+ this.evictToFit(entry.charge, 1);
162
+ this.admissions++;
163
+ if (this.admission === 'lru') {
164
+ this.link(entry, 'am');
165
+ return;
166
+ }
167
+ if (this.ghost.delete(entry.key)) {
168
+ this.ghostHits++;
169
+ this.link(entry, 'am');
170
+ }
171
+ else {
172
+ this.link(entry, 'a1in');
173
+ }
174
+ }
175
+ /** Record a read hit: Am refreshes to MRU; A1in stays put (FIFO — no intra-probation promotion). */
176
+ touch(entry) {
177
+ this.hits++;
178
+ this.refresh(entry);
179
+ }
180
+ /**
181
+ * Re-account a resident entry after the owner mutated its value (write hit, or container
182
+ * growth like a revision-map fill). Queue position refreshes like a touch (without
183
+ * counting a hit); growth over budget evicts — possibly the updated entry itself, which
184
+ * is why owners call this LAST and never touch their cache state after.
185
+ *
186
+ * NOTE: growth here is NOT re-checked against {@link admits}' large-value bypass, so a
187
+ * container entry (a block's revision map or pending-id set) can grow past 1/16 of the
188
+ * budget and squat where a single oversized value would have been refused. Bounded and
189
+ * self-correcting today: an over-share entry keeps `a1inBytes` above its target, so
190
+ * probation evicts it preferentially, and anything past `maxBytes` is evicted outright.
191
+ * If a block ever accumulates enough revisions for one map to hold a real fraction of the
192
+ * budget (order 20k revs at the 32 MB Node default), gate growth on `admits(charge)` in
193
+ * the owner's revision/pending-list paths and drop the entry when it fails, exactly as
194
+ * `CachedStoreDriver.cachePoint` already does for point values.
195
+ */
196
+ updated(entry, newCharge) {
197
+ if (entry.where === 'none')
198
+ return;
199
+ const delta = newCharge - entry.charge;
200
+ entry.charge = newCharge;
201
+ this.bytesTotal += delta;
202
+ entry.store.bytes += delta;
203
+ if (entry.where === 'a1in')
204
+ this.a1inBytes += delta;
205
+ this.refresh(entry);
206
+ if (delta > 0)
207
+ this.evictToFit(0, 0);
208
+ }
209
+ /**
210
+ * Remove an entry WITHOUT the eviction callback — for owners invalidating or clearing
211
+ * their own entries (the owner is already removing its reference). Never ghosts: an
212
+ * invalidation says nothing about reuse. No-op if not resident.
213
+ */
214
+ drop(entry) {
215
+ if (entry.where === 'none')
216
+ return;
217
+ this.unlink(entry);
218
+ }
219
+ stats() {
220
+ const amBytes = this.bytesTotal - this.a1inBytes;
221
+ return {
222
+ maxBytes: this.maxBytesValue,
223
+ maxEntries: this.maxEntriesValue,
224
+ bytes: this.bytesTotal,
225
+ entries: this.entriesTotal,
226
+ a1in: { bytes: this.a1inBytes, entries: this.a1in.size },
227
+ am: { bytes: amBytes, entries: this.am.size },
228
+ ghostKeys: this.ghost.size,
229
+ hits: this.hits,
230
+ admissions: this.admissions,
231
+ ghostHits: this.ghostHits,
232
+ evictions: this.evictions,
233
+ bypasses: this.bypasses,
234
+ stores: [...this.stores.values()].map(s => ({ id: s.id, label: s.label, bytes: s.bytes, entries: s.entries })),
235
+ };
236
+ }
237
+ // ---- internals ----
238
+ recomputeDerived() {
239
+ this.bypassLimit = Math.floor(this.maxBytesValue / 16);
240
+ this.a1inTargetBytes = Math.floor(this.maxBytesValue / 4);
241
+ this.a1inTargetEntries = Math.floor(this.maxEntriesValue / 4);
242
+ this.ghostCap = Math.floor(this.maxEntriesValue / 2);
243
+ }
244
+ link(entry, where) {
245
+ entry.where = where;
246
+ (where === 'a1in' ? this.a1in : this.am).set(entry.key, entry);
247
+ if (where === 'a1in')
248
+ this.a1inBytes += entry.charge;
249
+ this.bytesTotal += entry.charge;
250
+ this.entriesTotal++;
251
+ entry.store.bytes += entry.charge;
252
+ entry.store.entries++;
253
+ }
254
+ unlink(entry) {
255
+ (entry.where === 'a1in' ? this.a1in : this.am).delete(entry.key);
256
+ if (entry.where === 'a1in')
257
+ this.a1inBytes -= entry.charge;
258
+ this.bytesTotal -= entry.charge;
259
+ this.entriesTotal--;
260
+ entry.store.bytes -= entry.charge;
261
+ entry.store.entries--;
262
+ entry.where = 'none';
263
+ }
264
+ /** Map insertion order gives A1in its FIFO and Am its LRU: refresh = delete + re-insert. */
265
+ refresh(entry) {
266
+ if (entry.where !== 'am')
267
+ return;
268
+ this.am.delete(entry.key);
269
+ this.am.set(entry.key, entry);
270
+ }
271
+ evictToFit(incomingCharge, incomingEntries) {
272
+ while (this.bytesTotal + incomingCharge > this.maxBytesValue
273
+ || this.entriesTotal + incomingEntries > this.maxEntriesValue) {
274
+ const victim = this.pickVictim();
275
+ if (victim === undefined)
276
+ break; // pool empty — nothing left to evict
277
+ this.evict(victim);
278
+ }
279
+ }
280
+ pickVictim() {
281
+ if (this.admission === 'lru') {
282
+ return first(this.am) ?? first(this.a1in);
283
+ }
284
+ // 2Q: take A1in's FIFO head while probation is over its share of EITHER rail (or Am has
285
+ // nothing); otherwise the protected queue's LRU entry. Probation needs a share of the
286
+ // entry rail too, not just the byte rail: entries small enough that the entry count binds
287
+ // first (cached negatives are near-empty) would otherwise leave `a1inBytes` permanently
288
+ // under its byte target, so every admission would evict from Am and a one-pass scan would
289
+ // flush the protected set — 2Q silently degraded to plain LRU.
290
+ const a1inHead = first(this.a1in);
291
+ if (a1inHead !== undefined && (this.a1inBytes > this.a1inTargetBytes
292
+ || this.a1in.size > this.a1inTargetEntries || this.am.size === 0)) {
293
+ return a1inHead;
294
+ }
295
+ return first(this.am) ?? a1inHead;
296
+ }
297
+ evict(entry) {
298
+ const fromA1in = entry.where === 'a1in';
299
+ this.unlink(entry);
300
+ if (fromA1in && this.admission === '2q') {
301
+ this.pushGhost(entry.key);
302
+ }
303
+ this.evictions++;
304
+ entry.owner.onPoolEvict(entry);
305
+ }
306
+ pushGhost(key) {
307
+ this.ghost.delete(key);
308
+ this.ghost.add(key);
309
+ this.trimGhost();
310
+ }
311
+ trimGhost() {
312
+ while (this.ghost.size > this.ghostCap) {
313
+ const oldest = this.ghost.values().next().value;
314
+ if (oldest === undefined)
315
+ break;
316
+ this.ghost.delete(oldest);
317
+ }
318
+ }
319
+ }
320
+ function first(queue) {
321
+ return queue.values().next().value;
322
+ }
323
+ function validateBound(name, value) {
324
+ if (typeof value !== 'number' || !Number.isFinite(value) || value <= 0) {
325
+ throw new TypeError(`SharedCachePool ${name} must be a positive finite number, got ${value}`);
326
+ }
327
+ return Math.floor(value);
328
+ }
329
+ /**
330
+ * Honest per-platform default byte budget: ~8 MB on React Native (the phone running twenty
331
+ * workspaces is the device least able to afford more), 16 MB in browsers, 32 MB on Node
332
+ * (desktop / provider hosts). Hosts with better knowledge should size explicitly — either
333
+ * `defaultCachePool().setBudget(...)` or their own `SharedCachePool` passed to each cache.
334
+ */
335
+ function platformDefaultBytes() {
336
+ const g = globalThis;
337
+ if (g.navigator?.product === 'ReactNative')
338
+ return 8 * 1024 * 1024;
339
+ if (g.window !== undefined)
340
+ return 16 * 1024 * 1024;
341
+ return 32 * 1024 * 1024;
342
+ }
343
+ let defaultPool;
344
+ /**
345
+ * The process-wide shared pool every `CachedStoreDriver` joins unless handed a specific one.
346
+ * Lazily created on first use with the platform-default budget; re-budget it live via
347
+ * `setBudget`. One pool per process is the point: twenty workspaces' caches compete inside
348
+ * one budget instead of each sizing itself as if it were alone.
349
+ */
350
+ export function defaultCachePool() {
351
+ defaultPool ??= new SharedCachePool();
352
+ return defaultPool;
353
+ }
354
+ //# sourceMappingURL=shared-cache-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-cache-pool.js","sourceRoot":"","sources":["../../../src/storage/shared-cache-pool.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@
20
20
  * the tiny async-settle polls ({@link waitFor}) the in-process gossip handlers need to drain.
21
21
  */
22
22
  import type { PrivateKey, PeerId } from '@libp2p/interface';
23
+ import type { Uint8ArrayList } from 'uint8arraylist';
23
24
  import { type PromotionConfig, type RegisterResult, type RegisterV1, type RenewV1, type RingCoord, type WalkTrace } from '@optimystic/db-core';
24
25
  import { type CohortTopicAntiDosOptions, type CohortTopicHost, type CoordEngine } from '../cohort-topic/host.js';
25
26
  import { DEFAULT_COHORT_TOPIC_PROTOCOLS as PROTOCOLS } from '../cohort-topic/protocols.js';
@@ -39,23 +40,29 @@ export interface Member {
39
40
  export declare function makeMember(): Promise<Member>;
40
41
  export declare function makeMembers(n: number): Promise<Member[]>;
41
42
  /**
42
- * One end of an in-memory duplex pipe. `send` enqueues a frame onto the *peer's* inbox; `close`
43
- * (half-close-write) signals EOF to the peer's reader. The async iterator yields this end's inbox until
44
- * the peer closed its write and the buffer drains — so `p2p-fret`'s `readAllBounded` reads exactly the
45
- * frames the other end wrote, then completes promptly on EOF (no idle-timeout wait).
43
+ * One end of an in-memory duplex pipe. `send` enqueues a chunk onto the *peer's* inbox; `close`
44
+ * (half-close-write) signals EOF to the peer's reader. The async iterator yields this end's inbox, so
45
+ * `p2p-fret`'s `readFramed` decodes exactly one varint-length-prefixed frame from the chunks the other
46
+ * end wrote the varint prefix delimits the frame; EOF before a whole frame is a truncation error.
47
+ *
48
+ * Chunks are `Uint8Array | Uint8ArrayList` because `sendFramed` writes the prefix + body as one
49
+ * `Uint8ArrayList`; `send` returns `true` ("queue has room"), matching the `stream.send` signature
50
+ * `sendFramed` passes through. Deliberately NOT carrying `closeRead` / `addEventListener` /
51
+ * `removeEventListener` / `push` / `log`: `readFramed` duck-types the full libp2p message-stream
52
+ * surface onto its `byteStream` path, and this stub must stay on the plain-iterable path.
46
53
  */
47
54
  export declare class MockStreamEnd {
48
55
  private readonly inbox;
49
56
  private inboundClosed;
50
57
  private waiter;
51
58
  peer: MockStreamEnd;
52
- send(frame: Uint8Array): void;
59
+ send(frame: Uint8Array | Uint8ArrayList): boolean;
53
60
  close(): Promise<void>;
54
61
  abort(_err?: unknown): void;
55
62
  private accept;
56
63
  private endInbound;
57
64
  private wake;
58
- [Symbol.asyncIterator](): AsyncGenerator<Uint8Array>;
65
+ [Symbol.asyncIterator](): AsyncGenerator<Uint8Array | Uint8ArrayList>;
59
66
  }
60
67
  export declare function streamPair(): [MockStreamEnd, MockStreamEnd];
61
68
  type ProtocolHandler = (stream: MockStreamEnd, connection: {
@@ -1 +1 @@
1
- {"version":3,"file":"cohort-topic-mesh-harness.d.ts","sourceRoot":"","sources":["../../../src/testing/cohort-topic-mesh-harness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAiBN,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,SAAS,EAEd,KAAK,SAAS,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAyB,KAAK,yBAAyB,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGxI,OAAO,EAAE,8BAA8B,IAAI,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE3F,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAKjD,wBAAsB,OAAO,CAAC,SAAS,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,SAAQ,EAAE,UAAU,SAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAO9H;AAID,kHAAkH;AAClH,MAAM,WAAW,MAAM;IACtB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oGAAoG;IACpG,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;CAC5B;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAIlD;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAM9D;AAID;;;;;GAKG;AACH,qBAAa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAA2B;IAClC,IAAI,EAAG,aAAa,CAAC;IAE5B,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI3B,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,IAAI;IAML,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC;CAc3D;AAED,wBAAgB,UAAU,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAM3D;AAID,KAAK,eAAe,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAC;AAG3F;;;;;GAKG;AACH,qBAAa,QAAQ;aAIH,MAAM,EAAE,MAAM;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IALtB,SAAgB,QAAQ,+BAAsC;gBAG7C,MAAM,EAAE,MAAM,EACb,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC/B,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;IAGnC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5E,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE;IAIzC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAkBhF,oGAAoG;IACpG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAUhE;AAID,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8GAA8G;IAC9G,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9C,2GAA2G;IAC3G,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,kGAAkG;IAClG,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,oHAAoH;IACpH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACjD,2GAA2G;IAC3G,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,0GAA0G;IAC1G,QAAQ,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAC;CAC7C;AAED,kGAAkG;AAClG,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CACzB;AAED,qBAAa,UAAU;IAYV,OAAO,CAAC,QAAQ,CAAC,OAAO;IAAY,OAAO,CAAC,QAAQ,CAAC,YAAY;IAX7E,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAM;IAChC,gGAAgG;IAChG,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAM;IAClC,0GAA0G;IAC1G,QAAQ,CAAC,UAAU,EAAE,eAAe,EAAE,CAAM;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6I;IACtK,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,uGAAuG;IACvG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;gBAEjB,OAAO,EAAE,MAAM,EAAE,EAAmB,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE;IAI9G;;;;;OAKG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIxC,+CAA+C;IAC/C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAItC,mHAAmH;IACnH,OAAO,CAAC,gBAAgB;IAIxB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAI1D,iGAAiG;IACjG,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAIlC,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ;IAKxC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAI/B,yGAAyG;IACzG,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI9B,wCAAwC;IACxC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;YAIjB,QAAQ;IAkBtB,kFAAkF;IAClF,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAW/B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IAMtC,aAAa,IAAI,IAAI;IAKf,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG3B;AAgCD,gHAAgH;AAChH,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CASnF;AAMD,yGAAyG;AACzG,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAyBzF;AAID,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,SAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAgBnJ;AAED,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,oHAAoH;IACpH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,GAAE,qBAA0B,GAAG,OAAO,CAAC,UAAU,CAAC,CActK;AAED,+GAA+G;AAC/G,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAS7H;AAED,mGAAmG;AACnG,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,SAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAUtI;AAED,eAAO,MAAM,KAAK,4CAAqC,CAAC;AACxD,eAAO,MAAM,UAAU,8CAAuC,CAAC;AAI/D;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,+CAAa,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAO7H;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,SAAS,eAAe,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAK3H;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAQtG;AAED;;;;GAIG;AACH,wBAAsB,0BAA0B,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CASlI;AAID,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3C,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;IACrC,+EAA+E;IAC/E,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;;;;;;GAOG;AACH;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhG;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,+CAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAyBhH"}
1
+ {"version":3,"file":"cohort-topic-mesh-harness.d.ts","sourceRoot":"","sources":["../../../src/testing/cohort-topic-mesh-harness.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@
21
21
  */
22
22
  import { generateKeyPair } from '@libp2p/crypto/keys';
23
23
  import { peerIdFromPrivateKey } from '@libp2p/peer-id';
24
+ import * as lp from 'it-length-prefixed';
24
25
  import { hashPeerId } from 'p2p-fret';
25
26
  import { RingHash, createSlotAssigner, createTierAddressing, coreProfile, edgeProfile, bytesEqual, bytesToB64url, b64urlToBytes, encodeCohortMessage, decodeCohortMessage, decodeRegisterReplyV1, cohortGossipSigningPayload, registerSigningPayload, renewSigningPayload, } from '@optimystic/db-core';
26
27
  import { createCohortTopicHost } from '../cohort-topic/host.js';
@@ -53,12 +54,18 @@ export async function makeMembers(n) {
53
54
  }
54
55
  return out;
55
56
  }
56
- // --- in-process duplex stream (what readAllBounded iterates) ---
57
+ // --- in-process duplex stream (what readFramed iterates) ---
57
58
  /**
58
- * One end of an in-memory duplex pipe. `send` enqueues a frame onto the *peer's* inbox; `close`
59
- * (half-close-write) signals EOF to the peer's reader. The async iterator yields this end's inbox until
60
- * the peer closed its write and the buffer drains — so `p2p-fret`'s `readAllBounded` reads exactly the
61
- * frames the other end wrote, then completes promptly on EOF (no idle-timeout wait).
59
+ * One end of an in-memory duplex pipe. `send` enqueues a chunk onto the *peer's* inbox; `close`
60
+ * (half-close-write) signals EOF to the peer's reader. The async iterator yields this end's inbox, so
61
+ * `p2p-fret`'s `readFramed` decodes exactly one varint-length-prefixed frame from the chunks the other
62
+ * end wrote the varint prefix delimits the frame; EOF before a whole frame is a truncation error.
63
+ *
64
+ * Chunks are `Uint8Array | Uint8ArrayList` because `sendFramed` writes the prefix + body as one
65
+ * `Uint8ArrayList`; `send` returns `true` ("queue has room"), matching the `stream.send` signature
66
+ * `sendFramed` passes through. Deliberately NOT carrying `closeRead` / `addEventListener` /
67
+ * `removeEventListener` / `push` / `log`: `readFramed` duck-types the full libp2p message-stream
68
+ * surface onto its `byteStream` path, and this stub must stay on the plain-iterable path.
62
69
  */
63
70
  export class MockStreamEnd {
64
71
  inbox = [];
@@ -67,6 +74,7 @@ export class MockStreamEnd {
67
74
  peer;
68
75
  send(frame) {
69
76
  this.peer.accept(frame);
77
+ return true;
70
78
  }
71
79
  close() {
72
80
  this.peer.endInbound();
@@ -167,7 +175,8 @@ export class MockNode {
167
175
  }
168
176
  const [dialerEnd, handlerEnd] = streamPair();
169
177
  handler(handlerEnd, { remotePeer: from });
170
- dialerEnd.send(frame);
178
+ // Frame exactly as `sendFramed` does — the handler's `readFramed` expects a varint prefix.
179
+ dialerEnd.send(lp.encode.single(frame));
171
180
  void dialerEnd.close();
172
181
  }
173
182
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cohort-topic-mesh-harness.js","sourceRoot":"","sources":["../../../src/testing/cohort-topic-mesh-harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cohort-topic-mesh-harness.js","sourceRoot":"","sources":["../../../src/testing/cohort-topic-mesh-harness.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,8 @@ export interface ConformanceHarness {
18
18
  * behaviors the shared kernel makes parity-critical: clone-on-store/read (now
19
19
  * structural via the byte boundary), promote atomicity + the exact missing-pend
20
20
  * error, drain-before-yield iteration, and a `BlockStorage`-level slice that
21
- * guards the `meta.ranges` open-ended seeding invariant and tombstone read-back.
21
+ * guards the `meta.ranges` open-ended seeding invariant, tombstone read-back,
22
+ * and the exact id population `listBlockIds` yields on the node path.
22
23
  */
23
24
  export declare function runRawStorageConformance(name: string, makeStorage: () => Promise<ConformanceHarness>): void;
24
25
  //# sourceMappingURL=raw-storage-conformance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"raw-storage-conformance.d.ts","sourceRoot":"","sources":["../../../src/testing/raw-storage-conformance.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAK/D;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAyBD;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACvC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,GAC5C,IAAI,CAyWN"}
1
+ {"version":3,"file":"raw-storage-conformance.d.ts","sourceRoot":"","sources":["../../../src/testing/raw-storage-conformance.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAK/D;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAyBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACvC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,GAC5C,IAAI,CA4YN"}