@pkcprotocol/pkc-js 0.0.94 → 0.0.95
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/community/community-client-manager.d.ts +1 -0
- package/dist/browser/community/community-client-manager.js +27 -6
- package/dist/browser/community/community-client-manager.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.d.ts +1 -0
- package/dist/browser/helia/helia-for-pkc.js +101 -7
- package/dist/browser/helia/helia-for-pkc.js.map +1 -1
- package/dist/browser/helia/libp2pjsClient.d.ts +3 -1
- package/dist/browser/helia/libp2pjsClient.js +1 -0
- package/dist/browser/helia/libp2pjsClient.js.map +1 -1
- package/dist/browser/helia/types.d.ts +9 -0
- package/dist/browser/helia/util.d.ts +2 -1
- package/dist/browser/helia/util.js +12 -1
- package/dist/browser/helia/util.js.map +1 -1
- package/dist/bundled/bundle-manifest.json +31 -31
- package/dist/bundled/chunks/{helia-for-pkc-Bj-Zb4JN.js → helia-for-pkc-gnrYOd9S.js} +70 -37
- package/dist/bundled/chunks/{local-community-Ce7303vY.js → local-community-B2tgEzEC.js} +30 -30
- package/dist/bundled/chunks/{local-community-BrMLMEmt.js → local-community-C-EhIxnP.js} +1 -1
- package/dist/bundled/chunks/{node-C37nDOa8.js → node-BgrW8YM1.js} +5 -5
- package/dist/bundled/chunks/{rpc-local-community-Dr_-Lb8I.js → rpc-local-community-1IZANITv.js} +9 -2
- package/dist/bundled/chunks/{schema-5-rYJ-bC.js → schema-r1qeoNNd.js} +1 -1
- package/dist/bundled/chunks/{util-_-fNQNIV.js → util-Dng2qrAF.js} +3 -2
- package/dist/bundled/index.js +1 -1
- package/dist/bundled/rpc/src/index.js +4 -4
- package/dist/node/community/community-client-manager.d.ts +1 -0
- package/dist/node/community/community-client-manager.js +27 -6
- package/dist/node/community/community-client-manager.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.d.ts +1 -0
- package/dist/node/helia/helia-for-pkc.js +101 -7
- package/dist/node/helia/helia-for-pkc.js.map +1 -1
- package/dist/node/helia/libp2pjsClient.d.ts +3 -1
- package/dist/node/helia/libp2pjsClient.js +1 -0
- package/dist/node/helia/libp2pjsClient.js.map +1 -1
- package/dist/node/helia/types.d.ts +9 -0
- package/dist/node/helia/util.d.ts +2 -1
- package/dist/node/helia/util.js +12 -1
- package/dist/node/helia/util.js.map +1 -1
- package/package.json +1 -1
package/dist/bundled/chunks/{rpc-local-community-Dr_-Lb8I.js → rpc-local-community-1IZANITv.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { i as __toESM, n as __exportAll, r as __require, t as __commonJSMin } from "./chunk-2rV9d50f.js";
|
|
2
|
-
import { $ as isRequestPubsubPublicationOfReply, $n as CommunityAuthorChallengeReservedFieldNames, $t as CreateCommentModerationOptionsWithRefinementSchema, A as doesDomainAddressHaveCapitalLetter, An as CommentUpdateReservedFields, Ar as boolean, At as listUpdatingCommunities, B as ipnsNameToIpnsOverPubsubTopic, Bt as require_sha256$1, Cn as CommentIpfsSchema, Cr as messages, D as createAbortError, Dn as CommentUpdateChallengeReservedFieldNames, Dt as findUpdatingCommunity, En as CommentSignedPropertyNames, Er as require_ms$1, Et as findUpdatingComment, Fn as CreateCommentOptionsWithRefinementSchema, Fr as record, G as isIpnsPath, Gn as CreateCommentEditOptionsWithRefinementSchema, Gt as CommunityEditPublicationSignedPropertyNames, H as isIpfsCid, Ht as pTimeout, In as GetPageParamSchema, Ir as string, It as trackUpdatingCommunity, Jt as CommentModerationChallengeRequestToEncryptSchema, Kn as AuthorAddressSchema, Kt as CommunityEditPubsubMessagePublicationSchema, L as getPostUpdateTimestampRange, Ln as ModQueuePageIpfsSchema, Lt as untrackStartedCommunity, M as fetchAndValidateIpnsRecordFromGateway, Mn as CommentUpdateSignedPropertyNames, Mr as literal, Mt as refreshTrackedCommunityAliases, Nr as number, O as deepMergeRuntimeFields, Or as _enum, Ot as listStartedCommunities, Pr as object, Pt as trackStartedCommunity, Q as isRequestPubsubPublicationOfPost, Qn as CommunityAddressSchema, Qt as CommentModerationsTableRowSchema, R as hideClassPrivateProps, Rn as PageIpfsSchema, Rt as untrackUpdatingComment, S as calculateIpfsCidV0, Sn as CommentIpfsReservedFields, Sr as PKCError, St as waitForUpdateInCommunityInstanceWithErrorAndTimeout, Tn as CommentPubsubMessageWithFlexibleAuthorRefinementSchema, Tr as require_supports_color, Tt as findStartedCommunity, U as isIpfsPath, Un as CommentEditSignedPropertyNames, Ut as CommunityEditPublicationChallengeRequestToEncryptSchema, V as isAbortError, Vn as CommentEditPubsubMessagePublicationWithFlexibleAuthorSchema, W as isIpns, Xn as CidPathSchema, Yn as ChallengeAnswersSchema, Yt as CommentModerationPubsubMessagePublicationSchema, Zn as CidStringSchema, Zt as CommentModerationSignedPropertyNames, _ as PKCUserOptionBaseSchema, _n as VotePubsubMessagePublicationSchema, _r as FailedToFetchCommentIpfsFromGatewaysError, _t as shortifyCid, an as CommunityExportRecordsSchema, ar as t$13, b as areEquivalentCommunityAddresses, br as FailedToFetchGenericIpfsFromGatewaysError, bt as throwIfAbortSignalAborted, c as ChallengeVerificationMessageSignedPropertyNames, cn as CommunitySignedPropertyNames, cr as t$11, ct as removeNullUndefinedEmptyObjectsValuesRecursively, dn as CreateRpcCommunityFunctionArgumentSchema, dr as n$8, en as ChallengeFileFactorySchema, er as CreateSignerSchema, et as isStringDomain, f as DecryptedChallengeSchema, fn as ExportCommunityModLogsOptionsSchema, fr as r$7, ft as resolveWhenPredicateIsTrue, g as PKCParsedOptionsSchema, gn as VoteChallengeRequestToEncryptSchema, gr as require_retry$1, gt as shortifyAddress, h as NameResolverSerializedSchema, hn as CreateVoteUserOptionsWithRefinementSchema, hr as e$4, i as ChallengeMessageSignedPropertyNames, in as CommunityEditOptionsSchema, j as extractNetworkErrorDetails, jn as CommentUpdateSchema, jr as custom, k as derivePublicationFromChallengeRequest, kn as CommentUpdateForChallengeVerificationSignedPropertyNames, kr as array, l as DecryptedChallengeAnswerSchema, ln as CreateNewLocalCommunityUserOptionsSchema, lr as r$8, m as NameResolveCacheOptionsSchema, mn as RpcRemoteCommunityUpdateEventResultSchema, mr as t$9, n as ChallengeAnswerMessageSignedPropertyNames, o as ChallengeRequestMessageSignedPropertyNames, on as CommunityIpfsReservedFields, or as e$6, p as DecryptedChallengeVerificationSchema, pr as t$10, qn as AuthorCommentIpfsReservedFields, qt as CreateCommunityEditPublicationOptionsWithRefinementSchema, rn as CommunityChallengeSettingSchema, rr as n$9, rt as raceAgainstAbort, sn as CommunityIpfsSchema, sr as e$5, tn as ChallengeFileSchema, tr as n$10, tt as pubsubTopicToDhtKey, un as CreateRemoteCommunityFunctionArgumentSchema, ur as t$12, v as PKCUserOptionsSchema, vr as FailedToFetchCommentUpdateFromGatewaysError, vt as sleepUntilTimeoutOrAbort, wr as logger_default, xn as CommentChallengeRequestToEncryptSchema, xr as FailedToFetchPageIpfsFromGatewaysError, xt as timestamp, yn as VoteSignedPropertyNames, yr as FailedToFetchCommunityFromGatewaysError, z as interruptibleSleep, zn as CommentEditChallengeRequestToEncryptSchema, zt as untrackUpdatingCommunity } from "./schema-
|
|
2
|
+
import { $ as isRequestPubsubPublicationOfReply, $n as CommunityAuthorChallengeReservedFieldNames, $t as CreateCommentModerationOptionsWithRefinementSchema, A as doesDomainAddressHaveCapitalLetter, An as CommentUpdateReservedFields, Ar as boolean, At as listUpdatingCommunities, B as ipnsNameToIpnsOverPubsubTopic, Bt as require_sha256$1, Cn as CommentIpfsSchema, Cr as messages, D as createAbortError, Dn as CommentUpdateChallengeReservedFieldNames, Dt as findUpdatingCommunity, En as CommentSignedPropertyNames, Er as require_ms$1, Et as findUpdatingComment, Fn as CreateCommentOptionsWithRefinementSchema, Fr as record, G as isIpnsPath, Gn as CreateCommentEditOptionsWithRefinementSchema, Gt as CommunityEditPublicationSignedPropertyNames, H as isIpfsCid, Ht as pTimeout, In as GetPageParamSchema, Ir as string, It as trackUpdatingCommunity, Jt as CommentModerationChallengeRequestToEncryptSchema, Kn as AuthorAddressSchema, Kt as CommunityEditPubsubMessagePublicationSchema, L as getPostUpdateTimestampRange, Ln as ModQueuePageIpfsSchema, Lt as untrackStartedCommunity, M as fetchAndValidateIpnsRecordFromGateway, Mn as CommentUpdateSignedPropertyNames, Mr as literal, Mt as refreshTrackedCommunityAliases, Nr as number, O as deepMergeRuntimeFields, Or as _enum, Ot as listStartedCommunities, Pr as object, Pt as trackStartedCommunity, Q as isRequestPubsubPublicationOfPost, Qn as CommunityAddressSchema, Qt as CommentModerationsTableRowSchema, R as hideClassPrivateProps, Rn as PageIpfsSchema, Rt as untrackUpdatingComment, S as calculateIpfsCidV0, Sn as CommentIpfsReservedFields, Sr as PKCError, St as waitForUpdateInCommunityInstanceWithErrorAndTimeout, Tn as CommentPubsubMessageWithFlexibleAuthorRefinementSchema, Tr as require_supports_color, Tt as findStartedCommunity, U as isIpfsPath, Un as CommentEditSignedPropertyNames, Ut as CommunityEditPublicationChallengeRequestToEncryptSchema, V as isAbortError, Vn as CommentEditPubsubMessagePublicationWithFlexibleAuthorSchema, W as isIpns, Xn as CidPathSchema, Yn as ChallengeAnswersSchema, Yt as CommentModerationPubsubMessagePublicationSchema, Zn as CidStringSchema, Zt as CommentModerationSignedPropertyNames, _ as PKCUserOptionBaseSchema, _n as VotePubsubMessagePublicationSchema, _r as FailedToFetchCommentIpfsFromGatewaysError, _t as shortifyCid, an as CommunityExportRecordsSchema, ar as t$13, b as areEquivalentCommunityAddresses, br as FailedToFetchGenericIpfsFromGatewaysError, bt as throwIfAbortSignalAborted, c as ChallengeVerificationMessageSignedPropertyNames, cn as CommunitySignedPropertyNames, cr as t$11, ct as removeNullUndefinedEmptyObjectsValuesRecursively, dn as CreateRpcCommunityFunctionArgumentSchema, dr as n$8, en as ChallengeFileFactorySchema, er as CreateSignerSchema, et as isStringDomain, f as DecryptedChallengeSchema, fn as ExportCommunityModLogsOptionsSchema, fr as r$7, ft as resolveWhenPredicateIsTrue, g as PKCParsedOptionsSchema, gn as VoteChallengeRequestToEncryptSchema, gr as require_retry$1, gt as shortifyAddress, h as NameResolverSerializedSchema, hn as CreateVoteUserOptionsWithRefinementSchema, hr as e$4, i as ChallengeMessageSignedPropertyNames, in as CommunityEditOptionsSchema, j as extractNetworkErrorDetails, jn as CommentUpdateSchema, jr as custom, k as derivePublicationFromChallengeRequest, kn as CommentUpdateForChallengeVerificationSignedPropertyNames, kr as array, l as DecryptedChallengeAnswerSchema, ln as CreateNewLocalCommunityUserOptionsSchema, lr as r$8, m as NameResolveCacheOptionsSchema, mn as RpcRemoteCommunityUpdateEventResultSchema, mr as t$9, n as ChallengeAnswerMessageSignedPropertyNames, o as ChallengeRequestMessageSignedPropertyNames, on as CommunityIpfsReservedFields, or as e$6, p as DecryptedChallengeVerificationSchema, pr as t$10, qn as AuthorCommentIpfsReservedFields, qt as CreateCommunityEditPublicationOptionsWithRefinementSchema, rn as CommunityChallengeSettingSchema, rr as n$9, rt as raceAgainstAbort, sn as CommunityIpfsSchema, sr as e$5, tn as ChallengeFileSchema, tr as n$10, tt as pubsubTopicToDhtKey, un as CreateRemoteCommunityFunctionArgumentSchema, ur as t$12, v as PKCUserOptionsSchema, vr as FailedToFetchCommentUpdateFromGatewaysError, vt as sleepUntilTimeoutOrAbort, wr as logger_default, xn as CommentChallengeRequestToEncryptSchema, xr as FailedToFetchPageIpfsFromGatewaysError, xt as timestamp, yn as VoteSignedPropertyNames, yr as FailedToFetchCommunityFromGatewaysError, z as interruptibleSleep, zn as CommentEditChallengeRequestToEncryptSchema, zt as untrackUpdatingCommunity } from "./schema-r1qeoNNd.js";
|
|
3
3
|
import { t as all } from "./src-CYIMjhjK.js";
|
|
4
4
|
import { createHash } from "node:crypto";
|
|
5
5
|
import { pathToFileURL } from "node:url";
|
|
@@ -125865,12 +125865,19 @@ var CommunityClientsManager = class extends PKCClientsManager {
|
|
|
125865
125865
|
return subRes;
|
|
125866
125866
|
});
|
|
125867
125867
|
}
|
|
125868
|
+
_isIpnsPushChannelHealthyForName(libp2pJsClient, ipnsName) {
|
|
125869
|
+
try {
|
|
125870
|
+
return libp2pJsClient.heliaWithKuboRpcClientFunctions.isIpnsPushChannelHealthy({ pubsubTopic: ipnsNameToIpnsOverPubsubTopic(ipnsName) });
|
|
125871
|
+
} catch {
|
|
125872
|
+
return false;
|
|
125873
|
+
}
|
|
125874
|
+
}
|
|
125868
125875
|
async _fetchCommunityIpnsP2PAndVerify(ipnsName) {
|
|
125869
125876
|
const log = logger_default("pkc-js:clients-manager:_fetchCommunityIpnsP2PAndVerify");
|
|
125870
125877
|
const kuboRpcOrHelia = this.getDefaultKuboRpcClientOrHelia();
|
|
125871
125878
|
if ("_helia" in kuboRpcOrHelia) this.updateLibp2pJsClientState("fetching-ipns", kuboRpcOrHelia._libp2pJsClientsOptions.key);
|
|
125872
125879
|
else this.updateKuboRpcState("fetching-ipns", kuboRpcOrHelia.url);
|
|
125873
|
-
const forceNetworkRevalidation = this._nextResolveRevalidatesNetwork;
|
|
125880
|
+
const forceNetworkRevalidation = this._nextResolveRevalidatesNetwork && !("_helia" in kuboRpcOrHelia && this._isIpnsPushChannelHealthyForName(kuboRpcOrHelia, ipnsName));
|
|
125874
125881
|
this._nextResolveRevalidatesNetwork = false;
|
|
125875
125882
|
if (forceNetworkRevalidation) this._lastForcedIpnsNetworkRevalidationAtMs = Date.now();
|
|
125876
125883
|
const { cid: latestCommunityCid, ipnsHops } = await this.resolveIpnsToCidP2P(ipnsName, {
|
|
@@ -16223,7 +16223,7 @@ function extractNetworkErrorDetails(err, depth = 0) {
|
|
|
16223
16223
|
}
|
|
16224
16224
|
//#endregion
|
|
16225
16225
|
//#region dist/node/generated-version.js
|
|
16226
|
-
const version = "0.0.
|
|
16226
|
+
const version = "0.0.95";
|
|
16227
16227
|
//#endregion
|
|
16228
16228
|
//#region dist/node/version.js
|
|
16229
16229
|
const protocolVersion = ProtocolVersionSchema.parse("1.0.0");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Sr as PKCError, nt as pubsubTopicToDhtKeyCid } from "./schema-
|
|
1
|
+
import { Sr as PKCError, nt as pubsubTopicToDhtKeyCid } from "./schema-r1qeoNNd.js";
|
|
2
2
|
import { ipnsSelector } from "ipns/selector";
|
|
3
3
|
import { ipnsValidator } from "ipns/validator";
|
|
4
4
|
import { unmarshalIPNSRecord } from "ipns";
|
|
@@ -484,7 +484,7 @@ function ipnsCacheTtlJitterFactor(routingKey) {
|
|
|
484
484
|
}
|
|
485
485
|
return .75 + hash / 4294967296 * .25;
|
|
486
486
|
}
|
|
487
|
-
async function readFreshCachedIpnsRecordFromPubsubLocalStore({ localStore, routingKey, lastNetworkValidatedAtMs }) {
|
|
487
|
+
async function readFreshCachedIpnsRecordFromPubsubLocalStore({ localStore, routingKey, lastNetworkValidatedAtMs, pushChannelHealthy }) {
|
|
488
488
|
if (!await localStore.has(routingKey)) return void 0;
|
|
489
489
|
const { record: recordBytes, created } = await localStore.get(routingKey);
|
|
490
490
|
try {
|
|
@@ -493,6 +493,7 @@ async function readFreshCachedIpnsRecordFromPubsubLocalStore({ localStore, routi
|
|
|
493
493
|
return;
|
|
494
494
|
}
|
|
495
495
|
const record = unmarshalIPNSRecord(recordBytes);
|
|
496
|
+
if (pushChannelHealthy === true) return record;
|
|
496
497
|
const effectiveTtlMs = (record.ttl !== void 0 ? Number(record.ttl / 1000000n) : DEFAULT_CACHED_IPNS_RECORD_TTL_MS) * ipnsCacheTtlJitterFactor(routingKey);
|
|
497
498
|
const lastConfirmedCurrentAtMs = Math.max(created.getTime(), lastNetworkValidatedAtMs ?? 0);
|
|
498
499
|
if (Date.now() - lastConfirmedCurrentAtMs >= effectiveTtlMs) return void 0;
|
package/dist/bundled/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as getShortCid, i as getShortAddress, n as challenges, o as nativeFunctions, r as createAnchorIpnsRecord, s as setNativeFunctions, t as PKC } from "./chunks/node-
|
|
1
|
+
import { a as getShortCid, i as getShortAddress, n as challenges, o as nativeFunctions, r as createAnchorIpnsRecord, s as setNativeFunctions, t as PKC } from "./chunks/node-BgrW8YM1.js";
|
|
2
2
|
export { challenges, createAnchorIpnsRecord, PKC as default, getShortAddress, getShortCid, nativeFunctions, setNativeFunctions };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Ht as pTimeout, R as hideClassPrivateProps, Sr as PKCError, Tt as findStartedCommunity, ar as t, dt as replaceXWithY, rr as n, wr as logger_default } from "../../chunks/schema-
|
|
2
|
-
import { _ as parseRpcPublishAnchorRecordParam, c as parseRpcAuthorNameParam, d as parseRpcCommentRepliesPageParam, f as parseRpcCommunityIdentifierParam, g as parseRpcExportCommunityParam, h as parseRpcExportCommunityModLogsParam, l as parseRpcCancelExportParam, m as parseRpcEditCommunityParam, p as parseRpcCommunityPageParam, t as PKC, u as parseRpcCidParam, v as parseRpcPublishChallengeAnswersParam, y as parseRpcUnsubscribeParam } from "../../chunks/node-
|
|
3
|
-
import { An as parseSetNewSettingsPKCWsServerSchemaWithPKCErrorIfItFails, Cn as parseDecryptedChallengeAnswerWithPKCErrorIfItFails, J as buildPagesRuntimeFields, ct as pRetry, dn as parseCommunityEditOptionsSchemaWithPKCErrorIfItFails, dt as require_lib, jn as parseVoteChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, lt as pLimit, nn as parseCommentChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, on as parseCommentModerationChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, q as buildPageRuntimeFields, rn as parseCommentEditChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, rr as t$1, rt as extractCrosspostRuntimeFields, un as parseCommunityEditChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, ur as stringify, vn as parseCreateNewLocalCommunityUserOptionsSchemaWithPKCErrorIfItFails, yn as parseCreatePKCWsServerOptionsSchemaWithPKCErrorIfItFails } from "../../chunks/rpc-local-community-
|
|
4
|
-
import { t as LocalCommunity } from "../../chunks/local-community-
|
|
1
|
+
import { Ht as pTimeout, R as hideClassPrivateProps, Sr as PKCError, Tt as findStartedCommunity, ar as t, dt as replaceXWithY, rr as n, wr as logger_default } from "../../chunks/schema-r1qeoNNd.js";
|
|
2
|
+
import { _ as parseRpcPublishAnchorRecordParam, c as parseRpcAuthorNameParam, d as parseRpcCommentRepliesPageParam, f as parseRpcCommunityIdentifierParam, g as parseRpcExportCommunityParam, h as parseRpcExportCommunityModLogsParam, l as parseRpcCancelExportParam, m as parseRpcEditCommunityParam, p as parseRpcCommunityPageParam, t as PKC, u as parseRpcCidParam, v as parseRpcPublishChallengeAnswersParam, y as parseRpcUnsubscribeParam } from "../../chunks/node-BgrW8YM1.js";
|
|
3
|
+
import { An as parseSetNewSettingsPKCWsServerSchemaWithPKCErrorIfItFails, Cn as parseDecryptedChallengeAnswerWithPKCErrorIfItFails, J as buildPagesRuntimeFields, ct as pRetry, dn as parseCommunityEditOptionsSchemaWithPKCErrorIfItFails, dt as require_lib, jn as parseVoteChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, lt as pLimit, nn as parseCommentChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, on as parseCommentModerationChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, q as buildPageRuntimeFields, rn as parseCommentEditChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, rr as t$1, rt as extractCrosspostRuntimeFields, un as parseCommunityEditChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, ur as stringify, vn as parseCreateNewLocalCommunityUserOptionsSchemaWithPKCErrorIfItFails, yn as parseCreatePKCWsServerOptionsSchemaWithPKCErrorIfItFails } from "../../chunks/rpc-local-community-1IZANITv.js";
|
|
4
|
+
import { t as LocalCommunity } from "../../chunks/local-community-B2tgEzEC.js";
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
6
|
import path from "path";
|
|
7
7
|
import assert from "assert";
|
|
@@ -72,6 +72,7 @@ export declare class CommunityClientsManager extends PKCClientsManager {
|
|
|
72
72
|
_resolvePageAuthorNamesInBackground(): void;
|
|
73
73
|
private _pinnedIpnsName;
|
|
74
74
|
fetchNewUpdateForCommunity(communityAddress: string): Promise<ResultOfFetchingCommunity>;
|
|
75
|
+
private _isIpnsPushChannelHealthyForName;
|
|
75
76
|
private _fetchCommunityIpnsP2PAndVerify;
|
|
76
77
|
private _fetchCommunityFromGateways;
|
|
77
78
|
private _resolveIpnsChainViaGateway;
|
|
@@ -753,6 +753,19 @@ export class CommunityClientsManager extends PKCClientsManager {
|
|
|
753
753
|
return subRes;
|
|
754
754
|
});
|
|
755
755
|
}
|
|
756
|
+
// True while the libp2p-js resolver's push-channel watchdog vouches for `ipnsName`'s topic
|
|
757
|
+
// (issue #330). A probe failure must never break the update cycle: on any error the answer
|
|
758
|
+
// is "unhealthy", which only costs a network revalidation.
|
|
759
|
+
_isIpnsPushChannelHealthyForName(libp2pJsClient, ipnsName) {
|
|
760
|
+
try {
|
|
761
|
+
return libp2pJsClient.heliaWithKuboRpcClientFunctions.isIpnsPushChannelHealthy({
|
|
762
|
+
pubsubTopic: ipnsNameToIpnsOverPubsubTopic(ipnsName)
|
|
763
|
+
});
|
|
764
|
+
}
|
|
765
|
+
catch {
|
|
766
|
+
return false;
|
|
767
|
+
}
|
|
768
|
+
}
|
|
756
769
|
async _fetchCommunityIpnsP2PAndVerify(ipnsName) {
|
|
757
770
|
const log = Logger("pkc-js:clients-manager:_fetchCommunityIpnsP2PAndVerify");
|
|
758
771
|
const kuboRpcOrHelia = this.getDefaultKuboRpcClientOrHelia();
|
|
@@ -761,12 +774,20 @@ export class CommunityClientsManager extends PKCClientsManager {
|
|
|
761
774
|
}
|
|
762
775
|
else
|
|
763
776
|
this.updateKuboRpcState("fetching-ipns", kuboRpcOrHelia.url);
|
|
764
|
-
// A cycle woken by the safety-net timer (not by an arrival)
|
|
765
|
-
//
|
|
766
|
-
// would
|
|
767
|
-
//
|
|
768
|
-
// promises.
|
|
769
|
-
|
|
777
|
+
// A cycle woken by the safety-net timer (not by an arrival) exists for pushes that
|
|
778
|
+
// never arrived, which the routing-layer cache gate's ttl check alone cannot observe —
|
|
779
|
+
// it would serve the stale record for its whole remaining ttl (300s at kubo 0.43's
|
|
780
|
+
// default) instead of the max(updateInterval, revalidation floor) the safety net
|
|
781
|
+
// promises. The push-channel watchdog (issue #330) observes exactly that condition
|
|
782
|
+
// though: while the anchor topic has gossipsub subscribers and a signature-valid record
|
|
783
|
+
// arrived within the watchdog window, rebroadcasts and fetch-on-join are demonstrably
|
|
784
|
+
// keeping the cache current, so the forced network revalidation is skipped and the
|
|
785
|
+
// resolve rides the cache gate (each hop of a delegated chain then consults its own
|
|
786
|
+
// topic's health, and the gate itself falls back to per-ttl revalidation the moment a
|
|
787
|
+
// channel degrades — the next armed tick after that forces the network again). No-op
|
|
788
|
+
// for the kubo-RPC resolver, which always resolves with nocache: true.
|
|
789
|
+
const forceNetworkRevalidation = this._nextResolveRevalidatesNetwork &&
|
|
790
|
+
!("_helia" in kuboRpcOrHelia && this._isIpnsPushChannelHealthyForName(kuboRpcOrHelia, ipnsName));
|
|
770
791
|
// Consumed by the cycle's FIRST attempt only: updateOnce retries this fetch (forever,
|
|
771
792
|
// with backoff) on retriable errors such as a CID fetch timeout after a successful
|
|
772
793
|
// resolve, and those attempts must ride the cache as the 1s poll's retries did instead
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"community-client-manager.js","sourceRoot":"","sources":["../../../src/community/community-client-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"community-client-manager.js","sourceRoot":"","sources":["../../../src/community/community-client-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "0.0.
|
|
1
|
+
export declare const version = "0.0.95";
|
|
@@ -2,4 +2,5 @@ import type { ParsedPKCOptions } from "../types.js";
|
|
|
2
2
|
import { Libp2pJsClient } from "./libp2pjsClient.js";
|
|
3
3
|
export declare function ipnsRouterTag(router: unknown): string;
|
|
4
4
|
export declare function isLocalStoreIpnsRouter(router: unknown): boolean;
|
|
5
|
+
export declare const IPNS_PUSH_CHANNEL_WATCHDOG_MS: number;
|
|
5
6
|
export declare function createLibp2pJsClientOrUseExistingOne(pkcOptions: Required<Pick<ParsedPKCOptions, "httpRoutersOptions">> & Pick<ParsedPKCOptions, "dataPath"> & NonNullable<ParsedPKCOptions["libp2pJsClientsOptions"]>[number]): Promise<Libp2pJsClient>;
|
|
@@ -96,6 +96,14 @@ export function ipnsRouterTag(router) {
|
|
|
96
96
|
export function isLocalStoreIpnsRouter(router) {
|
|
97
97
|
return ipnsRouterTag(router) === "LocalStoreRouting()";
|
|
98
98
|
}
|
|
99
|
+
// How long a name's push channel is trusted after the last signature-valid record was obtained
|
|
100
|
+
// from the network (issue #330). kubo's go-libp2p-pubsub-router rebroadcasts its best record on
|
|
101
|
+
// every subscribed topic every 10 minutes and fetches from every peer that joins a topic, so a
|
|
102
|
+
// topic with a live mesh delivers a valid record at least once per rebroadcast interval even
|
|
103
|
+
// when nothing changes. 1.5x that interval means one missed rebroadcast is tolerated; silence
|
|
104
|
+
// beyond it can only mean the push channel is broken, and cache serving falls back to the
|
|
105
|
+
// per-ttl revalidation of issues #301/#307 (which also re-warms the mesh via the network path).
|
|
106
|
+
export const IPNS_PUSH_CHANNEL_WATCHDOG_MS = 15 * 60_000;
|
|
99
107
|
export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
100
108
|
if (!pkcOptions.httpRoutersOptions?.length)
|
|
101
109
|
throw Error("You need to have pkc.httpRouterOptions to set up helia");
|
|
@@ -375,6 +383,65 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
375
383
|
// would re-fetch on every resolve once its record's ttl first expired. Bounded by the set
|
|
376
384
|
// of IPNS names this helia instance resolves (communities the app follows).
|
|
377
385
|
const ipnsRecordNetworkValidatedAtMs = new Map();
|
|
386
|
+
// Push-channel health state for IPNS resolution (issue #330). A topic's push channel is
|
|
387
|
+
// HEALTHY when it has at least one gossipsub subscriber AND a signature-valid,
|
|
388
|
+
// sequence-current record for it was obtained from the network within `watchdogMs` — via
|
|
389
|
+
// a gossiped message (identical rebroadcast bytes included, see the raw-message listener
|
|
390
|
+
// below), an accepted-newer localStore write from any path, or a validated fetch (direct
|
|
391
|
+
// fast path or fallback router.get()). While healthy, name.resolve serves the cached
|
|
392
|
+
// record PAST its ttl (the ipns-pubsub-router spec's model: pushes, rebroadcasts, and
|
|
393
|
+
// fetch-on-join keep a subscribed node current, so timer-driven revalidation buys
|
|
394
|
+
// nothing); while unhealthy it falls back to the exact per-ttl revalidation of issues
|
|
395
|
+
// #301/#307. `routingKeyByTopic` scopes the raw-message listener to IPNS topics this
|
|
396
|
+
// resolver registered and gives it the key to validate against. Exposed on the client as
|
|
397
|
+
// `_ipnsPushChannel` so tests can shrink the watchdog window and inspect arrivals; all
|
|
398
|
+
// three maps are bounded by the set of IPNS names this helia instance resolves.
|
|
399
|
+
const ipnsPushChannel = {
|
|
400
|
+
watchdogMs: IPNS_PUSH_CHANNEL_WATCHDOG_MS,
|
|
401
|
+
lastValidRecordArrivalMs: new Map(),
|
|
402
|
+
routingKeyByTopic: new Map(),
|
|
403
|
+
highestKnownSequenceByTopic: new Map()
|
|
404
|
+
};
|
|
405
|
+
const isIpnsPushChannelHealthy = (pubsubTopic) => helia.libp2p.services.pubsub.getSubscribers(pubsubTopic).length > 0 &&
|
|
406
|
+
Date.now() - (ipnsPushChannel.lastValidRecordArrivalMs.get(pubsubTopic) ?? 0) < ipnsPushChannel.watchdogMs;
|
|
407
|
+
// The single stamping path for every watchdog heartbeat, and the stale-replay guard:
|
|
408
|
+
// `ipnsValidator` checks the signature and EOL but NOT sequence order, so without this
|
|
409
|
+
// comparison a signature-valid but strictly OLDER (still unexpired) record — a lagging
|
|
410
|
+
// peer rebroadcasting its stale best, or an adversarial subscriber replaying an old one —
|
|
411
|
+
// would hold the watchdog open indefinitely (up to the replayed record's validity) and
|
|
412
|
+
// keep the resolver from the revalidation that would find the newer record. A heartbeat
|
|
413
|
+
// must attest that the channel delivers records at least as new as the best we hold:
|
|
414
|
+
// only a sequence >= the highest we've seen from any validated source advances the
|
|
415
|
+
// stamp (identical rebroadcasts pass, which is the point of the raw-message listener).
|
|
416
|
+
const stampIpnsPushChannelArrival = (pubsubTopic, sequence) => {
|
|
417
|
+
const highestKnown = ipnsPushChannel.highestKnownSequenceByTopic.get(pubsubTopic);
|
|
418
|
+
if (highestKnown !== undefined && sequence < highestKnown) {
|
|
419
|
+
log.trace("Ignoring a stale-replay push-channel heartbeat on IPNS topic", pubsubTopic, sequence, "<", highestKnown);
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
ipnsPushChannel.highestKnownSequenceByTopic.set(pubsubTopic, sequence);
|
|
423
|
+
ipnsPushChannel.lastValidRecordArrivalMs.set(pubsubTopic, Date.now());
|
|
424
|
+
};
|
|
425
|
+
// The watchdog's heartbeat source (issue #330): kubo rebroadcasts the CURRENT record
|
|
426
|
+
// every 10 minutes, and the pubsub router's #handleRecord returns before localStore.put
|
|
427
|
+
// when the gossiped bytes are identical to the cache — so the put wrap below never sees
|
|
428
|
+
// the very messages that prove the channel is alive. Listen to raw gossip instead, gated
|
|
429
|
+
// on the topics this resolver registered, and stamp an arrival only after the record
|
|
430
|
+
// validates against the topic's routing key (a garbage or forged message must not feed
|
|
431
|
+
// the watchdog) AND clears the stamp helper's sequence guard (a valid-but-older replay
|
|
432
|
+
// must not either). Validation failures are dropped quietly: gossip is an open channel
|
|
433
|
+
// and the router logs its own rejections. This validation duplicates the one
|
|
434
|
+
// #handleRecord runs on the same bytes; at rebroadcast cadence (one message per topic
|
|
435
|
+
// per 10 minutes) the doubled crypto is negligible, and deduping would mean reaching
|
|
436
|
+
// into the router's internals.
|
|
437
|
+
helia.libp2p.services.pubsub.addEventListener("message", (evt) => {
|
|
438
|
+
const gossipRoutingKey = ipnsPushChannel.routingKeyByTopic.get(evt.detail.topic);
|
|
439
|
+
if (!gossipRoutingKey)
|
|
440
|
+
return;
|
|
441
|
+
ipnsValidator(gossipRoutingKey, evt.detail.data)
|
|
442
|
+
.then(() => stampIpnsPushChannelArrival(evt.detail.topic, unmarshalIPNSRecord(evt.detail.data).sequence))
|
|
443
|
+
.catch((err) => log.trace("Ignoring an invalid record gossiped on IPNS topic", evt.detail.topic, err));
|
|
444
|
+
});
|
|
378
445
|
// Push signal for IPNS names (issue #308): every accepted-newer record converges on the
|
|
379
446
|
// pubsub router's localStore.put — gossipsub delivery (handleRecord), the direct-fetch
|
|
380
447
|
// cache write (cacheIpnsRecordInPubsubLocalStore), and the fallback router.get() fetch
|
|
@@ -392,9 +459,6 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
392
459
|
ipnsPubsubLocalStore.put = async (routingKey, marshalledRecord, options) => {
|
|
393
460
|
await originalLocalStorePut(routingKey, marshalledRecord, options);
|
|
394
461
|
const pubsubTopic = binaryKeyToPubsubTopic(routingKey);
|
|
395
|
-
const listeners = ipnsRecordArrivalListeners.get(pubsubTopic);
|
|
396
|
-
if (!listeners || listeners.size === 0)
|
|
397
|
-
return;
|
|
398
462
|
let record;
|
|
399
463
|
try {
|
|
400
464
|
record = unmarshalIPNSRecord(marshalledRecord);
|
|
@@ -403,6 +467,13 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
403
467
|
log.error("Failed to unmarshal a cached IPNS record for the arrival listeners of topic", pubsubTopic, e);
|
|
404
468
|
return;
|
|
405
469
|
}
|
|
470
|
+
// Every accepted-newer record is also a push-channel heartbeat (issue #330); the
|
|
471
|
+
// helper's sequence guard is a no-op here since accepted writes are newer-only, but
|
|
472
|
+
// it must still learn the sequence so gossip replays are compared against it.
|
|
473
|
+
stampIpnsPushChannelArrival(pubsubTopic, record.sequence);
|
|
474
|
+
const listeners = ipnsRecordArrivalListeners.get(pubsubTopic);
|
|
475
|
+
if (!listeners || listeners.size === 0)
|
|
476
|
+
return;
|
|
406
477
|
for (const listener of [...listeners]) {
|
|
407
478
|
try {
|
|
408
479
|
listener({ pubsubTopic, record });
|
|
@@ -464,7 +535,13 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
464
535
|
// cached record is inside its ttl window — not a fresh multi-peer fetch
|
|
465
536
|
// race per call. This is what turns the update loop's 1s cadence from
|
|
466
537
|
// ~150 fetch streams/s at 64 communities into pushes plus one
|
|
467
|
-
// revalidation per name per ttl.
|
|
538
|
+
// revalidation per name per ttl. And while the push channel is HEALTHY
|
|
539
|
+
// (subscribers present, a valid record arrived within the watchdog
|
|
540
|
+
// window), even the per-ttl revalidation is skipped (issue #330): the
|
|
541
|
+
// ipns-pubsub-router spec keeps a subscribed node current via pushes,
|
|
542
|
+
// rebroadcasts, and fetch-on-join, so the cached record serves for as
|
|
543
|
+
// long as it stays signature-valid — the steady-state network cost of an
|
|
544
|
+
// updating name drops to zero. Gated on the topic being subscribed
|
|
468
545
|
// because freshness relies on the push channel this resolver set up on a
|
|
469
546
|
// previous call; nocache: true bypasses the cache entirely (explicit
|
|
470
547
|
// refresh, kubo semantics). A cache read failure must never fail the
|
|
@@ -474,7 +551,8 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
474
551
|
const cachedRecord = await readFreshCachedIpnsRecordFromPubsubLocalStore({
|
|
475
552
|
localStore: ipnsPubsubLocalStore,
|
|
476
553
|
routingKey,
|
|
477
|
-
lastNetworkValidatedAtMs: ipnsRecordNetworkValidatedAtMs.get(ipnsPubsubTopic)
|
|
554
|
+
lastNetworkValidatedAtMs: ipnsRecordNetworkValidatedAtMs.get(ipnsPubsubTopic),
|
|
555
|
+
pushChannelHealthy: isIpnsPushChannelHealthy(ipnsPubsubTopic)
|
|
478
556
|
});
|
|
479
557
|
if (cachedRecord) {
|
|
480
558
|
log.trace("Serving IPNS record for", currentName, "from the routing-layer cache");
|
|
@@ -500,6 +578,10 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
500
578
|
// router.get() (which since @helia/ipns 10 skips this add when the
|
|
501
579
|
// topic is already libp2p-subscribed).
|
|
502
580
|
ipnsPubsubRouterSubscriptions.add(ipnsPubsubTopic);
|
|
581
|
+
// Arm the push-channel watchdog's raw-message listener for this
|
|
582
|
+
// topic (issue #330) — it needs the routing key to validate gossiped
|
|
583
|
+
// records before stamping arrivals.
|
|
584
|
+
ipnsPushChannel.routingKeyByTopic.set(ipnsPubsubTopic, routingKey);
|
|
503
585
|
void warmupForTopic(ipnsPubsubTopic, options).catch((e) => log.trace("Fire-and-forget warmup failed for", ipnsPubsubTopic, e));
|
|
504
586
|
const directStart = Date.now();
|
|
505
587
|
try {
|
|
@@ -529,6 +611,12 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
529
611
|
// this stamp is what lets an idle name serve from cache for
|
|
530
612
|
// another ttl window after a revalidation.
|
|
531
613
|
ipnsRecordNetworkValidatedAtMs.set(ipnsPubsubTopic, Date.now());
|
|
614
|
+
// A validated fetch also opens the push-channel trust window
|
|
615
|
+
// (issue #330): staleness is zero right now, and the channel
|
|
616
|
+
// has watchdogMs to prove itself before the next refetch.
|
|
617
|
+
// (Sequence-guarded like every heartbeat: a lagging provider
|
|
618
|
+
// serving an older record than we hold must not extend it.)
|
|
619
|
+
stampIpnsPushChannelArrival(ipnsPubsubTopic, record.sequence);
|
|
532
620
|
// Direct fetch bypasses the pubsub router's handleRecord, which is
|
|
533
621
|
// where gossipsub-delivered records get cached at the routing layer.
|
|
534
622
|
// Persist the record there ourselves (newer-only, issue #210) so
|
|
@@ -649,8 +737,9 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
649
737
|
// Validate the record's signature against its routing key before trusting its value.
|
|
650
738
|
await ipnsValidator(routingKey, recordBytes);
|
|
651
739
|
const record = unmarshalIPNSRecord(recordBytes);
|
|
652
|
-
// Same freshness
|
|
740
|
+
// Same freshness stamps as the direct-fetch hit above (issues #301/#330).
|
|
653
741
|
ipnsRecordNetworkValidatedAtMs.set(ipnsPubsubTopic, Date.now());
|
|
742
|
+
stampIpnsPushChannelArrival(ipnsPubsubTopic, record.sequence);
|
|
654
743
|
yield record.value;
|
|
655
744
|
}
|
|
656
745
|
return generator();
|
|
@@ -836,6 +925,7 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
836
925
|
ipnsRecordArrivalListeners.delete(pubsubTopic);
|
|
837
926
|
}
|
|
838
927
|
},
|
|
928
|
+
isIpnsPushChannelHealthy: ({ pubsubTopic }) => isIpnsPushChannelHealthy(pubsubTopic),
|
|
839
929
|
async stop(options) {
|
|
840
930
|
const clientFromMap = libp2pJsClients[pkcOptions.key];
|
|
841
931
|
if (!clientFromMap)
|
|
@@ -850,6 +940,9 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
850
940
|
// Update loops unsubscribe their own arrival listeners on stop; clearing here
|
|
851
941
|
// covers loops torn down after the shared client's final release.
|
|
852
942
|
ipnsRecordArrivalListeners.clear();
|
|
943
|
+
ipnsPushChannel.lastValidRecordArrivalMs.clear();
|
|
944
|
+
ipnsPushChannel.routingKeyByTopic.clear();
|
|
945
|
+
ipnsPushChannel.highestKnownSequenceByTopic.clear();
|
|
853
946
|
// Tear down the IPNS pubsub router's internal subscription state.
|
|
854
947
|
// PubSubIPNSRouting (@helia/ipns) implements Startable and tracks its own
|
|
855
948
|
// subscriptions list and fetch topology — without stop() those leak past helia.
|
|
@@ -919,7 +1012,8 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
919
1012
|
mergedHeliaOptions: mergedHeliaInit,
|
|
920
1013
|
countOfUsesOfInstance: 1,
|
|
921
1014
|
libp2pJsClientsOptions: pkcOptions,
|
|
922
|
-
key: pkcOptions.key
|
|
1015
|
+
key: pkcOptions.key,
|
|
1016
|
+
ipnsPushChannel
|
|
923
1017
|
};
|
|
924
1018
|
const client = new Libp2pJsClient(fullInstanceWithOptions);
|
|
925
1019
|
log("Helia/libp2p-js started with key", pkcOptions.key, "and peer id", helia.libp2p.peerId.toString());
|