BigchainDB配置
每个BigchainDB配置项都有两个地方可以设置,环境变量和配置文件。如:配置文件中的
database.host
和环境变量的
BIGCHAINDB_DATABASE_HOST
一样。
database.port
↔
BIGCHAINDB_DATABASE_PORT
database.keyfile_passphrase
↔
BIGCHAINDB_DATABASE_KEYFILE_PASSPHRASE
server.bind
↔
BIGCHAINDB_SERVER_BIND
配置项的取值遵循规则:
- 先取环境变量的值
- 再检查配置文件的值
- 都没有值的情况下使用默认值
默认配置文件是$HOME/.bigchaindb
,或用命令bigchaindb -c path/to/config_file.json start
指定配置文件运行,或指定BIGCHAINDB_CONFIG_PATH
变量的值。
database.*
数据库设置,目前只支持MongoDB。
参数 | 说明 |
---|---|
database.backend | 当前只允许localmongodb |
database.host | 数据库主机名 |
database.port | 数据库端口 |
database.name | MongoDB中数据库名,如bigchain |
database.connection_timeout | 数据库连接超时 |
database.max_tries | 数据库连接失败重试次数,0为不断重试 |
database.replicaset | MongoDB副本名,默认为null ,BigchainDB 2.0+每个BigchainDB节点都有自己的独立MongoDB数据库,不需要复制集 |
database.ssl | true 或 false |
数据库认证的三种方式:
- 没有认证
- 用户名/密码认证:
创建MongoDB用户:
use <database.name>
db.createUser({user: "<database.login>", pwd: "<database.password>", roles: [{role: "readWrite", db: "<database.name>"}]})
database.ca_cert
, database.certfile
, database.keyfile
, database.crlfile
, database.keyfile_passphrase
使用默认值。
- x.509认证
MongoDB必须是x.509认证。database.ca_cert
,database.certfile
,database.keyfile
和database.crlfile
指向CA证书、签名、私钥和认证文件。database.keyfile_passphrase
是用明文指定的私钥解密密码。
例子:
环境变量:
export BIGCHAINDB_DATABASE_BACKEND=localmongodb
export BIGCHAINDB_DATABASE_HOST=localhost
export BIGCHAINDB_DATABASE_PORT=27017
export BIGCHAINDB_DATABASE_NAME=database8
export BIGCHAINDB_DATABASE_CONNECTION_TIMEOUT=5000
export BIGCHAINDB_DATABASE_MAX_TRIES=3
配置文件:
"database": {
"backend": "localmongodb",
"host": "localhost",
"port": 27017,
"name": "bigchain",
"connection_timeout": 5000,
"max_tries": 3,
"replicaset": null,
"login": null,
"password": null
"ssl": false,
"ca_cert": null,
"certfile": null,
"keyfile": null,
"crlfile": null,
"keyfile_passphrase": null,
}
server.*
server.bind
默认值0.0.0.0:9984
、[::]:9984
server.loglevel
日志输出级别server.workers
工作进程数量
环境变量:
export BIGCHAINDB_SERVER_BIND=0.0.0.0:9984
export BIGCHAINDB_SERVER_LOGLEVEL=debug
export BIGCHAINDB_SERVER_WORKERS=5
配置文件:
"server": {
"bind": "0.0.0.0:9984",
"loglevel": "debug",
"workers": 5,
}
wsserver.*
用于 WebSocket Event Stream API。
wsserver.scheme
为ws
或wss
(ssl),
export BIGCHAINDB_WSSERVER_SCHEME=ws
export BIGCHAINDB_WSSERVER_HOST=0.0.0.0
export BIGCHAINDB_WSSERVER_PORT=9985
"wsserver": {
"scheme": "wss",
"host": "0.0.0.0",
"port": 65000
}
对于wss,如下:
export BIGCHAINDB_WSSERVER_ADVERTISED_SCHEME=wss
export BIGCHAINDB_WSSERVER_ADVERTISED_HOST=mybigchaindb.com
export BIGCHAINDB_WSSERVER_ADVERTISED_PORT=443
或者
"wsserver": {
"advertised_scheme": "wss",
"advertised_host": "mybigchaindb.com",
"advertised_port": 443
}
log.*
{
"log": {
"file": "/var/log/bigchaindb.log",
"error_file": "/var/log/bigchaindb-errors.log",
"level_console": "info",
"level_logfile": "info",
"datefmt_console": "%Y-%m-%d %H:%M:%S",
"datefmt_logfile": "%Y-%m-%d %H:%M:%S",
"fmt_console": "%(asctime)s [%(levelname)s] (%(name)s) %(message)s",
"fmt_logfile": "%(asctime)s [%(levelname)s] (%(name)s) %(message)s",
"granular_levels": {}
}
tendermint.*
tendermint.host
tendermint.port
"tendermint": {
"host": "localhost",
"port": 26657
}