@pkcprotocol/pkc-js 0.0.40 → 0.0.42
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/browser/clients/base-client-manager.d.ts +5 -1
- package/dist/browser/clients/base-client-manager.js +87 -12
- package/dist/browser/clients/base-client-manager.js.map +1 -1
- package/dist/browser/clients/rpc-client/pkc-rpc-client.d.ts +5 -1
- package/dist/browser/clients/rpc-client/pkc-rpc-client.js +23 -1
- package/dist/browser/clients/rpc-client/pkc-rpc-client.js.map +1 -1
- package/dist/browser/clients/rpc-client/rpc-schema-util.d.ts +31 -0
- package/dist/browser/clients/rpc-client/rpc-schema-util.js +6 -1
- package/dist/browser/clients/rpc-client/rpc-schema-util.js.map +1 -1
- package/dist/browser/clients/rpc-client/schema.d.ts +27 -0
- package/dist/browser/clients/rpc-client/schema.js +12 -1
- package/dist/browser/clients/rpc-client/schema.js.map +1 -1
- package/dist/browser/clients/rpc-client/types.d.ts +5 -1
- package/dist/browser/community/community-client-manager.d.ts +1 -0
- package/dist/browser/community/community-client-manager.js +176 -37
- package/dist/browser/community/community-client-manager.js.map +1 -1
- package/dist/browser/community/community-gateway-selection.d.ts +32 -0
- package/dist/browser/community/community-gateway-selection.js +28 -0
- package/dist/browser/community/community-gateway-selection.js.map +1 -0
- package/dist/browser/community/remote-community.d.ts +13 -1
- package/dist/browser/community/remote-community.js +75 -5
- package/dist/browser/community/remote-community.js.map +1 -1
- package/dist/browser/community/rpc-local-community.d.ts +10 -1
- package/dist/browser/community/rpc-local-community.js +102 -0
- package/dist/browser/community/rpc-local-community.js.map +1 -1
- package/dist/browser/community/rpc-remote-community.js +19 -4
- package/dist/browser/community/rpc-remote-community.js.map +1 -1
- package/dist/browser/community/schema.d.ts +38 -0
- package/dist/browser/community/schema.js +50 -2
- package/dist/browser/community/schema.js.map +1 -1
- package/dist/browser/community/types.d.ts +4 -1
- package/dist/browser/constants.d.ts +2 -1
- package/dist/browser/constants.js +2 -1
- package/dist/browser/constants.js.map +1 -1
- package/dist/browser/errors.d.ts +11 -0
- package/dist/browser/errors.js +12 -0
- package/dist/browser/errors.js.map +1 -1
- package/dist/browser/generated-version.d.ts +1 -1
- package/dist/browser/generated-version.js +1 -1
- package/dist/browser/helia/helia-for-pkc.js +71 -22
- package/dist/browser/helia/helia-for-pkc.js.map +1 -1
- package/dist/browser/pkc/pkc-with-rpc-client.js +3 -0
- package/dist/browser/pkc/pkc-with-rpc-client.js.map +1 -1
- package/dist/browser/pkc/pkc.js +24 -3
- package/dist/browser/pkc/pkc.js.map +1 -1
- package/dist/browser/pkc-error.d.ts +1 -1
- package/dist/browser/rpc/src/index.d.ts +16 -2
- package/dist/browser/rpc/src/index.js +276 -6
- package/dist/browser/rpc/src/index.js.map +1 -1
- package/dist/browser/rpc/src/schema.d.ts +2 -0
- package/dist/browser/rpc/src/schema.js +10 -1
- package/dist/browser/rpc/src/schema.js.map +1 -1
- package/dist/browser/runtime/node/community/db-handler.js.map +1 -1
- package/dist/browser/runtime/node/community/local-community/db-state.js +8 -0
- package/dist/browser/runtime/node/community/local-community/db-state.js.map +1 -1
- package/dist/browser/runtime/node/community/local-community/export.d.ts +15 -0
- package/dist/browser/runtime/node/community/local-community/export.js +237 -0
- package/dist/browser/runtime/node/community/local-community/export.js.map +1 -0
- package/dist/browser/runtime/node/community/local-community/ipns-publishing.js +1 -1
- package/dist/browser/runtime/node/community/local-community/ipns-publishing.js.map +1 -1
- package/dist/browser/runtime/node/community/local-community/lifecycle.js +1 -0
- package/dist/browser/runtime/node/community/local-community/lifecycle.js.map +1 -1
- package/dist/browser/runtime/node/community/local-community.d.ts +12 -0
- package/dist/browser/runtime/node/community/local-community.js +22 -0
- package/dist/browser/runtime/node/community/local-community.js.map +1 -1
- package/dist/browser/runtime/node/util.d.ts +15 -0
- package/dist/browser/runtime/node/util.js +111 -1
- package/dist/browser/runtime/node/util.js.map +1 -1
- package/dist/browser/schema/schema-util.d.ts +1 -0
- package/dist/browser/test/test-util.d.ts +335 -1
- package/dist/browser/test/test-util.js +86 -5
- package/dist/browser/test/test-util.js.map +1 -1
- package/dist/browser/util.d.ts +8 -1
- package/dist/browser/util.js +175 -2
- package/dist/browser/util.js.map +1 -1
- package/dist/node/clients/base-client-manager.d.ts +5 -1
- package/dist/node/clients/base-client-manager.js +87 -12
- package/dist/node/clients/base-client-manager.js.map +1 -1
- package/dist/node/clients/rpc-client/pkc-rpc-client.d.ts +5 -1
- package/dist/node/clients/rpc-client/pkc-rpc-client.js +23 -1
- package/dist/node/clients/rpc-client/pkc-rpc-client.js.map +1 -1
- package/dist/node/clients/rpc-client/rpc-schema-util.d.ts +31 -0
- package/dist/node/clients/rpc-client/rpc-schema-util.js +6 -1
- package/dist/node/clients/rpc-client/rpc-schema-util.js.map +1 -1
- package/dist/node/clients/rpc-client/schema.d.ts +27 -0
- package/dist/node/clients/rpc-client/schema.js +12 -1
- package/dist/node/clients/rpc-client/schema.js.map +1 -1
- package/dist/node/clients/rpc-client/types.d.ts +5 -1
- package/dist/node/community/community-client-manager.d.ts +1 -0
- package/dist/node/community/community-client-manager.js +176 -37
- package/dist/node/community/community-client-manager.js.map +1 -1
- package/dist/node/community/community-gateway-selection.d.ts +32 -0
- package/dist/node/community/community-gateway-selection.js +28 -0
- package/dist/node/community/community-gateway-selection.js.map +1 -0
- package/dist/node/community/remote-community.d.ts +13 -1
- package/dist/node/community/remote-community.js +75 -5
- package/dist/node/community/remote-community.js.map +1 -1
- package/dist/node/community/rpc-local-community.d.ts +10 -1
- package/dist/node/community/rpc-local-community.js +102 -0
- package/dist/node/community/rpc-local-community.js.map +1 -1
- package/dist/node/community/rpc-remote-community.js +19 -4
- package/dist/node/community/rpc-remote-community.js.map +1 -1
- package/dist/node/community/schema.d.ts +38 -0
- package/dist/node/community/schema.js +50 -2
- package/dist/node/community/schema.js.map +1 -1
- package/dist/node/community/types.d.ts +4 -1
- package/dist/node/constants.d.ts +2 -1
- package/dist/node/constants.js +2 -1
- package/dist/node/constants.js.map +1 -1
- package/dist/node/errors.d.ts +11 -0
- package/dist/node/errors.js +12 -0
- package/dist/node/errors.js.map +1 -1
- package/dist/node/generated-version.d.ts +1 -1
- package/dist/node/generated-version.js +1 -1
- package/dist/node/helia/helia-for-pkc.js +71 -22
- package/dist/node/helia/helia-for-pkc.js.map +1 -1
- package/dist/node/pkc/pkc-with-rpc-client.js +3 -0
- package/dist/node/pkc/pkc-with-rpc-client.js.map +1 -1
- package/dist/node/pkc/pkc.js +24 -3
- package/dist/node/pkc/pkc.js.map +1 -1
- package/dist/node/pkc-error.d.ts +1 -1
- package/dist/node/rpc/src/index.d.ts +16 -2
- package/dist/node/rpc/src/index.js +276 -6
- package/dist/node/rpc/src/index.js.map +1 -1
- package/dist/node/rpc/src/schema.d.ts +2 -0
- package/dist/node/rpc/src/schema.js +10 -1
- package/dist/node/rpc/src/schema.js.map +1 -1
- package/dist/node/runtime/node/community/db-handler.js.map +1 -1
- package/dist/node/runtime/node/community/local-community/db-state.js +8 -0
- package/dist/node/runtime/node/community/local-community/db-state.js.map +1 -1
- package/dist/node/runtime/node/community/local-community/export.d.ts +15 -0
- package/dist/node/runtime/node/community/local-community/export.js +237 -0
- package/dist/node/runtime/node/community/local-community/export.js.map +1 -0
- package/dist/node/runtime/node/community/local-community/ipns-publishing.js +1 -1
- package/dist/node/runtime/node/community/local-community/ipns-publishing.js.map +1 -1
- package/dist/node/runtime/node/community/local-community/lifecycle.js +1 -0
- package/dist/node/runtime/node/community/local-community/lifecycle.js.map +1 -1
- package/dist/node/runtime/node/community/local-community.d.ts +12 -0
- package/dist/node/runtime/node/community/local-community.js +22 -0
- package/dist/node/runtime/node/community/local-community.js.map +1 -1
- package/dist/node/runtime/node/util.d.ts +15 -0
- package/dist/node/runtime/node/util.js +111 -1
- package/dist/node/runtime/node/util.js.map +1 -1
- package/dist/node/schema/schema-util.d.ts +1 -0
- package/dist/node/test/test-util.d.ts +335 -1
- package/dist/node/test/test-util.js +86 -5
- package/dist/node/test/test-util.js.map +1 -1
- package/dist/node/util.d.ts +8 -1
- package/dist/node/util.js +175 -2
- package/dist/node/util.js.map +1 -1
- package/package.json +1 -1
package/dist/browser/util.js
CHANGED
|
@@ -16,7 +16,8 @@ import { base32 } from "multiformats/bases/base32";
|
|
|
16
16
|
import Logger from "./logger.js";
|
|
17
17
|
import retry from "retry";
|
|
18
18
|
import { peerIdFromString } from "@libp2p/peer-id";
|
|
19
|
-
import { unmarshalIPNSRecord } from "ipns";
|
|
19
|
+
import { unmarshalIPNSRecord, multihashToIPNSRoutingKey } from "ipns";
|
|
20
|
+
import { ipnsValidator } from "ipns/validator";
|
|
20
21
|
import { importFile } from "ipfs-unixfs-importer";
|
|
21
22
|
import { MemoryBlockstore } from "blockstore-core";
|
|
22
23
|
import { findUpdatingCommunity } from "./pkc/tracked-instance-registry-util.js";
|
|
@@ -398,6 +399,12 @@ export function isIpfsCid(x) {
|
|
|
398
399
|
export function isIpfsPath(x) {
|
|
399
400
|
return x.startsWith("/ipfs/");
|
|
400
401
|
}
|
|
402
|
+
export function isIpnsPath(x) {
|
|
403
|
+
// Require a non-empty name segment after the prefix so a malformed bare "/ipns/" is rejected
|
|
404
|
+
// (it would otherwise flow into split("/")[2] next-hop parsing as an empty name).
|
|
405
|
+
const parts = x.split("/");
|
|
406
|
+
return parts.length >= 3 && parts[1] === "ipns" && parts[2].length > 0;
|
|
407
|
+
}
|
|
401
408
|
function isMultiaddrLike(value) {
|
|
402
409
|
if (typeof value !== "object" || value === null)
|
|
403
410
|
return false;
|
|
@@ -805,6 +812,78 @@ export async function removeMfsFilesSafely({ kuboRpcClient, paths, log, inputNum
|
|
|
805
812
|
});
|
|
806
813
|
});
|
|
807
814
|
}
|
|
815
|
+
// IPNS records MUST NOT exceed 10 KiB per the IPNS spec (https://specs.ipfs.tech/ipns/ipns-record);
|
|
816
|
+
// the `ipns` package's validator enforces the same limit as its own MAX_RECORD_SIZE. We cap the read
|
|
817
|
+
// BEFORE buffering the body so an untrusted gateway cannot exhaust memory by streaming a huge response
|
|
818
|
+
// that the validator would only reject after the fact (the validator's check runs on the already-buffered
|
|
819
|
+
// bytes). See docs/protocol/delegated-ipns.md.
|
|
820
|
+
export const MAX_IPNS_RECORD_SIZE = 10 * 1024;
|
|
821
|
+
// Joins streamed body chunks into a single Uint8Array. `total` MUST equal the summed chunk lengths.
|
|
822
|
+
function concatBodyChunks(chunks, total) {
|
|
823
|
+
if (chunks.length === 1)
|
|
824
|
+
return chunks[0];
|
|
825
|
+
const out = new Uint8Array(total);
|
|
826
|
+
let offset = 0;
|
|
827
|
+
for (const chunk of chunks) {
|
|
828
|
+
out.set(chunk, offset);
|
|
829
|
+
offset += chunk.length;
|
|
830
|
+
}
|
|
831
|
+
return out;
|
|
832
|
+
}
|
|
833
|
+
// Reads a fetch Response body into a Uint8Array, refusing to buffer more than MAX_IPNS_RECORD_SIZE. Checks
|
|
834
|
+
// Content-Length up front, then streams the body — WHATWG `getReader` (browser / undici) or the node-fetch
|
|
835
|
+
// async-iterable Node stream — enforcing the hard ceiling per chunk, so a missing or dishonest Content-Length
|
|
836
|
+
// still cannot make us buffer an oversized record. Only an exotic body that is neither stream type falls back
|
|
837
|
+
// to buffer-then-check. The caller supplies onOverSizeLimit so the error carries its own domain code/context
|
|
838
|
+
// (gateway chain vs local kubo node).
|
|
839
|
+
async function readRawIpnsRecordBody(res, onOverSizeLimit) {
|
|
840
|
+
const maxBytes = MAX_IPNS_RECORD_SIZE;
|
|
841
|
+
const sizeHeader = res.headers?.get("Content-Length");
|
|
842
|
+
if (sizeHeader && Number(sizeHeader) > maxBytes)
|
|
843
|
+
throw onOverSizeLimit({ maxBytes, observedBytes: Number(sizeHeader), viaContentLength: true });
|
|
844
|
+
// Native fetch / undici (browser and Node >= 18) expose a WHATWG ReadableStream.
|
|
845
|
+
if (res.body?.getReader !== undefined) {
|
|
846
|
+
const reader = res.body.getReader();
|
|
847
|
+
const chunks = [];
|
|
848
|
+
let total = 0;
|
|
849
|
+
while (true) {
|
|
850
|
+
const { done, value } = await reader.read();
|
|
851
|
+
if (value) {
|
|
852
|
+
total += value.length;
|
|
853
|
+
if (total > maxBytes) {
|
|
854
|
+
await reader.cancel().catch(() => { });
|
|
855
|
+
throw onOverSizeLimit({ maxBytes, observedBytes: total, viaContentLength: false });
|
|
856
|
+
}
|
|
857
|
+
chunks.push(value);
|
|
858
|
+
}
|
|
859
|
+
if (done)
|
|
860
|
+
break;
|
|
861
|
+
}
|
|
862
|
+
return concatBodyChunks(chunks, total);
|
|
863
|
+
}
|
|
864
|
+
// node-fetch path (no getReader): its Response body is a Node Readable, which is async-iterable. Stream it
|
|
865
|
+
// the same way so the ceiling holds without buffering the whole body first — the up-front Content-Length
|
|
866
|
+
// check alone can't stop a dishonest/missing header. (`as unknown as` because the WHATWG Response type
|
|
867
|
+
// doesn't model the Node stream's async iterator; this branch only runs when the body really is one.)
|
|
868
|
+
const iterableBody = res.body;
|
|
869
|
+
if (iterableBody?.[Symbol.asyncIterator] !== undefined) {
|
|
870
|
+
const chunks = [];
|
|
871
|
+
let total = 0;
|
|
872
|
+
for await (const chunk of iterableBody) {
|
|
873
|
+
total += chunk.length;
|
|
874
|
+
if (total > maxBytes)
|
|
875
|
+
throw onOverSizeLimit({ maxBytes, observedBytes: total, viaContentLength: false });
|
|
876
|
+
chunks.push(chunk);
|
|
877
|
+
}
|
|
878
|
+
return concatBodyChunks(chunks, total);
|
|
879
|
+
}
|
|
880
|
+
// Last resort: a body that is neither a WHATWG stream nor async-iterable. Buffer fully, then reject if the
|
|
881
|
+
// Content-Length omitted or under-reported the real size.
|
|
882
|
+
const buf = new Uint8Array(await res.arrayBuffer());
|
|
883
|
+
if (buf.byteLength > maxBytes)
|
|
884
|
+
throw onOverSizeLimit({ maxBytes, observedBytes: buf.byteLength, viaContentLength: false });
|
|
885
|
+
return buf;
|
|
886
|
+
}
|
|
808
887
|
export async function getIpnsRecordInLocalKuboNode(kuboRpcClient, ipnsName) {
|
|
809
888
|
const gatewayMultiaddr = await kuboRpcClient._client.config.get("Addresses.Gateway"); // need to be fetched from config Addresses.Gateway
|
|
810
889
|
const parts = gatewayMultiaddr.split("/").filter(Boolean);
|
|
@@ -818,7 +897,14 @@ export async function getIpnsRecordInLocalKuboNode(kuboRpcClient, ipnsName) {
|
|
|
818
897
|
status: res.status,
|
|
819
898
|
statusText: res.statusText
|
|
820
899
|
});
|
|
821
|
-
const ipnsRecordRaw =
|
|
900
|
+
const ipnsRecordRaw = await readRawIpnsRecordBody(res, ({ maxBytes, observedBytes, viaContentLength }) => new PKCError("ERR_FAILED_TO_LOAD_LOCAL_RAW_IPNS_RECORD", {
|
|
901
|
+
ipnsFetchUrl,
|
|
902
|
+
ipnsName,
|
|
903
|
+
reason: "Local IPNS record exceeds the maximum allowed size",
|
|
904
|
+
maxBytes,
|
|
905
|
+
observedBytes,
|
|
906
|
+
viaContentLength
|
|
907
|
+
}));
|
|
822
908
|
try {
|
|
823
909
|
return unmarshalIPNSRecord(ipnsRecordRaw);
|
|
824
910
|
}
|
|
@@ -826,6 +912,93 @@ export async function getIpnsRecordInLocalKuboNode(kuboRpcClient, ipnsName) {
|
|
|
826
912
|
throw new PKCError("ERR_FAILED_TO_PARSE_LOCAL_RAW_IPNS_RECORD", { ipnsName, ipnsFetchUrl, parseError: e });
|
|
827
913
|
}
|
|
828
914
|
}
|
|
915
|
+
// Fetches a raw IPNS record from an (untrusted) gateway via the ?format=ipns-record path
|
|
916
|
+
// param, validates its signature against the IPNS name's routing key, and returns the
|
|
917
|
+
// unmarshalled record. Used to verify a delegated IPNS chain (anchor -> ... -> terminal)
|
|
918
|
+
// independently of the gateway's own recursion, which cannot be trusted.
|
|
919
|
+
// See docs/protocol/delegated-ipns.md.
|
|
920
|
+
export async function fetchAndValidateIpnsRecordFromGateway(gatewayUrl, ipnsName,
|
|
921
|
+
// recordContext is merged into every error this raises so the caller's domain knowledge (e.g.
|
|
922
|
+
// which hop of a delegated chain this name is — anchor vs minter) survives into error.details.
|
|
923
|
+
opts) {
|
|
924
|
+
const ipnsFetchUrl = `${gatewayUrl.replace(/\/$/, "")}/ipns/${ipnsName}?format=ipns-record`;
|
|
925
|
+
const recordContext = opts?.recordContext;
|
|
926
|
+
let ipnsRecordRaw;
|
|
927
|
+
try {
|
|
928
|
+
const res = await fetch(ipnsFetchUrl, {
|
|
929
|
+
headers: { Accept: "application/vnd.ipfs.ipns-record" },
|
|
930
|
+
signal: opts?.abortSignal
|
|
931
|
+
});
|
|
932
|
+
if (res.status !== 200)
|
|
933
|
+
throw new PKCError("ERR_GATEWAY_IPNS_RECORD_CHAIN_INVALID", {
|
|
934
|
+
reason: "Gateway did not return the raw IPNS record",
|
|
935
|
+
...recordContext,
|
|
936
|
+
ipnsFetchUrl,
|
|
937
|
+
ipnsName,
|
|
938
|
+
status: res.status,
|
|
939
|
+
statusText: res.statusText
|
|
940
|
+
});
|
|
941
|
+
ipnsRecordRaw = await readRawIpnsRecordBody(res, ({ maxBytes, observedBytes, viaContentLength }) => new PKCError("ERR_GATEWAY_IPNS_RECORD_CHAIN_INVALID", {
|
|
942
|
+
reason: "IPNS record served by the gateway exceeds the maximum allowed size",
|
|
943
|
+
...recordContext,
|
|
944
|
+
ipnsFetchUrl,
|
|
945
|
+
ipnsName,
|
|
946
|
+
maxBytes,
|
|
947
|
+
observedBytes,
|
|
948
|
+
viaContentLength
|
|
949
|
+
}));
|
|
950
|
+
}
|
|
951
|
+
catch (e) {
|
|
952
|
+
// Don't remap aborts: a cancelled fetch is not a chain-validation failure, and remapping it
|
|
953
|
+
// would misclassify parent-driven aborts and break their abort logic.
|
|
954
|
+
if (isAbortError(e))
|
|
955
|
+
throw e;
|
|
956
|
+
if (e instanceof PKCError)
|
|
957
|
+
throw e;
|
|
958
|
+
throw new PKCError("ERR_GATEWAY_IPNS_RECORD_CHAIN_INVALID", {
|
|
959
|
+
reason: "Failed to fetch the raw IPNS record from the gateway",
|
|
960
|
+
...recordContext,
|
|
961
|
+
ipnsFetchUrl,
|
|
962
|
+
ipnsName,
|
|
963
|
+
fetchError: e
|
|
964
|
+
});
|
|
965
|
+
}
|
|
966
|
+
// Validate the record's signature AND validity (EOL) against the routing key derived from the
|
|
967
|
+
// IPNS name. This is what makes following the chain through an untrusted gateway safe.
|
|
968
|
+
try {
|
|
969
|
+
const routingKey = multihashToIPNSRoutingKey(peerIdFromString(ipnsName).toMultihash());
|
|
970
|
+
await ipnsValidator(routingKey, ipnsRecordRaw);
|
|
971
|
+
}
|
|
972
|
+
catch (e) {
|
|
973
|
+
// ipnsValidator rejects for several distinct reasons; surface an accurate one. An expired
|
|
974
|
+
// record (validity EOL passed) is NOT a forgery — for a delegated anchor record this is the
|
|
975
|
+
// liveness cliff described in docs/protocol/delegated-ipns.md (the offline owner must
|
|
976
|
+
// re-publish before EOL). Everything else means the gateway served a record not signed by the
|
|
977
|
+
// key the IPNS name commits to (forged or tampered).
|
|
978
|
+
const reason = e?.name === "RecordExpiredError"
|
|
979
|
+
? "IPNS record has expired: its validity (EOL) is in the past"
|
|
980
|
+
: "IPNS record signature is invalid: the record served by the gateway is not signed by the IPNS name's key (forged or tampered record)";
|
|
981
|
+
throw new PKCError("ERR_GATEWAY_IPNS_RECORD_CHAIN_INVALID", {
|
|
982
|
+
reason,
|
|
983
|
+
...recordContext,
|
|
984
|
+
ipnsFetchUrl,
|
|
985
|
+
ipnsName,
|
|
986
|
+
validationError: e
|
|
987
|
+
});
|
|
988
|
+
}
|
|
989
|
+
try {
|
|
990
|
+
return unmarshalIPNSRecord(ipnsRecordRaw);
|
|
991
|
+
}
|
|
992
|
+
catch (e) {
|
|
993
|
+
throw new PKCError("ERR_GATEWAY_IPNS_RECORD_CHAIN_INVALID", {
|
|
994
|
+
reason: "Failed to parse the IPNS record",
|
|
995
|
+
...recordContext,
|
|
996
|
+
ipnsFetchUrl,
|
|
997
|
+
ipnsName,
|
|
998
|
+
parseError: e
|
|
999
|
+
});
|
|
1000
|
+
}
|
|
1001
|
+
}
|
|
829
1002
|
const textEncoder = new TextEncoder();
|
|
830
1003
|
export async function calculateStringSizeSameAsIpfsAddCidV0(content) {
|
|
831
1004
|
const blockstore = new MemoryBlockstore();
|
package/dist/browser/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,10 +91,14 @@ export declare class BaseClientsManager {
|
|
|
91
91
|
resText: string;
|
|
92
92
|
res: Response;
|
|
93
93
|
}>;
|
|
94
|
+
static readonly MAX_IPNS_HOPS = 1;
|
|
94
95
|
resolveIpnsToCidP2P(ipnsName: string, loadOpts: {
|
|
95
96
|
timeoutMs: number;
|
|
96
97
|
abortSignal?: AbortSignal;
|
|
97
|
-
}): Promise<
|
|
98
|
+
}): Promise<{
|
|
99
|
+
cid: string;
|
|
100
|
+
ipnsHops: string[];
|
|
101
|
+
}>;
|
|
98
102
|
_fetchCidP2P(cidV0: string, loadOpts: {
|
|
99
103
|
maxFileSizeBytes: number;
|
|
100
104
|
timeoutMs: number;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import assert from "assert";
|
|
2
|
-
import { calculateIpfsCidV0, createAbortError, extractNetworkErrorDetails, hideClassPrivateProps, isAbortError, isIpns, isStringDomain, throwIfAbortSignalAborted } from "../util.js";
|
|
2
|
+
import { calculateIpfsCidV0, createAbortError, extractNetworkErrorDetails, hideClassPrivateProps, isAbortError, isIpns, isIpfsPath, isIpnsPath, isStringDomain, throwIfAbortSignalAborted } from "../util.js";
|
|
3
3
|
import { sha256 } from "js-sha256";
|
|
4
4
|
import { getPKCAddressFromPublicKey } from "../signer/util.js";
|
|
5
5
|
import { nativeFunctions } from "../runtime/node/util.js";
|
|
@@ -8,7 +8,6 @@ import pRetry, { AbortError as PRetryAbortError } from "p-retry";
|
|
|
8
8
|
import { FailedToFetchCommentIpfsFromGatewaysError, FailedToFetchCommentUpdateFromGatewaysError, FailedToFetchGenericIpfsFromGatewaysError, FailedToFetchPageIpfsFromGatewaysError, FailedToFetchCommunityFromGatewaysError, PKCError } from "../pkc-error.js";
|
|
9
9
|
import Logger from "../logger.js";
|
|
10
10
|
import * as cborg from "cborg";
|
|
11
|
-
import last from "it-last";
|
|
12
11
|
import { concat as uint8ArrayConcat } from "uint8arrays/concat";
|
|
13
12
|
import { toString as uint8ArrayToString } from "uint8arrays/to-string";
|
|
14
13
|
import all from "it-all";
|
|
@@ -440,21 +439,79 @@ export class BaseClientsManager {
|
|
|
440
439
|
return res.res;
|
|
441
440
|
}
|
|
442
441
|
}
|
|
443
|
-
//
|
|
442
|
+
// Resolves an IPNS name to its terminal /ipfs/ CID, following any /ipns/ -> /ipns/
|
|
443
|
+
// delegation hops along the way. Returns the resolved CID together with the ordered
|
|
444
|
+
// chain of IPNS names traversed: ipnsHops[0] is the anchor (the name we were asked to
|
|
445
|
+
// resolve) and ipnsHops.at(-1) is the terminal name (the name whose record points
|
|
446
|
+
// directly at the /ipfs/ CID, i.e. the key that signs the content).
|
|
444
447
|
async resolveIpnsToCidP2P(ipnsName, loadOpts) {
|
|
445
448
|
const log = Logger("pkc-js:clients-manager:resolveIpnsToCidP2P");
|
|
446
449
|
throwIfAbortSignalAborted(loadOpts.abortSignal);
|
|
447
|
-
|
|
450
|
+
// recursive: false so the resolver returns the IMMEDIATE value of each record (so we can
|
|
451
|
+
// walk /ipns/ -> /ipns/ hops ourselves); see performIpnsResolve below.
|
|
452
|
+
const ipnsResolveOpts = { nocache: true, recursive: false, ...loadOpts };
|
|
448
453
|
const ipfsClient = this.getIpfsClientWithKuboRpcClientFunctions();
|
|
449
454
|
const performIpnsResolve = async () => {
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
455
|
+
// We resolve ONE hop at a time (recursive: false) rather than letting the resolver
|
|
456
|
+
// collapse the whole chain to its final /ipfs/ CID. Kubo's recursive resolve only
|
|
457
|
+
// yields the final value and hides intermediate names, so resolving hop-by-hop is the
|
|
458
|
+
// only way to learn the terminal name (the key that signs the content) and to keep
|
|
459
|
+
// per-record signature verification at each hop. A normal (non-delegated) community
|
|
460
|
+
// resolves in a single hop, so this costs exactly one lookup in the common case.
|
|
461
|
+
const ipnsHops = [ipnsName];
|
|
462
|
+
let currentName = ipnsName;
|
|
463
|
+
// Follow at most MAX_IPNS_HOPS delegation hops. The loop exits only via a return (we hit
|
|
464
|
+
// a terminal /ipfs/ value) or a throw (undefined/unsupported value, or too many hops).
|
|
465
|
+
while (true) {
|
|
466
|
+
// Label the record we're about to resolve so any failure names WHICH record was at
|
|
467
|
+
// fault. hop 0 is the anchor; with MAX_IPNS_HOPS === 1 the only other hop fetched is
|
|
468
|
+
// the minter (the cap below throws before a 3rd hop is fetched), so the role is
|
|
469
|
+
// unambiguous — "anchor" or "minter". Mirrors the gateway chain walker's labelling so
|
|
470
|
+
// both resolution paths report failures identically. See docs/protocol/delegated-ipns.md.
|
|
471
|
+
const hopIndex = ipnsHops.length - 1;
|
|
472
|
+
const hopRole = hopIndex === 0 ? "anchor" : "minter";
|
|
473
|
+
const yieldedValues = await all(ipfsClient.name.resolve(currentName, ipnsResolveOpts));
|
|
474
|
+
// The single-hop value (kubo may yield it more than once; helia yields it once).
|
|
475
|
+
const value = yieldedValues[yieldedValues.length - 1];
|
|
476
|
+
if (!value)
|
|
477
|
+
throw new PKCError("ERR_RESOLVED_IPNS_P2P_TO_UNDEFINED", {
|
|
478
|
+
hopRole,
|
|
479
|
+
hopIndex,
|
|
480
|
+
resolvedValue: value,
|
|
481
|
+
yieldedValues,
|
|
482
|
+
currentName,
|
|
483
|
+
ipnsName,
|
|
484
|
+
ipnsHops,
|
|
485
|
+
ipnsResolveOpts
|
|
486
|
+
});
|
|
487
|
+
if (isIpfsPath(value))
|
|
488
|
+
return { cid: CidPathSchema.parse(value), ipnsHops };
|
|
489
|
+
if (isIpnsPath(value)) {
|
|
490
|
+
currentName = value.split("/")[2];
|
|
491
|
+
ipnsHops.push(currentName);
|
|
492
|
+
// ipnsHops.length - 1 is the number of /ipns/ -> /ipns/ hops followed so far.
|
|
493
|
+
if (ipnsHops.length - 1 > BaseClientsManager.MAX_IPNS_HOPS)
|
|
494
|
+
throw new PKCError("ERR_IPNS_MAX_HOPS_EXCEEDED", {
|
|
495
|
+
// hopRole/hopIndex describe the record that delegated one hop too far.
|
|
496
|
+
hopRole,
|
|
497
|
+
hopIndex,
|
|
498
|
+
ipnsHops,
|
|
499
|
+
maxHops: BaseClientsManager.MAX_IPNS_HOPS,
|
|
500
|
+
ipnsName,
|
|
501
|
+
ipnsResolveOpts
|
|
502
|
+
});
|
|
503
|
+
continue;
|
|
504
|
+
}
|
|
505
|
+
throw new PKCError("ERR_RESOLVED_IPNS_TO_UNSUPPORTED_VALUE", {
|
|
506
|
+
hopRole,
|
|
507
|
+
hopIndex,
|
|
508
|
+
unsupportedValue: value,
|
|
509
|
+
currentName,
|
|
454
510
|
ipnsName,
|
|
511
|
+
ipnsHops,
|
|
455
512
|
ipnsResolveOpts
|
|
456
513
|
});
|
|
457
|
-
|
|
514
|
+
}
|
|
458
515
|
};
|
|
459
516
|
try {
|
|
460
517
|
// Wrap the resolution function with pTimeout because kubo-rpc-client doesn't support timeout for IPNS
|
|
@@ -471,8 +528,18 @@ export class BaseClientsManager {
|
|
|
471
528
|
catch (error) {
|
|
472
529
|
if (isAbortError(error))
|
|
473
530
|
throw error;
|
|
474
|
-
|
|
475
|
-
|
|
531
|
+
// Over P2P, per-record IPNS signature validation — and therefore forgery/tamper detection —
|
|
532
|
+
// is performed inside the resolver (kubo/helia), not by us. So a forged, tampered, or
|
|
533
|
+
// otherwise unverifiable record surfaces here as an opaque resolution failure rather than an
|
|
534
|
+
// explicit forgery error like the gateway path's ERR_GATEWAY_IPNS_RECORD_CHAIN_INVALID. We
|
|
535
|
+
// attach this note to resolver-level failures (not to our own structured chain errors, which
|
|
536
|
+
// already explain themselves) so the surfaced error documents that asymmetry.
|
|
537
|
+
const isOpaqueResolverError = !(error instanceof PKCError);
|
|
538
|
+
const p2pValidationNote = isOpaqueResolverError
|
|
539
|
+
? "Resolution failed inside the IPNS resolver (kubo/helia). Over P2P the resolver performs per-record signature validation, so a forged/tampered/unverifiable record appears here as a resolution failure, not an explicit forgery error (cf. the gateway path's ERR_GATEWAY_IPNS_RECORD_CHAIN_INVALID). See docs/protocol/delegated-ipns.md."
|
|
540
|
+
: undefined;
|
|
541
|
+
//@ts-expect-error attaching extra context to whatever propagated (PKCError or raw resolver error)
|
|
542
|
+
error.details = { ...error.details, ipnsName, ipnsResolveOpts, ...(p2pValidationNote ? { note: p2pValidationNote } : {}) };
|
|
476
543
|
// Wrap ETIMEDOUT in PKCError so _isRetriableErrorWhenLoading recognizes it as retriable
|
|
477
544
|
if (error instanceof Error && "cause" in error && error.cause?.code === "ETIMEDOUT") {
|
|
478
545
|
log.error(`Failed to resolve IPNS ${ipnsName}: ${error.message} (ETIMEDOUT)`);
|
|
@@ -481,7 +548,8 @@ export class BaseClientsManager {
|
|
|
481
548
|
ipnsResolveOpts,
|
|
482
549
|
error,
|
|
483
550
|
errorMessage: error.message,
|
|
484
|
-
errorName: error.name
|
|
551
|
+
errorName: error.name,
|
|
552
|
+
note: p2pValidationNote
|
|
485
553
|
});
|
|
486
554
|
}
|
|
487
555
|
throw error;
|
|
@@ -760,4 +828,11 @@ export class BaseClientsManager {
|
|
|
760
828
|
return this._pkc._inflightFetchManager.withResource(InflightResourceTypes.COMMUNITY_IPNS, communityAddress, fetcher);
|
|
761
829
|
}
|
|
762
830
|
}
|
|
831
|
+
// IPFS P2P methods
|
|
832
|
+
// Maximum number of /ipns/ -> /ipns/ delegation hops we follow before giving up. For now this
|
|
833
|
+
// is capped at 1, so only a single anchor -> minter delegation is supported (see
|
|
834
|
+
// docs/protocol/delegated-ipns.md). A normal (non-delegated) community resolves in zero hops
|
|
835
|
+
// (its record points straight at /ipfs/); a delegated community resolves in exactly one
|
|
836
|
+
// (anchor -> minter -> /ipfs/). Longer chains are rejected with ERR_IPNS_MAX_HOPS_EXCEEDED.
|
|
837
|
+
BaseClientsManager.MAX_IPNS_HOPS = 1;
|
|
763
838
|
//# sourceMappingURL=base-client-manager.js.map
|