kubo-rpc-client
Version:
A client library for the Kubo RPC API
141 lines • 3.5 kB
TypeScript
import type { HTTPRPCOptions } from '../index.ts';
/**
* Options for `ipfs.provide.stat`.
*/
export interface ProvideStatOptions extends HTTPRPCOptions {
/**
* Return all statistics (recommended).
*/
all?: boolean;
/**
* Return LAN-specific statistics.
*/
lan?: boolean;
}
/**
* Response returned by the Kubo RPC endpoint:
* /api/v0/provide/stat
*
* Depending on the provider system in use, either `Sweep`
* or `Legacy` statistics will be populated.
*/
export interface ProvideStats {
/**
* Stats for the sweep provider (default in modern Kubo).
*/
Sweep?: SweepProvideStats;
/**
* Stats for the legacy provider (deprecated).
* Present only when legacy provider is enabled.
*/
Legacy?: LegacyProvideStats | null;
/**
* Whether the node is using Full Routing Table (FullRT) DHT.
*/
FullRT?: boolean;
}
/**
* Sweep provider stats (modern provider system).
*/
export interface SweepProvideStats {
closed: boolean;
connectivity: ProvideConnectivity;
queues: ProvideQueues;
schedule: ProvideSchedule;
workers: ProvideWorkers;
timing: ProvideTiming;
operations: ProvideOperations;
network: ProvideNetwork;
}
/**
* Legacy provider stats (older provider system).
*/
export interface LegacyProvideStats {
total_reprovides: number;
avg_reprovide_duration: string;
last_reprovide_duration: string;
last_run?: string;
reprovide_interval?: string;
}
/**
* Connectivity status of the provider to the DHT.
*/
export interface ProvideConnectivity {
status: string;
since: string;
}
/**
* Pending provide and reprovide queue sizes.
*/
export interface ProvideQueues {
pending_key_provides: number;
pending_region_provides: number;
pending_region_reprovides: number;
}
/**
* Scheduling information for reprovides.
*/
export interface ProvideSchedule {
keys: number;
regions: number;
avg_prefix_length: number;
next_reprovide_at: string;
next_reprovide_prefix: string;
}
/**
* Worker pool state for provider operations.
*/
export interface ProvideWorkers {
max: number;
active: number;
active_periodic: number;
active_burst: number;
dedicated_periodic: number;
dedicated_burst: number;
queued_periodic: number;
queued_burst: number;
max_provide_conns_per_worker: number;
}
/**
* Timing and lifecycle information for the provider.
*/
export interface ProvideTiming {
uptime: number;
reprovides_interval: number;
cycle_start: string;
current_time_offset: number;
max_reprovide_delay: number;
}
/**
* Ongoing and historical provide operations.
*/
export interface ProvideOperations {
ongoing: {
key_provides: number;
region_provides: number;
key_reprovides: number;
region_reprovides: number;
};
past: {
keys_provided: number;
records_provided: number;
keys_failed: number;
keys_provided_per_minute?: number;
keys_reprovided_per_minute?: number;
reprovide_duration?: number;
avg_keys_per_reprovide?: number;
regions_reprovided_last_cycle?: number;
};
}
/**
* DHT and network-related provider metrics.
*/
export interface ProvideNetwork {
peers: number;
reachable: number;
complete_keyspace_coverage: boolean;
avg_region_size: number;
avg_holders: number;
replication_factor: number;
}
//# sourceMappingURL=types.d.ts.map