CONFIG.md 4.42 KB
Newer Older
zeroleak's avatar
zeroleak committed
1 2 3 4 5 6
# whirlpool-client-cli configuration

CLI is configured in `whirlpool-cli-config.properties` or with equivalent argument:
```
--cli.tor=true --cli.apiKey=foo...
```
zeroleak's avatar
zeroleak committed
7
Default configuration is [../src/main/resources/application.properties].  
zeroleak's avatar
zeroleak committed
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94


#### Basic
| Setting | Default value | Description |
| ----------- | ----------- | ----------- |
| cli.server | TESTNET | Bitcoin network (TESTNET or MAINNET) |
| cli.apiKey | *generated on --init* | Secret key for using CLI API |
| cli.seed | *generated on --init* | Wallet seed encrypted with passphrase (AES) |
| cli.tor | false | Enable Tor |
| cli.dojo.enabled | false | Enable Dojo as wallet backend |
| cli.version | *generated* | Technical setting for tracking CLI upgrades |
| cli.scode | - | SCODE for discount Whirlpool fees |
| cli.mix.mixsTarget | - | Mixs limit per UTXO (0 for unlimited) |
| cli.mix.autoMix | true | Automatically (re)mix premix & postmix. When disabled, each utxo must be mixed manually. |


#### Dojo

| Setting | Default value | Description |
| ----------- | ----------- | ----------- |
| cli.dojo.url | - | Dojo url |
| cli.dojo.apiKey | - | Dojo API key |


#### Logs

| Setting | Default value | Description |
| ----------- | ----------- | ----------- |
| logging.file | - | Enable external log (/tmp/whirlpool-cli.log) |

See advanced log settings (rotation, limits...):
https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-logging-file-output


#### Tor

Tor should be automatically detected, installed or configured.  
You can customize it for your needs:

| Setting | Default value | Description |
| ----------- | ----------- | ----------- |
| cli.torConfig.coordinator.enabled | true | Enable Tor for whirlpool coordinator (when cli.tor=true) |
| cli.torConfig.backend.enabled | true | Enable Tor for wallet backend (when cli.tor=true) |
| cli.torConfig.coordinator.onion | true | Use Tor hidden services (instead of clearnet over Tor) for whirlpool server |
| cli.torConfig.backend.onion | true | Use Tor hidden services (instead of clearnet over Tor) for wallet backend |
| cli.torConfig.executable | auto | `auto` : use embedded tor or detect a local Tor install when your system is not supported. |
|  |  | `local` : detect a local tor install|
|  |  | `/path/to/bin/tor` : use your own tor binary|
| cli.torConfig.customTorrc |  | `/path/to/torrc` : custom tor configuration to append to Torrc|
| cli.torConfig.fileCreationTimeout | 20 | Tor startup timeout (in seconds)|


#### CLI API
whirlpool-client-cli exposes a REST API over HTTPS when started with --listen (see [API.md](API.md)).  
It can be exposed over HTTP at your own risk.

| Setting | Default value | Description |
| ----------- | ----------- | ----------- |
| cli.api.port | 8899 | Port for CLI API over HTTPS (when started with --listen) |
| cli.api.http-enable | false | Enable unsecure CLI API over HTTP (not recommended, use it at your own risk!) |
| cli.api.http-port | 8898 | Port for unsecure CLI API over HTTP (when started with --listen and cli.api.http-enable=true) |


#### CLI API certificate
By default CLI API uses a self-signed certificate for HTTPS, which can be downloaded by opening https://CLI-HOST:8899/ with Firefox, then Advanced -> View certificate -> Download PEM.

You can configure your own cert:

| Setting | Default value | Description |
| ----------- | ----------- | ----------- |
| server.ssl.key-store | classpath:keystore/whirlpool.p12 | Path to your own keystore |
| server.ssl.key-store-type | PKCS12 | Keystore type: PKCS12 or JKS |
| server.ssl.key-store-password | whirlpool | Keystore password |
| server.ssl.key-alias | whirlpool | Alias in keystore |


#### Technical settings
| Setting | Default value | Description |
| ----------- | ----------- | ----------- |
| cli.proxy | - | Custom proxy to connect through. |
| cli.requestTimeout | 30000 | HTTP requests timeout |
| cli.tx0MinConfirmations | 0 | Confirmations required for TX0 |
| cli.mix.clients | 5 | Max simultaneous mixing clients |
| cli.mix.clientsPerPool | 1 | Max simultaneous mixing clients per pool |
| cli.mix.tx0MaxOutputs | 0 | Max premixs to create per TX0 (0 for unlimited) |
| cli.mix.clientDelay | 15 | Connecting delay (seconds) between each mixing client |
| cli.mix.tx0Delay | 30 | Delay (seconds) between each tx0 (when --auto-tx0) |
95
| cli.seedAppendPassphrase | true | Use passphrase as additional seed word (always true for wallets created with SW, may be false for external wallets imported into SW) |