@bolloon/bolloon-agent 0.4.33 → 0.5.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.
- package/dist/agents/contacts/chain.js +27 -7
- package/dist/agents/execution-supervisor.js +493 -35
- package/dist/agents/external-events.js +35 -6
- package/dist/agents/gateway-group.js +100 -12
- package/dist/agents/goal-criteria.js +10 -3
- package/dist/agents/goal-flywheel/block-executor.js +346 -0
- package/dist/agents/goal-flywheel/continuation-decision.js +592 -0
- package/dist/agents/goal-flywheel/goal-change.js +754 -0
- package/dist/agents/goal-flywheel/index.js +26 -0
- package/dist/agents/goal-flywheel/memory-layers.js +227 -0
- package/dist/agents/goal-flywheel/run-closure.js +809 -0
- package/dist/agents/goal-flywheel/skill-candidate.js +628 -0
- package/dist/agents/goal-flywheel/types.js +329 -0
- package/dist/agents/goal-flywheel/wiring/change.js +288 -0
- package/dist/agents/goal-flywheel/wiring/closure.js +697 -0
- package/dist/agents/goal-flywheel/wiring/continuation.js +432 -0
- package/dist/agents/goal-flywheel/wiring/contract.js +270 -0
- package/dist/agents/goal-flywheel/wiring/index.js +26 -0
- package/dist/agents/goal-flywheel/wiring/monitor.js +254 -0
- package/dist/agents/goal-flywheel/wiring/seams.js +592 -0
- package/dist/agents/goal-flywheel/work-contract.js +478 -0
- package/dist/agents/goal-flywheel/work-monitor.js +488 -0
- package/dist/agents/goal-flywheel-wiring.js +1870 -0
- package/dist/agents/goal-state-reducer.js +406 -0
- package/dist/agents/goal-store.js +35 -1
- package/dist/agents/mobile-flywheel-view.js +144 -0
- package/dist/agents/mobile-task-actions-verify.js +74 -0
- package/dist/agents/mobile-task-actions.js +178 -0
- package/dist/agents/mobile-task-views.js +199 -0
- package/dist/agents/network-pulse.js +304 -18
- package/dist/agents/pi-sdk.js +75 -20
- package/dist/agents/run-store.js +18 -5
- package/dist/agents/skill-readiness.js +52 -10
- package/dist/agents/subagent-manager.js +209 -3
- package/dist/agents/task/task-runner.js +9 -3
- package/dist/agents/task-group.js +8 -51
- package/dist/agents/task-public-text.js +89 -0
- package/dist/cli/commands/index.js +1 -0
- package/dist/cli/commands/tasks.js +350 -2
- package/dist/cli/identity-command.js +177 -0
- package/dist/cli/setup-wizard.js +71 -0
- package/dist/cli/update-commands.js +150 -24
- package/dist/cli-entry.js +12 -2
- package/dist/electron-build/agents/contacts/chain.js +26 -6
- package/dist/electron-build/agents/contacts/chain.js.map +1 -1
- package/dist/electron-build/agents/execution-supervisor.js +492 -34
- package/dist/electron-build/agents/execution-supervisor.js.map +1 -1
- package/dist/electron-build/agents/external-events.js +34 -5
- package/dist/electron-build/agents/external-events.js.map +1 -1
- package/dist/electron-build/agents/goal-criteria.js +10 -3
- package/dist/electron-build/agents/goal-criteria.js.map +1 -1
- package/dist/electron-build/agents/goal-flywheel/continuation-decision.js +598 -0
- package/dist/electron-build/agents/goal-flywheel/continuation-decision.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/goal-change.js +773 -0
- package/dist/electron-build/agents/goal-flywheel/goal-change.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/memory-layers.js +269 -0
- package/dist/electron-build/agents/goal-flywheel/memory-layers.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/run-closure.js +818 -0
- package/dist/electron-build/agents/goal-flywheel/run-closure.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/skill-candidate.js +642 -0
- package/dist/electron-build/agents/goal-flywheel/skill-candidate.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/types.js +333 -0
- package/dist/electron-build/agents/goal-flywheel/types.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/change.js +294 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/change.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/closure.js +742 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/closure.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/continuation.js +444 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/continuation.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/contract.js +279 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/contract.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/index.js +111 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/index.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/monitor.js +264 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/monitor.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/seams.js +612 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/seams.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/work-contract.js +488 -0
- package/dist/electron-build/agents/goal-flywheel/work-contract.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/work-monitor.js +501 -0
- package/dist/electron-build/agents/goal-flywheel/work-monitor.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel-wiring.js +1962 -0
- package/dist/electron-build/agents/goal-flywheel-wiring.js.map +1 -0
- package/dist/electron-build/agents/goal-state-reducer.js +414 -0
- package/dist/electron-build/agents/goal-state-reducer.js.map +1 -0
- package/dist/electron-build/agents/goal-store.js +35 -1
- package/dist/electron-build/agents/goal-store.js.map +1 -1
- package/dist/electron-build/agents/network-pulse.js +307 -19
- package/dist/electron-build/agents/network-pulse.js.map +1 -1
- package/dist/electron-build/agents/pi-sdk.js +74 -19
- package/dist/electron-build/agents/pi-sdk.js.map +1 -1
- package/dist/electron-build/agents/run-store.js +20 -5
- package/dist/electron-build/agents/run-store.js.map +1 -1
- package/dist/electron-build/agents/skill-readiness.js +52 -9
- package/dist/electron-build/agents/skill-readiness.js.map +1 -1
- package/dist/electron-build/agents/task/task-runner.js +8 -2
- package/dist/electron-build/agents/task/task-runner.js.map +1 -1
- package/dist/electron-build/orbitdb/cid-database.js +83 -17
- package/dist/electron-build/orbitdb/cid-database.js.map +1 -1
- package/dist/electron-build/orbitdb/ipfs-node.js +31 -2
- package/dist/electron-build/orbitdb/ipfs-node.js.map +1 -1
- package/dist/electron-build/utils/dual-source.js +471 -0
- package/dist/electron-build/utils/dual-source.js.map +1 -0
- package/dist/electron-build/utils/update-manager.js +331 -57
- package/dist/electron-build/utils/update-manager.js.map +1 -1
- package/dist/electron-build/utils/update-state.js +16 -1
- package/dist/electron-build/utils/update-state.js.map +1 -1
- package/dist/electron-build/utils/version-info.js +82 -2
- package/dist/electron-build/utils/version-info.js.map +1 -1
- package/dist/index.js +103 -12
- package/dist/ios/chain-explorer.js +617 -0
- package/dist/ios/explorer.html +163 -0
- package/dist/ios/index.html +96 -0
- package/dist/ios/mobile-agent.js +2 -2
- package/dist/ios/mobile-contacts.js +329 -0
- package/dist/ios/mobile-core.js +1379 -226
- package/dist/ios/mobile-privacy.js +185 -0
- package/dist/ios/mobile.css +19 -0
- package/dist/ios/mobile.html +96 -0
- package/dist/ios/mobile.js +706 -7
- package/dist/ios/routes-chain-index.js +108 -0
- package/dist/ios/routes-contacts.js +420 -0
- package/dist/ios/routes-onchain-trade.js +99 -0
- package/dist/ios/routes-x402-info.js +1 -0
- package/dist/ios/server.js +762 -0
- package/dist/ios/task-frame-server.js +211 -0
- package/dist/orbitdb/cid-database.js +81 -16
- package/dist/orbitdb/ipfs-node.js +31 -2
- package/dist/utils/dual-source.js +426 -0
- package/dist/utils/update-cli.js +16 -21
- package/dist/utils/update-health.js +35 -5
- package/dist/utils/update-manager.js +329 -57
- package/dist/utils/update-state.js +16 -1
- package/dist/utils/version-info.js +75 -1
- package/dist/web/mobile-contacts.js +44 -11
- package/dist/web/mobile-core.js +1197 -513
- package/dist/web/mobile-tasks.js +339 -0
- package/dist/web/mobile.css +19 -0
- package/dist/web/mobile.html +64 -0
- package/dist/web/mobile.js +531 -1
- package/dist/web/routes-mobile-tasks.js +353 -0
- package/dist/web/server.js +163 -4
- package/package.json +3 -1
|
@@ -53,7 +53,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
53
53
|
};
|
|
54
54
|
})();
|
|
55
55
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
56
|
-
exports.OrbitDBAdapter = void 0;
|
|
56
|
+
exports.OrbitDBAdapter = exports.OrbitDBStoreUnreachableError = void 0;
|
|
57
57
|
exports.contentToCid = contentToCid;
|
|
58
58
|
exports.getCIDDatabase = getCIDDatabase;
|
|
59
59
|
const cid_1 = require("multiformats/cid");
|
|
@@ -61,9 +61,42 @@ const dagCbor = __importStar(require("@ipld/dag-cbor"));
|
|
|
61
61
|
const sha2_1 = require("multiformats/hashes/sha2");
|
|
62
62
|
const concat_1 = require("uint8arrays/concat");
|
|
63
63
|
const core_1 = require("@orbitdb/core");
|
|
64
|
+
const orbitdbCoreNs = __importStar(require("@orbitdb/core"));
|
|
65
|
+
/**
|
|
66
|
+
* 运行时取 `IPFSAccessController` (2026-09-24)。
|
|
67
|
+
*
|
|
68
|
+
* 它在运行时是**真具名导出** (`@orbitdb/core` 4.0.0 `src/index.js:26`, 经
|
|
69
|
+
* `./access-controllers/index.js` 二级再导出), 但该包是**纯 JS 包**: `package.json`
|
|
70
|
+
* 既无 `types` 也无 `exports`、包内没有任何 `.d.ts` —— TS7 从 JS 推断导出集时看不见
|
|
71
|
+
* 这个二级再导出, `import { IPFSAccessController }` 直接 TS2305。
|
|
72
|
+
* 所以从命名空间按需取一次并显式收窄到已知形状; 不给整个模块上 `any`
|
|
73
|
+
* (createOrbitDB / OrbitDB / KeyValue 仍照旧受类型检查)。
|
|
74
|
+
*/
|
|
75
|
+
const IPFSAccessController = orbitdbCoreNs.IPFSAccessController;
|
|
64
76
|
const ipfs_node_js_1 = require("./ipfs-node.js");
|
|
65
77
|
const path = __importStar(require("path"));
|
|
66
78
|
const os = __importStar(require("os"));
|
|
79
|
+
/**
|
|
80
|
+
* store 打不开 (地址不可解析 / 区块不在本地且没有 block broker 能去网上取)。
|
|
81
|
+
*
|
|
82
|
+
* 2026-09-24: 原来 `openStoreByAddress` 失败返回 null, 上游 (gateway-group) 把它当"空群",
|
|
83
|
+
* 于是"读不到"被显示成"没有消息"。改成**抛**: 打不开 ≠ 没内容。
|
|
84
|
+
*/
|
|
85
|
+
class OrbitDBStoreUnreachableError extends Error {
|
|
86
|
+
address;
|
|
87
|
+
cause;
|
|
88
|
+
dataDir;
|
|
89
|
+
code = 'STORE_UNREACHABLE';
|
|
90
|
+
constructor(address, cause, dataDir) {
|
|
91
|
+
const why = String(cause?.message ?? cause ?? '未知原因').slice(0, 200);
|
|
92
|
+
super(`store 不可达 (${address}): ${why}`);
|
|
93
|
+
this.address = address;
|
|
94
|
+
this.cause = cause;
|
|
95
|
+
this.dataDir = dataDir;
|
|
96
|
+
this.name = 'OrbitDBStoreUnreachableError';
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.OrbitDBStoreUnreachableError = OrbitDBStoreUnreachableError;
|
|
67
100
|
/** 内容 → CID (dag-cbor, sha2-256, codec 0x71); 先 JSON 清洗 (dag-cbor 不支持 undefined) */
|
|
68
101
|
async function contentToCid(obj) {
|
|
69
102
|
const cleaned = JSON.parse(JSON.stringify(obj)); // 丢弃 undefined 字段
|
|
@@ -72,6 +105,26 @@ async function contentToCid(obj) {
|
|
|
72
105
|
return cid_1.CID.createV1(0x71, hash).toString();
|
|
73
106
|
}
|
|
74
107
|
const home = () => process.env.HOME || os.homedir() || '/tmp';
|
|
108
|
+
/**
|
|
109
|
+
* OrbitDB 身份在 keystore 里的槽名 (2026-09-24)。
|
|
110
|
+
* 固定槽名 = 同一 dataDir 下每个进程读到**同一对密钥 / 同一个身份**。
|
|
111
|
+
* 不固定 (@orbitdb/core 默认 createId() 随机 32 位) 会让每个进程变成新写入者,
|
|
112
|
+
* 于是 `canAppend` 拿新身份去比对老 manifest 的 write 列表 → 一律拒绝。
|
|
113
|
+
*/
|
|
114
|
+
const ORBITDB_IDENTITY_ID = 'bolloon';
|
|
115
|
+
/**
|
|
116
|
+
* `opts.accessController.write` → OrbitDB v4 的大写 `AccessController` 工厂 (2026-09-24)。
|
|
117
|
+
*
|
|
118
|
+
* @orbitdb/core v4 的 `open(address, options)` **只认大写 `AccessController`** (一个构造函数),
|
|
119
|
+
* 小写 `accessController: { write: [...] }` 会被静默丢弃 → 新 store 落回默认策略
|
|
120
|
+
* (`IPFSAccessController`: `write = write || [创建者身份 id]`, 即创建者独占写)。
|
|
121
|
+
* 于是 gateway-group 一直传的 `write:['*']` (「群成员可广播」) **从来没生效过**。
|
|
122
|
+
* 这里把已成文的选项接上; 对已存在的地址, manifest 里的 AC 仍优先 (这里不改变既有群)。
|
|
123
|
+
*/
|
|
124
|
+
function accessControllerOption(opts) {
|
|
125
|
+
const write = opts?.accessController?.write;
|
|
126
|
+
return Array.isArray(write) && write.length ? { AccessController: IPFSAccessController({ write }) } : {};
|
|
127
|
+
}
|
|
75
128
|
/**
|
|
76
129
|
* OrbitDB 后端实现。单例: 同一进程只建一个 (helia/OrbitDB 都是重量级节点)。
|
|
77
130
|
*/
|
|
@@ -84,15 +137,29 @@ class OrbitDBAdapter {
|
|
|
84
137
|
constructor(dataDir = path.join(home(), '.bolloon', 'orbitdb')) {
|
|
85
138
|
this.dataDir = dataDir;
|
|
86
139
|
}
|
|
140
|
+
/** 落盘位置 (未初始化时 null; 诊断/验收用) */
|
|
141
|
+
get ipfsPaths() {
|
|
142
|
+
return this.node?.paths ?? null;
|
|
143
|
+
}
|
|
87
144
|
/** 懒初始化: 首次使用时启动 helia + OrbitDB + 打开 keyvalue store */
|
|
88
145
|
async ensure() {
|
|
89
146
|
if (this.db)
|
|
90
147
|
return;
|
|
91
148
|
this.node = await (0, ipfs_node_js_1.createBolloonIpfs)(path.join(this.dataDir, 'ipfs'));
|
|
92
|
-
|
|
149
|
+
// 2026-09-24: 身份必须**跨进程稳定**。不给 id 时 @orbitdb/core 用 createId()
|
|
150
|
+
// (32 位随机串) 当 keystore 槽名 (src/orbitdb.js:43 `id = id || await createId()`
|
|
151
|
+
// → :61 `createIdentity({ id })`) → 每个进程一对新密钥 → 新身份 → 写自己的 store
|
|
152
|
+
// 会被访问控制拒掉 ("Key … is not allowed to write to the log")。
|
|
153
|
+
// 给固定槽名后, 密钥从 <dataDir>/stores/keystore 读出复用 → 同 dataDir 同身份。
|
|
154
|
+
// 类型注: `id` 是 @orbitdb/core 的真选项 (src/orbitdb.js:33), 但 TS7 从 JS 推断出的
|
|
155
|
+
// 参数类型漏了它 → 显式取 Parameters<typeof createOrbitDB>[0] 再补 { id }
|
|
156
|
+
// (不裸 any 掉整个入参)。
|
|
157
|
+
const init = {
|
|
93
158
|
ipfs: this.node.helia,
|
|
94
159
|
directory: path.join(this.dataDir, 'stores'),
|
|
95
|
-
|
|
160
|
+
id: ORBITDB_IDENTITY_ID,
|
|
161
|
+
};
|
|
162
|
+
this._orbitdb = await (0, core_1.createOrbitDB)(init);
|
|
96
163
|
this.db = await this._orbitdb.open('bolloon-cid-store', { type: 'keyvalue' });
|
|
97
164
|
// 共享底层实例 (只读暴露)
|
|
98
165
|
this.orbitdb = this._orbitdb;
|
|
@@ -230,33 +297,32 @@ class OrbitDBAdapter {
|
|
|
230
297
|
*/
|
|
231
298
|
async openStore(name, type = 'keyvalue', opts) {
|
|
232
299
|
await this.ensure();
|
|
233
|
-
const options = { type };
|
|
234
|
-
if (opts?.accessController)
|
|
235
|
-
options.accessController = opts.accessController;
|
|
300
|
+
const options = { type, ...accessControllerOption(opts) };
|
|
236
301
|
const raw = (await this._orbitdb.open(name, options));
|
|
237
302
|
return this.wrapStore(raw);
|
|
238
303
|
}
|
|
239
304
|
/**
|
|
240
305
|
* 2026-08-14: 按地址打开远端 store (Agent Gateway 共享网络 / 群组)。
|
|
241
|
-
*
|
|
242
|
-
*
|
|
306
|
+
*
|
|
307
|
+
* 2026-09-24: 失败改为**抛 OrbitDBStoreUnreachableError** (含原始错误原因),
|
|
308
|
+
* 不再 `console.warn` + return null —— 那让"整个群读不到"在上层显示成"群里没有消息"。
|
|
309
|
+
*
|
|
310
|
+
* 2026-09-24 (修正既有错述): **不再往 OrbitDB 传 `replica`** ——
|
|
311
|
+
* `@orbitdb/core` 4.0.0 的 `open()` 参数表里没有它 (src/orbitdb.js:118), 传了也被丢,
|
|
312
|
+
* 之前的"replica=true 只读副本"是**不存在的语义**(等于什么都没做)。入参保留以兼容
|
|
313
|
+
* 既有调用点, 但不再冒充 OrbitDB 选项。可写与否由 manifest 里的 ACL + 调用方是否 `put` 决定。
|
|
314
|
+
* `opts.accessController` 在**打开既有地址**时同样不生效 (见接口注释: AC 由 manifest 决定)。
|
|
243
315
|
*/
|
|
244
316
|
async openStoreByAddress(address, type = 'keyvalue', opts) {
|
|
245
317
|
await this.ensure();
|
|
246
318
|
try {
|
|
247
|
-
const options = { type };
|
|
248
|
-
if (opts?.replica === false)
|
|
249
|
-
options.replica = false;
|
|
250
|
-
else
|
|
251
|
-
options.replica = true;
|
|
252
|
-
if (opts?.accessController)
|
|
253
|
-
options.accessController = opts.accessController;
|
|
319
|
+
const options = { type, ...accessControllerOption(opts) };
|
|
254
320
|
const raw = (await this._orbitdb.open(address, options));
|
|
255
321
|
return this.wrapStore(raw);
|
|
256
322
|
}
|
|
257
323
|
catch (err) {
|
|
258
|
-
|
|
259
|
-
|
|
324
|
+
// 大声失败: 带上地址 + 原始原因 (最常见: "No block brokers capable of retrieving blocks ...")
|
|
325
|
+
throw new OrbitDBStoreUnreachableError(address, err, this.dataDir);
|
|
260
326
|
}
|
|
261
327
|
}
|
|
262
328
|
async close() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cid-database.js","sourceRoot":"","sources":["../../../src/orbitdb/cid-database.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,0CAAuC;AACvC,MAAY,OAAO,2CAAuB;AAC1C,mDAAkD;AAClD,+CAA2D;AAC3D,wCAA2E;AAC3E,iDAAqE;AACrE,MAAY,IAAI,iCAAa;AAC7B,MAAY,EAAE,+BAAW;
|
|
1
|
+
{"version":3,"file":"cid-database.js","sourceRoot":"","sources":["../../../src/orbitdb/cid-database.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* ipfs-node.ts — Bolloon 的 OrbitDB 底层 IPFS 节点工厂 (2026-08-06)
|
|
3
|
+
* ipfs-node.ts — Bolloon 的 OrbitDB 底层 IPFS 节点工厂 (2026-08-06; 落盘 2026-09-24)
|
|
4
4
|
*
|
|
5
5
|
* 基于 helia 7:
|
|
6
6
|
* - createHelia() 内部已 withLibp2p 但**不传 opts** → 无法自定义 services
|
|
@@ -11,6 +11,20 @@
|
|
|
11
11
|
* 必须显式列出要保留的默认服务 (dht/identify/keychain/...)
|
|
12
12
|
* - withLibp2p().start() 之后 libp2p getter 才可用 (之前抛 NotStartedError)
|
|
13
13
|
*
|
|
14
|
+
* 2026-09-24 **区块/datastore 落盘修复** (跨进程可重开的根因):
|
|
15
|
+
* 原来 createHeliaLight 只传 codecs/hashers → helia 用默认 MemoryBlockstore / MemoryDatastore,
|
|
16
|
+
* 而 OrbitDB 的 manifest 与 oplog 条目都走 IPFSBlockStorage(ipfs.blockstore) 存
|
|
17
|
+
* (@orbitdb/core/src/storage/ipfs-block.js)。于是 `~/.bolloon/orbitdb/` 下只有 stores/
|
|
18
|
+
* (keystore + log/_heads 的 LevelDB), 没有 ipfs/ 块存储 —— store 只活在创建它的那个进程里。
|
|
19
|
+
* 新进程用地址重开必挂在 manifestStore.get():
|
|
20
|
+
* "No block brokers capable of retrieving blocks are configured, the CID bafyrei… cannot be fetched"
|
|
21
|
+
* 现在: FsBlockstore(dataDir/blocks) + FsDatastore(dataDir/datastore) 真落盘。
|
|
22
|
+
* · datastore 顺带持久化 pin (helia pins) 与 libp2p 私钥
|
|
23
|
+
* (@helia/libp2p: loadOrCreateSelfKey(helia.datastore) + opts.datastore ??= helia.datastore)
|
|
24
|
+
* → 同一 dataDir 的 peerId 跨进程稳定。
|
|
25
|
+
* · 这两个包是 Node 专用 (node:fs / node:path); 本文件只被 Node 侧 import,
|
|
26
|
+
* 浏览器入口 (client.ts / mobile-core.ts / a2ui-client.tsx) 到不了这里 —— 不伤 Web 包。
|
|
27
|
+
*
|
|
14
28
|
* 跑法: npx tsx scripts/smoke-orbitdb.ts
|
|
15
29
|
*/
|
|
16
30
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
@@ -51,6 +65,8 @@ exports.createBolloonIpfs = createBolloonIpfs;
|
|
|
51
65
|
exports.dbNameFromAddress = dbNameFromAddress;
|
|
52
66
|
const helia_1 = require("helia");
|
|
53
67
|
const libp2p_1 = require("@helia/libp2p");
|
|
68
|
+
const blockstore_fs_1 = require("blockstore-fs");
|
|
69
|
+
const datastore_fs_1 = require("datastore-fs");
|
|
54
70
|
const dagCbor = __importStar(require("@ipld/dag-cbor"));
|
|
55
71
|
const dagJson = __importStar(require("@ipld/dag-json"));
|
|
56
72
|
const json = __importStar(require("multiformats/codecs/json"));
|
|
@@ -74,13 +90,25 @@ const os = __importStar(require("os"));
|
|
|
74
90
|
/**
|
|
75
91
|
* 创建 Bolloon 用的 helia 节点 (libp2p 完整默认服务 + gossipsub pubsub)。
|
|
76
92
|
* dataDir 持久化节点身份/数据 (默认 ~/.bolloon/orbitdb-ipfs)。
|
|
93
|
+
*
|
|
94
|
+
* 2026-09-24: dataDir 下真落两个目录 —— `blocks/` (区块) 与 `datastore/` (pin + peerkey)。
|
|
95
|
+
* 目录不可写时**直接抛** (不退回内存: 静默退回正好是"新进程读不到群"的根因)。
|
|
77
96
|
*/
|
|
78
97
|
async function createBolloonIpfs(dataDir) {
|
|
79
|
-
const dir = dataDir ?? path.join(process.env.HOME || os.homedir() || '/tmp', '.bolloon', 'orbitdb-ipfs');
|
|
98
|
+
const dir = path.resolve(dataDir ?? path.join(process.env.HOME || os.homedir() || '/tmp', '.bolloon', 'orbitdb-ipfs'));
|
|
99
|
+
const blocksDir = path.join(dir, 'blocks');
|
|
100
|
+
const datastoreDir = path.join(dir, 'datastore');
|
|
101
|
+
// 落盘存储: 不传这两个, helia 默认 MemoryBlockstore/MemoryDatastore → 进程退出即丢区块
|
|
102
|
+
const blockstore = new blockstore_fs_1.FsBlockstore(blocksDir);
|
|
103
|
+
const datastore = new datastore_fs_1.FsDatastore(datastoreDir);
|
|
104
|
+
await blockstore.open(); // 建目录 + F_OK|W_OK 探测, 失败抛 OpenFailedError (不静默)
|
|
105
|
+
await datastore.open();
|
|
80
106
|
// createHeliaLight 无 libp2p → withLibp2p 手动装配 (可传 services)
|
|
81
107
|
// codecs/hashers 照抄 createHelia 默认: OrbitDB 的 log entry 用 dag-cbor (codec 113),
|
|
82
108
|
// 不注册会报 "Could not load codec for 113"
|
|
83
109
|
const helia = (0, libp2p_1.withLibp2p)((0, helia_1.createHeliaLight)({
|
|
110
|
+
blockstore,
|
|
111
|
+
datastore,
|
|
84
112
|
codecs: [dagCbor, dagJson, json],
|
|
85
113
|
hashers: [sha2_1.sha512],
|
|
86
114
|
}), {
|
|
@@ -108,6 +136,7 @@ async function createBolloonIpfs(dataDir) {
|
|
|
108
136
|
return {
|
|
109
137
|
helia,
|
|
110
138
|
peerId,
|
|
139
|
+
paths: { dataDir: dir, blocksDir, datastoreDir },
|
|
111
140
|
start: async () => { await helia.start(); },
|
|
112
141
|
stop: async () => { await helia.stop(); },
|
|
113
142
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipfs-node.js","sourceRoot":"","sources":["../../../src/orbitdb/ipfs-node.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"ipfs-node.js","sourceRoot":"","sources":["../../../src/orbitdb/ipfs-node.ts"],"names":[],"mappings":"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"}
|