signalk-p2p-plugin 0.3.0 → 0.4.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/CHANGELOG.md +20 -0
- package/README.md +41 -14
- package/deploy/README.md +20 -2
- package/deploy/policy.json +30 -0
- package/dist/advanced-config.d.ts +11 -0
- package/dist/advanced-config.d.ts.map +1 -0
- package/dist/advanced-config.js +40 -0
- package/dist/advanced-config.js.map +1 -0
- package/dist/api.d.ts +14 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +41 -3
- package/dist/api.js.map +1 -1
- package/dist/config.d.ts +5 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +12 -273
- package/dist/config.js.map +1 -1
- package/dist/data/envelope.d.ts.map +1 -1
- package/dist/data/envelope.js +2 -0
- package/dist/data/envelope.js.map +1 -1
- package/dist/data/types.d.ts +1 -1
- package/dist/data/types.d.ts.map +1 -1
- package/dist/groups/control.d.ts +8 -0
- package/dist/groups/control.d.ts.map +1 -1
- package/dist/groups/control.js +30 -0
- package/dist/groups/control.js.map +1 -1
- package/dist/groups/manager.d.ts +2 -0
- package/dist/groups/manager.d.ts.map +1 -1
- package/dist/groups/manager.js +28 -1
- package/dist/groups/manager.js.map +1 -1
- package/dist/groups/types.d.ts +12 -0
- package/dist/groups/types.d.ts.map +1 -1
- package/dist/groups/types.js +23 -0
- package/dist/groups/types.js.map +1 -1
- package/dist/live/relay.d.ts +3 -0
- package/dist/live/relay.d.ts.map +1 -1
- package/dist/live/relay.js +11 -0
- package/dist/live/relay.js.map +1 -1
- package/dist/peer/cli.js +16 -0
- package/dist/peer/cli.js.map +1 -1
- package/dist/peer/config.d.ts +3 -0
- package/dist/peer/config.d.ts.map +1 -1
- package/dist/peer/config.js +5 -0
- package/dist/peer/config.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +136 -46
- package/dist/plugin.js.map +1 -1
- package/dist/policy/operator.d.ts +13 -0
- package/dist/policy/operator.d.ts.map +1 -0
- package/dist/policy/operator.js +53 -0
- package/dist/policy/operator.js.map +1 -0
- package/dist/policy/policy.d.ts +49 -0
- package/dist/policy/policy.d.ts.map +1 -0
- package/dist/policy/policy.js +147 -0
- package/dist/policy/policy.js.map +1 -0
- package/docs/plans/README.md +2 -2
- package/docs/plans/architecture.md +2 -2
- package/docs/plans/networks.md +35 -7
- package/docs/plans/peer-node.md +7 -2
- package/docs/plans/shared-data.md +4 -3
- package/package.json +3 -2
- package/policy/default.json +30 -0
- package/policy/operator.pub +2 -0
- package/public/index.html +268 -68
package/dist/plugin.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readFileSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { AisTargetStore } from "./ais/store.js";
|
|
4
|
+
import { loadAdvancedConfig, mergeSimpleConfig, saveAdvancedConfig, } from "./advanced-config.js";
|
|
4
5
|
import { buildAisRecords } from "./ais/publish.js";
|
|
5
6
|
import { registerRoutes, } from "./api.js";
|
|
6
7
|
import { decodeAisSnapshot, decodeAisStatic } from "./data/ais.js";
|
|
@@ -18,6 +19,8 @@ import { LiveClient } from "./live/client.js";
|
|
|
18
19
|
import { PeerDirectory } from "./live/directory.js";
|
|
19
20
|
import { SelfPublisher } from "./live/publisher.js";
|
|
20
21
|
import { ALL_VESSELS_TOPIC, networkTopic } from "./live/topic.js";
|
|
22
|
+
import { decodePolicy, defaultPolicy, verifyPolicy, } from "./policy/policy.js";
|
|
23
|
+
import { effectivePolicy, operatorKeysFromConfig, saveCachedPolicy, } from "./policy/operator.js";
|
|
21
24
|
import { decodeClaim, encodeClaim } from "./security/claim.js";
|
|
22
25
|
import { createClaimControl } from "./security/control.js";
|
|
23
26
|
import { ClaimRegistry } from "./security/registry.js";
|
|
@@ -117,6 +120,8 @@ export default function createPlugin(app) {
|
|
|
117
120
|
let startedAt = 0;
|
|
118
121
|
let running = false;
|
|
119
122
|
let error;
|
|
123
|
+
let policy = defaultPolicy();
|
|
124
|
+
let operatorKeys = [];
|
|
120
125
|
let injected = 0;
|
|
121
126
|
let unsubscribes = [];
|
|
122
127
|
let tickTimer;
|
|
@@ -125,9 +130,9 @@ export default function createPlugin(app) {
|
|
|
125
130
|
let lastStaticAt = 0;
|
|
126
131
|
let lastClaimAt = 0;
|
|
127
132
|
let lastCapabilityAt = 0;
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
133
|
+
const groupSnapshotAt = new Map();
|
|
134
|
+
const groupValuesAt = new Map();
|
|
135
|
+
const groupStaticAt = new Map();
|
|
131
136
|
let aisStore;
|
|
132
137
|
let selfMmsi;
|
|
133
138
|
let lastAisAt = 0;
|
|
@@ -140,8 +145,8 @@ export default function createPlugin(app) {
|
|
|
140
145
|
const now = Math.floor(Date.now() / 1000);
|
|
141
146
|
const election = {
|
|
142
147
|
now,
|
|
143
|
-
epochSeconds: Math.max(1,
|
|
144
|
-
minUptimeSeconds: Math.max(0,
|
|
148
|
+
epochSeconds: Math.max(1, policy.election.epochMinutes) * 60,
|
|
149
|
+
minUptimeSeconds: Math.max(0, policy.election.minUptimeMinutes) * 60,
|
|
145
150
|
};
|
|
146
151
|
const eligible = directory?.eligible(election) ?? [];
|
|
147
152
|
const elected = directory && config.election.enabled
|
|
@@ -150,6 +155,11 @@ export default function createPlugin(app) {
|
|
|
150
155
|
return {
|
|
151
156
|
started: running,
|
|
152
157
|
version: PLUGIN_VERSION,
|
|
158
|
+
policy: {
|
|
159
|
+
version: policy.version,
|
|
160
|
+
issuedAt: policy.issuedAt,
|
|
161
|
+
operator: operatorKeys[0],
|
|
162
|
+
},
|
|
153
163
|
identity: identity
|
|
154
164
|
? {
|
|
155
165
|
fingerprint: identity.fingerprint,
|
|
@@ -316,19 +326,19 @@ export default function createPlugin(app) {
|
|
|
316
326
|
return share.groups === "all" || share.groups.includes(groupId);
|
|
317
327
|
};
|
|
318
328
|
}
|
|
319
|
-
function publishGroups(now,
|
|
329
|
+
function publishGroups(now, valuesChanged) {
|
|
320
330
|
const manager = groups;
|
|
321
331
|
if (!manager)
|
|
322
332
|
return;
|
|
323
333
|
const sharing = config.sharing;
|
|
324
334
|
const timestamp = Math.floor(now / 1000);
|
|
325
|
-
const snapshotDue = now - lastGroupSnapshotAt >= interval;
|
|
326
|
-
const valuesDue = valuesChanged || now - lastGroupValuesAt >= VALUES_INTERVAL_MS;
|
|
327
|
-
const staticDue = now - lastGroupStaticAt >= STATIC_INTERVAL_MS;
|
|
328
335
|
for (const info of manager.list()) {
|
|
329
336
|
if (info.removed || !manager.canPublish(info.id))
|
|
330
337
|
continue;
|
|
331
|
-
|
|
338
|
+
const rate = Math.min(info.publishRateHz, info.rateCapHz);
|
|
339
|
+
const interval = 1000 / Math.max(rate, 0.001);
|
|
340
|
+
const lastSnapshot = groupSnapshotAt.get(info.id) ?? 0;
|
|
341
|
+
if (now - lastSnapshot >= interval) {
|
|
332
342
|
const includePosition = sharesWith(sharing.position.groups, info.id);
|
|
333
343
|
const includeNavigation = sharesWith(sharing.navigation.groups, info.id);
|
|
334
344
|
if (includePosition || includeNavigation) {
|
|
@@ -338,28 +348,29 @@ export default function createPlugin(app) {
|
|
|
338
348
|
});
|
|
339
349
|
if (snapshot) {
|
|
340
350
|
manager.enqueueData(info.id, encodeEnvelope("snapshot", encodeSnapshot(snapshot)));
|
|
351
|
+
groupSnapshotAt.set(info.id, now);
|
|
341
352
|
}
|
|
342
353
|
}
|
|
343
354
|
}
|
|
344
|
-
|
|
355
|
+
const lastValues = groupValuesAt.get(info.id) ?? 0;
|
|
356
|
+
if ((valuesChanged && now - lastValues >= interval) ||
|
|
357
|
+
now - lastValues >= VALUES_INTERVAL_MS) {
|
|
345
358
|
const values = publisher?.buildValues(valuesFilter(info.id));
|
|
346
359
|
if (values) {
|
|
347
360
|
manager.enqueueData(info.id, encodeEnvelope("values", encodeValues(values)));
|
|
361
|
+
groupValuesAt.set(info.id, now);
|
|
348
362
|
}
|
|
349
363
|
}
|
|
350
|
-
|
|
364
|
+
const lastStatic = groupStaticAt.get(info.id) ?? 0;
|
|
365
|
+
if (now - lastStatic >= STATIC_INTERVAL_MS &&
|
|
366
|
+
sharesWith(sharing.identity.groups, info.id)) {
|
|
351
367
|
const staticInfo = publisher?.buildStatic();
|
|
352
368
|
if (staticInfo) {
|
|
353
369
|
manager.enqueueData(info.id, encodeEnvelope("static", encodeStatic(staticInfo)));
|
|
370
|
+
groupStaticAt.set(info.id, now);
|
|
354
371
|
}
|
|
355
372
|
}
|
|
356
373
|
}
|
|
357
|
-
if (snapshotDue)
|
|
358
|
-
lastGroupSnapshotAt = now;
|
|
359
|
-
if (valuesDue)
|
|
360
|
-
lastGroupValuesAt = now;
|
|
361
|
-
if (staticDue)
|
|
362
|
-
lastGroupStaticAt = now;
|
|
363
374
|
}
|
|
364
375
|
function canPublishAis() {
|
|
365
376
|
return config.ais.mode === "both" || config.ais.mode === "publish";
|
|
@@ -370,10 +381,11 @@ export default function createPlugin(app) {
|
|
|
370
381
|
function publishAis(now) {
|
|
371
382
|
if (!aisStore || !publisher || !canPublishAis())
|
|
372
383
|
return;
|
|
373
|
-
const rate = Math.max(config.ais.rateHz ?? 0.02, 0.001);
|
|
384
|
+
const rate = Math.max(Math.min(config.ais.rateHz ?? 0.02, policy.ais.maxRateHz), 0.001);
|
|
374
385
|
if (now - lastAisAt < 1000 / rate)
|
|
375
386
|
return;
|
|
376
|
-
const
|
|
387
|
+
const maxTargets = Math.max(0, Math.round(Math.min(config.ais.maxTargets ?? 100, policy.ais.maxTargets)));
|
|
388
|
+
const targets = aisStore.nearest(publisher.currentPosition, maxTargets, Math.floor(now / 1000), AIS_MAX_AGE_SECONDS);
|
|
377
389
|
const records = buildAisRecords(targets, sentAisStatic);
|
|
378
390
|
if (records.length > 0) {
|
|
379
391
|
if (config.ais.public && client) {
|
|
@@ -403,16 +415,20 @@ export default function createPlugin(app) {
|
|
|
403
415
|
const now = Date.now();
|
|
404
416
|
const nowSeconds = Math.floor(now / 1000);
|
|
405
417
|
const sharing = config.sharing;
|
|
406
|
-
const
|
|
407
|
-
?
|
|
408
|
-
:
|
|
418
|
+
const maxRate = publisher.underway
|
|
419
|
+
? policy.rates.maxSnapshotHzUnderway
|
|
420
|
+
: policy.rates.maxSnapshotHzMoored;
|
|
421
|
+
const localRate = publisher.underway
|
|
422
|
+
? network?.rateHzUnderway
|
|
423
|
+
: network?.rateHzMoored;
|
|
424
|
+
const rate = Math.min(localRate ?? maxRate, maxRate);
|
|
409
425
|
const interval = 1000 / Math.max(rate, 0.001);
|
|
410
426
|
if (client) {
|
|
411
427
|
const elected = config.election.enabled
|
|
412
428
|
? directory?.elected({
|
|
413
429
|
now: nowSeconds,
|
|
414
|
-
epochSeconds: Math.max(1,
|
|
415
|
-
minUptimeSeconds: Math.max(0,
|
|
430
|
+
epochSeconds: Math.max(1, policy.election.epochMinutes) * 60,
|
|
431
|
+
minUptimeSeconds: Math.max(0, policy.election.minUptimeMinutes) * 60,
|
|
416
432
|
})
|
|
417
433
|
: undefined;
|
|
418
434
|
const ownKey = identity?.publicKeyRaw.toString("hex");
|
|
@@ -453,7 +469,7 @@ export default function createPlugin(app) {
|
|
|
453
469
|
publishStatic();
|
|
454
470
|
}
|
|
455
471
|
}
|
|
456
|
-
publishGroups(now,
|
|
472
|
+
publishGroups(now, valuesChanged);
|
|
457
473
|
if (now - lastClaimAt >= STATIC_INTERVAL_MS)
|
|
458
474
|
publishClaim();
|
|
459
475
|
if (now - lastCapabilityAt >= CAPABILITY_INTERVAL_MS)
|
|
@@ -484,40 +500,92 @@ export default function createPlugin(app) {
|
|
|
484
500
|
title: set.title,
|
|
485
501
|
description: set.description,
|
|
486
502
|
public: config.sharing[set.id].public,
|
|
503
|
+
groups: config.sharing[set.id].groups,
|
|
487
504
|
})),
|
|
488
505
|
};
|
|
489
506
|
}
|
|
490
|
-
async function
|
|
507
|
+
async function setSharing(dataSet, update) {
|
|
491
508
|
const set = DATA_SETS.find((entry) => entry.id === dataSet);
|
|
492
509
|
if (!set)
|
|
493
510
|
return { ok: false, error: "unknown data set" };
|
|
511
|
+
if (update.groups !== undefined && update.groups !== "all") {
|
|
512
|
+
const active = new Set((groups?.list() ?? [])
|
|
513
|
+
.filter((info) => !info.removed)
|
|
514
|
+
.map((info) => info.id));
|
|
515
|
+
const unknown = update.groups.find((id) => !active.has(id));
|
|
516
|
+
if (unknown)
|
|
517
|
+
return { ok: false, error: `unknown group ${unknown}` };
|
|
518
|
+
}
|
|
519
|
+
const previous = { ...config.sharing[set.id] };
|
|
494
520
|
const audience = config.sharing[set.id];
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
521
|
+
if (update.public !== undefined)
|
|
522
|
+
audience.public = update.public;
|
|
523
|
+
if (update.groups !== undefined)
|
|
524
|
+
audience.groups = update.groups;
|
|
525
|
+
try {
|
|
526
|
+
saveAdvancedConfig(app.getDataDirPath(), config);
|
|
527
|
+
return { ok: true };
|
|
528
|
+
}
|
|
529
|
+
catch (saveError) {
|
|
530
|
+
config.sharing[set.id] = previous;
|
|
531
|
+
return {
|
|
532
|
+
ok: false,
|
|
533
|
+
error: `save failed: ${String(saveError)}`,
|
|
534
|
+
};
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
async function setConsent(consent) {
|
|
538
|
+
const modes = [
|
|
539
|
+
"receive-only",
|
|
540
|
+
"underway-gated",
|
|
541
|
+
"opt-out",
|
|
542
|
+
"coarse-position",
|
|
543
|
+
];
|
|
544
|
+
if (!modes.includes(consent)) {
|
|
545
|
+
return { ok: false, error: "invalid consent mode" };
|
|
546
|
+
}
|
|
547
|
+
const network = publicNetwork();
|
|
548
|
+
if (!network)
|
|
549
|
+
return { ok: false, error: "no public network" };
|
|
550
|
+
const previous = network.consent;
|
|
551
|
+
network.consent = consent;
|
|
552
|
+
try {
|
|
553
|
+
saveAdvancedConfig(app.getDataDirPath(), config);
|
|
554
|
+
return { ok: true };
|
|
555
|
+
}
|
|
556
|
+
catch (saveError) {
|
|
557
|
+
network.consent = previous;
|
|
558
|
+
return {
|
|
559
|
+
ok: false,
|
|
560
|
+
error: `save failed: ${String(saveError)}`,
|
|
561
|
+
};
|
|
562
|
+
}
|
|
508
563
|
}
|
|
509
564
|
const control = {
|
|
510
565
|
status,
|
|
511
566
|
sharing: sharingInfo,
|
|
512
|
-
|
|
567
|
+
setSharing,
|
|
568
|
+
setConsent,
|
|
513
569
|
...claimControl,
|
|
514
570
|
...groupControl,
|
|
515
571
|
};
|
|
516
|
-
function
|
|
517
|
-
if (
|
|
572
|
+
function applyIncomingPolicy(signed) {
|
|
573
|
+
if (signed.policy.version <= policy.version)
|
|
518
574
|
return;
|
|
519
|
-
if (
|
|
575
|
+
if (!verifyPolicy(signed, operatorKeys, ALL_VESSELS_TOPIC)) {
|
|
576
|
+
app.debug("P2P ignored unsigned or invalid network policy");
|
|
520
577
|
return;
|
|
578
|
+
}
|
|
579
|
+
policy = signed.policy;
|
|
580
|
+
try {
|
|
581
|
+
saveCachedPolicy(app.getDataDirPath(), signed);
|
|
582
|
+
}
|
|
583
|
+
catch (saveError) {
|
|
584
|
+
app.debug(`P2P could not cache network policy: ${String(saveError)}`);
|
|
585
|
+
}
|
|
586
|
+
app.setPluginStatus(`P2P network policy v${policy.version} applied`);
|
|
587
|
+
}
|
|
588
|
+
function handleMessage(message) {
|
|
521
589
|
for (const record of message.records) {
|
|
522
590
|
let envelope;
|
|
523
591
|
try {
|
|
@@ -527,6 +595,17 @@ export default function createPlugin(app) {
|
|
|
527
595
|
app.debug(`P2P dropped malformed envelope: ${String(decodeError)}`);
|
|
528
596
|
continue;
|
|
529
597
|
}
|
|
598
|
+
if (envelope.type === "policy") {
|
|
599
|
+
try {
|
|
600
|
+
applyIncomingPolicy(decodePolicy(envelope.payload));
|
|
601
|
+
}
|
|
602
|
+
catch (policyError) {
|
|
603
|
+
app.debug(`P2P dropped malformed policy: ${String(policyError)}`);
|
|
604
|
+
}
|
|
605
|
+
continue;
|
|
606
|
+
}
|
|
607
|
+
if (!config.inject.enabled || message.selfId === selfId)
|
|
608
|
+
continue;
|
|
530
609
|
if (envelope.type === "capability") {
|
|
531
610
|
try {
|
|
532
611
|
const capability = decodeCapability(envelope.payload);
|
|
@@ -697,17 +776,28 @@ export default function createPlugin(app) {
|
|
|
697
776
|
return schema();
|
|
698
777
|
},
|
|
699
778
|
async start(startConfig) {
|
|
700
|
-
|
|
779
|
+
const dataDir = app.getDataDirPath();
|
|
780
|
+
const advanced = loadAdvancedConfig(dataDir, startConfig ?? {});
|
|
781
|
+
config = resolveConfig(mergeSimpleConfig(advanced, startConfig ?? {}));
|
|
782
|
+
try {
|
|
783
|
+
saveAdvancedConfig(dataDir, config);
|
|
784
|
+
}
|
|
785
|
+
catch (saveError) {
|
|
786
|
+
app.debug(`P2P could not save advanced config: ${String(saveError)}`);
|
|
787
|
+
}
|
|
701
788
|
selfId = app.selfId;
|
|
702
789
|
selfMmsi = selfMmsiFromId(selfId);
|
|
703
790
|
try {
|
|
704
|
-
identity = await loadOrCreateIdentity(
|
|
791
|
+
identity = await loadOrCreateIdentity(dataDir);
|
|
705
792
|
}
|
|
706
793
|
catch (cause) {
|
|
707
794
|
error = cause instanceof Error ? cause.message : String(cause);
|
|
708
795
|
app.setPluginError(`P2P failed to start: ${error}`);
|
|
709
796
|
throw cause;
|
|
710
797
|
}
|
|
798
|
+
operatorKeys = operatorKeysFromConfig(config.policy?.operatorKeys);
|
|
799
|
+
policy = effectivePolicy(dataDir, operatorKeys);
|
|
800
|
+
app.debug(`P2P network policy v${policy.version}`);
|
|
711
801
|
registry = new ClaimRegistry({
|
|
712
802
|
path: join(app.getDataDirPath(), "claims.json"),
|
|
713
803
|
attestors: config.security.publicAttestors,
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type NetworkPolicy, type SignedPolicy } from "./policy.js";
|
|
2
|
+
/** Public key of the all-vessels network operator. */
|
|
3
|
+
export declare const DEFAULT_OPERATOR_PUBLIC_KEY = "b393c24608f23cdb389cfb0cbc8c9de619345fa110cdddcb14ab6afdb494db09";
|
|
4
|
+
export declare const DEFAULT_OPERATOR_FINGERPRINT = "254375e336e45f93bb5691e49fdb4e758fefed7981940d98dc9773b8b23390bf";
|
|
5
|
+
export declare function defaultOperatorKeys(): string[];
|
|
6
|
+
export declare function operatorKeysFromConfig(keys?: string[]): string[];
|
|
7
|
+
/** The signed policy shipped in the package, if present and valid. */
|
|
8
|
+
export declare function loadShippedPolicy(operatorKeys?: string[]): SignedPolicy | undefined;
|
|
9
|
+
/** The newest valid policy from the package or this instance's cache. */
|
|
10
|
+
export declare function effectivePolicy(dataDir: string, operatorKeys?: string[]): NetworkPolicy;
|
|
11
|
+
export declare function loadCachedPolicy(dataDir: string, operatorKeys?: string[]): SignedPolicy | undefined;
|
|
12
|
+
export declare function saveCachedPolicy(dataDir: string, signed: SignedPolicy): void;
|
|
13
|
+
//# sourceMappingURL=operator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../../src/policy/operator.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAErB,sDAAsD;AACtD,eAAO,MAAM,2BAA2B,qEAC4B,CAAC;AAErE,eAAO,MAAM,4BAA4B,qEAC2B,CAAC;AAErE,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEhE;AAED,sEAAsE;AACtE,wBAAgB,iBAAiB,CAC/B,YAAY,GAAE,MAAM,EAA0B,GAC7C,YAAY,GAAG,SAAS,CAY1B;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,YAAY,GAAE,MAAM,EAA0B,GAC7C,aAAa,CAOf;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,YAAY,GAAE,MAAM,EAA0B,GAC7C,YAAY,GAAG,SAAS,CAU1B;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAI5E"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { ALL_VESSELS_TOPIC } from "../live/topic.js";
|
|
4
|
+
import { defaultPolicy, decodePolicy, verifyPolicy, } from "./policy.js";
|
|
5
|
+
/** Public key of the all-vessels network operator. */
|
|
6
|
+
export const DEFAULT_OPERATOR_PUBLIC_KEY = "b393c24608f23cdb389cfb0cbc8c9de619345fa110cdddcb14ab6afdb494db09";
|
|
7
|
+
export const DEFAULT_OPERATOR_FINGERPRINT = "254375e336e45f93bb5691e49fdb4e758fefed7981940d98dc9773b8b23390bf";
|
|
8
|
+
export function defaultOperatorKeys() {
|
|
9
|
+
return [DEFAULT_OPERATOR_PUBLIC_KEY];
|
|
10
|
+
}
|
|
11
|
+
export function operatorKeysFromConfig(keys) {
|
|
12
|
+
return keys && keys.length > 0 ? keys : defaultOperatorKeys();
|
|
13
|
+
}
|
|
14
|
+
/** The signed policy shipped in the package, if present and valid. */
|
|
15
|
+
export function loadShippedPolicy(operatorKeys = defaultOperatorKeys()) {
|
|
16
|
+
try {
|
|
17
|
+
const data = readFileSync(new URL("../../policy/default.json", import.meta.url));
|
|
18
|
+
const signed = decodePolicy(data);
|
|
19
|
+
return verifyPolicy(signed, operatorKeys, ALL_VESSELS_TOPIC)
|
|
20
|
+
? signed
|
|
21
|
+
: undefined;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/** The newest valid policy from the package or this instance's cache. */
|
|
28
|
+
export function effectivePolicy(dataDir, operatorKeys = defaultOperatorKeys()) {
|
|
29
|
+
const shipped = loadShippedPolicy(operatorKeys)?.policy ?? defaultPolicy();
|
|
30
|
+
const cached = loadCachedPolicy(dataDir, operatorKeys);
|
|
31
|
+
if (cached && cached.policy.version > shipped.version) {
|
|
32
|
+
return cached.policy;
|
|
33
|
+
}
|
|
34
|
+
return shipped;
|
|
35
|
+
}
|
|
36
|
+
export function loadCachedPolicy(dataDir, operatorKeys = defaultOperatorKeys()) {
|
|
37
|
+
try {
|
|
38
|
+
const data = readFileSync(join(dataDir, "policy.json"));
|
|
39
|
+
const signed = decodePolicy(data);
|
|
40
|
+
return verifyPolicy(signed, operatorKeys, ALL_VESSELS_TOPIC)
|
|
41
|
+
? signed
|
|
42
|
+
: undefined;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export function saveCachedPolicy(dataDir, signed) {
|
|
49
|
+
writeFileSync(join(dataDir, "policy.json"), JSON.stringify(signed) + "\n", {
|
|
50
|
+
mode: 0o600,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=operator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operator.js","sourceRoot":"","sources":["../../src/policy/operator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,GAGb,MAAM,aAAa,CAAC;AAErB,sDAAsD;AACtD,MAAM,CAAC,MAAM,2BAA2B,GACtC,kEAAkE,CAAC;AAErE,MAAM,CAAC,MAAM,4BAA4B,GACvC,kEAAkE,CAAC;AAErE,MAAM,UAAU,mBAAmB;IACjC,OAAO,CAAC,2BAA2B,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAe;IACpD,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;AAChE,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,iBAAiB,CAC/B,YAAY,GAAa,mBAAmB,EAAE;IAE9C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CACvB,IAAI,GAAG,CAAC,2BAA2B,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CACtD,CAAC;QACF,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,CAAC;YAC1D,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,YAAY,GAAa,mBAAmB,EAAE;IAE9C,MAAM,OAAO,GAAG,iBAAiB,CAAC,YAAY,CAAC,EAAE,MAAM,IAAI,aAAa,EAAE,CAAC;IAC3E,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACvD,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACtD,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,YAAY,GAAa,mBAAmB,EAAE;IAE9C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,CAAC;YAC1D,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,MAAoB;IACpE,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE;QACzE,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type Identity } from "../identity.js";
|
|
2
|
+
export interface PolicySharding {
|
|
3
|
+
maxVesselsPerShard: number;
|
|
4
|
+
maxVesselsPerInstance: number;
|
|
5
|
+
lookAheadKm: number;
|
|
6
|
+
splitSettleMinutes: number;
|
|
7
|
+
mergeSettleMinutes: number;
|
|
8
|
+
mergeBelowRatio: number;
|
|
9
|
+
boundaryHysteresisMeters: number;
|
|
10
|
+
}
|
|
11
|
+
export interface PolicyElection {
|
|
12
|
+
epochMinutes: number;
|
|
13
|
+
minUptimeMinutes: number;
|
|
14
|
+
}
|
|
15
|
+
export interface PolicyRates {
|
|
16
|
+
maxSnapshotHzUnderway: number;
|
|
17
|
+
maxSnapshotHzMoored: number;
|
|
18
|
+
}
|
|
19
|
+
export interface PolicyAis {
|
|
20
|
+
maxTargets: number;
|
|
21
|
+
maxRateHz: number;
|
|
22
|
+
}
|
|
23
|
+
export interface NetworkPolicy {
|
|
24
|
+
version: number;
|
|
25
|
+
topic: string;
|
|
26
|
+
protocol: number;
|
|
27
|
+
issuedAt: number;
|
|
28
|
+
notBefore?: number;
|
|
29
|
+
notAfter?: number;
|
|
30
|
+
sharding: PolicySharding;
|
|
31
|
+
election: PolicyElection;
|
|
32
|
+
rates: PolicyRates;
|
|
33
|
+
ais: PolicyAis;
|
|
34
|
+
}
|
|
35
|
+
export interface SignedPolicy {
|
|
36
|
+
policy: NetworkPolicy;
|
|
37
|
+
/** Base64 Ed25519 signature over canonicalJson(policy). */
|
|
38
|
+
signature: string;
|
|
39
|
+
}
|
|
40
|
+
export declare const DEFAULT_POLICY_VERSION = 1;
|
|
41
|
+
export declare const MAX_POLICY_RATE_HZ = 10;
|
|
42
|
+
export declare function defaultPolicy(version?: number, issuedAt?: number): NetworkPolicy;
|
|
43
|
+
export declare function policyBytes(policy: NetworkPolicy): Buffer;
|
|
44
|
+
export declare function signPolicy(policy: NetworkPolicy, identity: Identity): SignedPolicy;
|
|
45
|
+
export declare function verifyPolicy(signed: SignedPolicy, operatorKeys: string[], expectedTopic: string, now?: number): boolean;
|
|
46
|
+
export declare function validPolicy(policy: NetworkPolicy, expectedTopic: string, now?: number): boolean;
|
|
47
|
+
export declare function encodePolicy(signed: SignedPolicy): Buffer;
|
|
48
|
+
export declare function decodePolicy(data: Buffer): SignedPolicy;
|
|
49
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/policy/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/D,MAAM,WAAW,cAAc;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,SAAS,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,wBAAgB,aAAa,CAC3B,OAAO,SAAyB,EAChC,QAAQ,SAAgC,GACvC,aAAa,CA4Bf;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAEzD;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,QAAQ,GACjB,YAAY,CAKd;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,MAAM,EAAE,EACtB,aAAa,EAAE,MAAM,EACrB,GAAG,SAAgC,GAClC,OAAO,CAST;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,EACrB,GAAG,SAAgC,GAClC,OAAO,CA8CT;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAEzD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAcvD"}
|