*add timeout setting for individual relay

This commit is contained in:
Derrick Hammer 2022-07-23 11:39:17 -04:00
parent 7d0bf7a538
commit cfc519b57b
1 changed files with 35 additions and 19 deletions

View File

@ -3,31 +3,29 @@ import RpcQuery from "./rpcQuery.js";
import DHT from "@hyperswarm/dht"; import DHT from "@hyperswarm/dht";
export default class RpcNetwork { export default class RpcNetwork {
private _dht: typeof DHT;
private _majorityThreshold = 0.75;
private _maxTtl = 12 * 60 * 60;
private _queryTimeout = 30;
private _relays: string[] = [];
private _ready: Promise<void>;
private _force: boolean = false;
constructor(dht = new DHT()) { constructor(dht = new DHT()) {
this._dht = dht; this._dht = dht;
this._ready = this._dht.ready(); this._ready = this._dht.ready();
} }
get ready(): Promise<void> { private _dht: typeof DHT;
return this._ready;
}
get relays(): string[] {
return this._relays;
}
get dht() { get dht() {
return this._dht; return this._dht;
} }
private _majorityThreshold = 0.75;
get majorityThreshold(): number {
return this._majorityThreshold;
}
set majorityThreshold(value: number) {
this._majorityThreshold = value;
}
private _maxTtl = 12 * 60 * 60;
get maxTtl(): number { get maxTtl(): number {
return this._maxTtl; return this._maxTtl;
} }
@ -36,6 +34,8 @@ export default class RpcNetwork {
this._maxTtl = value; this._maxTtl = value;
} }
private _queryTimeout = 30;
get queryTimeout(): number { get queryTimeout(): number {
return this._queryTimeout; return this._queryTimeout;
} }
@ -44,14 +44,30 @@ export default class RpcNetwork {
this._queryTimeout = value; this._queryTimeout = value;
} }
get majorityThreshold(): number { private _relayTimeout = 2;
return this._majorityThreshold;
get relayTimeout(): number {
return this._relayTimeout;
} }
set majorityThreshold(value: number) { set relayTimeout(value: number) {
this._majorityThreshold = value; this._relayTimeout = value;
} }
private _relays: string[] = [];
get relays(): string[] {
return this._relays;
}
private _ready: Promise<void>;
get ready(): Promise<void> {
return this._ready;
}
private _force: boolean = false;
get force(): boolean { get force(): boolean {
return this._force; return this._force;
} }