@peerbit/blocks 4.1.9 → 4.2.1
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/any-store.d.ts +2 -0
- package/dist/benchmark/any-store.d.ts.map +1 -0
- package/dist/benchmark/any-store.js +112 -0
- package/dist/benchmark/any-store.js.map +1 -0
- package/dist/src/any-blockstore.d.ts +23 -9
- package/dist/src/any-blockstore.d.ts.map +1 -1
- package/dist/src/any-blockstore.js +161 -18
- package/dist/src/any-blockstore.js.map +1 -1
- package/dist/src/interface.d.ts +19 -1
- package/dist/src/interface.d.ts.map +1 -1
- package/dist/src/libp2p.d.ts +28 -2
- package/dist/src/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js +90 -9
- package/dist/src/libp2p.js.map +1 -1
- package/dist/src/remote.d.ts +49 -4
- package/dist/src/remote.d.ts.map +1 -1
- package/dist/src/remote.js +209 -19
- package/dist/src/remote.js.map +1 -1
- package/package.json +11 -9
- package/src/any-blockstore.ts +244 -28
- package/src/interface.ts +23 -1
- package/src/libp2p.ts +133 -14
- package/src/remote.ts +285 -21
package/dist/src/libp2p.js
CHANGED
|
@@ -5,12 +5,15 @@ import { DirectStream } from "@peerbit/stream";
|
|
|
5
5
|
import {} from "@peerbit/stream";
|
|
6
6
|
import { createRequestTransportContext, } from "@peerbit/stream-interface";
|
|
7
7
|
import { AnyBlockStore } from "./any-blockstore.js";
|
|
8
|
-
import { BlockMessage, RemoteBlocks } from "./remote.js";
|
|
8
|
+
import { BlockMessage, BlockRequest, BlockResponse, RemoteBlocks } from "./remote.js";
|
|
9
9
|
export class DirectBlock extends DirectStream {
|
|
10
10
|
remoteBlocks;
|
|
11
11
|
onDataFn;
|
|
12
12
|
onPeerConnectedFn;
|
|
13
13
|
constructor(components, options) {
|
|
14
|
+
if (options?.directory && options.localStore) {
|
|
15
|
+
throw new Error("DirectBlock options cannot include both directory and localStore");
|
|
16
|
+
}
|
|
14
17
|
super(components, ["/peerbit/direct-block/1.0.0"], {
|
|
15
18
|
messageProcessingConcurrency: options?.messageProcessingConcurrency || 10,
|
|
16
19
|
canRelayMessage: options?.canRelayMessage ?? true,
|
|
@@ -18,8 +21,23 @@ export class DirectBlock extends DirectStream {
|
|
|
18
21
|
dialer: false,
|
|
19
22
|
pruner: false,
|
|
20
23
|
},
|
|
24
|
+
rustCore: options?.rustCore,
|
|
21
25
|
});
|
|
26
|
+
const blockExchange = this.rustCore?.blockExchange;
|
|
22
27
|
const defaultResolveProviders = () => {
|
|
28
|
+
if (blockExchange) {
|
|
29
|
+
const negotiated = [...this.peers.keys()];
|
|
30
|
+
const connected = [];
|
|
31
|
+
for (const conn of this.components.connectionManager.getConnections()) {
|
|
32
|
+
try {
|
|
33
|
+
connected.push(getPublicKeyFromPeerId(conn.remotePeer).hashcode());
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
// ignore unexpected key types
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return blockExchange.defaultProviderCandidates(negotiated, connected, this.publicKeyHash);
|
|
40
|
+
}
|
|
23
41
|
const out = [];
|
|
24
42
|
const push = (hash) => {
|
|
25
43
|
if (!hash)
|
|
@@ -53,8 +71,8 @@ export class DirectBlock extends DirectStream {
|
|
|
53
71
|
return out;
|
|
54
72
|
};
|
|
55
73
|
this.remoteBlocks = new RemoteBlocks({
|
|
56
|
-
local: new AnyBlockStore(createStore(options?.directory)),
|
|
57
|
-
publish: (message, options) => this.publish(
|
|
74
|
+
local: new AnyBlockStore(options?.localStore ?? createStore(options?.directory)),
|
|
75
|
+
publish: (message, options) => this.publish(this.encodeBlockMessage(message), options),
|
|
58
76
|
localTimeout: options?.localTimeout || 1000,
|
|
59
77
|
messageProcessingConcurrency: options?.messageProcessingConcurrency || 10,
|
|
60
78
|
waitFor: this.waitFor.bind(this),
|
|
@@ -65,32 +83,95 @@ export class DirectBlock extends DirectStream {
|
|
|
65
83
|
onPut: options?.onPut,
|
|
66
84
|
providerCache: options?.providerCache,
|
|
67
85
|
requeryOnReachable: options?.requeryOnReachable,
|
|
86
|
+
rust: blockExchange
|
|
87
|
+
? {
|
|
88
|
+
exchange: blockExchange,
|
|
89
|
+
publishRaw: (payload, options) => this.publish(payload, options),
|
|
90
|
+
}
|
|
91
|
+
: undefined,
|
|
68
92
|
});
|
|
69
93
|
this.onDataFn = (data) => {
|
|
70
|
-
data.detail?.data?.length &&
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
94
|
+
if (!(data.detail?.data?.length && data.detail.data.length > 0)) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
let message;
|
|
98
|
+
try {
|
|
99
|
+
message = this.decodeBlockMessage(data.detail.data);
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// Drop undecodable frames instead of letting the throw escape
|
|
103
|
+
// the 'data' listener (an uncaughtException in Node). The TS
|
|
104
|
+
// borsh decoder tolerates malformed frames lossily and fails
|
|
105
|
+
// later inside handleFetchRequest, which is caught; the native
|
|
106
|
+
// decoder throws on e.g. non-UTF-8 cid bytes, so match the
|
|
107
|
+
// tolerant behaviour here.
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
this.remoteBlocks.onMessage(message, {
|
|
111
|
+
from: data.detail.header.signatures?.publicKeys[0]?.hashcode(),
|
|
112
|
+
transport: createRequestTransportContext(data.detail),
|
|
113
|
+
});
|
|
76
114
|
};
|
|
77
115
|
this.onPeerConnectedFn = (evt) => this.remoteBlocks.onReachable(evt.detail);
|
|
78
116
|
}
|
|
117
|
+
encodeBlockMessage(message) {
|
|
118
|
+
const blockExchange = this.rustCore?.blockExchange;
|
|
119
|
+
if (blockExchange) {
|
|
120
|
+
if (message instanceof BlockRequest) {
|
|
121
|
+
return blockExchange.encodeBlockRequest(message.cid);
|
|
122
|
+
}
|
|
123
|
+
if (message instanceof BlockResponse) {
|
|
124
|
+
return blockExchange.encodeBlockResponse(message.cid, message.bytes);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return serialize(message);
|
|
128
|
+
}
|
|
129
|
+
decodeBlockMessage(bytes) {
|
|
130
|
+
const blockExchange = this.rustCore?.blockExchange;
|
|
131
|
+
if (blockExchange) {
|
|
132
|
+
const decoded = blockExchange.decodeBlockMessage(bytes);
|
|
133
|
+
return decoded.type === "request"
|
|
134
|
+
? new BlockRequest(decoded.cid)
|
|
135
|
+
: new BlockResponse(decoded.cid, decoded.bytes);
|
|
136
|
+
}
|
|
137
|
+
return deserialize(bytes, BlockMessage);
|
|
138
|
+
}
|
|
139
|
+
getNativeLogBlockStoreHandle() {
|
|
140
|
+
return this.remoteBlocks.getNativeLogBlockStoreHandle();
|
|
141
|
+
}
|
|
79
142
|
async put(bytes) {
|
|
80
143
|
return this.remoteBlocks.put(bytes);
|
|
81
144
|
}
|
|
145
|
+
async putMany(blocks) {
|
|
146
|
+
return this.remoteBlocks.putMany(blocks);
|
|
147
|
+
}
|
|
148
|
+
async putKnown(cid, bytes) {
|
|
149
|
+
return this.remoteBlocks.putKnown(cid, bytes);
|
|
150
|
+
}
|
|
151
|
+
async putKnownMany(blocks) {
|
|
152
|
+
return this.remoteBlocks.putKnownMany(blocks);
|
|
153
|
+
}
|
|
82
154
|
async has(cid) {
|
|
83
155
|
return this.remoteBlocks.has(cid);
|
|
84
156
|
}
|
|
157
|
+
async hasMany(cids) {
|
|
158
|
+
return this.remoteBlocks.hasMany(cids);
|
|
159
|
+
}
|
|
85
160
|
async get(cid, options) {
|
|
86
161
|
return this.remoteBlocks.get(cid, options);
|
|
87
162
|
}
|
|
163
|
+
async getMany(cids, options) {
|
|
164
|
+
return this.remoteBlocks.getMany(cids, options);
|
|
165
|
+
}
|
|
88
166
|
hintProviders(cid, providers) {
|
|
89
167
|
this.remoteBlocks.hintProviders(cid, providers);
|
|
90
168
|
}
|
|
91
169
|
async rm(cid) {
|
|
92
170
|
return this.remoteBlocks.rm(cid);
|
|
93
171
|
}
|
|
172
|
+
async rmMany(cids) {
|
|
173
|
+
return this.remoteBlocks.rmMany(cids);
|
|
174
|
+
}
|
|
94
175
|
async *iterator() {
|
|
95
176
|
for await (const [key, value] of this.remoteBlocks.iterator()) {
|
|
96
177
|
yield [key, value];
|
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,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"libp2p.js","sourceRoot":"","sources":["../../src/libp2p.ts"],"names":[],"mappings":"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"}
|
package/dist/src/remote.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { type GetOptions, type Blocks as IBlocks } from "@peerbit/blocks-interface";
|
|
2
2
|
import { PublicSignKey } from "@peerbit/crypto";
|
|
3
|
-
import { type PublishOptions } from "@peerbit/stream";
|
|
3
|
+
import { type PublishOptions, type RustBlockExchange } from "@peerbit/stream";
|
|
4
4
|
import { type RequestTransportContext, type PeerRefs, type WaitForAnyOpts, type WaitForPeersFn, type WaitForPresentOpts } from "@peerbit/stream-interface";
|
|
5
5
|
import { type Block } from "multiformats/block";
|
|
6
|
-
import { AnyBlockStore } from "./any-blockstore.js";
|
|
7
6
|
import type { BlockStore } from "./interface.js";
|
|
8
7
|
export declare const logger: import("@libp2p/interface").Logger;
|
|
9
8
|
export declare class BlockMessage {
|
|
@@ -23,7 +22,7 @@ type BlockMessageContext = {
|
|
|
23
22
|
};
|
|
24
23
|
export declare class RemoteBlocks implements IBlocks {
|
|
25
24
|
readonly options: {
|
|
26
|
-
local:
|
|
25
|
+
local: BlockStore;
|
|
27
26
|
localTimeout?: number;
|
|
28
27
|
messageProcessingConcurrency?: number;
|
|
29
28
|
publicKey: PublicSignKey;
|
|
@@ -79,22 +78,38 @@ export declare class RemoteBlocks implements IBlocks {
|
|
|
79
78
|
requeryOnReachable?: number;
|
|
80
79
|
publish: (data: BlockRequest | BlockResponse, options: PublishOptions) => Promise<Uint8Array | undefined | void>;
|
|
81
80
|
waitFor: WaitForPeersFn;
|
|
81
|
+
/**
|
|
82
|
+
* Native block-exchange components (rust-core mode). When set, the
|
|
83
|
+
* provider caches/decisions and eager-block bookkeeping run in the
|
|
84
|
+
* native core; `publishRaw` additionally enables serving natively
|
|
85
|
+
* stored blocks as wasm-serialized payloads that never surface the
|
|
86
|
+
* block bytes to JS.
|
|
87
|
+
*/
|
|
88
|
+
rust?: {
|
|
89
|
+
exchange: RustBlockExchange;
|
|
90
|
+
publishRaw?: (payload: Uint8Array, options: PublishOptions) => Promise<Uint8Array | undefined | void>;
|
|
91
|
+
};
|
|
82
92
|
};
|
|
83
93
|
localStore: BlockStore;
|
|
94
|
+
putKnownManyColumns?: (cids: string[], bytes: Uint8Array[]) => string[];
|
|
84
95
|
private _responseHandler?;
|
|
85
96
|
private _resolvers;
|
|
86
97
|
private _blockCache?;
|
|
87
98
|
private _providerCache?;
|
|
99
|
+
private _rustProviderCache?;
|
|
100
|
+
private readonly rustExchange?;
|
|
88
101
|
private readonly publicKeyHash;
|
|
89
102
|
private readonly maxProviderHintsPerCid;
|
|
90
103
|
private readonly maxRequeryOnReachable;
|
|
91
104
|
private _loadFetchQueue;
|
|
92
105
|
private _readFromPeersPromises;
|
|
106
|
+
private _deferredStoredNotificationCids?;
|
|
107
|
+
private _deferredStoredNotificationTimer?;
|
|
93
108
|
_open: boolean;
|
|
94
109
|
private _events;
|
|
95
110
|
private closeController;
|
|
96
111
|
constructor(options: {
|
|
97
|
-
local:
|
|
112
|
+
local: BlockStore;
|
|
98
113
|
localTimeout?: number;
|
|
99
114
|
messageProcessingConcurrency?: number;
|
|
100
115
|
publicKey: PublicSignKey;
|
|
@@ -150,20 +165,50 @@ export declare class RemoteBlocks implements IBlocks {
|
|
|
150
165
|
requeryOnReachable?: number;
|
|
151
166
|
publish: (data: BlockRequest | BlockResponse, options: PublishOptions) => Promise<Uint8Array | undefined | void>;
|
|
152
167
|
waitFor: WaitForPeersFn;
|
|
168
|
+
/**
|
|
169
|
+
* Native block-exchange components (rust-core mode). When set, the
|
|
170
|
+
* provider caches/decisions and eager-block bookkeeping run in the
|
|
171
|
+
* native core; `publishRaw` additionally enables serving natively
|
|
172
|
+
* stored blocks as wasm-serialized payloads that never surface the
|
|
173
|
+
* block bytes to JS.
|
|
174
|
+
*/
|
|
175
|
+
rust?: {
|
|
176
|
+
exchange: RustBlockExchange;
|
|
177
|
+
publishRaw?: (payload: Uint8Array, options: PublishOptions) => Promise<Uint8Array | undefined | void>;
|
|
178
|
+
};
|
|
153
179
|
});
|
|
180
|
+
getNativeLogBlockStoreHandle(): unknown;
|
|
154
181
|
private normalizeProviderHints;
|
|
155
182
|
private rememberProvider;
|
|
156
183
|
private rememberProviderHints;
|
|
184
|
+
private getCachedProviders;
|
|
157
185
|
private pickRequestBatch;
|
|
158
186
|
private resolveRemoteProviders;
|
|
159
187
|
put(bytes: Uint8Array | {
|
|
160
188
|
block: Block<any, any, any, any>;
|
|
161
189
|
cid: string;
|
|
162
190
|
}): Promise<string>;
|
|
191
|
+
putMany(blocks: Array<Uint8Array | {
|
|
192
|
+
block: Block<any, any, any, any>;
|
|
193
|
+
cid: string;
|
|
194
|
+
}>): Promise<string[]>;
|
|
195
|
+
putKnown(cid: string, bytes: Uint8Array): Promise<string>;
|
|
196
|
+
putKnownMany(blocks: Array<readonly [cid: string, bytes: Uint8Array]>): Promise<string[]>;
|
|
197
|
+
hasNotifyStoredHook(): boolean;
|
|
198
|
+
notifyStored(cid: string): Promise<void> | void;
|
|
199
|
+
notifyStoredMany(cids: string[]): Promise<void> | void;
|
|
200
|
+
notifyStoredDeferred(cid: string): void;
|
|
201
|
+
notifyStoredManyDeferred(cids: string[]): void;
|
|
202
|
+
private flushDeferredStoredNotifications;
|
|
203
|
+
private notifyPut;
|
|
204
|
+
private notifyPuts;
|
|
163
205
|
has(cid: string): Promise<boolean>;
|
|
206
|
+
hasMany(cids: string[]): Promise<boolean[]>;
|
|
164
207
|
get(cid: string, options?: GetOptions | undefined): Promise<Uint8Array | undefined>;
|
|
208
|
+
getMany(cids: string[], options?: GetOptions | undefined): Promise<Array<Uint8Array | undefined>>;
|
|
165
209
|
hintProviders(cid: string, providers: string[]): void;
|
|
166
210
|
rm(cid: string): Promise<void>;
|
|
211
|
+
rmMany(cids: string[]): Promise<void>;
|
|
167
212
|
iterator(): AsyncGenerator<[string, Uint8Array], void, void>;
|
|
168
213
|
start(): Promise<void>;
|
|
169
214
|
onMessage(data: BlockMessage, context?: BlockMessageContext): any;
|
package/dist/src/remote.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,UAAU,EACf,KAAK,MAAM,IAAI,OAAO,EAKtB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":"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"}
|