cactus-agent
Version:
cactus rpc/websocket client library
198 lines (178 loc) • 4.29 kB
Markdown
# Harvester RPC API
## Usage
You need to create RPC connection before actually sending rpc request to the service.
Please remember that all rpc API is provided as an async function.
```js
const {RPCAgent} = require("cactus-agent");
const {add_plot_directory} = require("cactus-agent/api/rpc/harvester");
const agent = new RPCAgent({
service: "harvester", // connect to local harvester mservice using config file.
});
// Then call RPC function
const response = await add_plot_directory(agent, {...});
/*
* You can instantiate `agent` with hostname/port.
* See https://github.com/Cactus-Network/cactus-agent/blob/main/src/rpc/index.ts
*/
const agent = new RPCAgent({
protocol: "https",
host: "aaa.bbb.ccc",
port: 11559,
ca_cert: fs.readFileSync(...),
client_cert: fs.readFileSync(...),
client_key: fs.readFileSync(...),
});
```
## `get_plots(agent)`
### Usage
```js
const {RPCAgent} = require("cactus-agent");
const {get_plots} = require("cactus-agent/api/rpc/harvester");
const agent = new RPCAgent({service: "harvester"});
const response = await get_plots(agent);
```
### response:
```typescript
{
plots: Plot[];
failed_to_open_filenames: str[];
not_found_filenames: str[];
}
```
For content of `Plot`,
see https://github.com/Cactus-Network/cactus-agent/blob/main/src/api/cactus/harvester/harvester.ts
## `refresh_plots(agent)`
### Usage
```js
const {RPCAgent} = require("cactus-agent");
const {refresh_plots} = require("cactus-agent/api/rpc/harvester");
const agent = new RPCAgent({service: "harvester"});
const response = await refresh_plots(agent);
```
### response
```typescript
{}
```
## `delete_plot(agent, params)`
### Usage
```js
const {RPCAgent} = require("cactus-agent");
const {delete_plot} = require("cactus-agent/api/rpc/harvester");
const agent = new RPCAgent({service: "harvester"});
const response = await delete_plot(agent, params);
```
### params:
```typescript
{
filename: str;
}
```
### response
```typescript
{}
```
## `add_plot_directory(agent, params)`
### Usage
```js
const {RPCAgent} = require("cactus-agent");
const {add_plot_directory} = require("cactus-agent/api/rpc/harvester");
const agent = new RPCAgent({service: "harvester"});
const response = await add_plot_directory(agent, params);
```
### params:
```typescript
{
dirname: str;
}
```
### response
```typescript
{}
```
## `get_plot_directories(agent)`
### Usage
```js
const {RPCAgent} = require("cactus-agent");
const {get_plot_directories} = require("cactus-agent/api/rpc/harvester");
const agent = new RPCAgent({service: "harvester"});
const response = await get_plot_directories(agent);
```
### response
```typescript
{
directories: str[];
}
```
## `remove_plot_directory(agent, params)`
### Usage
```js
const {RPCAgent} = require("cactus-agent");
const {remove_plot_directory} = require("cactus-agent/api/rpc/harvester");
const agent = new RPCAgent({service: "harvester"});
const response = await remove_plot_directory(agent, params);
```
### params
```typescript
{
dirname: str;
}
```
### response
```typescript
{}
```
## `get_harvester_config(agent)`
### Usage
```js
const {RPCAgent} = require("cactus-agent");
const {get_harvester_config} = require("cactus-agent/api/rpc/harvester");
const agent = new RPCAgent({service: "harvester"});
const response = await get_harvester_config(agent);
```
### response
```typescript
{
success: True;
use_gpu_harvesting: bool;
gpu_index: int;
enforce_gpu_index: bool;
disable_cpu_affinity: bool;
parallel_decompressor_count: int;
decompressor_thread_count: int;
recursive_plot_scan: bool;
refresh_parameter_interval_seconds: int;
}
```
## `update_harvester_config(agent, params)`
### Usage
```js
const {RPCAgent} = require("cactus-agent");
const {update_harvester_config} = require("cactus-agent/api/rpc/harvester");
const agent = new RPCAgent({service: "harvester"});
const response = await update_harvester_config(agent, params);
```
### params
```typescript
{
use_gpu_harvesting?: bool;
gpu_index?: int;
enforce_gpu_index?: bool;
disable_cpu_affinity?: bool;
parallel_decompressor_count?: int;
decompressor_thread_count?: int;
recursive_plot_scan?: bool;
refresh_parameter_interval_seconds?: uint32;
}
```
### response
```typescript
{}
```