@peerbit/native-backbone 0.2.10 → 0.2.11
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 +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +6 -0
- package/dist/src/index.js.map +1 -1
- package/dist/wasm/native_backbone.d.ts +6 -0
- package/dist/wasm/native_backbone.js +70 -0
- package/dist/wasm/native_backbone_bg.wasm +0 -0
- package/dist/wasm/native_backbone_bg.wasm.d.ts +3 -0
- package/package.json +2 -2
- package/src/index.ts +26 -0
- package/src/shared_log_plan.rs +30 -0
|
@@ -383,6 +383,7 @@ export class NativePeerbitBackbone {
|
|
|
383
383
|
get_entry_coordinates(hash: string): any;
|
|
384
384
|
get_gid_coordinates(gid: string, count: number): Array<any>;
|
|
385
385
|
get_grid(from: string, count: number): Array<any>;
|
|
386
|
+
get_routing_full_replica_leaders(replicas: number, role_age_ms: number, now: string, peer_filter: any, expand_peer_filter: boolean, self_hash: string, include_self: boolean, full_replica_fallback: boolean, include_strict_full_replica: boolean): any;
|
|
386
387
|
graph_child_join_entries(hash: string): Array<any>;
|
|
387
388
|
graph_clear(): void;
|
|
388
389
|
graph_count_has_next(next: string, exclude_hash?: string | null): number;
|
|
@@ -597,10 +598,12 @@ export class NativeRangePlanner {
|
|
|
597
598
|
get_full_replica_leaders(replicas: number, role_age_ms: number, now: string, include_strict: boolean, peer_filter: any): any;
|
|
598
599
|
get_gid_coordinates(gid: string, count: number): Array<any>;
|
|
599
600
|
get_grid(from: string, count: number): Array<any>;
|
|
601
|
+
get_routing_full_replica_leaders(replicas: number, role_age_ms: number, now: string, peer_filter: any, expand_peer_filter: boolean, self_hash: string, include_self: boolean, full_replica_fallback: boolean, include_strict_full_replica: boolean): any;
|
|
600
602
|
get_samples(cursors: Array<any>, role_age_ms: number, now: string, only_intersecting: boolean, unique_replicators: any, peer_filter: any): Array<any>;
|
|
601
603
|
include_matured_peers(peer_filter: any, replicas: number, role_age_ms: number, now: string, self_hash: string, include_self: boolean): any;
|
|
602
604
|
len(): number;
|
|
603
605
|
constructor(resolution: string);
|
|
606
|
+
plan_leader_samples_for_gids_batch(gids: Array<any>, replica_counts: Array<any>, role_age_ms: number, now: string, peer_filter: any, expand_peer_filter: boolean, self_hash: string, include_self: boolean, full_replica_fallback: boolean, include_strict_full_replica: boolean): Array<any>;
|
|
604
607
|
plan_leaders_for_gid(gid: string, replicas: number, role_age_ms: number, now: string, peer_filter: any, expand_peer_filter: boolean, self_hash: string, include_self: boolean, full_replica_fallback: boolean, include_strict_full_replica: boolean): Array<any>;
|
|
605
608
|
plan_leaders_for_gids_batch(gids: Array<any>, replica_counts: Array<any>, role_age_ms: number, now: string, peer_filter: any, expand_peer_filter: boolean, self_hash: string, include_self: boolean, full_replica_fallback: boolean, include_strict_full_replica: boolean): Array<any>;
|
|
606
609
|
plan_local_leaders_for_gids_batch(hashes: Array<any>, gids: Array<any>, replica_counts: Array<any>, role_age_ms: number, now: string, peer_filter: any, expand_peer_filter: boolean, self_hash: string, include_self: boolean, full_replica_fallback: boolean, include_strict_full_replica: boolean): Array<any>;
|
|
@@ -1056,6 +1059,7 @@ export interface InitOutput {
|
|
|
1056
1059
|
readonly nativepeerbitbackbone_get_entry_coordinates: (a: number, b: number, c: number) => any;
|
|
1057
1060
|
readonly nativepeerbitbackbone_get_gid_coordinates: (a: number, b: number, c: number, d: number) => any;
|
|
1058
1061
|
readonly nativepeerbitbackbone_get_grid: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
1062
|
+
readonly nativepeerbitbackbone_get_routing_full_replica_leaders: (a: number, b: number, c: number, d: number, e: number, f: any, g: number, h: number, i: number, j: number, k: number, l: number) => [number, number, number];
|
|
1059
1063
|
readonly nativepeerbitbackbone_mark_entries_known_by_peer: (a: number, b: any, c: number, d: number) => [number, number];
|
|
1060
1064
|
readonly nativepeerbitbackbone_plan_append_for_gid: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: any, i: number, j: any, k: any, l: number, m: number, n: number, o: number, p: any, q: number, r: number, s: number, t: number, u: any, v: number, w: number, x: number, y: number, z: number, a1: number) => [number, number, number];
|
|
1061
1065
|
readonly nativepeerbitbackbone_plan_append_for_gids_batch: (a: number, b: any, c: any, d: any, e: any, f: any, g: any, h: any, i: number, j: number, k: number, l: number, m: any, n: number, o: number, p: number, q: number, r: any, s: number, t: number, u: number, v: number, w: number, x: number) => [number, number, number];
|
|
@@ -1299,10 +1303,12 @@ export interface InitOutput {
|
|
|
1299
1303
|
readonly nativerangeplanner_get_full_replica_leaders: (a: number, b: number, c: number, d: number, e: number, f: number, g: any) => [number, number, number];
|
|
1300
1304
|
readonly nativerangeplanner_get_gid_coordinates: (a: number, b: number, c: number, d: number) => any;
|
|
1301
1305
|
readonly nativerangeplanner_get_grid: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
1306
|
+
readonly nativerangeplanner_get_routing_full_replica_leaders: (a: number, b: number, c: number, d: number, e: number, f: any, g: number, h: number, i: number, j: number, k: number, l: number) => [number, number, number];
|
|
1302
1307
|
readonly nativerangeplanner_get_samples: (a: number, b: any, c: number, d: number, e: number, f: number, g: any, h: any) => [number, number, number];
|
|
1303
1308
|
readonly nativerangeplanner_include_matured_peers: (a: number, b: any, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
|
|
1304
1309
|
readonly nativerangeplanner_len: (a: number) => number;
|
|
1305
1310
|
readonly nativerangeplanner_new: (a: number, b: number) => number;
|
|
1311
|
+
readonly nativerangeplanner_plan_leader_samples_for_gids_batch: (a: number, b: any, c: any, d: number, e: number, f: number, g: any, h: number, i: number, j: number, k: number, l: number, m: number) => [number, number, number];
|
|
1306
1312
|
readonly nativerangeplanner_plan_leaders_for_gid: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: any, i: number, j: number, k: number, l: number, m: number, n: number) => [number, number, number];
|
|
1307
1313
|
readonly nativerangeplanner_plan_leaders_for_gids_batch: (a: number, b: any, c: any, d: number, e: number, f: number, g: any, h: number, i: number, j: number, k: number, l: number, m: number) => [number, number, number];
|
|
1308
1314
|
readonly nativerangeplanner_plan_local_leaders_for_gids_batch: (a: number, b: any, c: any, d: any, e: number, f: number, g: number, h: any, i: number, j: number, k: number, l: number, m: number, n: number) => [number, number, number];
|
|
@@ -3272,6 +3272,29 @@ export class NativePeerbitBackbone {
|
|
|
3272
3272
|
}
|
|
3273
3273
|
return takeFromExternrefTable0(ret[0]);
|
|
3274
3274
|
}
|
|
3275
|
+
/**
|
|
3276
|
+
* @param {number} replicas
|
|
3277
|
+
* @param {number} role_age_ms
|
|
3278
|
+
* @param {string} now
|
|
3279
|
+
* @param {any} peer_filter
|
|
3280
|
+
* @param {boolean} expand_peer_filter
|
|
3281
|
+
* @param {string} self_hash
|
|
3282
|
+
* @param {boolean} include_self
|
|
3283
|
+
* @param {boolean} full_replica_fallback
|
|
3284
|
+
* @param {boolean} include_strict_full_replica
|
|
3285
|
+
* @returns {any}
|
|
3286
|
+
*/
|
|
3287
|
+
get_routing_full_replica_leaders(replicas, role_age_ms, now, peer_filter, expand_peer_filter, self_hash, include_self, full_replica_fallback, include_strict_full_replica) {
|
|
3288
|
+
const ptr0 = passStringToWasm0(now, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
3289
|
+
const len0 = WASM_VECTOR_LEN;
|
|
3290
|
+
const ptr1 = passStringToWasm0(self_hash, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
3291
|
+
const len1 = WASM_VECTOR_LEN;
|
|
3292
|
+
const ret = wasm.nativepeerbitbackbone_get_routing_full_replica_leaders(this.__wbg_ptr, replicas, role_age_ms, ptr0, len0, peer_filter, expand_peer_filter, ptr1, len1, include_self, full_replica_fallback, include_strict_full_replica);
|
|
3293
|
+
if (ret[2]) {
|
|
3294
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
3295
|
+
}
|
|
3296
|
+
return takeFromExternrefTable0(ret[0]);
|
|
3297
|
+
}
|
|
3275
3298
|
/**
|
|
3276
3299
|
* @param {string} hash
|
|
3277
3300
|
* @returns {Array<any>}
|
|
@@ -7077,6 +7100,29 @@ export class NativeRangePlanner {
|
|
|
7077
7100
|
}
|
|
7078
7101
|
return takeFromExternrefTable0(ret[0]);
|
|
7079
7102
|
}
|
|
7103
|
+
/**
|
|
7104
|
+
* @param {number} replicas
|
|
7105
|
+
* @param {number} role_age_ms
|
|
7106
|
+
* @param {string} now
|
|
7107
|
+
* @param {any} peer_filter
|
|
7108
|
+
* @param {boolean} expand_peer_filter
|
|
7109
|
+
* @param {string} self_hash
|
|
7110
|
+
* @param {boolean} include_self
|
|
7111
|
+
* @param {boolean} full_replica_fallback
|
|
7112
|
+
* @param {boolean} include_strict_full_replica
|
|
7113
|
+
* @returns {any}
|
|
7114
|
+
*/
|
|
7115
|
+
get_routing_full_replica_leaders(replicas, role_age_ms, now, peer_filter, expand_peer_filter, self_hash, include_self, full_replica_fallback, include_strict_full_replica) {
|
|
7116
|
+
const ptr0 = passStringToWasm0(now, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
7117
|
+
const len0 = WASM_VECTOR_LEN;
|
|
7118
|
+
const ptr1 = passStringToWasm0(self_hash, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
7119
|
+
const len1 = WASM_VECTOR_LEN;
|
|
7120
|
+
const ret = wasm.nativerangeplanner_get_routing_full_replica_leaders(this.__wbg_ptr, replicas, role_age_ms, ptr0, len0, peer_filter, expand_peer_filter, ptr1, len1, include_self, full_replica_fallback, include_strict_full_replica);
|
|
7121
|
+
if (ret[2]) {
|
|
7122
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7123
|
+
}
|
|
7124
|
+
return takeFromExternrefTable0(ret[0]);
|
|
7125
|
+
}
|
|
7080
7126
|
/**
|
|
7081
7127
|
* @param {Array<any>} cursors
|
|
7082
7128
|
* @param {number} role_age_ms
|
|
@@ -7133,6 +7179,30 @@ export class NativeRangePlanner {
|
|
|
7133
7179
|
NativeRangePlannerFinalization.register(this, this.__wbg_ptr, this);
|
|
7134
7180
|
return this;
|
|
7135
7181
|
}
|
|
7182
|
+
/**
|
|
7183
|
+
* @param {Array<any>} gids
|
|
7184
|
+
* @param {Array<any>} replica_counts
|
|
7185
|
+
* @param {number} role_age_ms
|
|
7186
|
+
* @param {string} now
|
|
7187
|
+
* @param {any} peer_filter
|
|
7188
|
+
* @param {boolean} expand_peer_filter
|
|
7189
|
+
* @param {string} self_hash
|
|
7190
|
+
* @param {boolean} include_self
|
|
7191
|
+
* @param {boolean} full_replica_fallback
|
|
7192
|
+
* @param {boolean} include_strict_full_replica
|
|
7193
|
+
* @returns {Array<any>}
|
|
7194
|
+
*/
|
|
7195
|
+
plan_leader_samples_for_gids_batch(gids, replica_counts, role_age_ms, now, peer_filter, expand_peer_filter, self_hash, include_self, full_replica_fallback, include_strict_full_replica) {
|
|
7196
|
+
const ptr0 = passStringToWasm0(now, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
7197
|
+
const len0 = WASM_VECTOR_LEN;
|
|
7198
|
+
const ptr1 = passStringToWasm0(self_hash, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
7199
|
+
const len1 = WASM_VECTOR_LEN;
|
|
7200
|
+
const ret = wasm.nativerangeplanner_plan_leader_samples_for_gids_batch(this.__wbg_ptr, gids, replica_counts, role_age_ms, ptr0, len0, peer_filter, expand_peer_filter, ptr1, len1, include_self, full_replica_fallback, include_strict_full_replica);
|
|
7201
|
+
if (ret[2]) {
|
|
7202
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7203
|
+
}
|
|
7204
|
+
return takeFromExternrefTable0(ret[0]);
|
|
7205
|
+
}
|
|
7136
7206
|
/**
|
|
7137
7207
|
* @param {string} gid
|
|
7138
7208
|
* @param {number} replicas
|
|
Binary file
|
|
@@ -44,6 +44,7 @@ export const nativepeerbitbackbone_full_replica_candidates_for: (a: number, b: n
|
|
|
44
44
|
export const nativepeerbitbackbone_get_entry_coordinates: (a: number, b: number, c: number) => any;
|
|
45
45
|
export const nativepeerbitbackbone_get_gid_coordinates: (a: number, b: number, c: number, d: number) => any;
|
|
46
46
|
export const nativepeerbitbackbone_get_grid: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
47
|
+
export const nativepeerbitbackbone_get_routing_full_replica_leaders: (a: number, b: number, c: number, d: number, e: number, f: any, g: number, h: number, i: number, j: number, k: number, l: number) => [number, number, number];
|
|
47
48
|
export const nativepeerbitbackbone_mark_entries_known_by_peer: (a: number, b: any, c: number, d: number) => [number, number];
|
|
48
49
|
export const nativepeerbitbackbone_plan_append_for_gid: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: any, i: number, j: any, k: any, l: number, m: number, n: number, o: number, p: any, q: number, r: number, s: number, t: number, u: any, v: number, w: number, x: number, y: number, z: number, a1: number) => [number, number, number];
|
|
49
50
|
export const nativepeerbitbackbone_plan_append_for_gids_batch: (a: number, b: any, c: any, d: any, e: any, f: any, g: any, h: any, i: number, j: number, k: number, l: number, m: any, n: number, o: number, p: number, q: number, r: any, s: number, t: number, u: number, v: number, w: number, x: number) => [number, number, number];
|
|
@@ -287,10 +288,12 @@ export const nativerangeplanner_find_leaders_for_gid: (a: number, b: number, c:
|
|
|
287
288
|
export const nativerangeplanner_get_full_replica_leaders: (a: number, b: number, c: number, d: number, e: number, f: number, g: any) => [number, number, number];
|
|
288
289
|
export const nativerangeplanner_get_gid_coordinates: (a: number, b: number, c: number, d: number) => any;
|
|
289
290
|
export const nativerangeplanner_get_grid: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
291
|
+
export const nativerangeplanner_get_routing_full_replica_leaders: (a: number, b: number, c: number, d: number, e: number, f: any, g: number, h: number, i: number, j: number, k: number, l: number) => [number, number, number];
|
|
290
292
|
export const nativerangeplanner_get_samples: (a: number, b: any, c: number, d: number, e: number, f: number, g: any, h: any) => [number, number, number];
|
|
291
293
|
export const nativerangeplanner_include_matured_peers: (a: number, b: any, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
|
|
292
294
|
export const nativerangeplanner_len: (a: number) => number;
|
|
293
295
|
export const nativerangeplanner_new: (a: number, b: number) => number;
|
|
296
|
+
export const nativerangeplanner_plan_leader_samples_for_gids_batch: (a: number, b: any, c: any, d: number, e: number, f: number, g: any, h: number, i: number, j: number, k: number, l: number, m: number) => [number, number, number];
|
|
294
297
|
export const nativerangeplanner_plan_leaders_for_gid: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: any, i: number, j: number, k: number, l: number, m: number, n: number) => [number, number, number];
|
|
295
298
|
export const nativerangeplanner_plan_leaders_for_gids_batch: (a: number, b: any, c: any, d: number, e: number, f: number, g: any, h: number, i: number, j: number, k: number, l: number, m: number) => [number, number, number];
|
|
296
299
|
export const nativerangeplanner_plan_local_leaders_for_gids_batch: (a: number, b: any, c: any, d: any, e: number, f: number, g: number, h: any, i: number, j: number, k: number, l: number, m: number, n: number) => [number, number, number];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peerbit/native-backbone",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.11",
|
|
4
4
|
"description": "Native transaction backbone for Peerbit",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"./dist/wasm/native_backbone.js"
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"classic-level": "^3.0.0",
|
|
55
|
-
"@peerbit/blocks-interface": "2.1.
|
|
55
|
+
"@peerbit/blocks-interface": "2.1.7"
|
|
56
56
|
},
|
|
57
57
|
"author": "Peerbit contributors",
|
|
58
58
|
"license": "MIT",
|
package/src/index.ts
CHANGED
|
@@ -706,6 +706,17 @@ type NativePeerbitBackboneHandle = {
|
|
|
706
706
|
minReplicas: number,
|
|
707
707
|
selfHash: string,
|
|
708
708
|
) => string[];
|
|
709
|
+
get_routing_full_replica_leaders?: (
|
|
710
|
+
replicas: number,
|
|
711
|
+
roleAgeMs: number,
|
|
712
|
+
now: string,
|
|
713
|
+
peerFilter: string[] | undefined,
|
|
714
|
+
expandPeerFilter: boolean,
|
|
715
|
+
selfHash: string,
|
|
716
|
+
includeSelf: boolean,
|
|
717
|
+
fullReplicaFallback: boolean,
|
|
718
|
+
includeStrictFullReplica: boolean,
|
|
719
|
+
) => unknown[] | undefined;
|
|
709
720
|
put_range: (
|
|
710
721
|
id: string,
|
|
711
722
|
hash: string,
|
|
@@ -7451,6 +7462,21 @@ export class NativePeerbitBackbone {
|
|
|
7451
7462
|
return this.native.full_replica_candidates_for(minReplicas, selfHash);
|
|
7452
7463
|
}
|
|
7453
7464
|
|
|
7465
|
+
getRoutingFullReplicaLeaders(
|
|
7466
|
+
replicas: number,
|
|
7467
|
+
options?: NativeBackboneFindLeaderOptions,
|
|
7468
|
+
): Map<string, NativeBackboneLeaderSample> | undefined {
|
|
7469
|
+
if (!this.native.get_routing_full_replica_leaders) {
|
|
7470
|
+
return undefined;
|
|
7471
|
+
}
|
|
7472
|
+
return rowsToSamples(
|
|
7473
|
+
this.native.get_routing_full_replica_leaders(
|
|
7474
|
+
replicas,
|
|
7475
|
+
...findLeaderArguments(options),
|
|
7476
|
+
),
|
|
7477
|
+
);
|
|
7478
|
+
}
|
|
7479
|
+
|
|
7454
7480
|
clearEntryCoordinates(): void {
|
|
7455
7481
|
this.native.clear_entry_coordinates();
|
|
7456
7482
|
}
|
package/src/shared_log_plan.rs
CHANGED
|
@@ -391,6 +391,36 @@ impl NativePeerbitBackbone {
|
|
|
391
391
|
.full_replica_candidates_for(min_replicas, self_hash)
|
|
392
392
|
}
|
|
393
393
|
|
|
394
|
+
#[allow(clippy::too_many_arguments)]
|
|
395
|
+
pub fn get_routing_full_replica_leaders(
|
|
396
|
+
&self,
|
|
397
|
+
replicas: usize,
|
|
398
|
+
role_age_ms: f64,
|
|
399
|
+
now: String,
|
|
400
|
+
peer_filter: JsValue,
|
|
401
|
+
expand_peer_filter: bool,
|
|
402
|
+
self_hash: String,
|
|
403
|
+
include_self: bool,
|
|
404
|
+
full_replica_fallback: bool,
|
|
405
|
+
include_strict_full_replica: bool,
|
|
406
|
+
) -> Result<JsValue, JsValue> {
|
|
407
|
+
let leaders = self
|
|
408
|
+
.shared_log
|
|
409
|
+
.plan_routing_full_replica_leaders_core(
|
|
410
|
+
replicas,
|
|
411
|
+
role_age_ms,
|
|
412
|
+
&now,
|
|
413
|
+
peer_filter,
|
|
414
|
+
expand_peer_filter,
|
|
415
|
+
&self_hash,
|
|
416
|
+
include_self,
|
|
417
|
+
full_replica_fallback,
|
|
418
|
+
include_strict_full_replica,
|
|
419
|
+
)
|
|
420
|
+
.map_err(JsValue::from)?;
|
|
421
|
+
Ok(leader_samples_to_optional_rows(&leaders))
|
|
422
|
+
}
|
|
423
|
+
|
|
394
424
|
#[allow(clippy::too_many_arguments)]
|
|
395
425
|
pub fn put_range(
|
|
396
426
|
&mut self,
|