@peerbit/blocks 4.2.4 → 4.2.6
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/README.md +57 -0
- package/dist/src/eager-cache.d.ts +69 -0
- package/dist/src/eager-cache.d.ts.map +1 -0
- package/dist/src/eager-cache.js +167 -0
- package/dist/src/eager-cache.js.map +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/libp2p.d.ts +4 -3
- package/dist/src/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js +6 -0
- package/dist/src/libp2p.js.map +1 -1
- package/dist/src/remote.d.ts +34 -6
- package/dist/src/remote.d.ts.map +1 -1
- package/dist/src/remote.js +271 -42
- package/dist/src/remote.js.map +1 -1
- package/package.json +5 -5
- package/src/eager-cache.ts +256 -0
- package/src/index.ts +1 -0
- package/src/libp2p.ts +10 -1
- package/src/remote.ts +359 -60
package/README.md
CHANGED
|
@@ -1,3 +1,60 @@
|
|
|
1
1
|
# Direct block
|
|
2
2
|
|
|
3
3
|
Block swap/share protocol built on top of [Direct Stream](./../direct-stream/README.md)
|
|
4
|
+
|
|
5
|
+
Remote responses are treated as opaque bytes. Their CID is verified before a
|
|
6
|
+
response can resolve a read, be persisted, or teach the provider cache about
|
|
7
|
+
the sender. The transport does not decode DAG-CBOR responses while performing
|
|
8
|
+
that integrity check.
|
|
9
|
+
|
|
10
|
+
## Eager responses
|
|
11
|
+
|
|
12
|
+
`eagerBlocks` is an optional receiver-local optimization. It retains a valid
|
|
13
|
+
`BlockResponse` that arrived before a matching local read, so the next read can
|
|
14
|
+
consume it without another request. It does not change the direct-block wire
|
|
15
|
+
protocol, block addressing, or the normal requested-read path.
|
|
16
|
+
|
|
17
|
+
The option is disabled by default in `DirectBlock` and `SharedLog`. Enable the
|
|
18
|
+
compatible bounded behavior explicitly:
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
new DirectBlock(components, {
|
|
22
|
+
eagerBlocks: true,
|
|
23
|
+
});
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
`true` applies these defaults:
|
|
27
|
+
|
|
28
|
+
- at most 1,000 validated entries and 32 MiB of retained block bytes;
|
|
29
|
+
- at most 10 MiB per unsolicited block and a 10-second TTL;
|
|
30
|
+
- two simultaneous integrity checks;
|
|
31
|
+
- at most 64 entries and 20 MiB waiting for or undergoing validation.
|
|
32
|
+
|
|
33
|
+
The defaults can be overridden while retaining the old `cacheSize` option:
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
new DirectBlock(components, {
|
|
37
|
+
eagerBlocks: {
|
|
38
|
+
cacheSize: 256,
|
|
39
|
+
maxBytes: 16 * 1024 * 1024,
|
|
40
|
+
maxBlockBytes: 2 * 1024 * 1024,
|
|
41
|
+
ttlMs: 5_000,
|
|
42
|
+
validationConcurrency: 2,
|
|
43
|
+
maxPendingEntries: 32,
|
|
44
|
+
maxPendingBytes: 4 * 1024 * 1024,
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Unsolicited entries accept only raw blocks with SHA-256 CIDs. Peerbit copies
|
|
50
|
+
only the exact block range, verifies the CID before cache admission, and learns
|
|
51
|
+
the response sender as a provider only after validation. DAG-CBOR is excluded
|
|
52
|
+
because logically decoding even hash-valid attacker-controlled object graphs
|
|
53
|
+
can expand a small wire payload into unbounded transient heap use. DAG-CBOR,
|
|
54
|
+
other codecs, and custom hashers remain available through the unchanged
|
|
55
|
+
requested-read path; they simply miss this optimization.
|
|
56
|
+
|
|
57
|
+
`getEagerBlockCacheTelemetry()` exposes current/peak entry, retained-byte and
|
|
58
|
+
pending-validation budgets plus admission/rejection counters. The telemetry is
|
|
59
|
+
local diagnostics and is not sent over the network. Byte counters cover block
|
|
60
|
+
payload buffers.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { RustEagerBlockCache, RustEagerBlockCacheStats } from "@peerbit/stream";
|
|
2
|
+
/** Recipient-side eager-response limits. `cacheSize` is kept for API compatibility. */
|
|
3
|
+
export type EagerBlocksOptions = {
|
|
4
|
+
/** Maximum number of validated blocks retained. */
|
|
5
|
+
cacheSize?: number;
|
|
6
|
+
/** Maximum combined byte length of retained blocks. */
|
|
7
|
+
maxBytes?: number;
|
|
8
|
+
/** Maximum byte length of one unsolicited block. */
|
|
9
|
+
maxBlockBytes?: number;
|
|
10
|
+
/** Time-to-live for a validated eager block, in milliseconds. */
|
|
11
|
+
ttlMs?: number;
|
|
12
|
+
/** Maximum number of simultaneous eager integrity checks. */
|
|
13
|
+
validationConcurrency?: number;
|
|
14
|
+
/** Maximum copied bytes waiting for, or undergoing, integrity checks. */
|
|
15
|
+
maxPendingBytes?: number;
|
|
16
|
+
/** Maximum blocks waiting for, or undergoing, integrity checks. */
|
|
17
|
+
maxPendingEntries?: number;
|
|
18
|
+
};
|
|
19
|
+
export type EagerBlocksSetting = boolean | EagerBlocksOptions;
|
|
20
|
+
export declare const DEFAULT_EAGER_BLOCK_CACHE_ENTRIES = 1000;
|
|
21
|
+
export declare const DEFAULT_EAGER_BLOCK_CACHE_BYTES: number;
|
|
22
|
+
export declare const DEFAULT_EAGER_BLOCK_MAX_BYTES: number;
|
|
23
|
+
export declare const DEFAULT_EAGER_BLOCK_TTL_MS = 10000;
|
|
24
|
+
export declare const DEFAULT_EAGER_BLOCK_VALIDATION_CONCURRENCY = 2;
|
|
25
|
+
export declare const DEFAULT_EAGER_BLOCK_PENDING_BYTES: number;
|
|
26
|
+
export declare const DEFAULT_EAGER_BLOCK_PENDING_ENTRIES = 64;
|
|
27
|
+
export declare const MAX_EAGER_BLOCK_CID_LENGTH = 256;
|
|
28
|
+
export declare const MAX_EAGER_BLOCK_TTL_MS = 2147483647;
|
|
29
|
+
export type NormalizedEagerBlocksOptions = {
|
|
30
|
+
maxEntries: number;
|
|
31
|
+
maxBytes: number;
|
|
32
|
+
maxBlockBytes: number;
|
|
33
|
+
ttlMs: number;
|
|
34
|
+
validationConcurrency: number;
|
|
35
|
+
maxPendingBytes: number;
|
|
36
|
+
maxPendingEntries: number;
|
|
37
|
+
};
|
|
38
|
+
export declare const normalizeEagerBlocksOptions: (setting: Exclude<EagerBlocksSetting, false>) => NormalizedEagerBlocksOptions;
|
|
39
|
+
export interface EagerBlockCache extends RustEagerBlockCache {
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Exact FIFO/TTL cache used when the native block-exchange core is disabled.
|
|
43
|
+
* Deletion releases the byte buffer immediately and both entry and byte
|
|
44
|
+
* accounting remain exact across replacement and delete/re-add cycles.
|
|
45
|
+
*/
|
|
46
|
+
export declare class BoundedEagerBlockCache implements EagerBlockCache {
|
|
47
|
+
private readonly options;
|
|
48
|
+
private readonly entries;
|
|
49
|
+
private currentBytes;
|
|
50
|
+
private peakEntries;
|
|
51
|
+
private peakBytes;
|
|
52
|
+
private evictions;
|
|
53
|
+
private expirations;
|
|
54
|
+
private expiryTimer?;
|
|
55
|
+
constructor(options: {
|
|
56
|
+
maxEntries: number;
|
|
57
|
+
maxBytes: number;
|
|
58
|
+
ttlMs: number;
|
|
59
|
+
});
|
|
60
|
+
add(cid: string, bytes: Uint8Array): boolean;
|
|
61
|
+
get(cid: string): Uint8Array | undefined;
|
|
62
|
+
del(cid: string): void;
|
|
63
|
+
clear(): void;
|
|
64
|
+
stats(): RustEagerBlockCacheStats;
|
|
65
|
+
private remove;
|
|
66
|
+
private sweepExpired;
|
|
67
|
+
private scheduleExpiry;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=eager-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eager-cache.d.ts","sourceRoot":"","sources":["../../src/eager-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,mBAAmB,EACnB,wBAAwB,EACxB,MAAM,iBAAiB,CAAC;AAEzB,uFAAuF;AACvF,MAAM,MAAM,kBAAkB,GAAG;IAChC,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,kBAAkB,CAAC;AAE9D,eAAO,MAAM,iCAAiC,OAAQ,CAAC;AACvD,eAAO,MAAM,+BAA+B,QAAmB,CAAC;AAChE,eAAO,MAAM,6BAA6B,QAAmB,CAAC;AAC9D,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD,eAAO,MAAM,0CAA0C,IAAI,CAAC;AAC5D,eAAO,MAAM,iCAAiC,QAAmB,CAAC;AAClE,eAAO,MAAM,mCAAmC,KAAK,CAAC;AACtD,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,eAAO,MAAM,sBAAsB,aAAc,CAAC;AAElD,MAAM,MAAM,4BAA4B,GAAG;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAyBF,eAAO,MAAM,2BAA2B,GACvC,SAAS,OAAO,CAAC,kBAAkB,EAAE,KAAK,CAAC,KACzC,4BAuCF,CAAC;AAEF,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;CAAG;AAO/D;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,eAAe;IAU5D,OAAO,CAAC,QAAQ,CAAC,OAAO;IATzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,WAAW,CAAC,CAAgC;gBAGlC,OAAO,EAAE;QACzB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACd;IAOF,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IAuC5C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAKxC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMtB,KAAK,IAAI,IAAI;IASb,KAAK,IAAI,wBAAwB;IAYjC,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,cAAc;CAmBtB"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
export const DEFAULT_EAGER_BLOCK_CACHE_ENTRIES = 1_000;
|
|
2
|
+
export const DEFAULT_EAGER_BLOCK_CACHE_BYTES = 32 * 1024 * 1024;
|
|
3
|
+
export const DEFAULT_EAGER_BLOCK_MAX_BYTES = 10 * 1024 * 1024;
|
|
4
|
+
export const DEFAULT_EAGER_BLOCK_TTL_MS = 10_000;
|
|
5
|
+
export const DEFAULT_EAGER_BLOCK_VALIDATION_CONCURRENCY = 2;
|
|
6
|
+
export const DEFAULT_EAGER_BLOCK_PENDING_BYTES = 20 * 1024 * 1024;
|
|
7
|
+
export const DEFAULT_EAGER_BLOCK_PENDING_ENTRIES = 64;
|
|
8
|
+
export const MAX_EAGER_BLOCK_CID_LENGTH = 256;
|
|
9
|
+
export const MAX_EAGER_BLOCK_TTL_MS = 0x7fff_ffff;
|
|
10
|
+
const positiveSafeInteger = (value, name) => {
|
|
11
|
+
if (!Number.isSafeInteger(value) || value <= 0) {
|
|
12
|
+
throw new RangeError(`${name} must be a positive safe integer`);
|
|
13
|
+
}
|
|
14
|
+
return value;
|
|
15
|
+
};
|
|
16
|
+
const positiveUint32 = (value, name) => {
|
|
17
|
+
positiveSafeInteger(value, name);
|
|
18
|
+
if (value > 0xffff_ffff) {
|
|
19
|
+
throw new RangeError(`${name} must be at most 4294967295`);
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
};
|
|
23
|
+
const positiveTimerDelay = (value, name) => {
|
|
24
|
+
positiveSafeInteger(value, name);
|
|
25
|
+
if (value > MAX_EAGER_BLOCK_TTL_MS) {
|
|
26
|
+
throw new RangeError(`${name} must be at most ${MAX_EAGER_BLOCK_TTL_MS}`);
|
|
27
|
+
}
|
|
28
|
+
return value;
|
|
29
|
+
};
|
|
30
|
+
export const normalizeEagerBlocksOptions = (setting) => {
|
|
31
|
+
const options = typeof setting === "boolean" ? {} : setting;
|
|
32
|
+
const maxEntries = positiveUint32(options.cacheSize ?? DEFAULT_EAGER_BLOCK_CACHE_ENTRIES, "eagerBlocks.cacheSize");
|
|
33
|
+
const maxBytes = positiveUint32(options.maxBytes ?? DEFAULT_EAGER_BLOCK_CACHE_BYTES, "eagerBlocks.maxBytes");
|
|
34
|
+
const maxBlockBytes = positiveUint32(options.maxBlockBytes ?? DEFAULT_EAGER_BLOCK_MAX_BYTES, "eagerBlocks.maxBlockBytes");
|
|
35
|
+
const ttlMs = positiveTimerDelay(options.ttlMs ?? DEFAULT_EAGER_BLOCK_TTL_MS, "eagerBlocks.ttlMs");
|
|
36
|
+
const validationConcurrency = positiveSafeInteger(options.validationConcurrency ?? DEFAULT_EAGER_BLOCK_VALIDATION_CONCURRENCY, "eagerBlocks.validationConcurrency");
|
|
37
|
+
const maxPendingBytes = positiveSafeInteger(options.maxPendingBytes ?? DEFAULT_EAGER_BLOCK_PENDING_BYTES, "eagerBlocks.maxPendingBytes");
|
|
38
|
+
const maxPendingEntries = positiveSafeInteger(options.maxPendingEntries ?? DEFAULT_EAGER_BLOCK_PENDING_ENTRIES, "eagerBlocks.maxPendingEntries");
|
|
39
|
+
return {
|
|
40
|
+
maxEntries,
|
|
41
|
+
maxBytes,
|
|
42
|
+
maxBlockBytes,
|
|
43
|
+
ttlMs,
|
|
44
|
+
validationConcurrency,
|
|
45
|
+
maxPendingBytes,
|
|
46
|
+
maxPendingEntries,
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Exact FIFO/TTL cache used when the native block-exchange core is disabled.
|
|
51
|
+
* Deletion releases the byte buffer immediately and both entry and byte
|
|
52
|
+
* accounting remain exact across replacement and delete/re-add cycles.
|
|
53
|
+
*/
|
|
54
|
+
export class BoundedEagerBlockCache {
|
|
55
|
+
options;
|
|
56
|
+
entries = new Map();
|
|
57
|
+
currentBytes = 0;
|
|
58
|
+
peakEntries = 0;
|
|
59
|
+
peakBytes = 0;
|
|
60
|
+
evictions = 0;
|
|
61
|
+
expirations = 0;
|
|
62
|
+
expiryTimer;
|
|
63
|
+
constructor(options) {
|
|
64
|
+
this.options = options;
|
|
65
|
+
positiveUint32(options.maxEntries, "maxEntries");
|
|
66
|
+
positiveUint32(options.maxBytes, "maxBytes");
|
|
67
|
+
positiveTimerDelay(options.ttlMs, "ttlMs");
|
|
68
|
+
}
|
|
69
|
+
add(cid, bytes) {
|
|
70
|
+
this.sweepExpired(Date.now());
|
|
71
|
+
if (bytes.byteLength > this.options.maxBytes) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
const backing = bytes.buffer;
|
|
75
|
+
const retainedBytes = bytes.byteOffset === 0 &&
|
|
76
|
+
backing.byteLength === bytes.byteLength &&
|
|
77
|
+
backing.resizable !== true &&
|
|
78
|
+
backing.growable !== true
|
|
79
|
+
? bytes
|
|
80
|
+
: bytes.slice();
|
|
81
|
+
this.remove(cid);
|
|
82
|
+
while (this.entries.size >= this.options.maxEntries ||
|
|
83
|
+
this.currentBytes + retainedBytes.byteLength > this.options.maxBytes) {
|
|
84
|
+
const oldest = this.entries.keys().next().value;
|
|
85
|
+
if (oldest == null)
|
|
86
|
+
break;
|
|
87
|
+
this.remove(oldest);
|
|
88
|
+
this.evictions += 1;
|
|
89
|
+
}
|
|
90
|
+
this.entries.set(cid, {
|
|
91
|
+
bytes: retainedBytes,
|
|
92
|
+
expiresAt: Date.now() + this.options.ttlMs,
|
|
93
|
+
});
|
|
94
|
+
this.currentBytes += retainedBytes.byteLength;
|
|
95
|
+
this.peakEntries = Math.max(this.peakEntries, this.entries.size);
|
|
96
|
+
this.peakBytes = Math.max(this.peakBytes, this.currentBytes);
|
|
97
|
+
this.scheduleExpiry();
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
get(cid) {
|
|
101
|
+
this.sweepExpired(Date.now());
|
|
102
|
+
return this.entries.get(cid)?.bytes;
|
|
103
|
+
}
|
|
104
|
+
del(cid) {
|
|
105
|
+
if (this.remove(cid)) {
|
|
106
|
+
this.scheduleExpiry();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
clear() {
|
|
110
|
+
if (this.expiryTimer) {
|
|
111
|
+
clearTimeout(this.expiryTimer);
|
|
112
|
+
this.expiryTimer = undefined;
|
|
113
|
+
}
|
|
114
|
+
this.entries.clear();
|
|
115
|
+
this.currentBytes = 0;
|
|
116
|
+
}
|
|
117
|
+
stats() {
|
|
118
|
+
this.sweepExpired(Date.now());
|
|
119
|
+
return {
|
|
120
|
+
entries: this.entries.size,
|
|
121
|
+
bytes: this.currentBytes,
|
|
122
|
+
peakEntries: this.peakEntries,
|
|
123
|
+
peakBytes: this.peakBytes,
|
|
124
|
+
evictions: this.evictions,
|
|
125
|
+
expirations: this.expirations,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
remove(cid) {
|
|
129
|
+
const entry = this.entries.get(cid);
|
|
130
|
+
if (!entry)
|
|
131
|
+
return false;
|
|
132
|
+
this.entries.delete(cid);
|
|
133
|
+
this.currentBytes -= entry.bytes.byteLength;
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
sweepExpired(now) {
|
|
137
|
+
let expired = 0;
|
|
138
|
+
for (const [cid, entry] of this.entries) {
|
|
139
|
+
if (entry.expiresAt > now)
|
|
140
|
+
break;
|
|
141
|
+
this.remove(cid);
|
|
142
|
+
expired += 1;
|
|
143
|
+
}
|
|
144
|
+
if (expired > 0) {
|
|
145
|
+
this.expirations += expired;
|
|
146
|
+
this.scheduleExpiry();
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
scheduleExpiry() {
|
|
150
|
+
if (this.expiryTimer) {
|
|
151
|
+
clearTimeout(this.expiryTimer);
|
|
152
|
+
this.expiryTimer = undefined;
|
|
153
|
+
}
|
|
154
|
+
const oldest = this.entries.values().next().value;
|
|
155
|
+
if (!oldest)
|
|
156
|
+
return;
|
|
157
|
+
this.expiryTimer = setTimeout(() => {
|
|
158
|
+
this.expiryTimer = undefined;
|
|
159
|
+
this.sweepExpired(Date.now());
|
|
160
|
+
this.scheduleExpiry();
|
|
161
|
+
}, Math.max(0, oldest.expiresAt - Date.now()));
|
|
162
|
+
if (typeof this.expiryTimer === "object" && "unref" in this.expiryTimer) {
|
|
163
|
+
this.expiryTimer.unref();
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=eager-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eager-cache.js","sourceRoot":"","sources":["../../src/eager-cache.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
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,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
package/dist/src/index.js
CHANGED
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
package/dist/src/libp2p.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { GetOptions, Blocks as IBlocks } from "@peerbit/blocks-interface";
|
|
|
3
3
|
import { DirectStream } from "@peerbit/stream";
|
|
4
4
|
import { type DirectStreamComponents, type RustCoreStream } from "@peerbit/stream";
|
|
5
5
|
import type { Block } from "multiformats/block";
|
|
6
|
+
import type { EagerBlocksSetting } from "./eager-cache.js";
|
|
6
7
|
export type DirectBlockComponents = DirectStreamComponents;
|
|
7
8
|
export declare class DirectBlock extends DirectStream implements IBlocks {
|
|
8
9
|
private remoteBlocks;
|
|
@@ -14,9 +15,7 @@ export declare class DirectBlock extends DirectStream implements IBlocks {
|
|
|
14
15
|
canRelayMessage?: boolean;
|
|
15
16
|
localTimeout?: number;
|
|
16
17
|
messageProcessingConcurrency?: number;
|
|
17
|
-
eagerBlocks?:
|
|
18
|
-
cacheSize?: number;
|
|
19
|
-
};
|
|
18
|
+
eagerBlocks?: EagerBlocksSetting;
|
|
20
19
|
resolveProviders?: (cid: string, options?: {
|
|
21
20
|
signal?: AbortSignal;
|
|
22
21
|
}) => Promise<string[] | undefined> | string[] | undefined;
|
|
@@ -42,6 +41,8 @@ export declare class DirectBlock extends DirectStream implements IBlocks {
|
|
|
42
41
|
*/
|
|
43
42
|
rustCore?: RustCoreStream | false;
|
|
44
43
|
});
|
|
44
|
+
getEagerBlockCacheTelemetry(): import("./remote.js").EagerBlockCacheTelemetry;
|
|
45
|
+
waitForEagerBlockValidation(): Promise<void>;
|
|
45
46
|
private encodeBlockMessage;
|
|
46
47
|
private decodeBlockMessage;
|
|
47
48
|
getNativeLogBlockStoreHandle(): unknown;
|
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,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAE/E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACN,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,MAAM,iBAAiB,CAAC;AAMzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"libp2p.d.ts","sourceRoot":"","sources":["../../src/libp2p.ts"],"names":[],"mappings":"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"}
|
package/dist/src/libp2p.js
CHANGED
|
@@ -114,6 +114,12 @@ export class DirectBlock extends DirectStream {
|
|
|
114
114
|
};
|
|
115
115
|
this.onPeerConnectedFn = (evt) => this.remoteBlocks.onReachable(evt.detail);
|
|
116
116
|
}
|
|
117
|
+
getEagerBlockCacheTelemetry() {
|
|
118
|
+
return this.remoteBlocks.getEagerBlockCacheTelemetry();
|
|
119
|
+
}
|
|
120
|
+
waitForEagerBlockValidation() {
|
|
121
|
+
return this.remoteBlocks.waitForEagerBlockValidation();
|
|
122
|
+
}
|
|
117
123
|
encodeBlockMessage(message) {
|
|
118
124
|
const blockExchange = this.rustCore?.blockExchange;
|
|
119
125
|
if (blockExchange) {
|
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;AAGjD,OAAO,EAAE,sBAAsB,EAAsB,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAGN,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,6BAA6B,GAG7B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,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
|
@@ -3,6 +3,7 @@ import { PublicSignKey } from "@peerbit/crypto";
|
|
|
3
3
|
import { type PublishOptions, type RustBlockExchange } from "@peerbit/stream";
|
|
4
4
|
import { type PeerRefs, type RequestTransportContext, type WaitForAnyOpts, type WaitForPeersFn, type WaitForPresentOpts } from "@peerbit/stream-interface";
|
|
5
5
|
import { type Block } from "multiformats/block";
|
|
6
|
+
import { type EagerBlocksSetting, type NormalizedEagerBlocksOptions } from "./eager-cache.js";
|
|
6
7
|
import type { BlockStore } from "./interface.js";
|
|
7
8
|
export declare const logger: import("@libp2p/interface").Logger;
|
|
8
9
|
export declare class BlockMessage {
|
|
@@ -20,15 +21,34 @@ type BlockMessageContext = {
|
|
|
20
21
|
from?: string;
|
|
21
22
|
transport?: RequestTransportContext;
|
|
22
23
|
};
|
|
24
|
+
export type EagerBlockCacheTelemetry = {
|
|
25
|
+
entries: number;
|
|
26
|
+
bytes: number;
|
|
27
|
+
peakEntries: number;
|
|
28
|
+
peakBytes: number;
|
|
29
|
+
evictions: number;
|
|
30
|
+
expirations: number;
|
|
31
|
+
pendingEntries: number;
|
|
32
|
+
pendingBytes: number;
|
|
33
|
+
peakPendingEntries: number;
|
|
34
|
+
peakPendingBytes: number;
|
|
35
|
+
admitted: number;
|
|
36
|
+
hits: number;
|
|
37
|
+
rejectedCid: number;
|
|
38
|
+
rejectedCodec: number;
|
|
39
|
+
rejectedSize: number;
|
|
40
|
+
rejectedPending: number;
|
|
41
|
+
rejectedIntegrity: number;
|
|
42
|
+
rejectedLifecycle: number;
|
|
43
|
+
limits: NormalizedEagerBlocksOptions;
|
|
44
|
+
};
|
|
23
45
|
export declare class RemoteBlocks implements IBlocks {
|
|
24
46
|
readonly options: {
|
|
25
47
|
local: BlockStore;
|
|
26
48
|
localTimeout?: number;
|
|
27
49
|
messageProcessingConcurrency?: number;
|
|
28
50
|
publicKey: PublicSignKey;
|
|
29
|
-
eagerBlocks?:
|
|
30
|
-
cacheSize?: number;
|
|
31
|
-
};
|
|
51
|
+
eagerBlocks?: EagerBlocksSetting;
|
|
32
52
|
/**
|
|
33
53
|
* Optional provider resolver used when `remote: true` is used without `remote.from`.
|
|
34
54
|
*
|
|
@@ -100,6 +120,9 @@ export declare class RemoteBlocks implements IBlocks {
|
|
|
100
120
|
private _responseHandler?;
|
|
101
121
|
private _resolvers;
|
|
102
122
|
private _blockCache?;
|
|
123
|
+
private _eagerBlocksOptions?;
|
|
124
|
+
private _eagerValidationQueue?;
|
|
125
|
+
private _eagerAdmission;
|
|
103
126
|
private _providerCache?;
|
|
104
127
|
private _rustProviderCache?;
|
|
105
128
|
private readonly rustExchange?;
|
|
@@ -107,6 +130,7 @@ export declare class RemoteBlocks implements IBlocks {
|
|
|
107
130
|
private readonly maxProviderHintsPerCid;
|
|
108
131
|
private readonly maxRequeryOnReachable;
|
|
109
132
|
private _loadFetchQueue;
|
|
133
|
+
private _backgroundLoadFetchQueue;
|
|
110
134
|
private _readFromPeersPromises;
|
|
111
135
|
private _deferredStoredNotificationCids?;
|
|
112
136
|
private _deferredStoredNotificationTimer?;
|
|
@@ -118,9 +142,7 @@ export declare class RemoteBlocks implements IBlocks {
|
|
|
118
142
|
localTimeout?: number;
|
|
119
143
|
messageProcessingConcurrency?: number;
|
|
120
144
|
publicKey: PublicSignKey;
|
|
121
|
-
eagerBlocks?:
|
|
122
|
-
cacheSize?: number;
|
|
123
|
-
};
|
|
145
|
+
eagerBlocks?: EagerBlocksSetting;
|
|
124
146
|
/**
|
|
125
147
|
* Optional provider resolver used when `remote: true` is used without `remote.from`.
|
|
126
148
|
*
|
|
@@ -183,6 +205,12 @@ export declare class RemoteBlocks implements IBlocks {
|
|
|
183
205
|
};
|
|
184
206
|
});
|
|
185
207
|
getNativeLogBlockStoreHandle(): unknown;
|
|
208
|
+
/** Snapshot of bounded eager-response admission and retention state. */
|
|
209
|
+
getEagerBlockCacheTelemetry(): EagerBlockCacheTelemetry | undefined;
|
|
210
|
+
/** Primarily useful for diagnostics and deterministic tests. */
|
|
211
|
+
waitForEagerBlockValidation(): Promise<void>;
|
|
212
|
+
private queueEagerBlock;
|
|
213
|
+
private validateEagerBlock;
|
|
186
214
|
private normalizeProviderHints;
|
|
187
215
|
private rememberProvider;
|
|
188
216
|
private rememberProviderHints;
|
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,
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":"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"}
|