请选择 进入手机版 | 继续访问电脑版

查看: 381|回复: 0

YOYOW见证人监控程序部署教程(docker版)

[复制链接]
  • TA的每日心情
    慵懒
    2017-11-2 23:02
  • 134

    主题

    381

    帖子

    3278

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    3278
    发表于 2018-4-11 12:02:23 | 显示全部楼层 |阅读模式
    部署YOYOW见证人有几个月了,发现貌似没有人关注丢块的问题,我也没有找到有相关的开源软件可以去完成丢块自动下线的功能。像 Steem 社区有太多的类似程序了,python 的、nodejs 的,多的数不胜数。只能说 YOYOW 还是很年轻。

    作为一个 YOYOW 的见证人,有义务去开发一款这样开源版本的工具。经过一晚上的折腾,基本功能已经是完成了。代码库在 这里。这个工具是基于docker进行部署的,如果你看了上一篇我写的《YOYOW 见证人教程》 , 那么这个工具的部署应该会很轻松。因为我花了大量的时间在部署脚本上(大约6个小时),目的就是尽可能把部署过程傻瓜化。

    准备

    一台 Linux 服务器,装有 docker , wget
    如果需要通知服务,请自行注册discord,并创建一个新的服务器、频道和频道的webhook(文章最后有个简易获取 Webhook 的教程)。

    开始

    1.首先下载代码
    git clone https://github.com/ety001/yoyow-witness-watcher.git
    cd yoyow-witness-watcher

    2.部署 yoyow_client,并提供 RPC 服务。
    ./init.sh

    首先提示你输入 yoyow_client 的下载地址:
    *********************************************
    Welcome to use YOYOW witness watcher.
    This tool is made by ETY001. (https://github.com/ety001)
    My YOYOW ID is 485699321. It's pleasure to get your votes!
    *********************************************

    Please input current yoyow_client download URL (https://github.com/yoyow-org/yoyow-core/releases/latest):
    https://github.com/yoyow-org/yoy ... ubuntu-20180313.tgz

    下载地址可以在 https://github.com/yoyow-org/yoyow-core/releases/latest 找到,填写下载地址后,回车继续。

    当看到出现 Listening for incoming HTTP RPC requests on 0.0.0.0:9999 以及 new >>> 的时候说明 yoyow_client 的 docker 镜像已经做好,现在开始创建钱包并导入你的账号
    Create wallet
    Logging RPC to file: logs/rpc/rpc.log
    3505859ms th_a       main.cpp:120                  main                 ] key_to_wif( committee_private_key ): 5KCBDTcyDqzsqehcb52tW5nU6pXife6V2rX9Yf7c3saYSzbDZ5W
    3505862ms th_a       main.cpp:124                  main                 ] nathan_pub_key: YYW6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
    3505862ms th_a       main.cpp:125                  main                 ] key_to_wif( nathan_private_key ): 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
    Starting a new wallet with chain ID ae4f234c75199f67e526c9478cf499dd6e94c2b66830ee5c58d0868a3179baf6 (from egenesis)
    3505863ms th_a       main.cpp:172                  main                 ] wdata.ws_server: wss://wallet.yoyow.org/ws
    3506840ms th_a       main.cpp:177                  main                 ] wdata.ws_user:  wdata.ws_password:  
    Please use the set_password method to initialize a new wallet before continuing
    3509652ms th_a       main.cpp:243                  main                 ] Listening for incoming HTTP RPC requests on 0.0.0.0:9999
    new >>>

    先设置本地钱包密码(比如 123456)
    set_password 123456

    解锁本地钱包
    unlock 123456

    导入你的 YOYOW 账号
    import_key YOUR_YOYOW_ID  YOUR_YOYOW_ACTIVE_KEY

    完成以上工作后,按 ctrl + d 退出钱包,docker 容器开始重启

    直到看到 Finish 且已经在监听 9999 端口时,整个 yoyow_client 的部署完成。
    Get Status
    00200e8bde55        yoyow_client                     "/bin/sh -c '/data/y…"    10 seconds ago      Up 10 seconds                                                  yoyow_client

    Logs
    Logging RPC to file: logs/rpc/rpc.log
    140909ms th_a       main.cpp:120                  main                 ] key_to_wif( committee_private_key ): 5K**********************5W
    140910ms th_a       main.cpp:124                  main                 ] nathan_pub_key: YY************************CV
    140910ms th_a       main.cpp:125                  main                 ] key_to_wif( nathan_private_key ): 5****************************3
    140912ms th_a       main.cpp:172                  main                 ] wdata.ws_server: wss://wallet.yoyow.org/ws
    141820ms th_a       main.cpp:177                  main                 ] wdata.ws_user:  wdata.ws_password:  
    145239ms th_a       main.cpp:243                  main                 ] Listening for incoming HTTP RPC requests on 0.0.0.0:9999

    ************

    Finish!


    3.部署监控程序
    直接运行下面的命令开始部署
    ./install_bot.sh

    提示输入你的 YOYOW ID
    # ./install_bot.sh
    Please input YOYOW ID:
    485699321

    提示输入你签名块用的公钥。
    Please input Your Public Key:
    If you have multiple public keys, separate them with commas
    eg. YYW7TSRLZ9EXZps37Kt31qa7qi,YYW7TSRLZ9EXZpZqk25atoL2s37
    YYW7TSRLZ9EXZpZqk25atoL2s37Kt31qa7qi78ZR368kCN969rFiT,YYW733FxEEaAFTHxdTJdowZyQzJ3JnPocsVmdq4aSsm1gSd1VkYDC

    如果你有多台备机,可以用逗号把多个公钥隔开填写,请务必把当前正在运行的节点的公钥放在第一位,程序会在检测到丢块后,自动依次往后切换,直到所有节点都不可用。因此,如果你有两个节点的话,当第一个节点挂掉,程序自动切换到第二个备份节点后,赶紧去修第一个节点,第一个节点重启可用后,一定要重新部署下bot程序,并且填写公钥时,把目前的第二个节点的公钥放在前面。

    提示输入你的本地钱包密码
    Please input wallet password:
    123456

    提示输入 discord 的 webhook 地址,如果你想获取通知的话,就配置这项,否则留空。最后会简单说下怎么获取 webhook 地址
    Please input Discord webhook for notify (If you don't need it, leave empty.):
    https://discordapp.com/api/webho ... k_sSgb5Vn0rQVWZCF5f

    当你看到类似以下信息的时候,就已经完成了所有部署工作。
    Get status
    string(20) "global value in init"
    array(2) {
      [0]=>
      string(53) "YYW7TSRLZ9EXZpZqk25atoL2s37Kt31qa7qi78ZR368kCN969rFiT"
      [1]=>
      string(53) "YYW733FxEEaAFTHxdTJdowZyQzJ3JnPocsVmdq4aSsm1gSd1VkYDC"
    }
    string(9) "485699321"
    string(27) "http://172.20.99.2:9999/rpc"
    int(3)
    send_notify:""
    witness_info: [{"id":"1.5.118","account":485699321,"name":"yoyo485699321","sequence":1,"is_valid":true,"signing_key":"YYW7TSRLZ9EXZpZqk25atoL2s37Kt31qa7qi78ZR368kCN969rFiT","pledge":"4800000000","pledge_last_update":"2018-04-09T16:27:36","average_pledge":"4769814330","average_pledge_last_update":"2018-04-10T09:29:36","average_pledge_next_update_block":6208938,"total_votes":"1012502907669","by_pledge_position":"0","by_pledge_position_last_update":"13192707760156474609520154309632187","by_pledge_scheduled_time":"13192779100955781906176323330356157","by_vote_position":"0","by_vote_position_last_update":"8327365446400524735205121087916251","by_vote_scheduled_time":"8327365782480909634055199728870765","last_confirmed_block_num":6208607,"last_aslot":6220862,"total_produced":1143,"total_missed":3,"url":"https:\/\/github.com\/ety001"}]
    total_produced: 1143, total_missed: 3
    2018-04-10 10:23:38

    ***********

    Finish!!

    如果想查看监控程序的工作状态,执行下面的命令即可
    docker logs --tail 50 yoyow_witness_watcher

    4.卸载
    卸载非常的简单,只需要执行下面的命令即可
    ./uninstall_bot.sh && ./uninstall.sh

    如果你只想重新部署监控程序,只需要执行 ./uninstall_bot.sh 即可,执行完后重新执行 ./install_bot.sh。如果你中途执行安装脚本有错误的话,也需要先执行卸载脚本后,再重新执行安装脚本。卸载脚本如果都要执行的话,执行顺序一定要是先 uninstall_bot 再 uninstall。

    申请 Discord 的频道 Webhook

    注册账号就不说了,打开桌面app界面(网页界面应该也差不多),在左下角找到一个加号,点击后如下图



    选择创建一个服务器,进入下个界面,配置下你的服务器的名字和位置后,即可完成创建,进入你的服务器,新建一个频道,然后在频道右侧有个齿轮,点击一下,如图



    打开频道配置页面后,找到 Webhook 选项,然后创建一个新的 Webhook,如图



    填写下 Webhook 的名字后,即可完成创建,里面的 URL 即为你的 Webhook 地址。

    欢迎给我投票,我的 YOYOW 号是 485699321。

    来源:https://steemit.com/cn/@ety001/2pycg9-yoyow-docker


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    投票给我见证人:update_witness_votes 您的账号ID [388453192] [] true
    投票给我理事会:update_committee_member_votes  您的账号ID [388453192] [] true
    设置我为代理:set_voting_proxy 388453192 other true
    电报群组:https://t.me/yoyow123
    区块浏览器:http://explorer.yoyow123.com/
    手机区块浏览器:http://e.yoyow123.com/
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则