# Vapor节点安装与运行
# Docker运行
基础命令
在启动 vapord 前需要用户进行基本的配置,指定数据存储目录,网络类型以及其它启动选项等。
$ vapord -h
Multiple asset management.
Usage:
vapord [command]
Available Commands:
help Help about any command
init Initialize blockchain
node Run the vapord
version Show version info
Flags:
-h, --help help for vapord
--home string root directory for config and data
-r, --root string DEPRECATED. Use --home (default "/Users/zcc/Library/Application Support/Vapor")
--trace print out full stack trace on errors
Use "vapord [command] --help" for more information about a command.
vapord 有四个子命令:
- help:显示 vapord 的帮助信息。
- init:对 vapord 进行初始化操作。
- node:启动网络。
- version:显示网络信息。
配置网络和数据目录
vapor 网络主要有以下几种网络类型,分别有不同的用途:
- mainnet主网:vapor 主网。
- testnet测试网:开发者进行交易或者智能合约的测试网络。
- solonet测试网:单节点网络,不与其它节点相连,相当于私链。
对 vapord 进行初始化:
$ cd cmd/vapord
$ ./vapord init --chain_id <net-type> --home <config_and_data_path>
--chain_id
指定的是启动的网络类型,有三种网络类型可选:
- mainnet:主网
- testnet:测试网
- solonet:单节点测试网
如果不指定网络类型,则默认启动solonet。
--home
指定的是配置和数据文件存储的路径,如果不指定存储路径,则不同平台的默认路径为:
- MacOS(darwin): ~/Library/Application Support/Vapor
- Windows(windows): ~/AppData/Roaming/Vapor
- Others(eg.Linux): ~/.vapor
以启动solonet为例,将配置和数据文件存储目录指定为$HOME/vapor/solonet
:
$ ./vapord init --chain_id solonet --home $HOME/vapor/solonet
则在$HOME/vapor/solonet
文件夹下会出现相应的配置文件config.toml
:
$ cat $HOME/vapor/solonet/config.toml
# This is a TOML config file.
# For more information, see https://github.com/toml-lang/toml
fast_sync = true
db_backend = "leveldb"
api_addr = "0.0.0.0:9889"
moniker = ""
chain_id = "mainnet"
[p2p]
laddr = "tcp://0.0.0.0:56656"
seeds = ""
配置文件中各项说明:
- fast_sync:是否开启快速同步,默认开启快速同步,值为 true。
- db_backend:使用的后台数据库名称,默认使用 leveldb 数据库。
- api_addr:api 服务器地址和端口号。
- chain_id:启动的节点网络,默认启动 solonet 网络。
- laddr:为其它节点提供的 p2p 地址和端口号。
- seeds:种子节点地址和端口号,对于 solonet 来说,此项为空。
在 federation.json 配置了多个联盟的扩展公钥:
$ cat federation.json
{
"xpubs": [
"580daf48fa8962100047cb1391da890bb7f2c849fdbc9b368cb4394a4c7cbb0977e2e7ebbf055dc0ef90af6a0d2af01ce7ec56b735d016aab597815ec48552e5",
"f3f6bcf61b65fa9d1566455a5688ca8b395efdc22e654963134b5e5cb0a45d8be522d21abc384a73177a7b9d64eba915fcfe2862d86a508a3c46dc410bdd72ad",
"53559612f2b7bcada18948b7de39d63947a0e2bd7336d07db1350c54ba5743996b84bf9d18ff7a2457e1a5c70ce5013e4a3b62666ddb03294c53051d5f5c70c0",
"7c88cc58adfc71818b08308d43c29de22460b0ea6895449cbec6e458d7dc09e0aea243fa5075ee6621da0d805bd047f6bb207329c5bd2ca3253b172fb323b512"
],
"quorum": 2
}
node_key:
$ cat node_key.txt
a8f8529f72831c376f02e052c989dee3001ea255ced22cef33f70903d34a0b4e6509ba87792950f3ed752be98c77699c2938380027250507b280cce88992f96e
node_key 是本节点作为投票节点的扩展私钥。
启动节点
启动 vapord 节点:
vapord node -h
Run the vapord
Usage:
vapord node [flags]
Flags:
--auth.disable Disable rpc access authenticate
--chain_id string Select network type
-h, --help help for node
--log_file string Log output file (default "log")
--log_level string Select log level(debug, info, warn, error or fatal)
--mining Enable mining
--p2p.dial_timeout int Set dial timeout (default 3)
--p2p.handshake_timeout int Set handshake timeout (default 30)
--p2p.keep_dial string Peers addresses try keeping connecting to, separated by ',' (for example "1.1.1.1:46657;2.2.2.2:46658")
--p2p.laddr string Node listen address. (0.0.0.0:0 means any interface, any port) (default "tcp://0.0.0.0:56656")
--p2p.lan_discoverable Whether the node can be discovered by nodes in the LAN (default true)
--p2p.max_num_peers int Set max num peers (default 20)
--p2p.proxy_address string Connect via SOCKS5 proxy (eg. 127.0.0.1:1086)
--p2p.proxy_password string Password for proxy server
--p2p.proxy_username string Username for proxy server
--p2p.seeds string Comma delimited host:port seed nodes
--p2p.skip_upnp Skip UPNP configuration
--prof_laddr string Use http to profile vapord programs
--vault_mode Run in the offline enviroment
--wallet.disable Disable wallet
--wallet.rescan Rescan wallet
--wallet.txindex Save global tx index
--web.closed Lanch web browser or not
--ws.max_num_concurrent_reqs int Max number of concurrent websocket requests that may be processed concurrently (default 20)
--ws.max_num_websockets int Max number of websocket connections (default 25)
Global Flags:
--home string root directory for config and data
-r, --root string DEPRECATED. Use --home (default "/Users/zcc/Library/Application Support/Vapor")
--trace print out full stack trace on errors
初始化网络之后,启动网络:
$ ./vapord node --home <config_and_data_path>
例如,用户要启动 solonet 挖矿,需要生成一系列公私钥对,用户可以下载以下安装包:vapor.tar
解压之后,将文件夹下的所有文件复制到 vapor solonet 的目录下,之后就不需要初始化节点,直接进行启动:
$ vapord node --home $HOME/bytom/vapor-solonet
之后在dashboard 账户管理页面新建账户:
之后在左上角的设置里打开挖矿:
之后就可以看到新区块每隔 0.5 秒就被挖出一个:
注意:节点服务器TCP,UDP 56656端口需要开启,这样有利于节点之间数据同步。保证好的体验!