orbitdb-relay-pinner 0.9.0 → 0.9.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.
package/.env.example CHANGED
@@ -63,6 +63,16 @@
63
63
  # TEST_PRIVATE_KEY=
64
64
  # RELAY_PRIV_KEY=
65
65
 
66
+ # --- Optional libp2p connectivity debug protocols ---
67
+ # Expose /connectivity-echo/1.0.0 for line-based echo tests.
68
+ # RELAY_CONNECTIVITY_ECHO_ENABLED=false
69
+ # Expose /connectivity-bulk/1.0.0 for framed bulk round-trip tests.
70
+ # RELAY_CONNECTIVITY_BULK_ENABLED=false
71
+ # Optional bulk protocol tuning (defaults: 262144 bytes, 10000ms read, 30000ms idle).
72
+ # RELAY_CONNECTIVITY_BULK_MAX_FRAME_BYTES=262144
73
+ # RELAY_CONNECTIVITY_BULK_READ_TIMEOUT_MS=10000
74
+ # RELAY_CONNECTIVITY_BULK_IDLE_TIMEOUT_MS=30000
75
+
66
76
  # --- TLS (optional) ---
67
77
  # disableAutoTLS=
68
78
  # STAGING=false
package/README.md CHANGED
@@ -29,6 +29,15 @@ Run:
29
29
  orbitdb-relay-pinner
30
30
  ```
31
31
 
32
+ Optional connectivity debug protocols for test tooling are disabled by default in the CLI/runtime. Enable them with env vars before startup:
33
+
34
+ ```bash
35
+ RELAY_CONNECTIVITY_ECHO_ENABLED=1 orbitdb-relay-pinner
36
+ RELAY_CONNECTIVITY_BULK_ENABLED=1 orbitdb-relay-pinner
37
+ ```
38
+
39
+ Bulk tuning is also available through `RELAY_CONNECTIVITY_BULK_MAX_FRAME_BYTES`, `RELAY_CONNECTIVITY_BULK_READ_TIMEOUT_MS`, and `RELAY_CONNECTIVITY_BULK_IDLE_TIMEOUT_MS`.
40
+
32
41
  Default listener ports:
33
42
 
34
43
  - TCP: `9091` via `RELAY_TCP_PORT`
@@ -1 +1 @@
1
- {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"AASA,OAAO,EAAqC,KAAK,qCAAqC,EAAE,MAAM,oDAAoD,CAAA;AAKlJ,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,qCAAqC,CAAA;IACtD,WAAW,CAAC,EAAE;QACZ,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,YAAY,CAAC,EAAE,aAAa,GAAG,+BAA+B,CAAA;QAC9D,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B,CAAA;AAwDD,wBAAsB,UAAU,CAAC,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAiF/E"}
1
+ {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"AASA,OAAO,EAAqC,KAAK,qCAAqC,EAAE,MAAM,oDAAoD,CAAA;AAKlJ,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,qCAAqC,CAAA;IACtD,WAAW,CAAC,EAAE;QACZ,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,YAAY,CAAC,EAAE,aAAa,GAAG,+BAA+B,CAAA;QAC9D,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B,CAAA;AA+HD,wBAAsB,UAAU,CAAC,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAkF/E"}
package/dist/relay.js CHANGED
@@ -10,6 +10,68 @@ import { connectivityDebugProtocolsService } from './services/connectivity-debug
10
10
  import { setupEventHandlers } from './events/handlers.js';
11
11
  import { loggingConfig } from './config/logging.js';
12
12
  import { headsStreamLog, log } from './utils/logger.js';
13
+ function readBooleanEnvVar(name) {
14
+ const raw = process.env[name]?.trim().toLowerCase();
15
+ if (raw == null || raw === '')
16
+ return undefined;
17
+ if (raw === '1' || raw === 'true')
18
+ return true;
19
+ if (raw === '0' || raw === 'false')
20
+ return false;
21
+ return undefined;
22
+ }
23
+ function readNumberEnvVar(name) {
24
+ const raw = process.env[name]?.trim();
25
+ if (raw == null || raw === '')
26
+ return undefined;
27
+ const parsed = Number(raw);
28
+ return Number.isFinite(parsed) ? parsed : undefined;
29
+ }
30
+ function readDebugProtocolsFromEnv() {
31
+ const echoEnabled = readBooleanEnvVar('RELAY_CONNECTIVITY_ECHO_ENABLED');
32
+ const bulkEnabled = readBooleanEnvVar('RELAY_CONNECTIVITY_BULK_ENABLED');
33
+ const maxFrameBytes = readNumberEnvVar('RELAY_CONNECTIVITY_BULK_MAX_FRAME_BYTES');
34
+ const readTimeoutMs = readNumberEnvVar('RELAY_CONNECTIVITY_BULK_READ_TIMEOUT_MS');
35
+ const idleTimeoutMs = readNumberEnvVar('RELAY_CONNECTIVITY_BULK_IDLE_TIMEOUT_MS');
36
+ const echo = echoEnabled === undefined
37
+ ? undefined
38
+ : {
39
+ enabled: echoEnabled,
40
+ };
41
+ const bulk = bulkEnabled === undefined &&
42
+ maxFrameBytes === undefined &&
43
+ readTimeoutMs === undefined &&
44
+ idleTimeoutMs === undefined
45
+ ? undefined
46
+ : {
47
+ enabled: bulkEnabled,
48
+ maxFrameBytes,
49
+ readTimeoutMs,
50
+ idleTimeoutMs,
51
+ };
52
+ if (echo == null && bulk == null)
53
+ return undefined;
54
+ return { ...(echo ? { echo } : {}), ...(bulk ? { bulk } : {}) };
55
+ }
56
+ function mergeDebugProtocolOptions(envOptions, runtimeOptions) {
57
+ const merged = {
58
+ echo: envOptions?.echo || runtimeOptions?.echo
59
+ ? {
60
+ ...(envOptions?.echo ?? {}),
61
+ ...(runtimeOptions?.echo ?? {}),
62
+ }
63
+ : undefined,
64
+ bulk: envOptions?.bulk || runtimeOptions?.bulk
65
+ ? {
66
+ ...(envOptions?.bulk ?? {}),
67
+ ...(runtimeOptions?.bulk ?? {}),
68
+ }
69
+ : undefined,
70
+ };
71
+ if (merged.echo == null && merged.bulk == null)
72
+ return undefined;
73
+ return merged;
74
+ }
13
75
  function attachOrbitdbHeadsStreamLogging(libp2p) {
14
76
  if (!libp2p || libp2p.__orbitdbHeadsLoggingAttached)
15
77
  return;
@@ -55,6 +117,7 @@ function attachOrbitdbHeadsStreamLogging(libp2p) {
55
117
  }
56
118
  export async function startRelay(opts = {}) {
57
119
  const isTestMode = Boolean(opts.testMode);
120
+ const debugProtocols = mergeDebugProtocolOptions(readDebugProtocolsFromEnv(), opts.debugProtocols);
58
121
  const storageDir = opts.storageDir || process.env.DATASTORE_PATH || process.env.RELAY_DATASTORE_PATH || './orbitdb/pinning-service';
59
122
  const storage = await initializeStorage(storageDir);
60
123
  const { blockstore, datastore } = storage;
@@ -71,9 +134,9 @@ export async function startRelay(opts = {}) {
71
134
  blockstore,
72
135
  orbitdbDirectory: join(storageDir, 'orbitdb'),
73
136
  }),
74
- ...(opts.debugProtocols != null
137
+ ...(debugProtocols != null
75
138
  ? {
76
- connectivityDebugProtocols: connectivityDebugProtocolsService(opts.debugProtocols),
139
+ connectivityDebugProtocols: connectivityDebugProtocolsService(debugProtocols),
77
140
  }
78
141
  : {}),
79
142
  }));
package/dist/relay.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,11 @@ It also exports:
11
11
  - `createPinningHttpRequestHandler()` for embedding `/health`, `/multiaddrs`, `/pinning/*`, and `/ipfs/*`
12
12
  - `PinningHttpServer` as a small HTTP(S) wrapper around that request handler
13
13
 
14
+ In the default `startRelay()` runtime, those debug protocols stay disabled unless you either:
15
+
16
+ - pass `debugProtocols` programmatically, or
17
+ - set `RELAY_CONNECTIVITY_ECHO_ENABLED=1` and/or `RELAY_CONNECTIVITY_BULK_ENABLED=1`
18
+
14
19
  ## Install
15
20
 
16
21
  Published package:
@@ -79,7 +79,7 @@ sudo tee /opt/orbitdb-relay-pinner/package.json >/dev/null <<'EOF'
79
79
  "private": true,
80
80
  "type": "module",
81
81
  "dependencies": {
82
- "orbitdb-relay-pinner": "^0.6.3"
82
+ "orbitdb-relay-pinner": "^0.9.1"
83
83
  }
84
84
  }
85
85
  EOF
@@ -102,12 +102,28 @@ Edit `/etc/default/orbitdb-relay-pinner`:
102
102
  1. **`DATASTORE_PATH=/var/lib/orbitdb-relay-pinner`**
103
103
  2. **`VITE_APPEND_ANNOUNCE`** — set to your **public IPv4** and ports **28191–28193**. Example for **`relay2.seidenwege.com`** (or **`relay.seidenwege.com`**) at `203.0.113.7`:
104
104
 
105
- ```bash
106
- VITE_APPEND_ANNOUNCE=/ip4/203.0.113.7/tcp/28191,/ip4/203.0.113.7/tcp/28192/ws,/ip4/203.0.113.7/udp/28193/webrtc-direct
107
- ```
105
+ ```bash
106
+ VITE_APPEND_ANNOUNCE=/ip4/203.0.113.7/tcp/28191,/ip4/203.0.113.7/tcp/28192/ws,/ip4/203.0.113.7/udp/28193/webrtc-direct
107
+ ```
108
108
 
109
109
  3. Do **not** set `disableAutoTLS` for production WSS via AutoTLS.
110
110
  4. Optional: `STAGING=true` while testing Let’s Encrypt **staging** (then remove for production).
111
+ 5. Optional: enable the test/debug libp2p protocols only when you actively need them:
112
+
113
+ ```bash
114
+ RELAY_CONNECTIVITY_ECHO_ENABLED=1
115
+ RELAY_CONNECTIVITY_BULK_ENABLED=1
116
+ ```
117
+
118
+ Optional bulk tuning:
119
+
120
+ ```bash
121
+ RELAY_CONNECTIVITY_BULK_MAX_FRAME_BYTES=262144
122
+ RELAY_CONNECTIVITY_BULK_READ_TIMEOUT_MS=10000
123
+ RELAY_CONNECTIVITY_BULK_IDLE_TIMEOUT_MS=30000
124
+ ```
125
+
126
+ Leave them unset for normal production operation; they are disabled by default.
111
127
 
112
128
  ### 4. systemd unit
113
129
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orbitdb-relay-pinner",
3
- "version": "0.9.0",
3
+ "version": "0.9.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "OrbitDB relay + pinning/sync service for Helia/libp2p stacks.",
@@ -21,6 +21,7 @@
21
21
  "pinning"
22
22
  ],
23
23
  "license": "MIT",
24
+ "packageManager": "pnpm@10.33.0",
24
25
  "engines": {
25
26
  "node": ">=22"
26
27
  },
@@ -41,6 +42,13 @@
41
42
  "bin": {
42
43
  "orbitdb-relay-pinner": "dist/cli.js"
43
44
  },
45
+ "scripts": {
46
+ "start": "DEBUG=le-space:relay:* node dist/cli.js",
47
+ "build": "tsc -p tsconfig.json && node scripts/add-shebang.mjs",
48
+ "test": "pnpm run build && mocha --timeout 180000 \"mocha/**/*.mjs\"",
49
+ "test:integration:relay-media": "pnpm run build && mocha --timeout 180000 \"mocha/relay-media-replication.mjs\"",
50
+ "prepack": "pnpm run build"
51
+ },
44
52
  "overrides": {
45
53
  "it-length-prefixed": "9.1.1"
46
54
  },
@@ -94,11 +102,5 @@
94
102
  "@types/node": "^22.13.1",
95
103
  "mocha": "^11.7.2",
96
104
  "typescript": "^5.8.3"
97
- },
98
- "scripts": {
99
- "start": "DEBUG=le-space:relay:* node dist/cli.js",
100
- "build": "tsc -p tsconfig.json && node scripts/add-shebang.mjs",
101
- "test": "pnpm run build && mocha --timeout 180000 \"mocha/**/*.mjs\"",
102
- "test:integration:relay-media": "pnpm run build && mocha --timeout 180000 \"mocha/relay-media-replication.mjs\""
103
105
  }
104
- }
106
+ }