/ Tools / AutoClient / README.md
README.md
 1  # Codex auto-client
 2  
 3  This thing will generate files, upload them, and purchase storage for them in an endless loop.
 4  
 5  Can generate random images or random data of a specified size.
 6  
 7  ## How to run
 8  
 9  - dotnet 8.0 and CLI arguments: `dotnet run -- --codex-host=... --codex-port=...`
10  - docker and env-vars: `codexstorage/codex-autoclient:sha-88daab3`
11  
12  ## Configuration options
13  Options can be configured via CLI option or environment variable.
14  
15  | CLI option              | Environment variable | Description                                                                                                         |
16  |-------------------------|----------------------|---------------------------------------------------------------------------------------------------------------------|
17  | "--codex-host"          | "CODEXHOST"          | Codex Host address. (default 'http://localhost')                                                                    |
18  | "--codex-port"          | "CODEXPORT"          | port number of Codex API. (8080 by default)                                                                         |
19  | "--datapath"            | "DATAPATH"           | Root path where all data files will be saved.                                                                       |
20  | "--purchases"           | "PURCHASES"          | Number of concurrent purchases.                                                                                     |
21  | "--contract-duration"   | "CONTRACTDURATION"   | contract duration in minutes. (default 6 hours)                                                                     |
22  | "--contract-expiry"     | "CONTRACTEXPIRY"     | contract expiry in minutes. (default 15 minutes)                                                                    |
23  | "--num-hosts"           | "NUMHOSTS"           | Number of hosts for contract. (default 5)                                                                           |
24  | "--num-hosts-tolerance" | "NUMTOL"             | Number of host tolerance for contract. (default 2)                                                                  |
25  | "--price"               | "PRICE"              | Price of contract. (default 10)                                                                                     |
26  | "--collateral"          | "COLLATERAL"         | Required collateral. (default 1)                                                                                    |
27  | "--filesizemb"          | "FILESIZEMB"         | When greater than zero, size of file generated and uploaded. When zero, random images are used instead. (default 0) |
28  
29  ## Timing
30  
31  Configuration: `purchases` controls the number of concurrently running storage requests.
32  Configuration: `contract-duration` controls the duration in minutes of each storage request.
33  Auto-client will create a new storage request every X minutes, where X is the contract duration divided by the number of purchases.
34  (Timing may start to vary when contracts fail or time out.)