[小白教程] 小白玩 bts 内盘机器人第一天
第一天当然是要搭建运行个人节点啦,如果用公共节点,行情剧烈变化时很卡的,机器人会罢工!
1. 基础软硬件需求
独立服务器或者VPS
8G 内存(更多更好,最少不低于4G)
80G 硬盘
安装 64 位 Windows Server 。还有用其他 Linux 和苹果系统的,小白的我玩不起,先把Windows玩好了再说。
2. 程序准备
要对接 BTS 系统,需要运行这几个程序:普通节点 witness_node 、命令行钱包 cli_wallet 。
2.1 架构说明
witness_node 通过 P2P 方式连接到 BTS 网络,从网络接收最新区块,向网络广播本地签署的交易包;
witness_node 通过 websocket + http rpc 的方式提供 API 供其他程序调用(以下称为节点 API)。
cli_wallet 通过 websocket 方式连接到 witness_node 。
cli_wallet 管理钱包文件,钱包文件里包含经过加密的用户私钥,一个钱包文件可以包含多个私钥。
可以同时运行多个 cli_wallet 进程,同时连到 witness_node ,用来同时管理多个钱包文件。
cli_wallet 提供交易签名功能,签名后通过 witness_node 向外广播。
cli_wallet 通过 http rpc 的方式提供 API 供其他程序调用(以下称为钱包 API)。
2.2 Windows
Github 上提供编译好的 Windows 可执行文件下载,下载页面在 相关链接 ,
文件为 BitShares-Core-2.0.xxxxxx-x64-cli-tools.zip ,解开即可,里面包含 3 个 exe 文件和两个 dll 文件。
3. 环境准备
要保证系统正常运行,需要保证服务器系统时间正确。时间不正确会导致块链无法同步、资金发送失败等各种问题。
Ubuntu 系统推荐安装 NTP 服务端,方法是
sudo timedatectl set-ntp false
sudo apt-get install ntp
根据部署环境不同,可能需要修改默认的 ntp 服务器地址,请参阅相关文档。
如果是 Windows 系统,请设置好系统时间同步。
4. 同步数据
对于 Windows ,在命令行界面 cd 到程序目录之后,执行时不需要 ./ 。
也可以在文件夹目录下建立一个bat启动执行文档。
cd "%~dp0
witness_node --rpc-endpoint 127.0.0.1:8090 --track-account "\"1.2.12345\"" --partial-operations true --replay-blockchain
5.1 witness_node
可使用 ./witness_node --help 来查看命令参数。
5.1.1 初次执行:
./witness_node -d witness_node_data_dir
然后按 Ctrl+C 结束它。
这样会在当前目录生成一个数据目录 witness_node_data_dir ,里面包含 blockchain 目录是数据存储,以及一个 config.ini 配置文件。
config.ini 配置文件作一些修改。
1) 可关闭 p2p 日志,以减小硬盘存储压力,方法是找到 filename=logs/p2p/p2p.log 行,在行首添加 # 号
或者将 [logger.p2p] 下面的 level=info 修改为 level=error
2) 可考虑将控制台日志同时保存到文件,方法是将下述章节
[logger.default]
level=info
appenders=stderr
修改为
[log.file_appender.default]
filename=logs/default/default.log
[logger.default]
level=info
appenders=stderr,default
这样之后, witness_node_data_dir/logs/default/ 目录下会同步保留最近24小时的控制台日志。
3) 以下参数表示每账号保留多少条历史记录供查询,默认值是 1000 。
对个人来说,默认即可也可以相对改小一点。
max-ops-per-account = 1000
修改为
max-ops-per-account = 500
则会保留500条数据。更早的数据会从内存中被删除而无法快速查询(但仍然记录在链上)。
4) 以下两个参数会大量减少运行需要的内存,原理是不保存与交易所账户无关的历史数据索引。
track-account = "1.2.12345"
partial-operations = true
请将 12345 替换成你的账户数字 ID 。数字前的 "1.2." 表示类型是账户。
注: config.ini 里默认 track-account 前面有个“#”符号,需要删除。
如果需要监控多个账户,则使用多个 track-account 配置,如:
track-account = "1.2.12345"
track-account = "1.2.12346"
partial-operations = true
注:
目前存在一个 BUG ,配置多个 track-account 会导致上面的日志修改不生效。
绕过这个问题的方法,是不动 config.ini ,而是启动 witness_node 的时候,在命令行后面添加 --track-account 参数,比如:
./witness_node --track-account "\"1.2.12345\"" --track-account "\"1.2.12346\""
注:
* 参数首尾双引号需要保留,所以使用 \ 进行转义。 Linux 下可以使用双引号外加一层单引号的方式,则不需要转义。
* 如果需要增加、修改、删除追踪账号,修改后,需要重建索引才能生效。
方法是按 Ctrl + C 结束程序,然后加 --replay-blockchain 参数重新启动,如:
./witness_node -d witness_node_data_dir --track-account "\"1.2.12345\"" --track-account "\"1.2.12346\"" --replay-blockchain
5.1.2 重新执行
再次启动 witness_node ,开始同步数据。根据网络条件、服务器硬件条件不同,初次同步可能需要花几个小时到几天时间。
./witness_node -d witness_node_data_dir --rpc-endpoint 127.0.0.1:8090 --track-account "\"1.2.12345\"" --track-account "\"1.2.12346\"" --partial-operations true --replay-blockchain
上述命令中,使用 --rpc-endpoint 开启节点 API 服务,这样就可以使用 cli_wallet 和其他程序连接使用
注:以后再需要重新启动 witness_node 时,一般不要加 --replay-blockchain 参数,否则启动会很慢
5.2 运行 cli_wallet
新建一个bat文件
cd "%~dp0
cli_wallet -s ws://127.0.0.1:8090 -H 127.0.0.1:8091
执行成功会显示:
new >>>
首先需要为钱包文件设置一个密码
new >>> set_password 123456***
执行成功会显示:
locked >>>
然后解锁钱包
locked >>> unlock 123456***
解锁成功会显示:
unlocked >>>
5.3 导入账户活跃私钥
unlocked >>> import_key account 5xxxxxxxxxxxxxxxxxxxxxxx
至此个人API服务器完成!迈开了第一步!
虎符硬件钱包扫一扫,体验BTC闪电网络极速支付,打赏!