区块链节点¶
节点是区块链上的执行单元。多个节点彼此连接,构成一个P2P网络,承载了区块链上的通信,计算和存储。节点入网后(加入联盟),成为区块链上的一个共识单位。多个节点参与共识,确保了区块链上交易的一致。
节点文件目录、分类¶
FISCO-BCOS的节点包含了下列必要的文件。此处不列举节点在运行时生成的文件。
node0
|-- genesis.json #创世块文件(创世块信息,god账号,创世节点)
|-- config.json #节点总配置文件(IP,端口,共识算法)
|-- log.conf #节点日志配置文件(日志格式,优先级)
|-- start.sh #节点启动脚本
|-- stop.sh #节点停止脚本
|-- data
| |-- bootstrapnodes.json #节点启动时需访问的peers列表
| |-- ca.crt #链根证书私钥
| |-- agency.crt #机构证书私钥
| |-- node.crt #节点证书私钥
| |-- node.ca
| |-- node.csr
| |-- node.json
| |-- node.key
| |-- node.nodeid
| |-- node.param
| |-- node.private
| |-- node.pubkey
| `-- node.serial #节点证书序列号
|-- keystore
|-- fisco-bcos.log #节点启动日志
`-- log #节点运行日志目录
其中,按类型归类:
- 配置文件:genesis.json、config.json、log.conf、bootstrapnodes.json
- 证书文件:ca.crt、agency.crt、node.crt、node.csr、node.key、node.private、node.pubkey
- 功能文件:node.json
- 信息文件:node.nodeid、node.serial、node.ca
- 日志文件:fisco-bcos.log、log文件夹
- 操作脚本:start.sh、stop.sh
配置文件¶
genesis.json¶
genesis.json中配置创世块的信息,是节点启动必备的信息。
{
"nonce": "0x0",
"difficulty": "0x0",
"mixhash": "0x0",
"coinbase": "0x0",
"timestamp": "0x0",
"parentHash": "0x0",
"extraData": "0x0",
"gasLimit": "0x13880000000000",
"god":"0xf78451eb46e20bc5336e279c52bda3a3e92c09b6",
"alloc": {},
"initMinerNodes":["d23058c33577f850832e47994df495c674ba66273df2fcb1e6ee7d7e1dbd7be78be2f7b302c9d15842110b3db6239da2aa98ddf68e512b452df748d3d3e4c1cd"]
}
字段说明
配置项 | 说明 |
---|---|
timestamp | 创世块时间戳(毫秒) |
god | 内置链管理员账号地址(填入<u>2.2 生成god账号</u> 小节中生成的地址) |
alloc | 内置合约数据 |
initMinerNodes | 创世块节点NodeId(填入<u>2.3 生成节点身份NodeId</u>小节中生成NodeId) |
config.json¶
节点的总配置文件,配置节点的IP,端口,共识算法,data目录等等
{
"sealEngine": "PBFT",
"systemproxyaddress":"0x919868496524eedc26dbb81915fa1547a20f8998",
"listenip":"127.0.0.1",
"cryptomod":"0",
"rpcport": "8545",
"p2pport": "30303",
"channelPort": "8891",
"wallet":"./data/keys.info",
"keystoredir":"./data/keystore/",
"datadir":"./data/",
"vm":"interpreter",
"networkid":"12345",
"logverbosity":"4",
"coverlog":"OFF",
"eventlog":"ON",
"statlog":"OFF",
"logconf":"./log.conf"
}
字段说明
注意:rpcport 和 channelPort 仅限于被机构内的监控、运维、sdk等模块访问,切勿对外网开放
配置项 | 说明 |
---|---|
sealEngine | 共识算法(可选PBFT、RAFT、SinglePoint) |
systemproxyaddress | 系统路由合约地址(生成方法可参看部署系统合约) |
listenip | 节点监听IP |
cryptomod | 落盘加密模式,默认为0,0:不加密,1:本地key加密,2:key center |
rpcport | RPC监听端口(若在同台机器上部署多个节点时,端口不能重复) |
p2pport | P2P网络监听端口(若在同台机器上部署多个节点时,端口不能重复) |
channelPort | 链上链下监听端口(若在同台机器上部署多个节点时,端口不能重复) |
wallet | 钱包文件路径 |
keystoredir | 账号文件目录路径 |
datadir | 节点数据目录路径 |
vm | vm引擎 (默认 interpreter ) |
networkid | 网络ID |
logverbosity | 日志级别(级别越高日志越详细,>8 TRACE,4<=x<8 DEBUG日志,<4 INFO日志) |
coverlog | 覆盖率插件开关(ON或OFF) |
eventlog | 合约日志开关(ON或OFF) |
statlog | 统计日志开关(ON或OFF) |
logconf | 日志配置文件路径(日志配置文件可参看日志配置文件说明) |
log.conf¶
log.conf中配置节点日志生成的格式、路径和优先级。
* GLOBAL:
ENABLED = true
TO_FILE = true
TO_STANDARD_OUTPUT = false
FORMAT = "%level|%datetime{%Y-%M-%d %H:%m:%s:%g}|%msg"
FILENAME = "./log/log_%datetime{%Y%M%d%H}.log"
MILLISECONDS_WIDTH = 3
PERFORMANCE_TRACKING = false
MAX_LOG_FILE_SIZE = 209715200 ## 200MB - Comment starts with two hashes (##)
LOG_FLUSH_THRESHOLD = 100 ## Flush after every 100 logs
* FATAL:
ENABLED = false
TO_FILE = false
* ERROR:
ENABLED = true
TO_FILE = false
* WARNING:
ENABLED = true
TO_FILE = false
* INFO:
ENABLED = true
TO_FILE = false
* DEBUG:
ENABLED = false
TO_FILE = false
* TRACE:
ENABLED = false
TO_FILE = false
* VERBOSE:
ENABLED = false
TO_FILE = false
字段说明
配置项 | 说明 |
---|---|
FORMAT | 日志格式,典型如%level |
FILENAME | 例如/mydata/nodedata-1/log/log_%datetime{%Y%M%d%H}.log |
MAX_LOG_FILE_SIZE | 最大日志文件大小 |
LOG_FLUSH_THRESHOLD | 超过多少条日志即可落盘 |
bootstrapnodes.json¶
配置节点启动时主动去连接的节点。在连接成功后,节点会自动同步彼此的peers,进而连接更多的节点。
{"nodes":[
{"host":"127.0.0.1","p2pport":"30303"},
{"host":"127.0.0.1","p2pport":"30304"}
]}
功能文件¶
node.json¶
节点注册入网需要提供的文件,在生成节点证书时自动生成。
{
"id":"d23058c33577f850832e47994df495c674ba66273df2fcb1e6ee7d7e1dbd7be78be2f7b302c9d15842110b3db6239da2aa98ddf68e512b452df748d3d3e4c1cd",
"name":"node0",
"agency":"test_agency",
"caHash":"A809F269BEE93DA4"
}
信息文件¶
node.nodeid¶
保存节点nodeid信息,在生成节点证书时自动生成。
d23058c33577f850832e47994df495c674ba66273df2fcb1e6ee7d7e1dbd7be78be2f7b302c9d15842110b3db6239da2aa98ddf68e512b452df748d3d3e4c1cd
日志文件¶
fisco-bcos.log¶
节点的启动日志。若节点无法启动时,查看此日志。
log文件夹¶
节点运行时打印出的日志,按照日志优先级,存放于此。
log/
|-- debug_log_2018081319.log
|-- error_log_2018081319.log
|-- fatal_log_2018081319.log
|-- info_log_2018081319.log
|-- log_2018081319.log #全部的日志
|-- stat_log_2018081319.log #统计日志
|-- trace_log_2018081319.log
|-- verbose_log_2018081319.log
`-- warn_log_2018081319.log