@optimystic/db-p2p 0.21.0 → 0.24.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 (219) 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-policy.d.ts +13 -2
  6. package/dist/src/cluster/cluster-policy.d.ts.map +1 -1
  7. package/dist/src/cluster/cluster-policy.js +51 -4
  8. package/dist/src/cluster/cluster-policy.js.map +1 -1
  9. package/dist/src/cluster/cluster-repo.d.ts +42 -17
  10. package/dist/src/cluster/cluster-repo.d.ts.map +1 -1
  11. package/dist/src/cluster/cluster-repo.js +229 -122
  12. package/dist/src/cluster/cluster-repo.js.map +1 -1
  13. package/dist/src/cluster/cluster-size-coupling.d.ts +28 -0
  14. package/dist/src/cluster/cluster-size-coupling.d.ts.map +1 -0
  15. package/dist/src/cluster/cluster-size-coupling.js +35 -0
  16. package/dist/src/cluster/cluster-size-coupling.js.map +1 -0
  17. package/dist/src/cluster/quorum-restore.d.ts +6 -0
  18. package/dist/src/cluster/quorum-restore.d.ts.map +1 -1
  19. package/dist/src/cluster/quorum-restore.js +1 -1
  20. package/dist/src/cluster/quorum-restore.js.map +1 -1
  21. package/dist/src/cluster/reconcile-block.d.ts.map +1 -1
  22. package/dist/src/cluster/reconcile-block.js +15 -3
  23. package/dist/src/cluster/reconcile-block.js.map +1 -1
  24. package/dist/src/cluster/service.d.ts +32 -1
  25. package/dist/src/cluster/service.d.ts.map +1 -1
  26. package/dist/src/cluster/service.js +43 -2
  27. package/dist/src/cluster/service.js.map +1 -1
  28. package/dist/src/cohort-topic/stream-util.d.ts +22 -6
  29. package/dist/src/cohort-topic/stream-util.d.ts.map +1 -1
  30. package/dist/src/cohort-topic/stream-util.js +56 -10
  31. package/dist/src/cohort-topic/stream-util.js.map +1 -1
  32. package/dist/src/dispute/dispute-service.d.ts.map +1 -1
  33. package/dist/src/dispute/dispute-service.js +9 -3
  34. package/dist/src/dispute/dispute-service.js.map +1 -1
  35. package/dist/src/index.d.ts +5 -0
  36. package/dist/src/index.d.ts.map +1 -1
  37. package/dist/src/index.js +5 -0
  38. package/dist/src/index.js.map +1 -1
  39. package/dist/src/libp2p-key-network.d.ts +134 -7
  40. package/dist/src/libp2p-key-network.d.ts.map +1 -1
  41. package/dist/src/libp2p-key-network.js +174 -37
  42. package/dist/src/libp2p-key-network.js.map +1 -1
  43. package/dist/src/libp2p-node-base.d.ts +3 -2
  44. package/dist/src/libp2p-node-base.d.ts.map +1 -1
  45. package/dist/src/libp2p-node-base.js +859 -778
  46. package/dist/src/libp2p-node-base.js.map +1 -1
  47. package/dist/src/libp2p-node-rn.d.ts +2 -2
  48. package/dist/src/libp2p-node-rn.d.ts.map +1 -1
  49. package/dist/src/libp2p-node-rn.js.map +1 -1
  50. package/dist/src/libp2p-node.d.ts +2 -2
  51. package/dist/src/libp2p-node.d.ts.map +1 -1
  52. package/dist/src/libp2p-node.js.map +1 -1
  53. package/dist/src/logger.d.ts +17 -1
  54. package/dist/src/logger.d.ts.map +1 -1
  55. package/dist/src/logger.js +19 -2
  56. package/dist/src/logger.js.map +1 -1
  57. package/dist/src/network/network-manager-service.d.ts +2 -0
  58. package/dist/src/network/network-manager-service.d.ts.map +1 -1
  59. package/dist/src/network/network-manager-service.js +4 -0
  60. package/dist/src/network/network-manager-service.js.map +1 -1
  61. package/dist/src/optimystic-node.d.ts +35 -0
  62. package/dist/src/optimystic-node.d.ts.map +1 -0
  63. package/dist/src/optimystic-node.js +2 -0
  64. package/dist/src/optimystic-node.js.map +1 -0
  65. package/dist/src/owned-block-seed.d.ts +6 -3
  66. package/dist/src/owned-block-seed.d.ts.map +1 -1
  67. package/dist/src/owned-block-seed.js +16 -3
  68. package/dist/src/owned-block-seed.js.map +1 -1
  69. package/dist/src/peer-address-book.d.ts +72 -0
  70. package/dist/src/peer-address-book.d.ts.map +1 -0
  71. package/dist/src/peer-address-book.js +123 -0
  72. package/dist/src/peer-address-book.js.map +1 -0
  73. package/dist/src/repo/client.d.ts.map +1 -1
  74. package/dist/src/repo/client.js +11 -2
  75. package/dist/src/repo/client.js.map +1 -1
  76. package/dist/src/repo/cluster-coordinator.d.ts +30 -0
  77. package/dist/src/repo/cluster-coordinator.d.ts.map +1 -1
  78. package/dist/src/repo/cluster-coordinator.js +95 -3
  79. package/dist/src/repo/cluster-coordinator.js.map +1 -1
  80. package/dist/src/repo/coordinator-repo.d.ts +78 -14
  81. package/dist/src/repo/coordinator-repo.d.ts.map +1 -1
  82. package/dist/src/repo/coordinator-repo.js +266 -81
  83. package/dist/src/repo/coordinator-repo.js.map +1 -1
  84. package/dist/src/rn.d.ts +5 -0
  85. package/dist/src/rn.d.ts.map +1 -1
  86. package/dist/src/rn.js +5 -0
  87. package/dist/src/rn.js.map +1 -1
  88. package/dist/src/storage/block-storage.d.ts.map +1 -1
  89. package/dist/src/storage/block-storage.js +57 -5
  90. package/dist/src/storage/block-storage.js.map +1 -1
  91. package/dist/src/storage/cached-raw-storage.d.ts +83 -0
  92. package/dist/src/storage/cached-raw-storage.d.ts.map +1 -0
  93. package/dist/src/storage/cached-raw-storage.js +152 -0
  94. package/dist/src/storage/cached-raw-storage.js.map +1 -0
  95. package/dist/src/storage/cached-store-driver.d.ts +186 -0
  96. package/dist/src/storage/cached-store-driver.d.ts.map +1 -0
  97. package/dist/src/storage/cached-store-driver.js +775 -0
  98. package/dist/src/storage/cached-store-driver.js.map +1 -0
  99. package/dist/src/storage/i-block-storage.d.ts +20 -1
  100. package/dist/src/storage/i-block-storage.d.ts.map +1 -1
  101. package/dist/src/storage/i-raw-storage.d.ts +12 -5
  102. package/dist/src/storage/i-raw-storage.d.ts.map +1 -1
  103. package/dist/src/storage/shared-cache-pool.d.ts +234 -0
  104. package/dist/src/storage/shared-cache-pool.d.ts.map +1 -0
  105. package/dist/src/storage/shared-cache-pool.js +354 -0
  106. package/dist/src/storage/shared-cache-pool.js.map +1 -0
  107. package/dist/src/storage/storage-repo.d.ts +56 -3
  108. package/dist/src/storage/storage-repo.d.ts.map +1 -1
  109. package/dist/src/storage/storage-repo.js +124 -18
  110. package/dist/src/storage/storage-repo.js.map +1 -1
  111. package/dist/src/testing/raw-storage-conformance.d.ts +2 -1
  112. package/dist/src/testing/raw-storage-conformance.d.ts.map +1 -1
  113. package/dist/src/testing/raw-storage-conformance.js +52 -2
  114. package/dist/src/testing/raw-storage-conformance.js.map +1 -1
  115. package/package.json +3 -3
  116. package/readme.md +668 -653
  117. package/src/cluster/block-transfer.ts +424 -424
  118. package/src/cluster/client.ts +119 -88
  119. package/src/cluster/cluster-error.ts +64 -64
  120. package/src/cluster/cluster-policy.ts +203 -152
  121. package/src/cluster/cluster-repo.ts +245 -125
  122. package/src/cluster/cluster-size-coupling.ts +45 -0
  123. package/src/cluster/commit-cert.ts +139 -139
  124. package/src/cluster/i-transaction-state-store.ts +43 -43
  125. package/src/cluster/memory-transaction-state-store.ts +56 -56
  126. package/src/cluster/peer-key-binding.ts +37 -37
  127. package/src/cluster/persistent-transaction-state-store.ts +92 -92
  128. package/src/cluster/quorum-restore.ts +223 -223
  129. package/src/cluster/reconcile-block.ts +203 -191
  130. package/src/cluster/service.ts +293 -241
  131. package/src/cluster/supermajority-coupling.ts +37 -37
  132. package/src/cohort-topic/bootstrap-evidence-builder.ts +122 -122
  133. package/src/cohort-topic/bootstrap-evidence-verifiers.ts +132 -132
  134. package/src/cohort-topic/bootstrap-parent-reference.ts +159 -159
  135. package/src/cohort-topic/change-bridge.ts +109 -109
  136. package/src/cohort-topic/cohort-gossip-driver.ts +231 -231
  137. package/src/cohort-topic/cohort-gossip-transport.ts +84 -84
  138. package/src/cohort-topic/fret-trust-anchor.ts +153 -153
  139. package/src/cohort-topic/host.ts +2901 -2901
  140. package/src/cohort-topic/index.ts +13 -13
  141. package/src/cohort-topic/membership-publish-sink.ts +20 -20
  142. package/src/cohort-topic/membership-source.ts +68 -68
  143. package/src/cohort-topic/peer-codec.ts +31 -31
  144. package/src/cohort-topic/peer-sig.ts +86 -86
  145. package/src/cohort-topic/protocols.ts +71 -71
  146. package/src/cohort-topic/reactivity-membership-gate.ts +77 -77
  147. package/src/cohort-topic/size-estimator.ts +16 -16
  148. package/src/cohort-topic/stream-util.ts +135 -87
  149. package/src/cohort-topic/threshold-crypto.ts +239 -239
  150. package/src/cohort-topic/topic-router.ts +77 -77
  151. package/src/dispute/arbitrator-selection.ts +138 -138
  152. package/src/dispute/cascade.ts +524 -524
  153. package/src/dispute/dispute-service.ts +11 -5
  154. package/src/dispute/invalidation.ts +625 -625
  155. package/src/inbound-authorization.ts +190 -190
  156. package/src/index.ts +52 -47
  157. package/src/libp2p-key-network.ts +1120 -958
  158. package/src/libp2p-node-base.ts +1675 -1591
  159. package/src/libp2p-node-rn.ts +30 -30
  160. package/src/libp2p-node.ts +36 -36
  161. package/src/logger.ts +19 -2
  162. package/src/matchmaking/aggregate-counts.ts +104 -104
  163. package/src/matchmaking/index.ts +20 -20
  164. package/src/matchmaking/module.ts +363 -363
  165. package/src/matchmaking/protocols.ts +51 -51
  166. package/src/matchmaking/provider-manager.ts +95 -95
  167. package/src/matchmaking/query-handler.ts +88 -88
  168. package/src/matchmaking/query-transport.ts +492 -492
  169. package/src/matchmaking/seeker-manager.ts +64 -64
  170. package/src/matchmaking/seeker-walk-client.ts +293 -293
  171. package/src/matchmaking/traffic-validation.ts +195 -195
  172. package/src/network/network-manager-service.ts +5 -0
  173. package/src/optimystic-node.ts +36 -0
  174. package/src/owned-block-seed.ts +53 -40
  175. package/src/peer-address-book.ts +149 -0
  176. package/src/protocol-limits.ts +33 -33
  177. package/src/reactivity/forwarder-host.ts +438 -438
  178. package/src/reactivity/index.ts +19 -19
  179. package/src/reactivity/notify-transport.ts +144 -144
  180. package/src/reactivity/origination-manager.ts +192 -192
  181. package/src/reactivity/protocols.ts +61 -61
  182. package/src/reactivity/push-state-gossip.ts +291 -291
  183. package/src/reactivity/recover-transport.ts +408 -408
  184. package/src/reactivity/rotation-rereg-scheduler.ts +256 -256
  185. package/src/reactivity/subscriber-registry.ts +96 -96
  186. package/src/reactivity/subscription-manager.ts +450 -450
  187. package/src/reactivity/topic-bytes.ts +37 -37
  188. package/src/repo/client.ts +12 -2
  189. package/src/repo/cluster-coordinator.ts +99 -3
  190. package/src/repo/coordinator-repo.ts +305 -82
  191. package/src/repo/types.ts +7 -7
  192. package/src/rn.ts +39 -34
  193. package/src/rpc-deadline.ts +45 -45
  194. package/src/storage/arachnode-partition.ts +74 -74
  195. package/src/storage/block-storage.ts +59 -6
  196. package/src/storage/cached-raw-storage.ts +180 -0
  197. package/src/storage/cached-store-driver.ts +859 -0
  198. package/src/storage/i-block-storage.ts +20 -1
  199. package/src/storage/i-kv-store.ts +8 -8
  200. package/src/storage/i-raw-storage.ts +12 -5
  201. package/src/storage/kv-raw-storage.ts +135 -135
  202. package/src/storage/memory-kv-store.ts +28 -28
  203. package/src/storage/memory-storage.ts +25 -25
  204. package/src/storage/memory-store-driver.ts +157 -157
  205. package/src/storage/raw-store-codec.ts +42 -42
  206. package/src/storage/raw-store-driver.ts +80 -80
  207. package/src/storage/ring-selector.ts +317 -317
  208. package/src/storage/ring-shift-coordinator.ts +271 -271
  209. package/src/storage/shared-cache-pool.ts +452 -0
  210. package/src/storage/storage-repo.ts +1014 -903
  211. package/src/testing/cohort-topic-mesh-harness.ts +663 -663
  212. package/src/testing/index.ts +8 -8
  213. package/src/testing/matchmaking-mesh-harness.ts +475 -475
  214. package/src/testing/raw-storage-conformance.ts +453 -397
  215. package/src/testing/reactivity-mesh-harness.ts +922 -922
  216. package/dist/src/storage/restoration-coordinator-v2.d.ts +0 -67
  217. package/dist/src/storage/restoration-coordinator-v2.d.ts.map +0 -1
  218. package/dist/src/storage/restoration-coordinator-v2.js +0 -172
  219. package/dist/src/storage/restoration-coordinator-v2.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import { toString as u8ToString } from 'uint8arrays';
2
2
  import { peerIdFromString } from '@libp2p/peer-id';
3
- import { multiaddr } from '@multiformats/multiaddr';
4
3
  import { hashKey } from 'p2p-fret';
5
4
  import { createLogger, verbose } from './logger.js';
5
+ import { mergePeerAddresses, validMultiaddrStrings } from './peer-address-book.js';
6
6
  /**
7
7
  * Error codes surfaced by {@link Libp2pKeyPeerNetwork.findCoordinator}. Callers
8
8
  * (notably the batch-retry logic in `NetworkTransactor`) can inspect `.code`
@@ -43,6 +43,8 @@ export class FindCoordinatorError extends Error {
43
43
  this.code = code;
44
44
  }
45
45
  }
46
+ /** Snapshot format this build writes and is willing to read. Bump on any incompatible change. */
47
+ export const PERSISTED_STATE_VERSION = 2;
46
48
  export class Libp2pKeyPeerNetwork {
47
49
  libp2p;
48
50
  clusterSize;
@@ -52,29 +54,63 @@ export class Libp2pKeyPeerNetwork {
52
54
  networkHighWaterMark = 1;
53
55
  lastConnectedTime = Date.now();
54
56
  consecutiveIsolatedSessions = 0;
57
+ /**
58
+ * NOTE: diagnostic-only — no decision consults this any more. It used to gate the
59
+ * coordinator retry window, but it is computed once at construction
60
+ * (`bootstrapNodes.length > 0` in `libp2p-node-base.ts`) and never re-derived, so a node
61
+ * configured with a bootstrap address it has never reached read as "company is coming"
62
+ * forever; {@link retryCouldImprove} asks libp2p for live evidence instead. It still earns
63
+ * its keep in the `retry-futile` log line ("configured
64
+ * to expect company" vs. "solo by design"). Drop it, or re-derive it from live state, when
65
+ * the constructor becomes an options bag — removing the positional parameter now would
66
+ * churn ~50 construction sites in `test/libp2p-key-network.spec.ts` for no behaviour change.
67
+ */
55
68
  networkMode;
56
69
  persistence;
57
- constructor(libp2p, clusterSize = 16, selfCoordinationConfig, networkMode, persistence, reputation,
70
+ // NOTE: seven positional parameters, and the list stays that way for now — converting to an
71
+ // options bag would touch ~50 construction sites in `test/libp2p-key-network.spec.ts` alone.
72
+ // Revisit if an eighth parameter is ever needed, or if that spec is being rewritten anyway.
73
+ constructor(libp2p,
74
+ /**
75
+ * Replication factor / target cohort breadth for peer selection. REQUIRED, deliberately:
76
+ * a silent default here meant a caller that did not know the node's cluster size quietly
77
+ * selected a different-width cohort than the node's own consensus path used for the same
78
+ * key. Reuse the node's own instance (`node.keyNetwork`) where one exists; a caller that
79
+ * genuinely must construct standalone passes `DEFAULT_CLUSTER_SIZE` (`cluster/cluster-policy.ts`).
80
+ */
81
+ clusterSize, selfCoordinationConfig, networkMode, persistence, reputation,
58
82
  /**
59
83
  * Network-namespaced protocol prefix (`/optimystic/<networkName>`). When
60
84
  * provided, coordinator/cohort selection is scoped to peers that serve THIS
61
85
  * network's `cluster`/`repo` protocol, so a peer that only belongs to another
62
86
  * network sharing the same physical nodes/bootstraps is never chosen. When
63
- * ABSENT, the membership filter is disabled (today's exact behavior) — required
64
- * for backward compatibility because most call sites don't know the network name.
87
+ * ABSENT, the membership filter is disabled.
88
+ *
89
+ * NOTE: optional for the same reason `clusterSize` used to be — "most call sites don't
90
+ * know the network name" — and that reason no longer holds: both production sites now
91
+ * pass it (`libp2p-node-base.ts`, and the foreign-node fallback in the Quereus
92
+ * collection-factory), and only the mock-based cases in `test/libp2p-key-network.spec.ts`
93
+ * omit it. So a caller omitting it today gets the filter silently off, exactly the shape
94
+ * that let a second key network be built with a wrong cohort width. Left optional because
95
+ * making it required would touch ~50 construction sites in that one spec and no reachable
96
+ * caller is affected. Make it required (or take the whole list as an options bag) the
97
+ * moment a THIRD production construction site appears, or when that spec is rewritten.
65
98
  */
66
99
  protocolPrefix) {
67
100
  this.libp2p = libp2p;
68
101
  this.clusterSize = clusterSize;
69
102
  this.reputation = reputation;
70
103
  this.protocolPrefix = protocolPrefix;
71
- // NOTE: no construction site in this repo passes a SelfCoordinationConfig every one
72
- // leaves it `undefined` (libp2p-node-base.ts, quereus-plugin-optimystic's
73
- // collection-factory.ts and key-network.ts, reference-peer's cli.ts), so these
74
- // defaults are always what is in force and no operator can tune them. If tuning
75
- // `gracePeriodMs` is ever needed, those four sites have to thread the config through
76
- // first. Low urgency: a grace-period denial no longer fails the caller, it only costs
77
- // a write the ~1s findCoordinator retry window before self-coordinating.
104
+ // Built here rather than as a field initializer: field initializers run before the
105
+ // constructor body, where `this.libp2p` (a parameter property) is not yet assigned.
106
+ this.log = createLogger('libp2p-key-network', this.libp2p.peerId.toString());
107
+ // NOTE: no production construction site in this repo passes a SelfCoordinationConfig
108
+ // both leave it `undefined` (libp2p-node-base.ts, and the foreign-node fallback in
109
+ // quereus-plugin-optimystic's collection-factory.ts), so these defaults are always what
110
+ // is in force and no operator can tune them. If tuning `gracePeriodMs` is ever needed,
111
+ // those two sites have to thread the config through first. Low urgency: a grace-period denial no longer fails the caller, it only costs
112
+ // a write the findCoordinator retry window before self-coordinating — and only when that
113
+ // window is worth paying at all (see `retryCouldImprove`), so an isolated node pays nothing.
78
114
  this.selfCoordinationConfig = {
79
115
  gracePeriodMs: selfCoordinationConfig?.gracePeriodMs ?? 30_000,
80
116
  shrinkageThreshold: selfCoordinationConfig?.shrinkageThreshold ?? 0.5,
@@ -84,10 +120,22 @@ export class Libp2pKeyPeerNetwork {
84
120
  this.persistence = persistence;
85
121
  this.setupConnectionTracking();
86
122
  }
123
+ /** The cluster size this instance actually resolved to, for `assertClusterSizeCoupling`. */
124
+ get effectiveClusterSize() {
125
+ return this.clusterSize;
126
+ }
127
+ /**
128
+ * The network-namespaced protocol prefix (`/optimystic/<networkName>`) selection is scoped to,
129
+ * or `undefined` when the network-membership filter is off. Readable so a spec can assert the
130
+ * node's attached instance really is network-scoped without reaching into a private field.
131
+ */
132
+ get effectiveProtocolPrefix() {
133
+ return this.protocolPrefix;
134
+ }
87
135
  // coordinator cache: key (base64url) -> peerId until expiry (bounded LRU-ish via Map insertion order)
88
136
  coordinatorCache = new Map();
89
137
  static MAX_CACHE_ENTRIES = 1000;
90
- log = createLogger('libp2p-key-network');
138
+ log;
91
139
  toCacheKey(key) { return u8ToString(key, 'base64url'); }
92
140
  /**
93
141
  * Set up connection event tracking to update high water mark and last connected time.
@@ -132,12 +180,23 @@ export class Libp2pKeyPeerNetwork {
132
180
  const state = await this.persistence.load();
133
181
  if (!state)
134
182
  return;
183
+ // Discard, don't translate. A foreign-version snapshot is cheap to replace — the high-water
184
+ // mark and the peer table are both re-learned within a few stabilization ticks — and far
185
+ // cheaper than reasoning about what an older FRET meant by any given field.
186
+ if (state.version !== PERSISTED_STATE_VERSION) {
187
+ this.log('init:state-discarded version=%o want=%d', state.version, PERSISTED_STATE_VERSION);
188
+ return;
189
+ }
135
190
  this.networkHighWaterMark = state.networkHighWaterMark;
136
191
  this.lastConnectedTime = state.lastConnectedTimestamp;
137
192
  this.consecutiveIsolatedSessions = state.consecutiveIsolatedSessions;
138
193
  if (state.fretTable) {
139
194
  try {
140
- this.getFret().importTable(state.fretTable);
195
+ // Must be awaited: importTable is async as of FRET 1.0.0-beta.1 and enforces capacity
196
+ // against the self ring coordinate it hashes on demand. Left floating, the restore
197
+ // races that enforcement against whatever runs next, and a rejection escapes this
198
+ // catch entirely rather than being logged as a skipped import.
199
+ await this.getFret().importTable(state.fretTable);
141
200
  }
142
201
  catch (err) {
143
202
  this.log('init:fret-import-skipped %o', err);
@@ -152,20 +211,76 @@ export class Libp2pKeyPeerNetwork {
152
211
  }
153
212
  }
154
213
  }
155
- canRetryImprove(fretNeighborIds) {
156
- if (this.networkMode !== 'forming')
157
- return true;
158
- if (this.networkHighWaterMark > 1)
214
+ /**
215
+ * Can another attempt plausibly return a BETTER answer than this one did? Consulted ONLY
216
+ * when the current attempt found no candidate and the node holds zero connections — i.e.
217
+ * purely to decide whether the 500ms inter-attempt sleep is worth paying.
218
+ *
219
+ * Answered from evidence available NOW, never from configuration or history (`networkMode`
220
+ * is frozen at construction and `networkHighWaterMark` is monotonic, so both used to keep
221
+ * the window open forever on a node that could never fill it):
222
+ * - a non-self candidate in the FRET neighbourhood for this key — a peer we know of and
223
+ * route to; a connection to it landing during the sleep makes it selectable.
224
+ * - a dial in flight (`queued` / `active` in libp2p's dial queue) — a connection attempt
225
+ * that can complete inside the sleep. This is the signal that covers a
226
+ * configured-but-not-yet-reached bootstrap peer: while its dial runs, the window is
227
+ * worth paying; once the dial has failed, it is not.
228
+ *
229
+ * Neither present → nothing this call can wait for; break to the last-resort tier.
230
+ *
231
+ * NOTE: accepted regression — a node with no known peers and no dial in flight that
232
+ * received an INBOUND connection during a sleep it now skips will route that one lookup to
233
+ * self instead of to the arriving peer. A self pick is never cached, so the next lookup
234
+ * picks the peer up; the benefit is that every genuinely isolated lookup stops paying ~1s
235
+ * per block. Inbound reachability is deliberately NOT a futility signal: it holds for
236
+ * nearly every node with a listen address, so it would neuter the test.
237
+ * NOTE: deliberately no `peerStore` scan — "we have a record of a peer" is not "a peer can
238
+ * arrive in the next 500ms". A peerStore entry with no FRET entry and no in-flight dial is
239
+ * a peer nobody is currently attempting, and the scan is an async datastore iteration on a
240
+ * per-lookup hot path.
241
+ */
242
+ retryCouldImprove(candidateIds) {
243
+ if (candidateIds.some(id => id !== this.libp2p.peerId.toString()))
159
244
  return true;
160
- const onlySelf = fretNeighborIds.length <= 1
161
- && (fretNeighborIds.length === 0 || fretNeighborIds[0] === this.libp2p.peerId.toString());
162
- return !onlySelf;
245
+ return this.dialsInFlight() > 0;
246
+ }
247
+ /**
248
+ * Number of dials libp2p is currently attempting (`queued` or `active`) — a connection
249
+ * that can plausibly complete inside the inter-attempt sleep.
250
+ *
251
+ * Over-inclusive by design: the queue may hold a dial to an excluded, banned, or
252
+ * foreign-network peer. That keeps the retry window (conservative, matches the behaviour
253
+ * before the futility test existed); cross-referencing it would cost more than the sleep
254
+ * it saves. `getDialQueue` is non-optional on the Libp2p interface, so an absent method
255
+ * only ever means a test mock — treated as "no evidence of an in-flight dial", exactly as
256
+ * `getConnections?.()` is handled elsewhere.
257
+ *
258
+ * NOTE: this bounds — it does not eliminate — the futile window for the motivating case (a
259
+ * node whose only configured bootstrap is unreachable). FRET re-probes such a peer at most
260
+ * once per its capped 32s backoff (`fret-service.ts` `recordBackoff`: base 1000ms × factor
261
+ * ≤32), and each probe's dial can sit `active` for libp2p's 10s `DIAL_TIMEOUT` — so up to
262
+ * roughly a third of wall-clock still has a dial in flight, and lookups in those stretches
263
+ * still pay ~1s. Paying there is correct (a succeeding probe makes the peer selectable);
264
+ * revisit only if either upstream constant moves far enough to make the duty cycle ~1.
265
+ */
266
+ dialsInFlight() {
267
+ return (this.libp2p.getDialQueue?.() ?? [])
268
+ .filter(d => d.status === 'queued' || d.status === 'active').length;
269
+ }
270
+ /**
271
+ * The caller-independent half of eligibility: this peer is neither excluded by the caller
272
+ * nor banned by reputation. Shared by all three places `findCoordinator` narrows a candidate
273
+ * list — the FRET tier, the connected-peer fallback, and the retry-futility input — so the
274
+ * futility test can never disagree with the tiers about who is pickable.
275
+ */
276
+ isSelectable(id, excluded) {
277
+ return !excluded.has(id) && !(this.reputation?.isBanned(id));
163
278
  }
164
279
  persistState() {
165
280
  if (!this.persistence)
166
281
  return;
167
282
  const state = {
168
- version: 1,
283
+ version: PERSISTED_STATE_VERSION,
169
284
  networkHighWaterMark: this.networkHighWaterMark,
170
285
  lastConnectedTimestamp: this.lastConnectedTime,
171
286
  consecutiveIsolatedSessions: this.consecutiveIsolatedSessions,
@@ -285,6 +400,15 @@ export class Libp2pKeyPeerNetwork {
285
400
  this.coordinatorCache.delete(firstKey);
286
401
  }
287
402
  }
403
+ /**
404
+ * Learn how to reach `peerId` from addresses carried by an application-level message
405
+ * (a cluster record's peer map, a redirect payload). See {@link mergePeerAddresses} for
406
+ * the rules and the trust boundary; this is the {@link IPeerNetwork} entry point every
407
+ * protocol client dials through.
408
+ */
409
+ recordPeerAddresses(peerId, multiaddrs) {
410
+ mergePeerAddresses(this.libp2p, peerId, multiaddrs, (fmt, ...args) => this.log(fmt, ...args));
411
+ }
288
412
  getCachedCoordinator(key) {
289
413
  const k = this.toCacheKey(key);
290
414
  const hit = this.coordinatorCache.get(k);
@@ -443,7 +567,7 @@ export class Libp2pKeyPeerNetwork {
443
567
  return selfAllowedThisAttempt;
444
568
  };
445
569
  const connectedFretIds = ids
446
- .filter(id => !excludedSet.has(id) && !(this.reputation?.isBanned(id)))
570
+ .filter(id => this.isSelectable(id, excludedSet))
447
571
  .filter(id => connectedSet.has(id) || (id === selfStr && isSelfAdmissible()))
448
572
  .sort((a, b) => (this.reputation?.getScore(a) ?? 0) - (this.reputation?.getScore(b) ?? 0));
449
573
  this.log('findCoordinator:fret-connected key=%s count=%d peers=%o', keyStr, connectedFretIds.length, connectedFretIds.map(s => s.substring(0, 12)));
@@ -479,7 +603,7 @@ export class Libp2pKeyPeerNetwork {
479
603
  // Being remote-only, this tier needs no self-coordination guard check, unlike the
480
604
  // FRET tier above.
481
605
  const connectedCandidates = connected
482
- .filter(p => !excludedSet.has(p.toString()) && !(this.reputation?.isBanned(p.toString())))
606
+ .filter(p => this.isSelectable(p.toString(), excludedSet))
483
607
  .sort((a, b) => (this.reputation?.getScore(a.toString()) ?? 0) - (this.reputation?.getScore(b.toString()) ?? 0))
484
608
  .map(p => p.toString());
485
609
  const { ranked: connRanked, droppedUnconfirmed: connDroppedUnconfirmed } = await this.filterByMembership(connectedCandidates);
@@ -494,8 +618,17 @@ export class Libp2pKeyPeerNetwork {
494
618
  }
495
619
  // If no connections and not the last attempt, wait and retry
496
620
  if (connected.length === 0 && attempt < maxRetries - 1) {
497
- if (!this.canRetryImprove(ids)) {
498
- this.log('findCoordinator:retry-futile key=%s mode=%s hwm=%d', keyStr, this.networkMode, this.networkHighWaterMark);
621
+ // Exclusion/ban filtered — a neighbour we may never pick is not something to
622
+ // wait for. This network's membership filter (peerStore protocols) is deliberately
623
+ // NOT applied: a neighbour still `unknown` to it is exactly the peer that flips to
624
+ // `serves` inside the retry window, so its presence must keep the window. FRET's
625
+ // own ring membership has already applied a stricter cut upstream — `getNeighbors`
626
+ // returns confirmed ring members only — so a configured-but-never-reached bootstrap
627
+ // peer is absent from `ids` entirely, and only the dial-in-flight signal below can
628
+ // keep the window for it.
629
+ const knowable = ids.filter(id => this.isSelectable(id, excludedSet));
630
+ if (!this.retryCouldImprove(knowable)) {
631
+ this.log('findCoordinator:retry-futile key=%s neighbors=%d dialsInFlight=%d mode=%s hwm=%d', keyStr, knowable.length, this.dialsInFlight(), this.networkMode, this.networkHighWaterMark);
499
632
  break;
500
633
  }
501
634
  this.log('findCoordinator:no-connections-retry key=%s attempt=%d delay=%dms', keyStr, attempt, retryDelayMs);
@@ -563,17 +696,7 @@ export class Libp2pKeyPeerNetwork {
563
696
  return byPeer;
564
697
  }
565
698
  parseMultiaddrs(addrs) {
566
- const out = [];
567
- for (const a of addrs) {
568
- try {
569
- multiaddr(a);
570
- out.push(a);
571
- }
572
- catch (err) {
573
- this.log('WARN: invalid multiaddr from connection %s %o', a, err);
574
- }
575
- }
576
- return out;
699
+ return validMultiaddrStrings(addrs, (fmt, ...args) => this.log(fmt, ...args));
577
700
  }
578
701
  async findCluster(key) {
579
702
  const t0 = Date.now();
@@ -661,6 +784,11 @@ export class Libp2pKeyPeerNetwork {
661
784
  if (verbose)
662
785
  this.log('findCluster:detail key=%s cohortPeers=%o connectedPeers=%o', keyStr, ids, connectedPeerIds);
663
786
  const peers = {};
787
+ // Cohort members we have no dialable address for. Admitting them is deliberate (see
788
+ // the note at the assignment below), but staying SILENT about it is what produced the
789
+ // reported symptom: clean membership logs on every node while every dial to the
790
+ // addressless member died instantly and the write never completed.
791
+ const addressless = [];
664
792
  for (const idStr of ids) {
665
793
  if (idStr === selfId) {
666
794
  const raw = this.libp2p.peerId.publicKey?.raw ?? new Uint8Array();
@@ -683,9 +811,18 @@ export class Libp2pKeyPeerNetwork {
683
811
  // retry/exclude logic takes over — we intentionally do NOT drop
684
812
  // addressless members here, because shrinking the cohort below
685
813
  // `clusterSize` puts consensus supermajority out of reach.
814
+ if (parsed.length === 0)
815
+ addressless.push(idStr.substring(0, 12));
686
816
  peers[idStr] = { multiaddrs: parsed, publicKey: u8ToString(raw, 'base64url') };
687
817
  }
688
- this.log('findCluster:done key=%s ms=%d peers=%d', keyStr, Date.now() - t0, Object.keys(peers).length);
818
+ // Unconditional (not gated on `verbose`): this is the one line that turns a silent
819
+ // hang into a diagnosable one. A non-zero count means the cohort LOOKS healthy while
820
+ // some members cannot be dialed at all until someone teaches us their addresses
821
+ // (see `recordPeerAddresses` / `peer-address-book.ts`).
822
+ if (addressless.length > 0) {
823
+ this.log('findCluster:addressless-members key=%s count=%d of=%d peers=%o', keyStr, addressless.length, Object.keys(peers).length, addressless);
824
+ }
825
+ this.log('findCluster:done key=%s ms=%d peers=%d addressless=%d', keyStr, Date.now() - t0, Object.keys(peers).length, addressless.length);
689
826
  return peers;
690
827
  }
691
828
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p-key-network.js","sourceRoot":"","sources":["../../src/libp2p-key-network.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,aAAa,CAAA;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAOnD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC3C;;;;;;OAMG;IACH,yBAAyB,EAAE,2BAA2B;IACtD;;;;OAIG;IACH,2BAA2B,EAAE,6BAA6B;IAC1D,2DAA2D;IAC3D,wBAAwB,EAAE,0BAA0B;IACpD;;;;;;OAMG;IACH,sBAAsB,EAAE,wBAAwB;CACvC,CAAC;AAkBX,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACrC,IAAI,CAA2B;IACxC,YAAY,IAA8B,EAAE,OAAe;QAC1D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;CACD;AAyED,MAAM,OAAO,oBAAoB;IASd;IACA;IAIA;IASA;IAtBD,sBAAsB,CAAmC;IAClE,oBAAoB,GAAG,CAAC,CAAC;IACzB,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,2BAA2B,GAAG,CAAC,CAAC;IACvB,WAAW,CAAc;IACzB,WAAW,CAA2B;IAEvD,YACkB,MAAc,EACd,cAAsB,EAAE,EACzC,sBAA+C,EAC/C,WAAyB,EACzB,WAAqC,EACpB,UAA4B;IAC7C;;;;;;;OAOG;IACc,cAAuB;QAdvB,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAa;QAIxB,eAAU,GAAV,UAAU,CAAkB;QAS5B,mBAAc,GAAd,cAAc,CAAS;QAExC,sFAAsF;QACtF,0EAA0E;QAC1E,+EAA+E;QAC/E,gFAAgF;QAChF,qFAAqF;QACrF,sFAAsF;QACtF,yEAAyE;QACzE,IAAI,CAAC,sBAAsB,GAAG;YAC7B,aAAa,EAAE,sBAAsB,EAAE,aAAa,IAAI,MAAM;YAC9D,kBAAkB,EAAE,sBAAsB,EAAE,kBAAkB,IAAI,GAAG;YACrE,qBAAqB,EAAE,sBAAsB,EAAE,qBAAqB,IAAI,IAAI;SAC5E,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,SAAS,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,uBAAuB,EAAE,CAAC;IAChC,CAAC;IAED,sGAAsG;IACrF,gBAAgB,GAAG,IAAI,GAAG,EAA2C,CAAA;IAC9E,MAAM,CAAU,iBAAiB,GAAG,IAAI,CAAA;IAC/B,GAAG,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAA;IAEjD,UAAU,CAAC,GAAe,IAAY,OAAO,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA,CAAC,CAAC;IAEnF;;OAEG;IACK,uBAAuB;QAC9B,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,GAAG,EAAE;YACpD,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,yBAAyB;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC;QACzD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACpC,IAAI,CAAC,2BAA2B,GAAG,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC/C,IAAI,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACxD,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC;gBACnD,IAAI,CAAC,GAAG,CAAC,2CAA2C,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;YACvG,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,wDAAwD;YACxD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC;YACnE,MAAM,YAAY,GAAG,eAAe,GAAG,CAAC,CAAC,CAAC,cAAc;YACxD,IAAI,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC9C,IAAI,CAAC,oBAAoB,GAAG,YAAY,CAAC;gBACzC,IAAI,CAAC,GAAG,CAAC,gDAAgD,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACvF,CAAC;QACF,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC3B,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,CAAC;QACvD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,sBAAsB,CAAC;QACtD,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC,2BAA2B,CAAC;QAErE,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC;gBACJ,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;YAAC,CAAC;QAChE,CAAC;QAED,4EAA4E;QAC5E,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;YAC7D,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,2BAA2B,EAAE,CAAC;gBACnC,IAAI,CAAC,GAAG,CAAC,uCAAuC,EAAE,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAChH,CAAC;QACF,CAAC;IACF,CAAC;IAEO,eAAe,CAAC,eAAyB;QAChD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAChD,IAAI,IAAI,CAAC,oBAAoB,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/C,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,IAAI,CAAC;eACxC,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3F,OAAO,CAAC,QAAQ,CAAC;IAClB,CAAC;IAEO,YAAY;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,MAAM,KAAK,GAA0B;YACpC,OAAO,EAAE,CAAC;YACV,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,sBAAsB,EAAE,IAAI,CAAC,iBAAiB;YAC9C,2BAA2B,EAAE,IAAI,CAAC,2BAA2B;SAC7D,CAAC;QACF,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5B,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,2BAA2B,CAAC,SAA4B,OAAO;QAC9D,sFAAsF;QACtF,sFAAsF;QACtF,kFAAkF;QAClF,MAAM,oBAAoB,GAAG,MAAM,KAAK,MAAM,CAAC;QAE/C,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,EAAE,CAAC;YACxD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAChE,CAAC;QAED,yDAAyD;QACzD,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QAClD,CAAC;QAED,8FAA8F;QAC9F,IAAI,IAAI,CAAC,2BAA2B,IAAI,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,GAAG,CAAC,6CAA6C,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC1F,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACzD,CAAC;QAED,uCAAuC;QACvC,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,kDAAkD,EAAE,MAAM,CAAC,CAAC;gBACrE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,oBAAoB,EAAE,CAAC;YACzF,CAAC;YAED,yDAAyD;YACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC3E,IAAI,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,CAAC;gBAChE,IAAI,CAAC,GAAG,CAAC,mFAAmF,EAC3F,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;gBACvE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,UAAU,EAAE,oBAAoB,EAAE,CAAC;YAC3F,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,uCAAuC;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC;YACzD,IAAI,IAAI,CAAC,oBAAoB,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/D,yDAAyD;gBACzD,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBAChE,IAAI,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,CAAC;oBACrE,IAAI,CAAC,GAAG,CAAC,yDAAyD,EAAE,mBAAmB,CAAC,CAAC;oBACzF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;gBAC/E,CAAC;YACF,CAAC;QACF,CAAC;QAED,wDAAwD;QACxD,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAChE,IAAI,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,CAAC;YACrE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC;YACzD,wDAAwD;YACxD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,yDAAyD,EAAE,mBAAmB,CAAC,CAAC;gBACzF,gFAAgF;gBAChF,8EAA8E;gBAC9E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;YAC/E,CAAC;QACF,CAAC;QAED,yEAAyE;QACzE,IAAI,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC1D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;;;OAaG;IACI,iBAAiB,CAAC,GAAe,EAAE,MAAc,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;QAC/E,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YACzD,IAAI,CAAC,GAAG,CAAC,6CAA6C,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;YAC9F,OAAM;QACP,CAAC;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACjD,IAAI,KAAK,CAAC,OAAO,IAAI,GAAG;gBAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC3D,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,KAAK,EAAE,CAAC,CAAA;QAClE,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,oBAAoB,CAAC,iBAAiB,EAAE,CAAC;YAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAA2B,CAAA;YAChF,IAAI,QAAQ,IAAI,IAAI;gBAAE,MAAK;YAC3B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACvC,CAAC;IACF,CAAC;IAEO,oBAAoB,CAAC,GAAe;QAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACxC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE;YAAE,OAAO,GAAG,CAAC,EAAE,CAAA;QAClD,IAAI,GAAG;YAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACxC,OAAO,SAAS,CAAA;IACjB,CAAC;IAED;;;;;OAKG;IACK,mBAAmB,CAAC,CAAa;QACxC,IAAK,CAA0B,CAAC,MAAM,IAAI,IAAI;YAAE,OAAO,IAAI,CAAA;QAC3D,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAA;QACvC,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;IACrD,CAAC;IAED,OAAO,CAAC,MAAc,EAAE,QAAgB,EAAE,OAAsB;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QACxD,wEAAwE;QACxE,gEAAgE;QAChE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,EAAE,SAAS,KAAK,UAAU,CAAC,CAAA;QAC1F,6EAA6E;QAC7E,4EAA4E;QAC5E,yEAAyE;QACzE,+EAA+E;QAC/E,2EAA2E;QAC3E,8EAA8E;QAC9E,gFAAgF;QAChF,2EAA2E;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;QACtE,IAAI,MAAM,EAAE,CAAC;YACZ,mEAAmE;YACnE,iEAAiE;YACjE,kEAAkE;YAClE,uEAAuE;YACvE,uDAAuD;YACvD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE;gBACnC,MAAM,EAAE,OAAO,EAAE,MAAM;gBACvB,sBAAsB,EAAE,IAAI;gBAC5B,cAAc,EAAE,KAAK;aACrB,CAAC,CAAA;QACH,CAAC;QACD,yEAAyE;QACzE,yEAAyE;QACzE,sEAAsE;QACtE,kEAAkE;QAClE,MAAM,WAAW,GAAG,EAAE,sBAAsB,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAW,CAAA;QAC7G,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAA;IACjE,CAAC;IAEO,OAAO;QACd,MAAM,GAAG,GAAI,IAAI,CAAC,MAAqC,CAAC,QAAQ,EAAE,IAAI,CAAA;QACtE,IAAI,GAAG,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACtF,OAAO,GAAG,CAAA;IACX,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,GAAe,EAAE,KAAa;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QAC3B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QACpD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACjD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAe,EAAE,QAA0C;QAChF,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,CAAC,QAAQ,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QAC3F,sFAAsF;QACtF,wDAAwD;QACxD,MAAM,MAAM,GAAsB,QAAQ,EAAE,MAAM,IAAI,OAAO,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,iFAAiF;QACjF,8EAA8E;QAC9E,yEAAyE;QACzE,4EAA4E;QAC5E,mDAAmD;QACnD,IAAI,4BAA4B,GAAG,KAAK,CAAC;QAEzC,IAAI,CAAC,GAAG,CAAC,0CAA0C,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QAElH,8BAA8B;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAC7C,IAAI,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,GAAG,CAAC,6CAA6C,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,CAAA;YACzF,OAAO,MAAM,CAAA;QACd,CAAC;QAED,oFAAoF;QACpF,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,MAAM,YAAY,GAAG,GAAG,CAAC;QAEzB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,8CAA8C;YAC9C,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAa,CAAA;YAClG,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;YAC9D,IAAI,CAAC,GAAG,CAAC,qEAAqE,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YAErK,yEAAyE;YACzE,IAAI,GAAG,GAAa,EAAE,CAAC;YACvB,IAAI,CAAC;gBACJ,GAAG,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;gBAC5D,IAAI,CAAC,GAAG,CAAC,qDAAqD,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;gBACnF,IAAI,OAAO;oBAAE,IAAI,CAAC,GAAG,CAAC,4DAA4D,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA;gBAE1H,2EAA2E;gBAC3E,6EAA6E;gBAC7E,2EAA2E;gBAC3E,+EAA+E;gBAC/E,qEAAqE;gBACrE,gFAAgF;gBAChF,+EAA+E;gBAC/E,0EAA0E;gBAC1E,6CAA6C;gBAC7C,EAAE;gBACF,gFAAgF;gBAChF,6EAA6E;gBAC7E,iFAAiF;gBACjF,+EAA+E;gBAC/E,8EAA8E;gBAC9E,mEAAmE;gBACnE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;gBAC7C,IAAI,sBAA2C,CAAA;gBAC/C,iFAAiF;gBACjF,kFAAkF;gBAClF,yEAAyE;gBACzE,+EAA+E;gBAC/E,gFAAgF;gBAChF,gFAAgF;gBAChF,4EAA4E;gBAC5E,+EAA+E;gBAC/E,wEAAwE;gBACxE,iFAAiF;gBACjF,+EAA+E;gBAC/E,gFAAgF;gBAChF,6EAA6E;gBAC7E,gFAAgF;gBAChF,0EAA0E;gBAC1E,2EAA2E;gBAC3E,MAAM,gBAAgB,GAAG,GAAY,EAAE;oBACtC,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;wBAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;wBACzD,8EAA8E;wBAC9E,+EAA+E;wBAC/E,+EAA+E;wBAC/E,8EAA8E;wBAC9E,+EAA+E;wBAC/E,+EAA+E;wBAC/E,uEAAuE;wBACvE,MAAM,YAAY,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI;+BAChE,MAAM,KAAK,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,CAAA;wBAC/C,sBAAsB,GAAG,QAAQ,CAAC,KAAK,IAAI,YAAY,CAAA;wBACvD,IAAI,YAAY,EAAE,CAAC;4BAClB,IAAI,CAAC,GAAG,CAAC,4EAA4E,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;wBACzH,CAAC;6BAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;4BAC5B,IAAI,CAAC,GAAG,CAAC,yEAAyE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;wBAC9H,CAAC;oBACF,CAAC;oBACD,OAAO,sBAAsB,CAAA;gBAC9B,CAAC,CAAA;gBACD,MAAM,gBAAgB,GAAG,GAAG;qBAC1B,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;qBACtE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,IAAI,gBAAgB,EAAE,CAAC,CAAC;qBAC5E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBAC3F,IAAI,CAAC,GAAG,CAAC,yDAAyD,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;gBAEnJ,+EAA+E;gBAC/E,0EAA0E;gBAC1E,0EAA0E;gBAC1E,qEAAqE;gBACrE,4EAA4E;gBAC5E,0EAA0E;gBAC1E,0EAA0E;gBAC1E,oDAAoD;gBACpD,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;gBACtF,IAAI,kBAAkB;oBAAE,4BAA4B,GAAG,IAAI,CAAA;gBAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;gBACtB,IAAI,IAAI,EAAE,CAAC;oBACV,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;oBAClC,sEAAsE;oBACtE,0EAA0E;oBAC1E,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;oBAChC,IAAI,CAAC,GAAG,CAAC,6CAA6C,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;oBACxF,OAAO,GAAG,CAAA;gBACX,CAAC;YACF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,GAAG,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAA;YAClE,CAAC;YAED,8EAA8E;YAC9E,2EAA2E;YAC3E,yEAAyE;YACzE,6EAA6E;YAC7E,8EAA8E;YAC9E,kFAAkF;YAClF,mBAAmB;YACnB,MAAM,mBAAmB,GAAG,SAAS;iBACnC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;iBACzF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;iBAC/G,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;YACxB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAA;YAC7H,IAAI,sBAAsB;gBAAE,4BAA4B,GAAG,IAAI,CAAA;YAC/D,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;YACnC,IAAI,aAAa,EAAE,CAAC;gBACnB,MAAM,GAAG,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAA;gBAC3C,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;gBAChC,IAAI,CAAC,GAAG,CAAC,6CAA6C,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAA;gBACtG,OAAO,GAAG,CAAA;YACX,CAAC;YAED,6DAA6D;YAC7D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,IAAI,CAAC,GAAG,CAAC,oDAAoD,EAC5D,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;oBACtD,MAAM;gBACP,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,mEAAmE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;gBAC5G,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;gBAC/D,SAAQ;YACT,CAAC;QACF,CAAC;QAED,iEAAiE;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;QAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;YAC1D,6DAA6D;YAC7D,8EAA8E;YAC9E,kFAAkF;YAClF,kFAAkF;YAClF,0EAA0E;YAC1E,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;gBACrD,IAAI,CAAC,GAAG,CAAC,+DAA+D,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC3G,MAAM,IAAI,oBAAoB,CAC7B,4BAA4B,CAAC,yBAAyB,EACtD,8BAA8B,QAAQ,CAAC,MAAM,qCAAqC,CAClF,CAAC;YACH,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,kFAAkF,EAC1F,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACpE,IAAI,CAAC,GAAG,CAAC,6CAA6C,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,eAAe,CAAC,CAAA;gBACjG,OAAO,IAAI,CAAA;YACZ,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnB,IAAI,CAAC,GAAG,CAAC,oEAAoE,EAC5E,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,GAAG,CAAC,+DAA+D,EACvE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,6CAA6C,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;YACxF,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,qFAAqF;QACrF,qFAAqF;QACrF,iFAAiF;QACjF,yEAAyE;QACzE,IAAI,4BAA4B,EAAE,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,iEAAiE,EACzE,MAAM,EAAE,IAAI,CAAC,cAAc,IAAI,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;YACtE,MAAM,IAAI,oBAAoB,CAC7B,4BAA4B,CAAC,sBAAsB,EACnD,+CAA+C,IAAI,CAAC,cAAc,IAAI,GAAG,IAAI;gBAC7E,iHAAiH,CACjH,CAAC;QACH,CAAC;QAED,yFAAyF;QACzF,uFAAuF;QACvF,yFAAyF;QACzF,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;QACvD,IAAI,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,oDAAoD,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;YACxG,MAAM,IAAI,oBAAoB,CAC7B,4BAA4B,CAAC,2BAA2B,EACxD,+EAA+E;gBAC/E,sEAAsE,CACtE,CAAC;QACH,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,6CAA6C,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QACjG,MAAM,IAAI,oBAAoB,CAC7B,4BAA4B,CAAC,wBAAwB,EACrD,4DAA4D,CAC5D,CAAC;IACH,CAAC;IAEO,uBAAuB;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAA;QAC1C,MAAM,MAAM,GAA6B,EAAE,CAAA;QAC3C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAA;YAClC,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAA;YACvC,IAAI,IAAI;gBAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzC,CAAC;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAEO,eAAe,CAAC,KAAe;QACtC,MAAM,GAAG,GAAa,EAAE,CAAA;QACxB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC;gBAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAAC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBAAC,IAAI,CAAC,GAAG,CAAC,+CAA+C,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;YAAC,CAAC;QACpH,CAAC;QACD,OAAO,GAAG,CAAA;IACX,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,GAAe;QAChC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QAC3B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;QAChC,8EAA8E;QAC9E,iFAAiF;QACjF,8DAA8D;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAA;QACzF,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;QAE7C,6BAA6B;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;QAC5C,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;QAElD,4EAA4E;QAC5E,6EAA6E;QAC7E,gFAAgF;QAChF,kFAAkF;QAClF,oFAAoF;QACpF,iFAAiF;QACjF,8EAA8E;QAC9E,qFAAqF;QACrF,kFAAkF;QAClF,oFAAoF;QACpF,qFAAqF;QACrF,qFAAqF;QACrF,gEAAgE;QAChE,+EAA+E;QAC/E,iFAAiF;QACjF,4EAA4E;QAC5E,qEAAqE;QACrE,IAAI,gBAAsF,CAAA;QAC1F,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;YACjC,0EAA0E;YAC1E,uDAAuD;YACvD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,CAAA;YAClD,gBAAgB,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAA;YAChE,MAAM,MAAM,GAAa,EAAE,CAAA;YAC3B,MAAM,OAAO,GAAa,EAAE,CAAA;YAC5B,IAAI,cAAc,GAAG,CAAC,CAAA;YACtB,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,gBAAgB,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;gBAChE,IAAI,CAAC,KAAK,QAAQ;oBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;qBAC9B,IAAI,CAAC,KAAK,SAAS;oBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;;oBACrC,cAAc,EAAE,CAAA;YACtB,CAAC;YACD,mFAAmF;YACnF,kFAAkF;YAClF,qFAAqF;YACrF,mFAAmF;YACnF,qFAAqF;YACrF,qFAAqF;YACrF,mFAAmF;YACnF,qFAAqF;YACrF,oFAAoF;YACpF,kFAAkF;YAClF,qFAAqF;YACrF,oFAAoF;YACpF,kFAAkF;YAClF,mFAAmF;YACnF,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAA;YACvD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;YAC7C,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YAC9C,IAAI,CAAC,GAAG,CAAC,8EAA8E,EACtF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QACpE,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAA;QACtD,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAErD,yEAAyE;QACzE,0EAA0E;QAC1E,uEAAuE;QACvE,4EAA4E;QAC5E,8EAA8E;QAC9E,wEAAwE;QACxE,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,CAAA;QACnD,MAAM,cAAc,GAAG,gBAAgB;YACtC,CAAC,CAAC,MAAM,CAAC,WAAW,CACnB,WAAW;iBACT,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,gBAAiB,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAAU,CAAC;iBAC5D,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CACzC;YACD,CAAC,CAAC,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAA;QAElD,IAAI,CAAC,GAAG,CAAC,+CAA+C,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACzG,IAAI,OAAO;YAAE,IAAI,CAAC,GAAG,CAAC,4DAA4D,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAA;QAElH,MAAM,KAAK,GAAiB,EAAE,CAAA;QAE9B,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YACzB,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,IAAI,IAAI,UAAU,EAAE,CAAA;gBACjE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,CAAA;gBAC5H,SAAQ;YACT,CAAC;YACD,MAAM,gBAAgB,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;YACrD,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;YACpD,8DAA8D;YAC9D,qEAAqE;YACrE,iEAAiE;YACjE,+DAA+D;YAC/D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,gBAAgB,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;YAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;YAC3C,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;YAC5C,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE,GAAG,IAAI,IAAI,UAAU,EAAE,CAAA;YAC3D,kEAAkE;YAClE,mEAAmE;YACnE,mEAAmE;YACnE,gEAAgE;YAChE,+DAA+D;YAC/D,2DAA2D;YAC3D,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,CAAA;QAC/E,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,wCAAwC,EAChD,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAA;QACpD,OAAO,KAAK,CAAA;IACb,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,uBAAuB,CAAC,GAAa;QAClD,MAAM,GAAG,GAA6B,EAAE,CAAA;QACxC,MAAM,KAAK,GAAI,IAAI,CAAC,MAA0H,CAAC,SAAS,CAAA;QACxJ,IAAI,CAAC,KAAK,EAAE,GAAG;YAAE,OAAO,GAAG,CAAA;QAC3B,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACzC,IAAI,CAAC;gBACJ,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;gBACnC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAI,CAAC,GAAG,CAAC,CAAA;gBAClC,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;gBACtE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;oBAAE,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;YACzC,CAAC;YAAC,MAAM,CAAC;gBACR,4DAA4D;YAC7D,CAAC;QACF,CAAC,CAAC,CAAC,CAAA;QACH,OAAO,GAAG,CAAA;IACX,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,yBAAyB,CAAC,GAAa;QACpD,MAAM,GAAG,GAA6D,EAAE,CAAA;QACxE,MAAM,KAAK,GAAI,IAAI,CAAC,MAAgJ,CAAC,SAAS,CAAA;QAC9K,IAAI,CAAC,KAAK,EAAE,GAAG;YAAE,OAAO,GAAG,CAAA;QAC3B,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACzC,IAAI,CAAC;gBACJ,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;gBACnC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAI,CAAC,GAAG,CAAC,CAAA;gBAClC,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;gBACtE,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE,EAAE,KAAK,EAAE,CAAA;YACzD,CAAC;YAAC,MAAM,CAAC;gBACR,4DAA4D;YAC7D,CAAC;QACF,CAAC,CAAC,CAAC,CAAA;QACH,OAAO,GAAG,CAAA;IACX,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,2BAA2B,CAAC,GAAa;QACtD,MAAM,GAAG,GAA6B,EAAE,CAAA;QACxC,MAAM,KAAK,GAAI,IAAI,CAAC,MAAsF,CAAC,SAAS,CAAA;QACpH,IAAI,CAAC,KAAK,EAAE,GAAG;YAAE,OAAO,GAAG,CAAA;QAC3B,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACzC,IAAI,CAAC;gBACJ,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;gBACnC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAI,CAAC,GAAG,CAAC,CAAA;gBAClC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,SAAS,IAAI,EAAE,CAAA;YACnC,CAAC;YAAC,MAAM,CAAC;gBACR,wEAAwE;YACzE,CAAC;QACF,CAAC,CAAC,CAAC,CAAA;QACH,OAAO,GAAG,CAAA;IACX,CAAC;IAED;;;;;;;OAOG;IACK,mBAAmB;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED;;;;;OAKG;IACK,YAAY,CAAC,KAAa,EAAE,SAA+B;QAClE,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI;YAAE,OAAO,QAAQ,CAAA;QAChD,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;YAAE,OAAO,QAAQ,CAAA;QAC5D,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAA;QACjE,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,cAAc,gBAAgB,CAAC;eAC1D,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,cAAc,aAAa,CAAC;YAAE,OAAO,QAAQ,CAAA;QAC5E,OAAO,SAAS,CAAA;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACK,KAAK,CAAC,kBAAkB,CAAC,GAAa;QAC7C,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAA;QACtG,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;QAC7C,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAA;QAChG,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,IAAI,kBAAkB,GAAG,KAAK,CAAA;QAC9B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,CAAA;YACpD,IAAI,CAAC,KAAK,QAAQ;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;;gBAC9B,kBAAkB,GAAG,IAAI,CAAA;QAC/B,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAA;IAC9C,CAAC"}
1
+ {"version":3,"file":"libp2p-key-network.js","sourceRoot":"","sources":["../../src/libp2p-key-network.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import { createLibp2p, type Libp2p } from 'libp2p';
1
+ import { createLibp2p } from 'libp2p';
2
2
  import { type CircuitRelayServerInit } from '@libp2p/circuit-relay-v2';
3
3
  import type { ConnectionGater, PrivateKey } from '@libp2p/interface';
4
4
  import type { IRawStorage } from './storage/i-raw-storage.js';
5
5
  import { type CommitCertificateSink } from './cluster/cluster-repo.js';
6
6
  import { type ClusterPolicyOptions } from './cluster/cluster-policy.js';
7
7
  import { type NetworkStatePersistence } from './libp2p-key-network.js';
8
+ import type { OptimysticNode } from './optimystic-node.js';
8
9
  import type { ITransactionValidator } from '@optimystic/db-core';
9
10
  import type { ITransactionStateStore } from './cluster/i-transaction-state-store.js';
10
11
  import type { SpreadOnChurnConfig } from './cluster/spread-on-churn.js';
@@ -196,6 +197,6 @@ export type NodeOptions = ClusterPolicyOptions & {
196
197
  export declare function createLibp2pNodeBase(options: NodeOptions, defaults: {
197
198
  listenAddrs: string[];
198
199
  transports: Libp2pTransports;
199
- }): Promise<Libp2p>;
200
+ }): Promise<OptimysticNode>;
200
201
  export {};
201
202
  //# sourceMappingURL=libp2p-node-base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p-node-base.d.ts","sourceRoot":"","sources":["../../src/libp2p-node-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libp2p-node-base.d.ts","sourceRoot":"","sources":["../../src/libp2p-node-base.ts"],"names":[],"mappings":"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"}