@optimystic/db-core 0.22.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.
- package/README.md +336 -336
- package/dist/src/cluster/structs.d.ts +39 -1
- package/dist/src/cluster/structs.d.ts.map +1 -1
- package/dist/src/cluster/structs.js +24 -0
- package/dist/src/cluster/structs.js.map +1 -1
- package/dist/src/collection/collection.d.ts +17 -0
- package/dist/src/collection/collection.d.ts.map +1 -1
- package/dist/src/collection/collection.js +24 -2
- package/dist/src/collection/collection.js.map +1 -1
- package/dist/src/collections/tree/tree.d.ts +5 -0
- package/dist/src/collections/tree/tree.d.ts.map +1 -1
- package/dist/src/collections/tree/tree.js +7 -0
- package/dist/src/collections/tree/tree.js.map +1 -1
- package/dist/src/network/i-peer-network.d.ts +16 -0
- package/dist/src/network/i-peer-network.d.ts.map +1 -1
- package/dist/src/network/struct.d.ts +39 -2
- package/dist/src/network/struct.d.ts.map +1 -1
- package/dist/src/network/struct.js +18 -0
- package/dist/src/network/struct.js.map +1 -1
- package/dist/src/testing/test-transactor.d.ts +95 -8
- package/dist/src/testing/test-transactor.d.ts.map +1 -1
- package/dist/src/testing/test-transactor.js +121 -8
- package/dist/src/testing/test-transactor.js.map +1 -1
- package/dist/src/transaction/transaction.d.ts +1 -1
- package/dist/src/transaction/transaction.js +1 -1
- package/dist/src/transactor/network-transactor.d.ts.map +1 -1
- package/dist/src/transactor/network-transactor.js +48 -13
- package/dist/src/transactor/network-transactor.js.map +1 -1
- package/dist/src/transactor/transactor-source.d.ts.map +1 -1
- package/dist/src/transactor/transactor-source.js +25 -2
- package/dist/src/transactor/transactor-source.js.map +1 -1
- package/package.json +1 -1
- package/src/cluster/membership.ts +85 -85
- package/src/cluster/structs.ts +43 -4
- package/src/cohort-topic/addressing.ts +120 -120
- package/src/cohort-topic/antidos/bootstrap-evidence-envelope.ts +253 -253
- package/src/cohort-topic/antidos/bootstrap-evidence.ts +106 -106
- package/src/cohort-topic/antidos/index.ts +5 -5
- package/src/cohort-topic/antidos/rate-limiter.ts +210 -210
- package/src/cohort-topic/antidos/replay-guard.ts +146 -146
- package/src/cohort-topic/antidos/topic-budget.ts +160 -160
- package/src/cohort-topic/antiflood/index.ts +2 -2
- package/src/cohort-topic/antiflood/invariants.ts +108 -108
- package/src/cohort-topic/antiflood/jitter.ts +117 -117
- package/src/cohort-topic/coldstart.ts +237 -237
- package/src/cohort-topic/dmax.ts +88 -88
- package/src/cohort-topic/gossip/bus.ts +254 -254
- package/src/cohort-topic/gossip/index.ts +3 -3
- package/src/cohort-topic/gossip/records.ts +45 -45
- package/src/cohort-topic/gossip/view.ts +91 -91
- package/src/cohort-topic/index.ts +20 -20
- package/src/cohort-topic/load/barometer.ts +134 -134
- package/src/cohort-topic/load/index.ts +1 -1
- package/src/cohort-topic/member-engine.ts +430 -430
- package/src/cohort-topic/membership/index.ts +3 -3
- package/src/cohort-topic/membership/publisher.ts +163 -163
- package/src/cohort-topic/membership/source.ts +41 -41
- package/src/cohort-topic/membership/verifier.ts +461 -461
- package/src/cohort-topic/ports.ts +157 -157
- package/src/cohort-topic/promotion.ts +405 -405
- package/src/cohort-topic/registration/bytes.ts +37 -37
- package/src/cohort-topic/registration/handoff.ts +154 -154
- package/src/cohort-topic/registration/index.ts +6 -6
- package/src/cohort-topic/registration/renewal.ts +495 -495
- package/src/cohort-topic/registration/sharding.ts +61 -61
- package/src/cohort-topic/registration/store.ts +81 -81
- package/src/cohort-topic/registration/types.ts +91 -91
- package/src/cohort-topic/ring-hash.ts +50 -50
- package/src/cohort-topic/service.ts +416 -416
- package/src/cohort-topic/sig/index.ts +2 -2
- package/src/cohort-topic/sig/payloads.ts +59 -59
- package/src/cohort-topic/sig/threshold.ts +64 -64
- package/src/cohort-topic/tiers.ts +74 -74
- package/src/cohort-topic/traffic.ts +233 -233
- package/src/cohort-topic/walk.ts +326 -326
- package/src/cohort-topic/willingness.ts +237 -237
- package/src/cohort-topic/wire/codec.ts +216 -216
- package/src/cohort-topic/wire/index.ts +18 -18
- package/src/cohort-topic/wire/payloads.ts +126 -126
- package/src/cohort-topic/wire/primitives.ts +188 -188
- package/src/cohort-topic/wire/types.ts +475 -475
- package/src/cohort-topic/wire/validate.ts +512 -512
- package/src/collection/collection-type-registry.ts +37 -37
- package/src/collection/collection.ts +25 -2
- package/src/collections/diary/diary.ts +68 -68
- package/src/collections/tree/readme.md +4 -0
- package/src/collections/tree/tree.ts +320 -312
- package/src/matchmaking/capability-filter.ts +45 -45
- package/src/matchmaking/config.ts +98 -98
- package/src/matchmaking/index.ts +21 -21
- package/src/matchmaking/multi-cohort-seeker.ts +234 -234
- package/src/matchmaking/provider.ts +123 -123
- package/src/matchmaking/query-eval.ts +105 -105
- package/src/matchmaking/seeker-walk.ts +127 -127
- package/src/matchmaking/seeker.ts +86 -86
- package/src/matchmaking/topic-anchor.ts +90 -90
- package/src/matchmaking/voting-quorum.ts +394 -394
- package/src/matchmaking/wire.ts +603 -603
- package/src/network/i-peer-network.ts +17 -0
- package/src/network/stale-failure.ts +43 -43
- package/src/network/struct.ts +41 -2
- package/src/network/types.ts +37 -37
- package/src/reactivity/backfill.ts +220 -220
- package/src/reactivity/backpressure.ts +191 -191
- package/src/reactivity/checkpoint.ts +308 -308
- package/src/reactivity/config.ts +172 -172
- package/src/reactivity/dedupe.ts +132 -132
- package/src/reactivity/forwarder.ts +87 -87
- package/src/reactivity/index.ts +34 -34
- package/src/reactivity/notification.ts +123 -123
- package/src/reactivity/policy.ts +79 -79
- package/src/reactivity/push-state.ts +310 -310
- package/src/reactivity/recover.ts +153 -153
- package/src/reactivity/replay-buffer.ts +141 -141
- package/src/reactivity/resume.ts +549 -549
- package/src/reactivity/rotation.ts +415 -415
- package/src/reactivity/subscriber.ts +132 -132
- package/src/reactivity/subscription.ts +66 -66
- package/src/reactivity/topic-anchor.ts +71 -71
- package/src/reactivity/verify.ts +73 -73
- package/src/reactivity/wire-validate.ts +13 -13
- package/src/reactivity/wire.ts +224 -224
- package/src/testing/async-wait.ts +65 -65
- package/src/testing/index.ts +2 -2
- package/src/testing/test-transactor.ts +638 -502
- package/src/transaction/errors.ts +91 -91
- package/src/transaction/operations-hash.ts +196 -196
- package/src/transaction/read-dependency-collector.ts +78 -78
- package/src/transaction/transaction.ts +1 -1
- package/src/transactor/change-notifier.ts +80 -80
- package/src/transactor/index.ts +5 -5
- package/src/transactor/network-transactor.ts +49 -14
- package/src/transactor/transactor-source.ts +25 -2
- package/src/transform/atomic-proxy.ts +92 -92
- package/src/transform/helpers.ts +159 -159
- package/src/utility/backoff.ts +95 -95
- package/src/utility/batch-coordinator.ts +191 -191
- package/dist/src/transaction/context.d.ts +0 -60
- package/dist/src/transaction/context.d.ts.map +0 -1
- package/dist/src/transaction/context.js +0 -91
- package/dist/src/transaction/context.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network-transactor.js","sourceRoot":"","sources":["../../../src/transactor/network-transactor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"network-transactor.js","sourceRoot":"","sources":["../../../src/transactor/network-transactor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactor-source.d.ts","sourceRoot":"","sources":["../../../src/transactor/transactor-source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErK,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAEtF,qBAAa,gBAAgB,CAAC,MAAM,SAAS,MAAM,CAAE,YAAW,WAAW,CAAC,MAAM,CAAC;IAUjF,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU;IACpB,aAAa,EAAE,aAAa,GAAG,SAAS;IAXhD;;iDAE6C;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD;uFACmF;IACnF,OAAO,CAAC,aAAa,CAA8B;gBAGjC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,WAAW,EACjC,aAAa,EAAE,aAAa,GAAG,SAAS,EAC/C,SAAS,CAAC,EAAE,uBAAuB;IAKpC,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW;IAQhE,UAAU,IAAI,OAAO;IAKf,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,GAAE,WAAqB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"transactor-source.d.ts","sourceRoot":"","sources":["../../../src/transactor/transactor-source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErK,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAEtF,qBAAa,gBAAgB,CAAC,MAAM,SAAS,MAAM,CAAE,YAAW,WAAW,CAAC,MAAM,CAAC;IAUjF,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU;IACpB,aAAa,EAAE,aAAa,GAAG,SAAS;IAXhD;;iDAE6C;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD;uFACmF;IACnF,OAAO,CAAC,aAAa,CAA8B;gBAGjC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,WAAW,EACjC,aAAa,EAAE,aAAa,GAAG,SAAS,EAC/C,SAAS,CAAC,EAAE,uBAAuB;IAKpC,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW;IAQhE,UAAU,IAAI,OAAO;IAKf,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,GAAE,WAAqB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA+DtF;;+DAE2D;IAC3D,eAAe,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAIhD,mBAAmB,IAAI,cAAc,EAAE;IAIvC;;;8EAG0E;IAC1E,YAAY,IAAI,uBAAuB;IAIvC,qBAAqB,IAAI,IAAI;IAI7B;;;;;;;;;;;;;;OAcG;IACG,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,SAAI,GAAG,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;CAuB3J"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { randomBytes } from '@noble/hashes/utils.js';
|
|
2
2
|
import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
|
|
3
|
-
import { BlockUnavailableError } from "../network/struct.js";
|
|
3
|
+
import { BlockUnavailableError, BlockPossiblyStaleError } from "../network/struct.js";
|
|
4
4
|
import { ReadDependencyCollector } from "../transaction/read-dependency-collector.js";
|
|
5
5
|
export class TransactorSource {
|
|
6
6
|
collectionId;
|
|
@@ -37,7 +37,7 @@ export class TransactorSource {
|
|
|
37
37
|
// `result[id]` is undefined. Destructuring that would throw a TypeError.
|
|
38
38
|
const entry = result?.[id];
|
|
39
39
|
if (entry) {
|
|
40
|
-
const { block, state, materializedRev, unavailable } = entry;
|
|
40
|
+
const { block, state, materializedRev, unavailable, unconfirmedAheadRev } = entry;
|
|
41
41
|
// An entry flagged `unavailable` with no block is the repo saying "I could not find
|
|
42
42
|
// out whether this exists" — an answer that must not be read as absent. Throw rather
|
|
43
43
|
// than return undefined, and record no read dependency (dependencies are recorded
|
|
@@ -45,6 +45,29 @@ export class TransactorSource {
|
|
|
45
45
|
if (!block && unavailable) {
|
|
46
46
|
throw new BlockUnavailableError(id, unavailable);
|
|
47
47
|
}
|
|
48
|
+
// A read whose surviving answer is marked possibly-behind (`unconfirmedAheadRev`
|
|
49
|
+
// outlived the transactor's retry round: every reachable coordinator served content it
|
|
50
|
+
// could not confirm current) must not pose as an answer for a view that should CONTAIN
|
|
51
|
+
// the claimed revision. Two such views, the same test the coordinator applies when it
|
|
52
|
+
// stamps: an UNPINNED "give me latest" read — the tail read is the one seam where a
|
|
53
|
+
// lagging collection can learn the truth (Collection.bootstrapContext), and silently
|
|
54
|
+
// serving doubted content there is exactly how a collection view freezes forever — and
|
|
55
|
+
// a read PINNED AT OR ABOVE the claim, whose snapshot is missing a revision the cohort
|
|
56
|
+
// says exists inside it. A read pinned strictly BELOW the claim keeps working: it
|
|
57
|
+
// legitimately asks for an older view, which is being served correctly.
|
|
58
|
+
// No read dependency is recorded: the throw means nothing was read.
|
|
59
|
+
// NOTE: accepted tradeoff — this converts a silent wrong answer into a loud failure. A
|
|
60
|
+
// node partitioned from every coordinator able to confirm currency used to read (stale)
|
|
61
|
+
// data indefinitely without any signal; it now raises BlockPossiblyStaleError on the
|
|
62
|
+
// reads that should contain the claim, until the partition heals or the claim is
|
|
63
|
+
// settled. Deliberate: the
|
|
64
|
+
// silent alternative is a collection view that forks and freezes with no report
|
|
65
|
+
// (ticket coordinator-serves-stale-data-as-if-confirmed). Revisit only if a
|
|
66
|
+
// degraded-read mode (serve-with-warning) becomes a product requirement.
|
|
67
|
+
if (unconfirmedAheadRev !== undefined
|
|
68
|
+
&& (this.actionContext === undefined || this.actionContext.rev >= unconfirmedAheadRev)) {
|
|
69
|
+
throw new BlockPossiblyStaleError(id, unconfirmedAheadRev);
|
|
70
|
+
}
|
|
48
71
|
// Record a read dependency only for a block that actually exists. A transactor may return a
|
|
49
72
|
// populated entry with `block: undefined` for a genuinely-missing block (TestTransactor does;
|
|
50
73
|
// the Network transactor always populates the key); recording there would add a phantom
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactor-source.js","sourceRoot":"","sources":["../../../src/transactor/transactor-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAEtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"transactor-source.js","sourceRoot":"","sources":["../../../src/transactor/transactor-source.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,85 +1,85 @@
|
|
|
1
|
-
import type { RepoMessage } from "../network/repo-protocol.js";
|
|
2
|
-
import type { ClusterPeers, ClusterRecord, Signature } from "./structs.js";
|
|
3
|
-
import { sha256 } from "multiformats/hashes/sha2";
|
|
4
|
-
import { base58btc } from "multiformats/bases/base58";
|
|
5
|
-
import { toString as uint8ArrayToString } from "uint8arrays/to-string";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Membership-binding version a new coordinator emits. A record at this version folds a
|
|
9
|
-
* {@link membershipDigest} of its peer set into `messageHash` / `promiseHash` / `commitHash`, so the
|
|
10
|
-
* responsible peer set is covered by every signature (see `docs/correctness.md` §2). Absent or `1` marks
|
|
11
|
-
* a legacy *unbound* record (pre-binding history) whose hashes must verify byte-identically to before
|
|
12
|
-
* this change.
|
|
13
|
-
*/
|
|
14
|
-
export const CURRENT_MEMBERSHIP_VERSION = 2 as const;
|
|
15
|
-
|
|
16
|
-
/** Deterministic JSON: sorts object keys so the hash is independent of key insertion order. */
|
|
17
|
-
function canonicalJson(value: unknown): string {
|
|
18
|
-
return JSON.stringify(value, (_, v) =>
|
|
19
|
-
v && typeof v === 'object' && !Array.isArray(v)
|
|
20
|
-
? Object.keys(v).sort().reduce((o: Record<string, unknown>, k) => { o[k] = v[k]; return o; }, {})
|
|
21
|
-
: v
|
|
22
|
-
);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Canonical membership digest for a peer set: `base64url(SHA256(canonicalJson(sorted peer-id list)))`.
|
|
27
|
-
*
|
|
28
|
-
* Derived from the sorted peer-id list ONLY — not multiaddrs or public keys. Multiaddrs churn and a
|
|
29
|
-
* peer's public key is already a function of its id, so folding either in would make identity unstable
|
|
30
|
-
* without adding agreement value. The set of ids IS the membership. The digest is therefore independent
|
|
31
|
-
* of peer-map key insertion order and of multiaddr / pubkey contents; adding or removing one id changes
|
|
32
|
-
* it. `membershipDigest({})` (the empty set) is a fixed constant.
|
|
33
|
-
*/
|
|
34
|
-
export async function membershipDigest(peers: ClusterPeers): Promise<string> {
|
|
35
|
-
const ids = Object.keys(peers ?? {}).sort();
|
|
36
|
-
const bytes = new TextEncoder().encode(canonicalJson(ids));
|
|
37
|
-
const hash = await sha256.digest(bytes);
|
|
38
|
-
return uint8ArrayToString(hash.digest, 'base64url');
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* The membership digest that participates in a record's hashes, or `undefined` for a legacy (v1 /
|
|
43
|
-
* unversioned) record. `undefined` selects the pre-binding hashing (empty-string concat is a no-op), so
|
|
44
|
-
* a v1 record hashes byte-identically to before this change. A v2 record folds in its declared
|
|
45
|
-
* `membershipDigest`.
|
|
46
|
-
*/
|
|
47
|
-
export function recordMembershipDigest(record: Pick<ClusterRecord, 'membershipVersion' | 'membershipDigest'>): string | undefined {
|
|
48
|
-
return record.membershipVersion === 2 ? record.membershipDigest : undefined;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* `messageHash` = `base58btc(SHA256(canonicalJson(message) + digest))`.
|
|
53
|
-
*
|
|
54
|
-
* `digest` `undefined` → legacy v1 preimage (`canonicalJson(message)` only); passing the membership
|
|
55
|
-
* digest folds the peer set in (v2). Empty-string concat means the v1 image is byte-identical to the
|
|
56
|
-
* pre-binding implementation.
|
|
57
|
-
*/
|
|
58
|
-
export async function computeClusterMessageHash(message: RepoMessage, digest?: string): Promise<string> {
|
|
59
|
-
const bytes = new TextEncoder().encode(canonicalJson(message) + (digest ?? ''));
|
|
60
|
-
const hash = await sha256.digest(bytes);
|
|
61
|
-
return base58btc.encode(hash.digest);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* `promiseHash` = `base64url(SHA256(messageHash + canonicalJson(message) + digest))`.
|
|
66
|
-
*
|
|
67
|
-
* `digest` `undefined` → legacy v1 preimage; passing it folds the peer set in (v2).
|
|
68
|
-
*/
|
|
69
|
-
export async function computeClusterPromiseHash(messageHash: string, message: RepoMessage, digest?: string): Promise<string> {
|
|
70
|
-
const bytes = new TextEncoder().encode(messageHash + canonicalJson(message) + (digest ?? ''));
|
|
71
|
-
const hash = await sha256.digest(bytes);
|
|
72
|
-
return uint8ArrayToString(hash.digest, 'base64url');
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* `commitHash` = `base64url(SHA256(messageHash + canonicalJson(message) + digest + canonicalJson(promises)))`.
|
|
77
|
-
*
|
|
78
|
-
* `digest` `undefined` → legacy v1 preimage; passing it folds the peer set in (v2). The digest sits
|
|
79
|
-
* between the message and the promises image, matching the v2 layout in `docs/correctness.md`.
|
|
80
|
-
*/
|
|
81
|
-
export async function computeClusterCommitHash(messageHash: string, message: RepoMessage, promises: Record<string, Signature>, digest?: string): Promise<string> {
|
|
82
|
-
const bytes = new TextEncoder().encode(messageHash + canonicalJson(message) + (digest ?? '') + canonicalJson(promises));
|
|
83
|
-
const hash = await sha256.digest(bytes);
|
|
84
|
-
return uint8ArrayToString(hash.digest, 'base64url');
|
|
85
|
-
}
|
|
1
|
+
import type { RepoMessage } from "../network/repo-protocol.js";
|
|
2
|
+
import type { ClusterPeers, ClusterRecord, Signature } from "./structs.js";
|
|
3
|
+
import { sha256 } from "multiformats/hashes/sha2";
|
|
4
|
+
import { base58btc } from "multiformats/bases/base58";
|
|
5
|
+
import { toString as uint8ArrayToString } from "uint8arrays/to-string";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Membership-binding version a new coordinator emits. A record at this version folds a
|
|
9
|
+
* {@link membershipDigest} of its peer set into `messageHash` / `promiseHash` / `commitHash`, so the
|
|
10
|
+
* responsible peer set is covered by every signature (see `docs/correctness.md` §2). Absent or `1` marks
|
|
11
|
+
* a legacy *unbound* record (pre-binding history) whose hashes must verify byte-identically to before
|
|
12
|
+
* this change.
|
|
13
|
+
*/
|
|
14
|
+
export const CURRENT_MEMBERSHIP_VERSION = 2 as const;
|
|
15
|
+
|
|
16
|
+
/** Deterministic JSON: sorts object keys so the hash is independent of key insertion order. */
|
|
17
|
+
function canonicalJson(value: unknown): string {
|
|
18
|
+
return JSON.stringify(value, (_, v) =>
|
|
19
|
+
v && typeof v === 'object' && !Array.isArray(v)
|
|
20
|
+
? Object.keys(v).sort().reduce((o: Record<string, unknown>, k) => { o[k] = v[k]; return o; }, {})
|
|
21
|
+
: v
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Canonical membership digest for a peer set: `base64url(SHA256(canonicalJson(sorted peer-id list)))`.
|
|
27
|
+
*
|
|
28
|
+
* Derived from the sorted peer-id list ONLY — not multiaddrs or public keys. Multiaddrs churn and a
|
|
29
|
+
* peer's public key is already a function of its id, so folding either in would make identity unstable
|
|
30
|
+
* without adding agreement value. The set of ids IS the membership. The digest is therefore independent
|
|
31
|
+
* of peer-map key insertion order and of multiaddr / pubkey contents; adding or removing one id changes
|
|
32
|
+
* it. `membershipDigest({})` (the empty set) is a fixed constant.
|
|
33
|
+
*/
|
|
34
|
+
export async function membershipDigest(peers: ClusterPeers): Promise<string> {
|
|
35
|
+
const ids = Object.keys(peers ?? {}).sort();
|
|
36
|
+
const bytes = new TextEncoder().encode(canonicalJson(ids));
|
|
37
|
+
const hash = await sha256.digest(bytes);
|
|
38
|
+
return uint8ArrayToString(hash.digest, 'base64url');
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* The membership digest that participates in a record's hashes, or `undefined` for a legacy (v1 /
|
|
43
|
+
* unversioned) record. `undefined` selects the pre-binding hashing (empty-string concat is a no-op), so
|
|
44
|
+
* a v1 record hashes byte-identically to before this change. A v2 record folds in its declared
|
|
45
|
+
* `membershipDigest`.
|
|
46
|
+
*/
|
|
47
|
+
export function recordMembershipDigest(record: Pick<ClusterRecord, 'membershipVersion' | 'membershipDigest'>): string | undefined {
|
|
48
|
+
return record.membershipVersion === 2 ? record.membershipDigest : undefined;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* `messageHash` = `base58btc(SHA256(canonicalJson(message) + digest))`.
|
|
53
|
+
*
|
|
54
|
+
* `digest` `undefined` → legacy v1 preimage (`canonicalJson(message)` only); passing the membership
|
|
55
|
+
* digest folds the peer set in (v2). Empty-string concat means the v1 image is byte-identical to the
|
|
56
|
+
* pre-binding implementation.
|
|
57
|
+
*/
|
|
58
|
+
export async function computeClusterMessageHash(message: RepoMessage, digest?: string): Promise<string> {
|
|
59
|
+
const bytes = new TextEncoder().encode(canonicalJson(message) + (digest ?? ''));
|
|
60
|
+
const hash = await sha256.digest(bytes);
|
|
61
|
+
return base58btc.encode(hash.digest);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* `promiseHash` = `base64url(SHA256(messageHash + canonicalJson(message) + digest))`.
|
|
66
|
+
*
|
|
67
|
+
* `digest` `undefined` → legacy v1 preimage; passing it folds the peer set in (v2).
|
|
68
|
+
*/
|
|
69
|
+
export async function computeClusterPromiseHash(messageHash: string, message: RepoMessage, digest?: string): Promise<string> {
|
|
70
|
+
const bytes = new TextEncoder().encode(messageHash + canonicalJson(message) + (digest ?? ''));
|
|
71
|
+
const hash = await sha256.digest(bytes);
|
|
72
|
+
return uint8ArrayToString(hash.digest, 'base64url');
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* `commitHash` = `base64url(SHA256(messageHash + canonicalJson(message) + digest + canonicalJson(promises)))`.
|
|
77
|
+
*
|
|
78
|
+
* `digest` `undefined` → legacy v1 preimage; passing it folds the peer set in (v2). The digest sits
|
|
79
|
+
* between the message and the promises image, matching the v2 layout in `docs/correctness.md`.
|
|
80
|
+
*/
|
|
81
|
+
export async function computeClusterCommitHash(messageHash: string, message: RepoMessage, promises: Record<string, Signature>, digest?: string): Promise<string> {
|
|
82
|
+
const bytes = new TextEncoder().encode(messageHash + canonicalJson(message) + (digest ?? '') + canonicalJson(promises));
|
|
83
|
+
const hash = await sha256.digest(bytes);
|
|
84
|
+
return uint8ArrayToString(hash.digest, 'base64url');
|
|
85
|
+
}
|
package/src/cluster/structs.ts
CHANGED
|
@@ -1,9 +1,48 @@
|
|
|
1
1
|
import type { RepoMessage } from "../network/repo-protocol.js";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
/**
|
|
4
|
+
* One member's vote on a cluster transaction, in either the promise or the commit map.
|
|
5
|
+
*
|
|
6
|
+
* A discriminated union rather than one shape with optional fields, so each vote kind carries
|
|
7
|
+
* exactly its own payload: a `conflict` without its `conflictWith` (or a stray `rejectReason` on an
|
|
8
|
+
* `approve`) does not typecheck. Every variant's extra field is folded into the signed payload
|
|
9
|
+
* ({@link clusterVoteSigningPayload}), so none of them can be altered in transit.
|
|
10
|
+
*/
|
|
11
|
+
export type Signature =
|
|
12
|
+
| { type: 'approve'; signature: string }
|
|
13
|
+
| { type: 'reject'; signature: string; rejectReason?: string }
|
|
14
|
+
/**
|
|
15
|
+
* This member refuses the transaction *for now*: it holds a conflicting transaction that won
|
|
16
|
+
* the deterministic race (`resolveRace`). Retryable — NOT a validity judgement, and never
|
|
17
|
+
* counted toward the permanent-rejection threshold. `conflictWith` is the winning
|
|
18
|
+
* transaction's messageHash: structured, signed, and readable without parsing prose.
|
|
19
|
+
*/
|
|
20
|
+
| { type: 'conflict'; signature: string; conflictWith: string };
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* The exact bytes a vote signature covers: `<hash>:<type>[:<extra>]`, where `extra` is the variant's
|
|
24
|
+
* own payload — a reject's `rejectReason`, a conflict's `conflictWith`, nothing for an approve.
|
|
25
|
+
* Folding the extra in is what makes it integrity-protected in transit rather than free-floating
|
|
26
|
+
* prose.
|
|
27
|
+
*
|
|
28
|
+
* Producers and verifiers must both build the preimage here. It lives beside {@link Signature}
|
|
29
|
+
* rather than in either consumer because a second copy that forgets a variant does not fail loudly:
|
|
30
|
+
* it reports an honest vote as an invalid signature. (The dispute path once carried such a copy.)
|
|
31
|
+
*
|
|
32
|
+
* "Cluster" in the name distinguishes these consensus votes from the dispute subsystem's
|
|
33
|
+
* arbitration votes, which have their own unrelated preimage (`dispute/invalidation.ts`).
|
|
34
|
+
*/
|
|
35
|
+
export function clusterVoteSigningPayload(hash: string, type: Signature['type'], extra?: string): Uint8Array {
|
|
36
|
+
return new TextEncoder().encode(hash + ':' + type + (extra ? ':' + extra : ''));
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** Verifier-side {@link clusterVoteSigningPayload}: reads each variant's signed extra off the vote itself. */
|
|
40
|
+
export function clusterVoteVerificationPayload(hash: string, signature: Signature): Uint8Array {
|
|
41
|
+
switch (signature.type) {
|
|
42
|
+
case 'reject': return clusterVoteSigningPayload(hash, 'reject', signature.rejectReason);
|
|
43
|
+
case 'conflict': return clusterVoteSigningPayload(hash, 'conflict', signature.conflictWith);
|
|
44
|
+
default: return clusterVoteSigningPayload(hash, signature.type);
|
|
45
|
+
}
|
|
7
46
|
}
|
|
8
47
|
|
|
9
48
|
export type ClusterPeers = {
|