peerbit 5.3.8 → 5.3.10
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/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/libp2p.d.ts +16 -0
- package/dist/src/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js +36 -3
- package/dist/src/libp2p.js.map +1 -1
- package/dist/src/peer.d.ts +26 -6
- package/dist/src/peer.d.ts.map +1 -1
- package/dist/src/peer.js +69 -15
- package/dist/src/peer.js.map +1 -1
- package/package.json +13 -13
- package/src/index.ts +4 -0
- package/src/libp2p.ts +46 -6
- package/src/peer.ts +112 -20
package/dist/src/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from "./peer.js";
|
|
2
2
|
export * from "./bootstrap.js";
|
|
3
3
|
export type { BootstrapRecoveryOptions } from "./bootstrap-recovery.js";
|
|
4
|
-
export { createLibp2pExtended, type Libp2pExtendServices, type Libp2pExtended, type Libp2pCreateOptions, type Libp2pCreateOptionsWithServices, } from "./libp2p.js";
|
|
4
|
+
export { createLibp2pExtended, createPeerbitStreamMuxers, PEERBIT_YAMUX_PROTOCOL, PEERBIT_YAMUX_INITIAL_STREAM_WINDOW_SIZE, PEERBIT_YAMUX_MAX_STREAM_WINDOW_SIZE, type Libp2pExtendServices, type Libp2pExtended, type Libp2pCreateOptions, type Libp2pCreateOptionsWithServices, } from "./libp2p.js";
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EACN,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,GACpC,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EACN,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,wCAAwC,EACxC,oCAAoC,EACpC,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,GACpC,MAAM,aAAa,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from "./peer.js";
|
|
2
2
|
export * from "./bootstrap.js";
|
|
3
|
-
export { createLibp2pExtended, } from "./libp2p.js";
|
|
3
|
+
export { createLibp2pExtended, createPeerbitStreamMuxers, PEERBIT_YAMUX_PROTOCOL, PEERBIT_YAMUX_INITIAL_STREAM_WINDOW_SIZE, PEERBIT_YAMUX_MAX_STREAM_WINDOW_SIZE, } from "./libp2p.js";
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EACN,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EACN,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,wCAAwC,EACxC,oCAAoC,GAKpC,MAAM,aAAa,CAAC"}
|
package/dist/src/libp2p.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CircuitRelayService } from "@libp2p/circuit-relay-v2";
|
|
2
|
+
import type { StreamMuxerFactory } from "@libp2p/interface";
|
|
2
3
|
import { DirectBlock } from "@peerbit/blocks";
|
|
3
4
|
import { type IPeerbitKeychain } from "@peerbit/keychain";
|
|
4
5
|
import { FanoutTree, TopicControlPlane } from "@peerbit/pubsub";
|
|
@@ -24,5 +25,20 @@ export type PartialLibp2pCreateOptions = Libp2pOptions<Partial<Libp2pExtendServi
|
|
|
24
25
|
export type Libp2pCreateOptionsWithServices = Libp2pCreateOptions & {
|
|
25
26
|
services: ServiceFactoryMap<Libp2pExtendServices>;
|
|
26
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* Yamux profile negotiated between Peerbit peers that starts each logical
|
|
30
|
+
* stream with enough credit for the default eight concurrent 512 KiB block
|
|
31
|
+
* responses.
|
|
32
|
+
*
|
|
33
|
+
* This must use a distinct protocol id. `@chainsafe/libp2p-yamux` applies a
|
|
34
|
+
* configured initial window to both send and receive credit without
|
|
35
|
+
* advertising it on `/yamux/1.0.0`, so using a larger value under the standard
|
|
36
|
+
* id can overrun an older peer's 256 KiB receive window. Keeping standard
|
|
37
|
+
* Yamux as the second choice preserves mixed-version interoperability.
|
|
38
|
+
*/
|
|
39
|
+
export declare const PEERBIT_YAMUX_PROTOCOL = "/peerbit/yamux/1.0.0";
|
|
40
|
+
export declare const PEERBIT_YAMUX_INITIAL_STREAM_WINDOW_SIZE: number;
|
|
41
|
+
export declare const PEERBIT_YAMUX_MAX_STREAM_WINDOW_SIZE: number;
|
|
42
|
+
export declare const createPeerbitStreamMuxers: () => Array<() => StreamMuxerFactory>;
|
|
27
43
|
export declare const createLibp2pExtended: (opts?: PartialLibp2pCreateOptions) => Promise<Libp2pExtended>;
|
|
28
44
|
//# sourceMappingURL=libp2p.d.ts.map
|
package/dist/src/libp2p.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libp2p.d.ts","sourceRoot":"","sources":["../../src/libp2p.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"libp2p.d.ts","sourceRoot":"","sources":["../../src/libp2p.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,KAAK,gBAAgB,EAAY,MAAM,mBAAmB,CAAC;AACpE,OAAO,EACN,UAAU,EACV,iBAAiB,EAEjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAEtB,MAAM,QAAQ,CAAC;AAGhB,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,MAAM,CAClC;IAAE,KAAK,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAA;CAAE,GAAG,oBAAoB,CACpE,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAC9C,OAAO,CAAC,oBAAoB,GAAG;IAAE,KAAK,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAA;CAAE,CAAC,CAC7E,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,aAAa,CACrD,OAAO,CAAC,oBAAoB,GAAG;IAAE,KAAK,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAA;CAAE,CAAC,CAC7E,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,mBAAmB,GAAG;IACnE,QAAQ,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;CAClD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAC7D,eAAO,MAAM,wCAAwC,QAAkB,CAAC;AACxE,eAAO,MAAM,oCAAoC,QAAmB,CAAC;AAErE,eAAO,MAAM,yBAAyB,QAAO,KAAK,CACjD,MAAM,kBAAkB,CAmBxB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAChC,OAAM,0BAA+B,KACnC,OAAO,CAAC,cAAc,CAoExB,CAAC"}
|
package/dist/src/libp2p.js
CHANGED
|
@@ -2,10 +2,43 @@ import { noise } from "@chainsafe/libp2p-noise";
|
|
|
2
2
|
import { yamux } from "@chainsafe/libp2p-yamux";
|
|
3
3
|
import { identify } from "@libp2p/identify";
|
|
4
4
|
import { DirectBlock } from "@peerbit/blocks";
|
|
5
|
-
import { keychain
|
|
6
|
-
import { FanoutTree, TopicControlPlane, TopicRootControlPlane } from "@peerbit/pubsub";
|
|
5
|
+
import { keychain } from "@peerbit/keychain";
|
|
6
|
+
import { FanoutTree, TopicControlPlane, TopicRootControlPlane, } from "@peerbit/pubsub";
|
|
7
7
|
import { createLibp2p, } from "libp2p";
|
|
8
8
|
import { listen, relay, transports } from "./transports.js";
|
|
9
|
+
/**
|
|
10
|
+
* Yamux profile negotiated between Peerbit peers that starts each logical
|
|
11
|
+
* stream with enough credit for the default eight concurrent 512 KiB block
|
|
12
|
+
* responses.
|
|
13
|
+
*
|
|
14
|
+
* This must use a distinct protocol id. `@chainsafe/libp2p-yamux` applies a
|
|
15
|
+
* configured initial window to both send and receive credit without
|
|
16
|
+
* advertising it on `/yamux/1.0.0`, so using a larger value under the standard
|
|
17
|
+
* id can overrun an older peer's 256 KiB receive window. Keeping standard
|
|
18
|
+
* Yamux as the second choice preserves mixed-version interoperability.
|
|
19
|
+
*/
|
|
20
|
+
export const PEERBIT_YAMUX_PROTOCOL = "/peerbit/yamux/1.0.0";
|
|
21
|
+
export const PEERBIT_YAMUX_INITIAL_STREAM_WINDOW_SIZE = 4 * 1024 * 1024;
|
|
22
|
+
export const PEERBIT_YAMUX_MAX_STREAM_WINDOW_SIZE = 16 * 1024 * 1024;
|
|
23
|
+
export const createPeerbitStreamMuxers = () => [
|
|
24
|
+
() => {
|
|
25
|
+
const factory = yamux({
|
|
26
|
+
streamOptions: {
|
|
27
|
+
initialStreamWindowSize: PEERBIT_YAMUX_INITIAL_STREAM_WINDOW_SIZE,
|
|
28
|
+
maxStreamWindowSize: PEERBIT_YAMUX_MAX_STREAM_WINDOW_SIZE,
|
|
29
|
+
},
|
|
30
|
+
})();
|
|
31
|
+
const createStreamMuxer = factory.createStreamMuxer.bind(factory);
|
|
32
|
+
factory.protocol = PEERBIT_YAMUX_PROTOCOL;
|
|
33
|
+
factory.createStreamMuxer = (connection) => {
|
|
34
|
+
const muxer = createStreamMuxer(connection);
|
|
35
|
+
muxer.protocol = PEERBIT_YAMUX_PROTOCOL;
|
|
36
|
+
return muxer;
|
|
37
|
+
};
|
|
38
|
+
return factory;
|
|
39
|
+
},
|
|
40
|
+
yamux(),
|
|
41
|
+
];
|
|
9
42
|
export const createLibp2pExtended = (opts = {}) => {
|
|
10
43
|
const topicRootControlPlane = new TopicRootControlPlane();
|
|
11
44
|
let extraServices = {};
|
|
@@ -50,7 +83,7 @@ export const createLibp2pExtended = (opts = {}) => {
|
|
|
50
83
|
},
|
|
51
84
|
transports: opts.transports || transports(),
|
|
52
85
|
connectionEncrypters: opts.connectionEncrypters || [noise()],
|
|
53
|
-
streamMuxers: opts.streamMuxers ||
|
|
86
|
+
streamMuxers: opts.streamMuxers || createPeerbitStreamMuxers(),
|
|
54
87
|
services: {
|
|
55
88
|
...opts.services,
|
|
56
89
|
pubsub: opts.services?.pubsub ||
|
package/dist/src/libp2p.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libp2p.js","sourceRoot":"","sources":["../../src/libp2p.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"libp2p.js","sourceRoot":"","sources":["../../src/libp2p.ts"],"names":[],"mappings":"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"}
|
package/dist/src/peer.d.ts
CHANGED
|
@@ -69,9 +69,10 @@ export type NativeWireSyncSessionLike = {
|
|
|
69
69
|
};
|
|
70
70
|
};
|
|
71
71
|
/**
|
|
72
|
-
*
|
|
73
|
-
* (the `SharedLogNativeDefaults` hook of
|
|
74
|
-
* copy so the client does not depend on the
|
|
72
|
+
* Shared-log runtime defaults advertised to programs opened on this client
|
|
73
|
+
* (the historically named `SharedLogNativeDefaults` hook of
|
|
74
|
+
* `@peerbit/shared-log`). Structural copy so the client does not depend on the
|
|
75
|
+
* shared-log package.
|
|
75
76
|
*/
|
|
76
77
|
export type SharedLogNativeDefaultsLike = {
|
|
77
78
|
nativeBackbone?: false | {
|
|
@@ -89,6 +90,13 @@ export type SharedLogNativeDefaultsLike = {
|
|
|
89
90
|
rawExchangeHeads?: boolean;
|
|
90
91
|
nativeWireSync?: NativeWireSyncSessionLike;
|
|
91
92
|
};
|
|
93
|
+
/**
|
|
94
|
+
* Per-channel defaults for SharedLog fanout data planes that a program opts
|
|
95
|
+
* into. Explicit `fanout.channel` open options take precedence.
|
|
96
|
+
*/
|
|
97
|
+
fanout?: {
|
|
98
|
+
channel?: Partial<Omit<FanoutTreeChannelOptions, "role">>;
|
|
99
|
+
};
|
|
92
100
|
};
|
|
93
101
|
/**
|
|
94
102
|
* Native network plane for a client-built libp2p stack (services must be
|
|
@@ -124,6 +132,16 @@ export type CreateInstanceOptions = (SimpleLibp2pOptions | Libp2pOptions) & {
|
|
|
124
132
|
directory?: string;
|
|
125
133
|
indexer?: (directory?: string) => Promise<Indices> | Indices;
|
|
126
134
|
storage?: StorageCreateOptions;
|
|
135
|
+
/**
|
|
136
|
+
* Local upload budget, in bytes per second, for each pubsub fanout channel
|
|
137
|
+
* opened in either the root or node role. The same default also applies to
|
|
138
|
+
* SharedLog fanout channels unless an explicit per-open
|
|
139
|
+
* `fanout.channel.uploadLimitBps` is provided.
|
|
140
|
+
*
|
|
141
|
+
* This is local runtime policy and does not change any wire protocol.
|
|
142
|
+
* Default: 5_000_000 B/s.
|
|
143
|
+
*/
|
|
144
|
+
pubsubUploadLimitBps?: number;
|
|
127
145
|
network?: NativeNetworkCreateOptions;
|
|
128
146
|
/**
|
|
129
147
|
* Opt-in automatic bootstrap recovery. `true` uses bounded defaults; an
|
|
@@ -164,9 +182,11 @@ export declare class Peerbit implements ProgramClient {
|
|
|
164
182
|
private _bootstrapRecoveryTransition;
|
|
165
183
|
private _bootstrapRecoveryPaused;
|
|
166
184
|
/**
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
185
|
+
* Shared-log runtime defaults advertised to programs opened on this client;
|
|
186
|
+
* read by `@peerbit/shared-log` (`SharedLogNativeDefaults`, whose historical
|
|
187
|
+
* name is retained for compatibility). Native defaults come from
|
|
188
|
+
* `CreateInstanceOptions.network`; explicit pubsub upload policy contributes
|
|
189
|
+
* the fanout channel default.
|
|
170
190
|
*/
|
|
171
191
|
readonly sharedLogNativeDefaults?: SharedLogNativeDefaultsLike;
|
|
172
192
|
private _identity;
|
package/dist/src/peer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../src/peer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../src/peer.ts"],"names":[],"mappings":"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"}
|
package/dist/src/peer.js
CHANGED
|
@@ -15,6 +15,16 @@ import { getBootstrapPeerId, resolveBootstrapAddresses } from "./bootstrap.js";
|
|
|
15
15
|
import { BootstrapRecoveryController, validateBootstrapRecoveryOptions, } from "./bootstrap-recovery.js";
|
|
16
16
|
import { createLibp2pExtended, } from "./libp2p.js";
|
|
17
17
|
export const logger = loggerFn("peerbit:client");
|
|
18
|
+
const DEFAULT_PUBSUB_UPLOAD_LIMIT_BPS = 5_000_000;
|
|
19
|
+
const resolvePubsubUploadLimitBps = (value) => {
|
|
20
|
+
const resolved = value === undefined ? DEFAULT_PUBSUB_UPLOAD_LIMIT_BPS : value;
|
|
21
|
+
if (typeof resolved !== "number" ||
|
|
22
|
+
!Number.isSafeInteger(resolved) ||
|
|
23
|
+
resolved <= 0) {
|
|
24
|
+
throw new RangeError("pubsubUploadLimitBps must be a positive safe integer in bytes per second");
|
|
25
|
+
}
|
|
26
|
+
return resolved;
|
|
27
|
+
};
|
|
18
28
|
const isLibp2pInstance = (libp2p) => !!libp2p.getMultiaddrs;
|
|
19
29
|
const createCache = async (directory, options) => {
|
|
20
30
|
const cache = (options?.storeFactory ?? createStore)(directory);
|
|
@@ -50,9 +60,11 @@ export class Peerbit {
|
|
|
50
60
|
_bootstrapRecoveryTransition = Promise.resolve();
|
|
51
61
|
_bootstrapRecoveryPaused = false;
|
|
52
62
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
63
|
+
* Shared-log runtime defaults advertised to programs opened on this client;
|
|
64
|
+
* read by `@peerbit/shared-log` (`SharedLogNativeDefaults`, whose historical
|
|
65
|
+
* name is retained for compatibility). Native defaults come from
|
|
66
|
+
* `CreateInstanceOptions.network`; explicit pubsub upload policy contributes
|
|
67
|
+
* the fanout channel default.
|
|
56
68
|
*/
|
|
57
69
|
sharedLogNativeDefaults;
|
|
58
70
|
// Libp2p peerid in Identity form
|
|
@@ -83,6 +95,25 @@ export class Peerbit {
|
|
|
83
95
|
return this._nativeNetwork;
|
|
84
96
|
}
|
|
85
97
|
static async create(options = {}) {
|
|
98
|
+
const configuredPubsubUploadLimitBps = options.pubsubUploadLimitBps;
|
|
99
|
+
const pubsubUploadLimitBps = resolvePubsubUploadLimitBps(configuredPubsubUploadLimitBps);
|
|
100
|
+
let libp2pExtended = options
|
|
101
|
+
.libp2p;
|
|
102
|
+
const suppliedExternalLibp2p = libp2pExtended && isLibp2pInstance(libp2pExtended);
|
|
103
|
+
if (configuredPubsubUploadLimitBps !== undefined) {
|
|
104
|
+
if (suppliedExternalLibp2p) {
|
|
105
|
+
throw new Error("The 'pubsubUploadLimitBps' option requires Peerbit.create to build the pubsub service; it cannot be combined with an external libp2p instance.");
|
|
106
|
+
}
|
|
107
|
+
const configuredServices = libp2pExtended?.services;
|
|
108
|
+
const hasOwnPubsubService = configuredServices !== undefined &&
|
|
109
|
+
Object.prototype.hasOwnProperty.call(configuredServices, "pubsub");
|
|
110
|
+
const configuredPubsubService = hasOwnPubsubService
|
|
111
|
+
? configuredServices.pubsub
|
|
112
|
+
: undefined;
|
|
113
|
+
if (configuredPubsubService !== undefined) {
|
|
114
|
+
throw new Error("The 'pubsubUploadLimitBps' option requires 'libp2p.services.pubsub' to be omitted or undefined; custom, null, and false values are not supported.");
|
|
115
|
+
}
|
|
116
|
+
}
|
|
86
117
|
const bootstrapRecoveryOptions = options.bootstrapRecovery;
|
|
87
118
|
if (bootstrapRecoveryOptions &&
|
|
88
119
|
bootstrapRecoveryOptions !== true &&
|
|
@@ -90,8 +121,6 @@ export class Peerbit {
|
|
|
90
121
|
validateBootstrapRecoveryOptions(bootstrapRecoveryOptions);
|
|
91
122
|
}
|
|
92
123
|
await sodium.ready; // Some of the modules depends on sodium to be readyy
|
|
93
|
-
let libp2pExtended = options
|
|
94
|
-
.libp2p;
|
|
95
124
|
const asRelay = options.relay ?? true;
|
|
96
125
|
// Validate incompatible options BEFORE acquiring any resources
|
|
97
126
|
// (cache store, indexer, datastore). Both inputs are known up front,
|
|
@@ -194,6 +223,18 @@ export class Peerbit {
|
|
|
194
223
|
};
|
|
195
224
|
}
|
|
196
225
|
}
|
|
226
|
+
if (configuredPubsubUploadLimitBps !== undefined) {
|
|
227
|
+
sharedLogNativeDefaults = {
|
|
228
|
+
...sharedLogNativeDefaults,
|
|
229
|
+
fanout: {
|
|
230
|
+
...sharedLogNativeDefaults?.fanout,
|
|
231
|
+
channel: {
|
|
232
|
+
...sharedLogNativeDefaults?.fanout?.channel,
|
|
233
|
+
uploadLimitBps: pubsubUploadLimitBps,
|
|
234
|
+
},
|
|
235
|
+
},
|
|
236
|
+
};
|
|
237
|
+
}
|
|
197
238
|
const topicRootControlPlane = new TopicRootControlPlane();
|
|
198
239
|
// Keep a single FanoutTree instance per peer so pubsub sharding + provider
|
|
199
240
|
// discovery share the same overlay.
|
|
@@ -211,6 +252,22 @@ export class Peerbit {
|
|
|
211
252
|
return fanoutInstance;
|
|
212
253
|
};
|
|
213
254
|
const blockProviderNamespace = (cid) => `cid:${cid}`;
|
|
255
|
+
const createDefaultPubsubService = (c) => new TopicControlPlane(c, {
|
|
256
|
+
canRelayMessage: asRelay,
|
|
257
|
+
topicRootControlPlane,
|
|
258
|
+
fanout: getOrCreateFanout(c),
|
|
259
|
+
fanoutRootChannel: {
|
|
260
|
+
uploadLimitBps: pubsubUploadLimitBps,
|
|
261
|
+
},
|
|
262
|
+
fanoutNodeChannel: {
|
|
263
|
+
uploadLimitBps: pubsubUploadLimitBps,
|
|
264
|
+
},
|
|
265
|
+
rustCore: nativeNetwork?.rustCore,
|
|
266
|
+
// The wire-sync session decodes+verifies inbound
|
|
267
|
+
// frames natively and stashes shared-log raw
|
|
268
|
+
// exchange-head payloads for the fused receive.
|
|
269
|
+
nativeWire: nativeNetwork?.wireSync,
|
|
270
|
+
});
|
|
214
271
|
const services = {
|
|
215
272
|
keychain: (components) => keychain({ libp2p: {}, crypto: cryptoKeychain })(components),
|
|
216
273
|
fanout: (c) => getOrCreateFanout(c),
|
|
@@ -295,17 +352,14 @@ export class Peerbit {
|
|
|
295
352
|
});
|
|
296
353
|
return blocksService;
|
|
297
354
|
},
|
|
298
|
-
pubsub:
|
|
299
|
-
canRelayMessage: asRelay,
|
|
300
|
-
topicRootControlPlane,
|
|
301
|
-
fanout: getOrCreateFanout(c),
|
|
302
|
-
rustCore: nativeNetwork?.rustCore,
|
|
303
|
-
// The wire-sync session decodes+verifies inbound
|
|
304
|
-
// frames natively and stashes shared-log raw
|
|
305
|
-
// exchange-head payloads for the fused receive.
|
|
306
|
-
nativeWire: nativeNetwork?.wireSync,
|
|
307
|
-
}),
|
|
355
|
+
pubsub: createDefaultPubsubService,
|
|
308
356
|
...extendedOptions?.services,
|
|
357
|
+
// With an explicit upload policy, an own `pubsub: undefined`
|
|
358
|
+
// is treated as absent. Re-apply our factory after the spread
|
|
359
|
+
// so the configured limit cannot be silently bypassed.
|
|
360
|
+
...(configuredPubsubUploadLimitBps !== undefined
|
|
361
|
+
? { pubsub: createDefaultPubsubService }
|
|
362
|
+
: {}),
|
|
309
363
|
};
|
|
310
364
|
if (!asRelay) {
|
|
311
365
|
services.relay = null;
|
package/dist/src/peer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer.js","sourceRoot":"","sources":["../../src/peer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"peer.js","sourceRoot":"","sources":["../../src/peer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "peerbit",
|
|
3
|
-
"version": "5.3.
|
|
3
|
+
"version": "5.3.10",
|
|
4
4
|
"description": "Peerbit client",
|
|
5
5
|
"author": "Peerbit contributors",
|
|
6
6
|
"license": "MIT",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"directory": "packages/clients/peerbit"
|
|
62
62
|
},
|
|
63
63
|
"engines": {
|
|
64
|
-
"node": ">=
|
|
64
|
+
"node": ">=22"
|
|
65
65
|
},
|
|
66
66
|
"browser": {
|
|
67
67
|
"./dist/src/transports.js": "./dist/src/transports.browser.js"
|
|
@@ -90,27 +90,27 @@
|
|
|
90
90
|
"path-browserify": "^1.0.1",
|
|
91
91
|
"uint8arrays": "^5.1.0",
|
|
92
92
|
"@peerbit/any-store": "2.2.12",
|
|
93
|
-
"@peerbit/blocks": "4.2.4",
|
|
94
|
-
"@peerbit/any-store-opfs": "1.1.10",
|
|
95
|
-
"@peerbit/build-assets": "1.1.0",
|
|
96
93
|
"@peerbit/crypto": "3.1.4",
|
|
94
|
+
"@peerbit/blocks": "4.2.6",
|
|
95
|
+
"@peerbit/build-assets": "1.1.0",
|
|
96
|
+
"@peerbit/any-store-opfs": "1.1.10",
|
|
97
97
|
"@peerbit/indexer-interface": "3.0.8",
|
|
98
98
|
"@peerbit/indexer-sqlite3": "3.0.11",
|
|
99
|
-
"@peerbit/keychain": "1.2.12",
|
|
100
99
|
"@peerbit/indexer-simple": "1.2.12",
|
|
100
|
+
"@peerbit/keychain": "1.2.12",
|
|
101
101
|
"@peerbit/logger": "2.0.1",
|
|
102
|
-
"@peerbit/
|
|
103
|
-
"@peerbit/
|
|
104
|
-
"@peerbit/
|
|
102
|
+
"@peerbit/program": "6.0.39",
|
|
103
|
+
"@peerbit/pubsub": "5.3.4",
|
|
104
|
+
"@peerbit/stream": "5.1.4",
|
|
105
105
|
"@peerbit/stream-interface": "6.0.13",
|
|
106
106
|
"@peerbit/time": "3.0.1"
|
|
107
107
|
},
|
|
108
108
|
"optionalDependencies": {
|
|
109
|
-
"@peerbit/any-store-rust": "0.1.2",
|
|
110
109
|
"@peerbit/indexer-rust": "1.0.6",
|
|
111
|
-
"@peerbit/
|
|
112
|
-
"@peerbit/
|
|
113
|
-
"@peerbit/
|
|
110
|
+
"@peerbit/log-rust": "1.1.2",
|
|
111
|
+
"@peerbit/native-backbone": "0.2.2",
|
|
112
|
+
"@peerbit/network-rust": "0.1.3",
|
|
113
|
+
"@peerbit/any-store-rust": "0.1.2"
|
|
114
114
|
},
|
|
115
115
|
"devDependencies": {
|
|
116
116
|
"@types/libsodium-wrappers": "^0.7.14",
|
package/src/index.ts
CHANGED
|
@@ -3,6 +3,10 @@ export * from "./bootstrap.js";
|
|
|
3
3
|
export type { BootstrapRecoveryOptions } from "./bootstrap-recovery.js";
|
|
4
4
|
export {
|
|
5
5
|
createLibp2pExtended,
|
|
6
|
+
createPeerbitStreamMuxers,
|
|
7
|
+
PEERBIT_YAMUX_PROTOCOL,
|
|
8
|
+
PEERBIT_YAMUX_INITIAL_STREAM_WINDOW_SIZE,
|
|
9
|
+
PEERBIT_YAMUX_MAX_STREAM_WINDOW_SIZE,
|
|
6
10
|
type Libp2pExtendServices,
|
|
7
11
|
type Libp2pExtended,
|
|
8
12
|
type Libp2pCreateOptions,
|
package/src/libp2p.ts
CHANGED
|
@@ -2,12 +2,14 @@ import { noise } from "@chainsafe/libp2p-noise";
|
|
|
2
2
|
import { yamux } from "@chainsafe/libp2p-yamux";
|
|
3
3
|
import type { CircuitRelayService } from "@libp2p/circuit-relay-v2";
|
|
4
4
|
import { identify } from "@libp2p/identify";
|
|
5
|
+
import type { StreamMuxerFactory } from "@libp2p/interface";
|
|
5
6
|
import { DirectBlock } from "@peerbit/blocks";
|
|
7
|
+
import { type IPeerbitKeychain, keychain } from "@peerbit/keychain";
|
|
6
8
|
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
FanoutTree,
|
|
10
|
+
TopicControlPlane,
|
|
11
|
+
TopicRootControlPlane,
|
|
12
|
+
} from "@peerbit/pubsub";
|
|
11
13
|
import {
|
|
12
14
|
type Libp2p,
|
|
13
15
|
type Libp2pOptions,
|
|
@@ -38,6 +40,43 @@ export type Libp2pCreateOptionsWithServices = Libp2pCreateOptions & {
|
|
|
38
40
|
services: ServiceFactoryMap<Libp2pExtendServices>;
|
|
39
41
|
};
|
|
40
42
|
|
|
43
|
+
/**
|
|
44
|
+
* Yamux profile negotiated between Peerbit peers that starts each logical
|
|
45
|
+
* stream with enough credit for the default eight concurrent 512 KiB block
|
|
46
|
+
* responses.
|
|
47
|
+
*
|
|
48
|
+
* This must use a distinct protocol id. `@chainsafe/libp2p-yamux` applies a
|
|
49
|
+
* configured initial window to both send and receive credit without
|
|
50
|
+
* advertising it on `/yamux/1.0.0`, so using a larger value under the standard
|
|
51
|
+
* id can overrun an older peer's 256 KiB receive window. Keeping standard
|
|
52
|
+
* Yamux as the second choice preserves mixed-version interoperability.
|
|
53
|
+
*/
|
|
54
|
+
export const PEERBIT_YAMUX_PROTOCOL = "/peerbit/yamux/1.0.0";
|
|
55
|
+
export const PEERBIT_YAMUX_INITIAL_STREAM_WINDOW_SIZE = 4 * 1024 * 1024;
|
|
56
|
+
export const PEERBIT_YAMUX_MAX_STREAM_WINDOW_SIZE = 16 * 1024 * 1024;
|
|
57
|
+
|
|
58
|
+
export const createPeerbitStreamMuxers = (): Array<
|
|
59
|
+
() => StreamMuxerFactory
|
|
60
|
+
> => [
|
|
61
|
+
() => {
|
|
62
|
+
const factory = yamux({
|
|
63
|
+
streamOptions: {
|
|
64
|
+
initialStreamWindowSize: PEERBIT_YAMUX_INITIAL_STREAM_WINDOW_SIZE,
|
|
65
|
+
maxStreamWindowSize: PEERBIT_YAMUX_MAX_STREAM_WINDOW_SIZE,
|
|
66
|
+
},
|
|
67
|
+
})();
|
|
68
|
+
const createStreamMuxer = factory.createStreamMuxer.bind(factory);
|
|
69
|
+
factory.protocol = PEERBIT_YAMUX_PROTOCOL;
|
|
70
|
+
factory.createStreamMuxer = (connection) => {
|
|
71
|
+
const muxer = createStreamMuxer(connection);
|
|
72
|
+
muxer.protocol = PEERBIT_YAMUX_PROTOCOL;
|
|
73
|
+
return muxer;
|
|
74
|
+
};
|
|
75
|
+
return factory;
|
|
76
|
+
},
|
|
77
|
+
yamux(),
|
|
78
|
+
];
|
|
79
|
+
|
|
41
80
|
export const createLibp2pExtended = (
|
|
42
81
|
opts: PartialLibp2pCreateOptions = {},
|
|
43
82
|
): Promise<Libp2pExtended> => {
|
|
@@ -46,7 +85,8 @@ export const createLibp2pExtended = (
|
|
|
46
85
|
let fanoutInstance: FanoutTree | undefined;
|
|
47
86
|
const configuredFanoutFactory =
|
|
48
87
|
opts.services?.fanout ||
|
|
49
|
-
((c) =>
|
|
88
|
+
((c) =>
|
|
89
|
+
new FanoutTree(c, { connectionManager: false, topicRootControlPlane }));
|
|
50
90
|
const getOrCreateFanout = (c: any) => {
|
|
51
91
|
if (!fanoutInstance) {
|
|
52
92
|
fanoutInstance = configuredFanoutFactory(c) as FanoutTree;
|
|
@@ -88,7 +128,7 @@ export const createLibp2pExtended = (
|
|
|
88
128
|
|
|
89
129
|
transports: opts.transports || transports(),
|
|
90
130
|
connectionEncrypters: opts.connectionEncrypters || [noise()],
|
|
91
|
-
streamMuxers: opts.streamMuxers ||
|
|
131
|
+
streamMuxers: opts.streamMuxers || createPeerbitStreamMuxers(),
|
|
92
132
|
services: {
|
|
93
133
|
...opts.services,
|
|
94
134
|
pubsub:
|
package/src/peer.ts
CHANGED
|
@@ -119,9 +119,10 @@ export type NativeWireSyncSessionLike = {
|
|
|
119
119
|
};
|
|
120
120
|
|
|
121
121
|
/**
|
|
122
|
-
*
|
|
123
|
-
* (the `SharedLogNativeDefaults` hook of
|
|
124
|
-
* copy so the client does not depend on the
|
|
122
|
+
* Shared-log runtime defaults advertised to programs opened on this client
|
|
123
|
+
* (the historically named `SharedLogNativeDefaults` hook of
|
|
124
|
+
* `@peerbit/shared-log`). Structural copy so the client does not depend on the
|
|
125
|
+
* shared-log package.
|
|
125
126
|
*/
|
|
126
127
|
export type SharedLogNativeDefaultsLike = {
|
|
127
128
|
nativeBackbone?:
|
|
@@ -137,6 +138,13 @@ export type SharedLogNativeDefaultsLike = {
|
|
|
137
138
|
rawExchangeHeads?: boolean;
|
|
138
139
|
nativeWireSync?: NativeWireSyncSessionLike;
|
|
139
140
|
};
|
|
141
|
+
/**
|
|
142
|
+
* Per-channel defaults for SharedLog fanout data planes that a program opts
|
|
143
|
+
* into. Explicit `fanout.channel` open options take precedence.
|
|
144
|
+
*/
|
|
145
|
+
fanout?: {
|
|
146
|
+
channel?: Partial<Omit<FanoutTreeChannelOptions, "role">>;
|
|
147
|
+
};
|
|
140
148
|
};
|
|
141
149
|
|
|
142
150
|
/**
|
|
@@ -174,6 +182,16 @@ export type CreateInstanceOptions = (SimpleLibp2pOptions | Libp2pOptions) & {
|
|
|
174
182
|
directory?: string;
|
|
175
183
|
indexer?: (directory?: string) => Promise<Indices> | Indices;
|
|
176
184
|
storage?: StorageCreateOptions;
|
|
185
|
+
/**
|
|
186
|
+
* Local upload budget, in bytes per second, for each pubsub fanout channel
|
|
187
|
+
* opened in either the root or node role. The same default also applies to
|
|
188
|
+
* SharedLog fanout channels unless an explicit per-open
|
|
189
|
+
* `fanout.channel.uploadLimitBps` is provided.
|
|
190
|
+
*
|
|
191
|
+
* This is local runtime policy and does not change any wire protocol.
|
|
192
|
+
* Default: 5_000_000 B/s.
|
|
193
|
+
*/
|
|
194
|
+
pubsubUploadLimitBps?: number;
|
|
177
195
|
network?: NativeNetworkCreateOptions;
|
|
178
196
|
/**
|
|
179
197
|
* Opt-in automatic bootstrap recovery. `true` uses bounded defaults; an
|
|
@@ -183,6 +201,23 @@ export type CreateInstanceOptions = (SimpleLibp2pOptions | Libp2pOptions) & {
|
|
|
183
201
|
bootstrapRecovery?: boolean | BootstrapRecoveryOptions;
|
|
184
202
|
} & OptionalCreateOptions;
|
|
185
203
|
|
|
204
|
+
const DEFAULT_PUBSUB_UPLOAD_LIMIT_BPS = 5_000_000;
|
|
205
|
+
|
|
206
|
+
const resolvePubsubUploadLimitBps = (value: unknown): number => {
|
|
207
|
+
const resolved =
|
|
208
|
+
value === undefined ? DEFAULT_PUBSUB_UPLOAD_LIMIT_BPS : value;
|
|
209
|
+
if (
|
|
210
|
+
typeof resolved !== "number" ||
|
|
211
|
+
!Number.isSafeInteger(resolved) ||
|
|
212
|
+
resolved <= 0
|
|
213
|
+
) {
|
|
214
|
+
throw new RangeError(
|
|
215
|
+
"pubsubUploadLimitBps must be a positive safe integer in bytes per second",
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
return resolved;
|
|
219
|
+
};
|
|
220
|
+
|
|
186
221
|
export type DialReadiness =
|
|
187
222
|
| "connection"
|
|
188
223
|
| "services"
|
|
@@ -258,9 +293,11 @@ export class Peerbit implements ProgramClient {
|
|
|
258
293
|
private _bootstrapRecoveryPaused = false;
|
|
259
294
|
|
|
260
295
|
/**
|
|
261
|
-
*
|
|
262
|
-
*
|
|
263
|
-
*
|
|
296
|
+
* Shared-log runtime defaults advertised to programs opened on this client;
|
|
297
|
+
* read by `@peerbit/shared-log` (`SharedLogNativeDefaults`, whose historical
|
|
298
|
+
* name is retained for compatibility). Native defaults come from
|
|
299
|
+
* `CreateInstanceOptions.network`; explicit pubsub upload policy contributes
|
|
300
|
+
* the fanout channel default.
|
|
264
301
|
*/
|
|
265
302
|
public readonly sharedLogNativeDefaults?: SharedLogNativeDefaultsLike;
|
|
266
303
|
|
|
@@ -299,6 +336,37 @@ export class Peerbit implements ProgramClient {
|
|
|
299
336
|
}
|
|
300
337
|
|
|
301
338
|
static async create(options: CreateInstanceOptions = {}): Promise<Peerbit> {
|
|
339
|
+
const configuredPubsubUploadLimitBps = options.pubsubUploadLimitBps;
|
|
340
|
+
const pubsubUploadLimitBps = resolvePubsubUploadLimitBps(
|
|
341
|
+
configuredPubsubUploadLimitBps,
|
|
342
|
+
);
|
|
343
|
+
|
|
344
|
+
let libp2pExtended: Libp2pExtended | undefined = (options as Libp2pOptions)
|
|
345
|
+
.libp2p as Libp2pExtended;
|
|
346
|
+
const suppliedExternalLibp2p =
|
|
347
|
+
libp2pExtended && isLibp2pInstance(libp2pExtended);
|
|
348
|
+
if (configuredPubsubUploadLimitBps !== undefined) {
|
|
349
|
+
if (suppliedExternalLibp2p) {
|
|
350
|
+
throw new Error(
|
|
351
|
+
"The 'pubsubUploadLimitBps' option requires Peerbit.create to build the pubsub service; it cannot be combined with an external libp2p instance.",
|
|
352
|
+
);
|
|
353
|
+
}
|
|
354
|
+
const configuredServices = (
|
|
355
|
+
libp2pExtended as unknown as ClientCreateOptions | undefined
|
|
356
|
+
)?.services;
|
|
357
|
+
const hasOwnPubsubService =
|
|
358
|
+
configuredServices !== undefined &&
|
|
359
|
+
Object.prototype.hasOwnProperty.call(configuredServices, "pubsub");
|
|
360
|
+
const configuredPubsubService = hasOwnPubsubService
|
|
361
|
+
? (configuredServices as { pubsub?: unknown }).pubsub
|
|
362
|
+
: undefined;
|
|
363
|
+
if (configuredPubsubService !== undefined) {
|
|
364
|
+
throw new Error(
|
|
365
|
+
"The 'pubsubUploadLimitBps' option requires 'libp2p.services.pubsub' to be omitted or undefined; custom, null, and false values are not supported.",
|
|
366
|
+
);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
|
|
302
370
|
const bootstrapRecoveryOptions = options.bootstrapRecovery;
|
|
303
371
|
if (
|
|
304
372
|
bootstrapRecoveryOptions &&
|
|
@@ -309,9 +377,6 @@ export class Peerbit implements ProgramClient {
|
|
|
309
377
|
}
|
|
310
378
|
await sodium.ready; // Some of the modules depends on sodium to be readyy
|
|
311
379
|
|
|
312
|
-
let libp2pExtended: Libp2pExtended | undefined = (options as Libp2pOptions)
|
|
313
|
-
.libp2p as Libp2pExtended;
|
|
314
|
-
|
|
315
380
|
const asRelay = (options as SimpleLibp2pOptions).relay ?? true;
|
|
316
381
|
|
|
317
382
|
// Validate incompatible options BEFORE acquiring any resources
|
|
@@ -445,6 +510,19 @@ export class Peerbit implements ProgramClient {
|
|
|
445
510
|
}
|
|
446
511
|
}
|
|
447
512
|
|
|
513
|
+
if (configuredPubsubUploadLimitBps !== undefined) {
|
|
514
|
+
sharedLogNativeDefaults = {
|
|
515
|
+
...sharedLogNativeDefaults,
|
|
516
|
+
fanout: {
|
|
517
|
+
...sharedLogNativeDefaults?.fanout,
|
|
518
|
+
channel: {
|
|
519
|
+
...sharedLogNativeDefaults?.fanout?.channel,
|
|
520
|
+
uploadLimitBps: pubsubUploadLimitBps,
|
|
521
|
+
},
|
|
522
|
+
},
|
|
523
|
+
};
|
|
524
|
+
}
|
|
525
|
+
|
|
448
526
|
const topicRootControlPlane = new TopicRootControlPlane();
|
|
449
527
|
|
|
450
528
|
// Keep a single FanoutTree instance per peer so pubsub sharding + provider
|
|
@@ -467,6 +545,24 @@ export class Peerbit implements ProgramClient {
|
|
|
467
545
|
|
|
468
546
|
const blockProviderNamespace = (cid: string) => `cid:${cid}`;
|
|
469
547
|
|
|
548
|
+
const createDefaultPubsubService = (c: any) =>
|
|
549
|
+
new TopicControlPlane(c, {
|
|
550
|
+
canRelayMessage: asRelay,
|
|
551
|
+
topicRootControlPlane,
|
|
552
|
+
fanout: getOrCreateFanout(c),
|
|
553
|
+
fanoutRootChannel: {
|
|
554
|
+
uploadLimitBps: pubsubUploadLimitBps,
|
|
555
|
+
},
|
|
556
|
+
fanoutNodeChannel: {
|
|
557
|
+
uploadLimitBps: pubsubUploadLimitBps,
|
|
558
|
+
},
|
|
559
|
+
rustCore: nativeNetwork?.rustCore,
|
|
560
|
+
// The wire-sync session decodes+verifies inbound
|
|
561
|
+
// frames natively and stashes shared-log raw
|
|
562
|
+
// exchange-head payloads for the fused receive.
|
|
563
|
+
nativeWire: nativeNetwork?.wireSync,
|
|
564
|
+
});
|
|
565
|
+
|
|
470
566
|
const services: any = {
|
|
471
567
|
keychain: (components: KeychainComponents) =>
|
|
472
568
|
keychain({ libp2p: {}, crypto: cryptoKeychain })(components),
|
|
@@ -555,18 +651,14 @@ export class Peerbit implements ProgramClient {
|
|
|
555
651
|
});
|
|
556
652
|
return blocksService;
|
|
557
653
|
},
|
|
558
|
-
pubsub:
|
|
559
|
-
new TopicControlPlane(c, {
|
|
560
|
-
canRelayMessage: asRelay,
|
|
561
|
-
topicRootControlPlane,
|
|
562
|
-
fanout: getOrCreateFanout(c),
|
|
563
|
-
rustCore: nativeNetwork?.rustCore,
|
|
564
|
-
// The wire-sync session decodes+verifies inbound
|
|
565
|
-
// frames natively and stashes shared-log raw
|
|
566
|
-
// exchange-head payloads for the fused receive.
|
|
567
|
-
nativeWire: nativeNetwork?.wireSync,
|
|
568
|
-
}),
|
|
654
|
+
pubsub: createDefaultPubsubService,
|
|
569
655
|
...extendedOptions?.services,
|
|
656
|
+
// With an explicit upload policy, an own `pubsub: undefined`
|
|
657
|
+
// is treated as absent. Re-apply our factory after the spread
|
|
658
|
+
// so the configured limit cannot be silently bypassed.
|
|
659
|
+
...(configuredPubsubUploadLimitBps !== undefined
|
|
660
|
+
? { pubsub: createDefaultPubsubService }
|
|
661
|
+
: {}),
|
|
570
662
|
};
|
|
571
663
|
|
|
572
664
|
if (!asRelay) {
|