BTS [小白教程] 小白玩 bts 内盘机器人第一天

robin501 · 2019年03月13日 · 113 次阅读

第一天当然是要搭建运行个人节点啦,如果用公共节点,行情剧烈变化时很卡的,机器人会罢工!

  1. 基础软硬件需求

独立服务器或者VPS

8G 内存(更多更好,最少不低于4G)

80G 硬盘

安装 64 位 Windows Server 。还有用其他 Linux 和苹果系统的,小白的我玩不起,先把Windows玩好了再说。

  1. 程序准备

要对接 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 文件。

  1. 环境准备

要保证系统正常运行,需要保证服务器系统时间正确。时间不正确会导致块链无法同步、资金发送失败等各种问题。

Ubuntu 系统推荐安装 NTP 服务端,方法是

sudo timedatectl set-ntp false

sudo apt-get install ntp

根据部署环境不同,可能需要修改默认的 ntp 服务器地址,请参阅相关文档。

如果是 Windows 系统,请设置好系统时间同步。

  1. 同步数据

对于 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闪电网络

极速支付,求打赏!

共收到 0 条回复
robin501 关闭了讨论 03月13日 19:05
robin501 重新开启了讨论 03月13日 19:07
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册