mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00
Merge branch 'master' into master
This commit is contained in:
@@ -15,18 +15,22 @@ Show the version number. `bigchaindb -v` does the same thing.
|
||||
|
||||
## bigchaindb configure
|
||||
|
||||
Generate a local config file (which can be used to set some or all [BigchainDB node configuration settings](configuration.html)). It will auto-generate a public-private keypair and then ask you for the values of other configuration settings. If you press Enter for a value, it will use the default value.
|
||||
Generate a local configuration file (which can be used to set some or all [BigchainDB node configuration settings](configuration.html)). It will auto-generate a public-private keypair and then ask you for the values of other configuration settings. If you press Enter for a value, it will use the default value.
|
||||
|
||||
Since BigchainDB supports multiple databases you need to always specify the
|
||||
database backend that you want to use. At this point only two database backends
|
||||
are supported: `rethinkdb` and `mongodb`.
|
||||
|
||||
If you use the `-c` command-line option, it will generate the file at the specified path:
|
||||
```text
|
||||
bigchaindb -c path/to/new_config.json configure
|
||||
bigchaindb -c path/to/new_config.json configure rethinkdb
|
||||
```
|
||||
|
||||
If you don't use the `-c` command-line option, the file will be written to `$HOME/.bigchaindb` (the default location where BigchainDB looks for a config file, if one isn't specified).
|
||||
|
||||
If you use the `-y` command-line option, then there won't be any interactive prompts: it will just generate a keypair and use the default values for all the other configuration settings.
|
||||
```text
|
||||
bigchaindb -y configure
|
||||
bigchaindb -y configure rethinkdb
|
||||
```
|
||||
|
||||
|
||||
@@ -42,14 +46,19 @@ Write the node's public key (i.e. one of its configuration values) to standard o
|
||||
|
||||
## bigchaindb init
|
||||
|
||||
Create a RethinkDB database, all RethinkDB database tables, various RethinkDB database indexes, and the genesis block.
|
||||
Create a backend database (RethinkDB or MongoDB),
|
||||
all database tables/collections,
|
||||
various backend database indexes,
|
||||
and the genesis block.
|
||||
|
||||
Note: The `bigchaindb start` command (see below) always starts by trying a `bigchaindb init` first. If it sees that the RethinkDB database already exists, then it doesn't re-initialize the database. One doesn't have to do `bigchaindb init` before `bigchaindb start`. `bigchaindb init` is useful if you only want to initialize (but not start).
|
||||
Note: The `bigchaindb start` command (see below) always starts by trying a `bigchaindb init` first. If it sees that the backend database already exists, then it doesn't re-initialize the database. One doesn't have to do `bigchaindb init` before `bigchaindb start`. `bigchaindb init` is useful if you only want to initialize (but not start).
|
||||
|
||||
|
||||
## bigchaindb drop
|
||||
|
||||
Drop (erase) the RethinkDB database. You will be prompted to make sure. If you want to force-drop the database (i.e. skipping the yes/no prompt), then use `bigchaindb -y drop`
|
||||
Drop (erase) the backend database (a RethinkDB or MongoDB database).
|
||||
You will be prompted to make sure.
|
||||
If you want to force-drop the database (i.e. skipping the yes/no prompt), then use `bigchaindb -y drop`
|
||||
|
||||
|
||||
## bigchaindb start
|
||||
@@ -72,14 +81,49 @@ Note: This command uses the Python Server API to write transactions to the datab
|
||||
|
||||
## bigchaindb set-shards
|
||||
|
||||
Set the number of shards in the underlying datastore. For example, the following command will set the number of shards to four:
|
||||
This command is specific to RethinkDB so it will only run if BigchainDB is
|
||||
configured with `rethinkdb` as the backend.
|
||||
|
||||
If RethinkDB is the backend database, then:
|
||||
```text
|
||||
$ bigchaindb set-shards 4
|
||||
```
|
||||
|
||||
will set the number of shards (in all RethinkDB tables) to 4.
|
||||
|
||||
|
||||
## bigchaindb set-replicas
|
||||
|
||||
Set the number of replicas (of each shard) in the underlying datastore. For example, the following command will set the number of replicas to three (i.e. it will set the replication factor to three):
|
||||
This command is specific to RethinkDB so it will only run if BigchainDB is
|
||||
configured with `rethinkdb` as the backend.
|
||||
|
||||
If RethinkDB is the backend database, then:
|
||||
```text
|
||||
$ bigchaindb set-replicas 3
|
||||
```
|
||||
|
||||
will set the number of replicas (of each shard) to 3
|
||||
(i.e. it will set the replication factor to 3).
|
||||
|
||||
|
||||
## bigchaindb add-replicas
|
||||
|
||||
This command is specific to MongoDB so it will only run if BigchainDB is
|
||||
configured with `mongodb` as the backend.
|
||||
|
||||
This command is used to add nodes to a BigchainDB cluster. It accepts a list of
|
||||
space separated hosts in the form _hostname:port_:
|
||||
```text
|
||||
$ bigchaindb add-replicas server1.com:27017 server2.com:27017 server3.com:27017
|
||||
```
|
||||
|
||||
## bigchaindb remove-replicas
|
||||
|
||||
This command is specific to MongoDB so it will only run if BigchainDB is
|
||||
configured with `mongodb` as the backend.
|
||||
|
||||
This command is used to remove nodes from a BigchainDB cluster. It accepts a
|
||||
list of space separated hosts in the form _hostname:port_:
|
||||
```text
|
||||
$ bigchaindb remove-replicas server1.com:27017 server2.com:27017 server3.com:27017
|
||||
```
|
||||
|
||||
@@ -19,9 +19,6 @@ For convenience, here's a list of all the relevant environment variables (docume
|
||||
`BIGCHAINDB_SERVER_BIND`<br>
|
||||
`BIGCHAINDB_SERVER_WORKERS`<br>
|
||||
`BIGCHAINDB_SERVER_THREADS`<br>
|
||||
`BIGCHAINDB_STATSD_HOST`<br>
|
||||
`BIGCHAINDB_STATSD_PORT`<br>
|
||||
`BIGCHAINDB_STATSD_RATE`<br>
|
||||
`BIGCHAINDB_CONFIG_PATH`<br>
|
||||
`BIGCHAINDB_BACKLOG_REASSIGN_DELAY`<br>
|
||||
`BIGCHAINDB_CONSENSUS_PLUGIN`<br>
|
||||
@@ -32,7 +29,7 @@ Note that the `-c` command line option will always take precedence if both the `
|
||||
|
||||
You can read the current default values in the file [bigchaindb/\_\_init\_\_.py](https://github.com/bigchaindb/bigchaindb/blob/master/bigchaindb/__init__.py). (The link is to the latest version.)
|
||||
|
||||
Running `bigchaindb -y configure` will generate a local config file in `$HOME/.bigchaindb` with all the default values, with two exceptions: It will generate a valid private/public keypair, rather than using the default keypair (`None` and `None`).
|
||||
Running `bigchaindb -y configure rethinkdb` will generate a local config file in `$HOME/.bigchaindb` with all the default values, with two exceptions: It will generate a valid private/public keypair, rather than using the default keypair (`None` and `None`).
|
||||
|
||||
|
||||
## keypair.public & keypair.private
|
||||
@@ -53,7 +50,7 @@ export BIGCHAINDB_KEYPAIR_PRIVATE=5C5Cknco7YxBRP9AgB1cbUVTL4FAcooxErLygw1DeG2D
|
||||
}
|
||||
```
|
||||
|
||||
Internally (i.e. in the Python code), both keys have a default value of `None`, but that's not a valid key. Therefore you can't rely on the defaults for the keypair. If you want to run BigchainDB, you must provide a valid keypair, either in the environment variables or in the local config file. You can generate a local config file with a valid keypair (and default everything else) using `bigchaindb -y configure`.
|
||||
Internally (i.e. in the Python code), both keys have a default value of `None`, but that's not a valid key. Therefore you can't rely on the defaults for the keypair. If you want to run BigchainDB, you must provide a valid keypair, either in the environment variables or in the local config file. You can generate a local config file with a valid keypair (and default everything else) using `bigchaindb -y configure rethinkdb`.
|
||||
|
||||
|
||||
## keyring
|
||||
@@ -81,43 +78,40 @@ Note how the keys in the list are separated by colons.
|
||||
|
||||
## database.backend, database.host, database.port, database.name & database.replicaset
|
||||
|
||||
The database backend to use (e.g. RethinkDB) and its hostname, port and name.
|
||||
The database backend to use (`rethinkdb` or `mongodb`) and its hostname, port and name. If the database backend is `mongodb`, then there's a fifth setting: the name of the replica set. If the database backend is `rethinkdb`, you *can* set the name of the replica set, but it won't be used for anything.
|
||||
|
||||
**Example using environment variables**
|
||||
```text
|
||||
export BIGCHAINDB_DATABASE_BACKEND=rethinkdb
|
||||
export BIGCHAINDB_DATABASE_BACKEND=mongodb
|
||||
export BIGCHAINDB_DATABASE_HOST=localhost
|
||||
export BIGCHAINDB_DATABASE_PORT=28015
|
||||
export BIGCHAINDB_DATABASE_PORT=27017
|
||||
export BIGCHAINDB_DATABASE_NAME=bigchain
|
||||
export BIGCHAINDB_DATABASE_REPLICASET=bigchain-rs
|
||||
```
|
||||
|
||||
**Example config file snippet**
|
||||
**Default values**
|
||||
|
||||
If (no environment variables were set and there's no local config file), or you used `bigchaindb -y configure rethinkdb` to create a default local config file for a RethinkDB backend, then the defaults will be:
|
||||
```js
|
||||
"database": {
|
||||
"backend": "rethinkdb",
|
||||
"host": "localhost",
|
||||
"port": 28015,
|
||||
"name": "bigchain",
|
||||
"port": 28015
|
||||
}
|
||||
```
|
||||
|
||||
If you used `bigchaindb -y configure mongodb` to create a default local config file for a MongoDB backend, then the defaults will be:
|
||||
```js
|
||||
"database": {
|
||||
"backend": "mongodb",
|
||||
"host": "localhost",
|
||||
"name": "bigchain",
|
||||
"port": 27017,
|
||||
"replicaset": "bigchain-rs"
|
||||
}
|
||||
```
|
||||
|
||||
**Default values (a snippet from `bigchaindb/__init__.py`)**
|
||||
```python
|
||||
'database': {
|
||||
'backend': os.environ.get('BIGCHAINDB_DATABASE_BACKEND', 'rethinkdb'),
|
||||
'host': os.environ.get('BIGCHAINDB_DATABASE_HOST', 'localhost'),
|
||||
'port': int(os.environ.get('BIGCHAINDB_DATABASE_PORT', 28015)),
|
||||
'name': os.environ.get('BIGCHAINDB_DATABASE_NAME', 'bigchain'),
|
||||
'replicaset': os.environ.get('BIGCHAINDB_DATABASE_REPLICASET', 'bigchain-rs')
|
||||
}
|
||||
```
|
||||
|
||||
**Note**: We are currently adding support for MongoDB. The `replicaset` and
|
||||
`BIGCHAINDB_DATABASE_REPLICASET` option is only used if the `backend` or
|
||||
`BIGCHAINDB_DATABASE_BACKEND` is set to `"mongodb"`.
|
||||
|
||||
|
||||
## server.bind, server.workers & server.threads
|
||||
|
||||
@@ -152,23 +146,6 @@ export BIGCHAINDB_SERVER_THREADS=5
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## statsd.host, statsd.port & statsd.rate
|
||||
|
||||
These settings are used to configure where, and how often, [StatsD](https://github.com/etsy/statsd) should send data for [cluster monitoring](../clusters-feds/monitoring.html) purposes. `statsd.host` is the hostname of the monitoring server, where StatsD should send its data. `stats.port` is the port. `statsd.rate` is the fraction of transaction operations that should be sampled. It's a float between 0.0 and 1.0.
|
||||
|
||||
**Example using environment variables**
|
||||
```text
|
||||
export BIGCHAINDB_STATSD_HOST="http://monitor.monitors-r-us.io"
|
||||
export BIGCHAINDB_STATSD_PORT=8125
|
||||
export BIGCHAINDB_STATSD_RATE=0.01
|
||||
```
|
||||
|
||||
**Example config file snippet: the default**
|
||||
```js
|
||||
"statsd": {"host": "localhost", "port": 8125, "rate": 0.01}
|
||||
```
|
||||
|
||||
## backlog_reassign_delay
|
||||
|
||||
Specifies how long, in seconds, transactions can remain in the backlog before being reassigned. Long-waiting transactions must be reassigned because the assigned node may no longer be responsive. The default duration is 120 seconds.
|
||||
|
||||
Reference in New Issue
Block a user