peerbit 4.0.7 → 4.0.8-2bc15a6
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/benchmark/start-stop.d.ts +2 -0
- package/dist/benchmark/start-stop.d.ts.map +1 -0
- package/dist/benchmark/start-stop.js +20 -0
- package/dist/benchmark/start-stop.js.map +1 -0
- package/{lib/esm → dist/src}/bootstrap.d.ts +1 -0
- package/dist/src/bootstrap.d.ts.map +1 -0
- package/{lib/esm → dist/src}/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +3 -0
- package/{lib/esm → dist/src}/index.js.map +1 -1
- package/dist/src/libp2p.d.ts +27 -0
- package/dist/src/libp2p.d.ts.map +1 -0
- package/{lib/esm → dist/src}/libp2p.js +23 -22
- package/dist/src/libp2p.js.map +1 -0
- package/{lib/esm → dist/src}/peer.d.ts +12 -8
- package/dist/src/peer.d.ts.map +1 -0
- package/{lib/esm → dist/src}/peer.js +38 -23
- package/dist/src/peer.js.map +1 -0
- package/{lib/esm/transports-browser.d.ts → dist/src/transports.browser.d.ts} +2 -1
- package/dist/src/transports.browser.d.ts.map +1 -0
- package/{lib/esm/transports-browser.js → dist/src/transports.browser.js} +5 -4
- package/dist/src/transports.browser.js.map +1 -0
- package/{lib/esm → dist/src}/transports.d.ts +1 -0
- package/dist/src/transports.d.ts.map +1 -0
- package/dist/src/transports.js +21 -0
- package/dist/src/transports.js.map +1 -0
- package/package.json +108 -77
- package/src/bootstrap.ts +2 -2
- package/src/index.ts +1 -1
- package/src/libp2p.ts +39 -29
- package/src/peer.ts +72 -48
- package/src/{transports-browser.ts → transports.browser.ts} +5 -4
- package/src/transports.ts +15 -7
- package/LICENSE +0 -202
- package/lib/esm/index.js +0 -3
- package/lib/esm/libp2p.d.ts +0 -22
- package/lib/esm/libp2p.js.map +0 -1
- package/lib/esm/peer.js.map +0 -1
- package/lib/esm/transports-browser.js.map +0 -1
- package/lib/esm/transports.js +0 -16
- package/lib/esm/transports.js.map +0 -1
- /package/{lib/esm → dist/src}/bootstrap.js +0 -0
- /package/{lib/esm → dist/src}/bootstrap.js.map +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start-stop.d.ts","sourceRoot":"","sources":["../../benchmark/start-stop.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import B from "benchmark";
|
|
2
|
+
import { Peerbit } from "../src/peer.js";
|
|
3
|
+
// Run with "node --loader ts-node/esm ./benchmark/start-stop.ts"
|
|
4
|
+
// start and stop x 91.15 ops/sec ±0.95% (87 runs sampled)
|
|
5
|
+
const suite = new B.Suite();
|
|
6
|
+
suite
|
|
7
|
+
.add("start and stop", {
|
|
8
|
+
fn: async (deferred) => {
|
|
9
|
+
const node = await Peerbit.create();
|
|
10
|
+
await node.start();
|
|
11
|
+
await node.stop();
|
|
12
|
+
deferred.resolve();
|
|
13
|
+
},
|
|
14
|
+
defer: true,
|
|
15
|
+
})
|
|
16
|
+
.on("cycle", (event) => {
|
|
17
|
+
console.log(String(event.target));
|
|
18
|
+
})
|
|
19
|
+
.run({ async: true });
|
|
20
|
+
//# sourceMappingURL=start-stop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start-stop.js","sourceRoot":"","sources":["../../benchmark/start-stop.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,WAAW,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,iEAAiE;AAEjE,0DAA0D;AAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AAC5B,KAAK;KACH,GAAG,CAAC,gBAAgB,EAAE;IACtB,EAAE,EAAE,KAAK,EAAE,QAAa,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,QAAQ,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;IACD,KAAK,EAAE,IAAI;CACX,CAAC;KACD,EAAE,CAAC,OAAO,EAAE,CAAC,KAAU,EAAE,EAAE;IAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC;KACD,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,OAClC,MAAM,KACP,OAAO,CAAC,MAAM,EAAE,CAWlB,CAAC"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from "./peer.js";
|
|
2
|
-
export { createLibp2pExtended, type Libp2pExtendServices, type Libp2pExtended, type Libp2pCreateOptions, type Libp2pCreateOptionsWithServices } from "./libp2p.js";
|
|
2
|
+
export { createLibp2pExtended, type Libp2pExtendServices, type Libp2pExtended, type Libp2pCreateOptions, type Libp2pCreateOptionsWithServices, } from "./libp2p.js";
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,OAAO,EACN,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,GACpC,MAAM,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,OAAO,EACN,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,OAAO,EACN,oBAAoB,GAKpB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { CircuitRelayService } from "@libp2p/circuit-relay-v2";
|
|
2
|
+
import { DirectBlock } from "@peerbit/blocks";
|
|
3
|
+
import { type Keychain } from "@peerbit/keychain";
|
|
4
|
+
import { DirectSub } from "@peerbit/pubsub";
|
|
5
|
+
import { type Libp2p, type Libp2pOptions, type ServiceFactoryMap } from "libp2p";
|
|
6
|
+
export type Libp2pExtendServices = {
|
|
7
|
+
pubsub: DirectSub;
|
|
8
|
+
blocks: DirectBlock;
|
|
9
|
+
keychain: Keychain;
|
|
10
|
+
};
|
|
11
|
+
export type Libp2pExtended = Libp2p<{
|
|
12
|
+
relay: CircuitRelayService;
|
|
13
|
+
identify: any;
|
|
14
|
+
} & Libp2pExtendServices>;
|
|
15
|
+
export type Libp2pCreateOptions = Libp2pOptions<Partial<Libp2pExtendServices & {
|
|
16
|
+
relay: CircuitRelayService;
|
|
17
|
+
identify: any;
|
|
18
|
+
}>>;
|
|
19
|
+
export type PartialLibp2pCreateOptions = Libp2pOptions<Partial<Libp2pExtendServices & {
|
|
20
|
+
relay: CircuitRelayService;
|
|
21
|
+
identify: any;
|
|
22
|
+
}>>;
|
|
23
|
+
export type Libp2pCreateOptionsWithServices = Libp2pCreateOptions & {
|
|
24
|
+
services: ServiceFactoryMap<Libp2pExtendServices>;
|
|
25
|
+
};
|
|
26
|
+
export declare const createLibp2pExtended: (opts?: PartialLibp2pCreateOptions) => Promise<Libp2pExtended>;
|
|
27
|
+
//# sourceMappingURL=libp2p.d.ts.map
|
|
@@ -0,0 +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,EAAmB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACN,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAEtB,MAAM,QAAQ,CAAC;AAGhB,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;CACnB,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,eAAO,MAAM,oBAAoB,UAC1B,0BAA0B,KAO9B,OAAO,CAAC,cAAc,CA0CxB,CAAC"}
|
|
@@ -1,53 +1,54 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { DirectSub } from "@peerbit/pubsub";
|
|
3
|
-
import { DirectBlock } from "@peerbit/blocks";
|
|
1
|
+
import { yamux } from "@chainsafe/libp2p-yamux";
|
|
4
2
|
import { noise } from "@dao-xyz/libp2p-noise";
|
|
5
|
-
import { transports, relay, listen } from "./transports.js";
|
|
6
3
|
import { identify } from "@libp2p/identify";
|
|
7
|
-
import {
|
|
4
|
+
import { DirectBlock } from "@peerbit/blocks";
|
|
8
5
|
import { DefaultKeychain } from "@peerbit/keychain";
|
|
6
|
+
import { DirectSub } from "@peerbit/pubsub";
|
|
7
|
+
import { createLibp2p, } from "libp2p";
|
|
8
|
+
import { listen, relay, transports } from "./transports.js";
|
|
9
9
|
export const createLibp2pExtended = (opts = {
|
|
10
10
|
services: {
|
|
11
11
|
blocks: (c) => new DirectBlock(c),
|
|
12
12
|
pubsub: (c) => new DirectSub(c),
|
|
13
|
-
keychain: (
|
|
14
|
-
}
|
|
13
|
+
keychain: () => new DefaultKeychain(),
|
|
14
|
+
},
|
|
15
15
|
}) => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
if (relayIdentify[key] === undefined) {
|
|
23
|
-
delete relayIdentify[key];
|
|
16
|
+
let extraServices = {};
|
|
17
|
+
if (!opts.services?.["relay"]) {
|
|
18
|
+
const relayComponent = relay();
|
|
19
|
+
if (relayComponent) {
|
|
20
|
+
// will be null in browser
|
|
21
|
+
extraServices["relay"] = relayComponent;
|
|
24
22
|
}
|
|
25
|
-
}
|
|
23
|
+
}
|
|
24
|
+
if (!opts.services?.["identify"]) {
|
|
25
|
+
extraServices["identify"] = identify();
|
|
26
|
+
}
|
|
26
27
|
return createLibp2p({
|
|
27
28
|
...opts,
|
|
28
29
|
connectionManager: {
|
|
29
30
|
minConnections: 0,
|
|
30
|
-
...opts.connectionManager
|
|
31
|
+
...opts.connectionManager,
|
|
31
32
|
},
|
|
32
33
|
addresses: {
|
|
33
34
|
listen: listen(),
|
|
34
|
-
...opts.addresses
|
|
35
|
+
...opts.addresses,
|
|
35
36
|
},
|
|
36
37
|
transports: opts.transports || transports(),
|
|
37
38
|
connectionEncryption: opts.connectionEncryption || [noise()],
|
|
38
39
|
streamMuxers: opts.streamMuxers || [yamux()],
|
|
39
40
|
services: {
|
|
40
|
-
...relayIdentify,
|
|
41
41
|
pubsub: opts.services?.pubsub ||
|
|
42
42
|
((c) => new DirectSub(c, {
|
|
43
|
-
canRelayMessage: true
|
|
43
|
+
canRelayMessage: true,
|
|
44
44
|
// auto dial true
|
|
45
45
|
// auto prune true
|
|
46
46
|
})),
|
|
47
47
|
blocks: opts.services?.blocks || ((c) => new DirectBlock(c)),
|
|
48
48
|
keychain: opts.services?.keychain || ((c) => new DefaultKeychain()),
|
|
49
|
-
...opts.services
|
|
50
|
-
|
|
49
|
+
...opts.services,
|
|
50
|
+
...extraServices,
|
|
51
|
+
},
|
|
51
52
|
});
|
|
52
53
|
};
|
|
53
54
|
//# sourceMappingURL=libp2p.js.map
|
|
@@ -0,0 +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,uBAAuB,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAiB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAIN,YAAY,GACZ,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAuB5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CACnC,OAAmC;IAClC,QAAQ,EAAE;QACT,MAAM,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC;QACtC,MAAM,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC;QACpC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,eAAe,EAAE;KACrC;CACD,EACyB,EAAE;IAC5B,IAAI,aAAa,GAAQ,EAAE,CAAC;IAE5B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,KAAK,EAAE,CAAC;QAC/B,IAAI,cAAc,EAAE,CAAC;YACpB,0BAA0B;YAC1B,aAAa,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC;QACzC,CAAC;IACF,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,aAAa,CAAC,UAAU,CAAC,GAAG,QAAQ,EAAE,CAAC;IACxC,CAAC;IAED,OAAO,YAAY,CAAC;QACnB,GAAG,IAAI;QACP,iBAAiB,EAAE;YAClB,cAAc,EAAE,CAAC;YACjB,GAAG,IAAI,CAAC,iBAAiB;SACzB;QACD,SAAS,EAAE;YACV,MAAM,EAAE,MAAM,EAAE;YAChB,GAAG,IAAI,CAAC,SAAS;SACjB;QACD,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,UAAU,EAAE;QAC3C,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5D,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5C,QAAQ,EAAE;YACT,MAAM,EACL,IAAI,CAAC,QAAQ,EAAE,MAAM;gBACrB,CAAC,CAAC,CAAC,EAAE,EAAE,CACN,IAAI,SAAS,CAAC,CAAC,EAAE;oBAChB,eAAe,EAAE,IAAI;oBACrB,iBAAiB;oBACjB,kBAAkB;iBAClB,CAAC,CAAC;YACL,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5D,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC;YACnE,GAAG,IAAI,CAAC,QAAQ;YAChB,GAAG,aAAa;SAChB;KACD,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { AnyStore } from "../../../utils/any-store/lib/esm/index.js";
|
|
2
|
-
import { Multiaddr } from "@multiformats/multiaddr";
|
|
3
|
-
import { Ed25519Keypair } from "@peerbit/crypto";
|
|
4
|
-
import { Program, Address, ProgramClient, ProgramHandler } from "@peerbit/program";
|
|
5
1
|
import "@libp2p/peer-id";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
2
|
+
import { type Multiaddr } from "@multiformats/multiaddr";
|
|
3
|
+
import { type AnyStore } from "@peerbit/any-store";
|
|
4
|
+
import { Ed25519Keypair } from "@peerbit/crypto";
|
|
5
|
+
import type { Indices } from "@peerbit/indexer-interface";
|
|
6
|
+
import { type Address, type ExtractArgs, type OpenOptions, type Program, type ProgramClient, ProgramHandler } from "@peerbit/program";
|
|
7
|
+
import { type Libp2pExtended, type PartialLibp2pCreateOptions } from "./libp2p.js";
|
|
9
8
|
export declare const logger: import("pino").Logger<never>;
|
|
10
9
|
export type OptionalCreateOptions = {
|
|
11
10
|
libp2pExternal?: boolean;
|
|
@@ -13,21 +12,24 @@ export type OptionalCreateOptions = {
|
|
|
13
12
|
export type CreateOptions = {
|
|
14
13
|
directory?: string;
|
|
15
14
|
storage: AnyStore;
|
|
15
|
+
indexer: Indices;
|
|
16
16
|
identity: Ed25519Keypair;
|
|
17
17
|
} & OptionalCreateOptions;
|
|
18
18
|
type Libp2pOptions = {
|
|
19
|
-
libp2p?: Libp2pExtended |
|
|
19
|
+
libp2p?: Libp2pExtended | PartialLibp2pCreateOptions;
|
|
20
20
|
};
|
|
21
21
|
type SimpleLibp2pOptions = {
|
|
22
22
|
relay?: boolean;
|
|
23
23
|
};
|
|
24
24
|
export type CreateInstanceOptions = (SimpleLibp2pOptions | Libp2pOptions) & {
|
|
25
25
|
directory?: string;
|
|
26
|
+
indexer?: (directory?: string) => Promise<Indices> | Indices;
|
|
26
27
|
} & OptionalCreateOptions;
|
|
27
28
|
export declare class Peerbit implements ProgramClient {
|
|
28
29
|
_libp2p: Libp2pExtended;
|
|
29
30
|
directory?: string;
|
|
30
31
|
private _storage;
|
|
32
|
+
private _indexer;
|
|
31
33
|
private _libp2pExternal?;
|
|
32
34
|
private _identity;
|
|
33
35
|
private _handler;
|
|
@@ -58,5 +60,7 @@ export declare class Peerbit implements ProgramClient {
|
|
|
58
60
|
*/
|
|
59
61
|
open<S extends Program<ExtractArgs<S>>>(storeOrAddress: S | Address | string, options?: OpenOptions<S>): Promise<S>;
|
|
60
62
|
get storage(): AnyStore;
|
|
63
|
+
get indexer(): Indices;
|
|
61
64
|
}
|
|
62
65
|
export {};
|
|
66
|
+
//# sourceMappingURL=peer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../src/peer.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;AACzB,OAAO,EACN,KAAK,SAAS,EAGd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,QAAQ,EAAe,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAoB,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAI1D,OAAO,EACN,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,cAAc,EACd,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAEN,KAAK,cAAc,EACnB,KAAK,0BAA0B,EAE/B,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,MAAM,8BAAiC,CAAC;AAErD,MAAM,MAAM,qBAAqB,GAAG;IACnC,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,QAAQ,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;CACzB,GAAG,qBAAqB,CAAC;AAC1B,KAAK,aAAa,GAAG;IAAE,MAAM,CAAC,EAAE,cAAc,GAAG,0BAA0B,CAAA;CAAE,CAAC;AAC9E,KAAK,mBAAmB,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAC/C,MAAM,MAAM,qBAAqB,GAAG,CAAC,mBAAmB,GAAG,aAAa,CAAC,GAAG;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAC7D,GAAG,qBAAqB,CAAC;AAqB1B,qBAAa,OAAQ,YAAW,aAAa;IAC5C,OAAO,EAAE,cAAc,CAAC;IAExB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,eAAe,CAAC,CAAkB;IAG1C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAiB;gBAErB,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa;WAuB7C,MAAM,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,OAAO,CAAC;IAiH1E,IAAI,MAAM,IAAI,cAAc,CAE3B;IAED,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAED,IAAI,MAAM,uCAET;IAED,IAAI,QAAQ;;;mDAEX;IAED,IAAI,OAAO,IAAI,cAAc,CAE5B;IAED,aAAa,IAAI,SAAS,EAAE;IAG5B;;OAEG;IACG,IAAI,CACT,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,EAAE,GAAG,aAAa,GACvD,OAAO,CAAC,OAAO,CAAC;IAoBb,KAAK;IASL,IAAI;IAYJ,SAAS;IA0Bf;;;;;;OAMG;IAEG,IAAI,CAAC,CAAC,SAAS,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAC3C,cAAc,EAAE,CAAC,GAAG,OAAO,GAAG,MAAM,EACpC,OAAO,GAAE,WAAW,CAAC,CAAC,CAAM,GAC1B,OAAO,CAAC,CAAC,CAAC;IAMb,IAAI,OAAO,aAEV;IAED,IAAI,OAAO,YAEV;CACD"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import
|
|
1
|
+
import "@libp2p/peer-id";
|
|
2
|
+
import { isMultiaddr, multiaddr, } from "@multiformats/multiaddr";
|
|
3
|
+
import { createStore } from "@peerbit/any-store";
|
|
4
|
+
import { DirectBlock } from "@peerbit/blocks";
|
|
2
5
|
import { Ed25519Keypair, Ed25519PublicKey } from "@peerbit/crypto";
|
|
3
|
-
import {
|
|
6
|
+
import { create as createSQLiteIndexer } from "@peerbit/indexer-sqlite3";
|
|
7
|
+
import { DefaultKeychain } from "@peerbit/keychain";
|
|
8
|
+
import { logger as loggerFn } from "@peerbit/logger";
|
|
9
|
+
import { ProgramHandler, } from "@peerbit/program";
|
|
4
10
|
import { DirectSub } from "@peerbit/pubsub";
|
|
5
|
-
import sodium from "libsodium-wrappers";
|
|
6
|
-
import path from "path-browserify";
|
|
7
11
|
import { waitFor } from "@peerbit/time";
|
|
8
|
-
import "@libp2p/peer-id";
|
|
9
|
-
import { createLibp2pExtended } from "./libp2p.js";
|
|
10
|
-
import { DirectBlock } from "@peerbit/blocks";
|
|
11
12
|
import { LevelDatastore } from "datastore-level";
|
|
12
|
-
import
|
|
13
|
+
import sodium from "libsodium-wrappers";
|
|
14
|
+
import path from "path-browserify";
|
|
13
15
|
import { resolveBootstrapAddresses } from "./bootstrap.js";
|
|
14
|
-
import {
|
|
15
|
-
import { DefaultKeychain } from "@peerbit/keychain";
|
|
16
|
+
import { createLibp2pExtended, } from "./libp2p.js";
|
|
16
17
|
export const logger = loggerFn({ module: "client" });
|
|
17
18
|
const isLibp2pInstance = (libp2p) => !!libp2p.getMultiaddrs;
|
|
18
19
|
const createCache = async (directory, options) => {
|
|
@@ -30,6 +31,7 @@ export class Peerbit {
|
|
|
30
31
|
_libp2p;
|
|
31
32
|
directory;
|
|
32
33
|
_storage;
|
|
34
|
+
_indexer;
|
|
33
35
|
_libp2pExternal = false;
|
|
34
36
|
// Libp2p peerid in Identity form
|
|
35
37
|
_identity;
|
|
@@ -50,6 +52,7 @@ export class Peerbit {
|
|
|
50
52
|
this.directory = options.directory;
|
|
51
53
|
this._storage = options.storage;
|
|
52
54
|
this._libp2pExternal = options.libp2pExternal;
|
|
55
|
+
this._indexer = options.indexer;
|
|
53
56
|
}
|
|
54
57
|
static async create(options = {}) {
|
|
55
58
|
await sodium.ready; // Some of the modules depends on sodium to be readyy
|
|
@@ -59,14 +62,18 @@ export class Peerbit {
|
|
|
59
62
|
const directory = options.directory;
|
|
60
63
|
const hasDir = directory != null;
|
|
61
64
|
const storage = await createCache(directory != null ? path.join(directory, "/cache") : undefined);
|
|
65
|
+
const indexerFn = options.indexer || createSQLiteIndexer;
|
|
66
|
+
const indexer = directory != null
|
|
67
|
+
? await indexerFn(path.join(directory, "/index"))
|
|
68
|
+
: await indexerFn();
|
|
62
69
|
const blocksDirectory = hasDir
|
|
63
|
-
? path.join(
|
|
70
|
+
? path.join(directory, "/blocks").toString()
|
|
64
71
|
: undefined;
|
|
65
72
|
const keychainDirectory = hasDir
|
|
66
|
-
? path.join(
|
|
73
|
+
? path.join(directory, "/keychain").toString()
|
|
67
74
|
: undefined;
|
|
68
75
|
const datastore = hasDir
|
|
69
|
-
? new LevelDatastore(path.join(
|
|
76
|
+
? new LevelDatastore(path.join(directory, "/libp2p").toString())
|
|
70
77
|
: undefined;
|
|
71
78
|
if (datastore) {
|
|
72
79
|
await datastore.open();
|
|
@@ -74,8 +81,10 @@ export class Peerbit {
|
|
|
74
81
|
const libp2pExternal = libp2pExtended && isLibp2pInstance(libp2pExtended);
|
|
75
82
|
if (!libp2pExternal) {
|
|
76
83
|
const extendedOptions = libp2pExtended;
|
|
84
|
+
const store = createStore(keychainDirectory);
|
|
85
|
+
await store.open();
|
|
77
86
|
const keychain = new DefaultKeychain({
|
|
78
|
-
store
|
|
87
|
+
store,
|
|
79
88
|
});
|
|
80
89
|
const peerId = extendedOptions?.peerId ||
|
|
81
90
|
(await (await keychain.exportById(SELF_IDENTITY_KEY_ID, Ed25519Keypair))?.toPeerId());
|
|
@@ -86,12 +95,12 @@ export class Peerbit {
|
|
|
86
95
|
keychain: (c) => keychain,
|
|
87
96
|
blocks: (c) => new DirectBlock(c, {
|
|
88
97
|
canRelayMessage: asRelay,
|
|
89
|
-
directory: blocksDirectory
|
|
98
|
+
directory: blocksDirectory,
|
|
90
99
|
}),
|
|
91
100
|
pubsub: (c) => new DirectSub(c, { canRelayMessage: asRelay }),
|
|
92
|
-
...extendedOptions?.services
|
|
93
|
-
},
|
|
94
|
-
datastore
|
|
101
|
+
...extendedOptions?.services,
|
|
102
|
+
}, // TODO types are funky
|
|
103
|
+
datastore,
|
|
95
104
|
});
|
|
96
105
|
}
|
|
97
106
|
if (datastore) {
|
|
@@ -113,11 +122,11 @@ export class Peerbit {
|
|
|
113
122
|
try {
|
|
114
123
|
await libp2pExtended.services.keychain.import({
|
|
115
124
|
keypair: identity,
|
|
116
|
-
id: SELF_IDENTITY_KEY_ID
|
|
125
|
+
id: SELF_IDENTITY_KEY_ID,
|
|
117
126
|
});
|
|
118
127
|
}
|
|
119
128
|
catch (error) {
|
|
120
|
-
if (error.code
|
|
129
|
+
if (error.code === "ERR_KEY_ALREADY_EXISTS") {
|
|
121
130
|
// Do nothing
|
|
122
131
|
}
|
|
123
132
|
else {
|
|
@@ -126,9 +135,10 @@ export class Peerbit {
|
|
|
126
135
|
}
|
|
127
136
|
const peer = new Peerbit(libp2pExtended, {
|
|
128
137
|
directory,
|
|
129
|
-
storage
|
|
138
|
+
storage,
|
|
130
139
|
libp2pExternal,
|
|
131
|
-
identity
|
|
140
|
+
identity,
|
|
141
|
+
indexer,
|
|
132
142
|
});
|
|
133
143
|
return peer;
|
|
134
144
|
}
|
|
@@ -154,7 +164,7 @@ export class Peerbit {
|
|
|
154
164
|
* Dial a peer with an Ed25519 peerId
|
|
155
165
|
*/
|
|
156
166
|
async dial(address) {
|
|
157
|
-
const maddress = typeof address
|
|
167
|
+
const maddress = typeof address === "string"
|
|
158
168
|
? multiaddr(address)
|
|
159
169
|
: isMultiaddr(address) || Array.isArray(address)
|
|
160
170
|
? address
|
|
@@ -167,6 +177,7 @@ export class Peerbit {
|
|
|
167
177
|
}
|
|
168
178
|
async start() {
|
|
169
179
|
await this._storage.open();
|
|
180
|
+
await this.indexer.start();
|
|
170
181
|
if (this.libp2p.status === "stopped" || this.libp2p.status === "stopping") {
|
|
171
182
|
this._libp2pExternal = false; // this means we will also close libp2p client on close
|
|
172
183
|
return this.libp2p.start();
|
|
@@ -175,6 +186,7 @@ export class Peerbit {
|
|
|
175
186
|
async stop() {
|
|
176
187
|
await this._handler?.stop();
|
|
177
188
|
await this._storage.close();
|
|
189
|
+
await this.indexer.stop();
|
|
178
190
|
// Close libp2p (after above)
|
|
179
191
|
if (!this._libp2pExternal) {
|
|
180
192
|
// only close it if we created it
|
|
@@ -216,5 +228,8 @@ export class Peerbit {
|
|
|
216
228
|
get storage() {
|
|
217
229
|
return this._storage;
|
|
218
230
|
}
|
|
231
|
+
get indexer() {
|
|
232
|
+
return this._indexer;
|
|
233
|
+
}
|
|
219
234
|
}
|
|
220
235
|
//# sourceMappingURL=peer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer.js","sourceRoot":"","sources":["../../src/peer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare const transports: () => (((components: import("@libp2p/circuit-relay-v2/dist/src/transport").CircuitRelayTransportComponents) => import("@libp2p/interface").Transport) | ((components: import("@libp2p/webrtc/dist/src/private-to-private/transport").WebRTCTransportComponents) => import("@libp2p/interface").Transport))[];
|
|
2
|
-
export declare const relay: () =>
|
|
2
|
+
export declare const relay: () => any;
|
|
3
3
|
export declare const listen: () => string[] | undefined;
|
|
4
|
+
//# sourceMappingURL=transports.browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transports.browser.d.ts","sourceRoot":"","sources":["../../src/transports.browser.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,UAAU,8SAOtB,CAAC;AAEF,eAAO,MAAM,KAAK,QAAsB,GAAG,CAAC;AAE5C,eAAO,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,GAAG,SAA6B,CAAC"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { webSockets } from "@libp2p/websockets";
|
|
2
1
|
import { circuitRelayTransport } from "@libp2p/circuit-relay-v2";
|
|
3
2
|
import { webRTC } from "@libp2p/webrtc";
|
|
3
|
+
import { webSockets } from "@libp2p/websockets";
|
|
4
4
|
import { all } from "@libp2p/websockets/filters";
|
|
5
5
|
export const transports = () => [
|
|
6
6
|
webSockets({ filter: all }),
|
|
7
7
|
circuitRelayTransport({
|
|
8
|
-
discoverRelays: 1
|
|
8
|
+
discoverRelays: 1,
|
|
9
|
+
reservationCompletionTimeout: 5000,
|
|
9
10
|
}),
|
|
10
|
-
webRTC({})
|
|
11
|
+
webRTC({}),
|
|
11
12
|
];
|
|
12
13
|
export const relay = () => undefined;
|
|
13
14
|
export const listen = () => ["/webrtc"];
|
|
14
|
-
//# sourceMappingURL=transports
|
|
15
|
+
//# sourceMappingURL=transports.browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transports.browser.js","sourceRoot":"","sources":["../../src/transports.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAEjD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IAC3B,qBAAqB,CAAC;QACrB,cAAc,EAAE,CAAC;QACjB,4BAA4B,EAAE,IAAI;KAClC,CAAC;IACF,MAAM,CAAC,EAAE,CAAC;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,SAAgB,CAAC;AAE5C,MAAM,CAAC,MAAM,MAAM,GAA+B,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare const transports: () => (((components: import("@libp2p/circuit-relay-v2/dist/src/transport").CircuitRelayTransportComponents) => import("@libp2p/interface").Transport) | ((components: import("@libp2p/tcp").TCPComponents) => import("@libp2p/interface").Transport))[];
|
|
2
2
|
export declare const relay: () => (components: import("@libp2p/circuit-relay-v2/dist/src/server").CircuitRelayServerComponents) => import("@libp2p/circuit-relay-v2").CircuitRelayService;
|
|
3
3
|
export declare const listen: () => string[] | undefined;
|
|
4
|
+
//# sourceMappingURL=transports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transports.d.ts","sourceRoot":"","sources":["../../src/transports.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU,yPAMtB,CAAC;AACF,eAAO,MAAM,KAAK,+JAIf,CAAC;AAEJ,eAAO,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,GAAG,SAGrC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { circuitRelayServer, circuitRelayTransport, } from "@libp2p/circuit-relay-v2";
|
|
2
|
+
import { tcp } from "@libp2p/tcp";
|
|
3
|
+
import { webSockets } from "@libp2p/websockets";
|
|
4
|
+
import { all } from "@libp2p/websockets/filters";
|
|
5
|
+
export const transports = () => [
|
|
6
|
+
webSockets({ filter: all }),
|
|
7
|
+
circuitRelayTransport({
|
|
8
|
+
reservationCompletionTimeout: 5000,
|
|
9
|
+
}),
|
|
10
|
+
tcp(),
|
|
11
|
+
];
|
|
12
|
+
export const relay = () =>
|
|
13
|
+
// applyDefaultLimit: false because of https://github.com/libp2p/js-libp2p/issues/2622
|
|
14
|
+
circuitRelayServer({
|
|
15
|
+
reservations: { applyDefaultLimit: false, maxReservations: 1000 },
|
|
16
|
+
});
|
|
17
|
+
export const listen = () => [
|
|
18
|
+
"/ip4/127.0.0.1/tcp/0",
|
|
19
|
+
"/ip4/127.0.0.1/tcp/0/ws",
|
|
20
|
+
];
|
|
21
|
+
//# sourceMappingURL=transports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transports.js","sourceRoot":"","sources":["../../src/transports.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,kBAAkB,EAClB,qBAAqB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAEjD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IAC3B,qBAAqB,CAAC;QACrB,4BAA4B,EAAE,IAAI;KAClC,CAAC;IACF,GAAG,EAAE;CACL,CAAC;AACF,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,EAAE;AACzB,sFAAsF;AACtF,kBAAkB,CAAC;IAClB,YAAY,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE;CACjE,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,MAAM,GAA+B,GAAG,EAAE,CAAC;IACvD,sBAAsB;IACtB,yBAAyB;CACzB,CAAC"}
|