191 lines
7.4 KiB
Markdown
191 lines
7.4 KiB
Markdown
# Configuration
|
|
|
|
By default, the mainnet bcoin config files will reside in `~/.bcoin/bcoin.conf`
|
|
and `~/.bcoin/wallet.conf`. Any parameter passed to bcoin at startup will have
|
|
precedence over the config file. Even if you are just running `bclient` without
|
|
bcoin installed (to access a remote server, for example) the configuration
|
|
files would still reside in `~/.bcoin/`
|
|
|
|
For example:
|
|
|
|
``` bash
|
|
bcoin --network=regtest --api-key=menace --daemon
|
|
```
|
|
|
|
...will read the config file at `~/.bcoin/regtest/bcoin.conf` and ignore any
|
|
`network` or `api-key` parameters listed in that file.
|
|
|
|
All bcoin configuration options work in the config file, CLI arguments,
|
|
process environment, and in the constructor parameters when instantiating
|
|
new `node` objects in JavaScript. Each method has slightly different
|
|
formatting. Note specifically the usage of hyphens and capital letters.
|
|
|
|
See the examples below:
|
|
|
|
| config file | CLI parameter | environment variable | JS object constructor |
|
|
|---|---|---|---|
|
|
| `network: testnet` | `--network=testnet` | `BCOIN_NETWORK=testnet` | `{network: 'testnet'}` |
|
|
| `log-level: debug` | `--log-level=debug` | `BCOIN_LOG_LEVEL=debug` | `{logLevel: 'debug'}` |
|
|
| `max-outbound: 8` | `--max-outbound=8` | `BCOIN_MAX_OUTBOUND=8` | `{maxOutbound: 8}`|
|
|
|
|
## Prefix
|
|
|
|
Bcoin's data directory is determined by the `prefix` option.
|
|
|
|
Example:
|
|
|
|
``` bash
|
|
$ bcoin --prefix ~/.bcoin_spv --spv
|
|
```
|
|
|
|
Will create a datadir of `~/.bcoin_spv`, containing a chain database, wallet
|
|
database and log file.
|
|
|
|
## Common options
|
|
|
|
- `config`: Points to a custom config file, not in the prefix directory.
|
|
- `network`: Which network's chainparams to use for the node (main, testnet,
|
|
regtest, or simnet) (default: main).
|
|
- `workers`: Whether to use a worker process pool for transaction
|
|
verification (default: true).
|
|
- `workers-size`: Number of worker processes to spawn for transaction
|
|
verification. By default, the worker pool will be sized based on the number
|
|
of CPUs/cores in the machine.
|
|
- `workers-timeout`: Worker process execution timeout in
|
|
milliseconds (default: 120000).
|
|
- `sigcache-size`: Max number of items in signature cache.
|
|
|
|
## Node options
|
|
|
|
- `prefix`: The data directory (stores databases, logs, and configs)
|
|
(default=~/.bcoin).
|
|
- `db`: Which database backend to use (default=leveldb).
|
|
- `max-files`: Max open files for leveldb. Higher generally means more disk
|
|
page cache benefits, but also more memory usage (default: 64).
|
|
- `cache-size`: Size (in MB) of leveldb cache and write buffer
|
|
(default: 32mb).
|
|
- `spv`: Enable Simplified Payments Verification (SPV) mode
|
|
|
|
*Note: The `spv` and `daemon` options can not be entered in `bcoin.conf`.
|
|
They will only work when passed as a launch argument:*
|
|
```
|
|
bcoin --spv --daemon
|
|
```
|
|
|
|
## Logger options
|
|
|
|
- `log-level`: `error`, `warning`, `info`, `debug`, or `spam` (default: debug).
|
|
- `log-console`: `true` or `false` - whether to actually write to stdout/stderr
|
|
if foregrounded (default: true).
|
|
- `log-file`: Whether to use a log file (default: true).
|
|
|
|
## Chain options
|
|
|
|
Note that certain chain options affect the format and indexing of the chain
|
|
database and must be passed in consistently.
|
|
|
|
- `prune`: Prune from the last 288 blocks (default: false).
|
|
- `checkpoints`: Use checkpoints and getheaders for the initial
|
|
sync (default: true).
|
|
- `index-tx`: Index transactions (enables transaction endpoints in REST api)
|
|
(default: false).
|
|
- `index-address`: Index transactions and utxos by address (default: false).
|
|
|
|
## Mempool options
|
|
|
|
- `mempool-size`: Max mempool size in MB (default: 100).
|
|
- `replace-by-fee`: Allow replace-by-fee transactions (default: false).
|
|
- `persistent-mempool`: Save mempool to disk and read into memory on boot
|
|
(default: false).
|
|
|
|
## Pool options
|
|
|
|
- `selfish`: Enable "selfish" mode (no relaying of txes or blocks)
|
|
(default: false).
|
|
- `compact`: Enable compact block relay (default: true).
|
|
- `bip37`: Enable serving of bip37 merkleblocks (default: false).
|
|
- `listen`: Accept incoming connections (default: true).
|
|
- `max-outbound`: Max number of outbound connections (default: 8).
|
|
- `max-inbound`: Max number of inbound connections (default: 8).
|
|
- `seeds`: Custom list of DNS seeds (comma-separated).
|
|
- `host`: Host to listen on (default: 0.0.0.0).
|
|
- `port`: Port to listen on (default: 8333).
|
|
- `public-host`: Public host to advertise on network.
|
|
- `public-port`: Public port to advertise on network.
|
|
- `nodes`: List of target nodes to connect to (comma-separated).
|
|
- `only`: List of nodes to ONLY connect to (no other nodes or dns seeds will
|
|
be contacted).
|
|
|
|
## Miner options
|
|
|
|
- `coinbase-flags`: Coinbase flags (default: mined by bcoin).
|
|
- `coinbase-address`: List of payout addresses, randomly selected during block
|
|
creation (comma-separated).
|
|
- `max-block-weight`: Max block weight to mine (default: 4000000).
|
|
- `reserved-block-weight`: Amount of space reserved for coinbase
|
|
(default: 4000).
|
|
- `reserved-block-sigops`: Amount of sigops reserved for coinbase
|
|
(default: 400).
|
|
|
|
## HTTP
|
|
|
|
- `http-host`: HTTP host to listen on (default: 127.0.0.1).
|
|
- `http-port`: HTTP port to listen on (default: 8332 for mainnet).
|
|
- `ssl-cert`: Path to SSL cert.
|
|
- `ssl-key`: Path to SSL key.
|
|
- `service-key`: Service key (used for accessing wallet system only).
|
|
- `api-key`: API key (used for accessing all node APIs, may be different than
|
|
API key for wallet server).
|
|
- `cors`: Enable "Cross-Origin Resource Sharing" HTTP headers (default: false).
|
|
|
|
Note: For security `cors` should not be used with `no-auth`. \
|
|
If enabled you should also enable `wallet-auth` and set `api-key`.
|
|
|
|
## Wallet options
|
|
|
|
These options must be saved in `wallet.conf`. They can also be passed as
|
|
environment variables or command-line variables if they are preceeded with
|
|
a `wallet-` prefix. (See [CHANGELOG.md](https://github.com/bcoin-org/bcoin/blob/master/CHANGELOG.md#configuration-changes))
|
|
|
|
For example, to run a bcoin and wallet node on a remote server that you can
|
|
access from a local machine, you would launch bcoin with the command:
|
|
|
|
`bcoin --network=testnet --http-host=0.0.0.0 --wallet-http-host=0.0.0.0
|
|
--wallet-api-key=hunter2 --wallet-wallet-auth=true`
|
|
|
|
### Bcoin client:
|
|
|
|
- `node-host`: Location of bcoin node HTTP server (default: localhost).
|
|
- `node-port`: Port of bcoin node HTTP server (defaults to RPC port
|
|
of network).
|
|
- `node-ssl`: Whether to use SSL (default: false).
|
|
- `node-api-key`: API-key for bcoin HTTP server.
|
|
|
|
### Wallet database:
|
|
|
|
- `memory`: Keep database in memory rather than write to disk.
|
|
- `max-files`: Max open files for leveldb.
|
|
- `cache-size`: Size (in MB) of leveldb cache and write buffer.
|
|
- `witness`: Make SegWit enabled wallets.
|
|
- `checkpoints`: Trust hard-coded blockchain checkpoints.
|
|
|
|
### Wallet http server:
|
|
|
|
- `ssl`: Whether to use SSL (default: false).
|
|
- `ssl-key`: Path to SSL key.
|
|
- `ssl-cert`: Path to SSL cert.
|
|
- `http-host`: HTTP host to listen on (default: 127.0.0.1).
|
|
- `http-port`: HTTP port to listen on (default: 8334 for mainnet).
|
|
- `api-key`: API key (used for accessing all wallet APIs, may be different
|
|
than API key for node server).
|
|
- `cors`: Enable "Cross-Origin Resource Sharing" HTTP headers (default: false).
|
|
- `no-auth`: Disable auth for API server and wallets (default: false).
|
|
- `wallet-auth`: Enable token auth for wallets (default: false).
|
|
- `admin-token`: Token required if `wallet-auth` is enabled: restricts access
|
|
to [all wallet admin routes.](https://bcoin.io/api-docs/#wallet-admin-commands)
|
|
|
|
## Sample config files
|
|
|
|
- Node https://github.com/bcoin-org/bcoin/blob/master/etc/sample.conf
|
|
- Wallet https://github.com/bcoin-org/bcoin/blob/master/etc/sample.wallet.conf
|