美文网首页Horizen中文资料
Horizen安全节点搭建-docker方案-低成本

Horizen安全节点搭建-docker方案-低成本

作者: itant | 来源:发表于2018-08-31 11:51 被阅读485次

    买服务器

    推荐买Linode 8G 及以上配置 (目前区块大小8G标准配置大约可以运行13个节点)
    这里买服务器

    系统选择Centos 7

    修改磁盘分配

    Swap 修改至 节点数*2G,剩余空间全部分配给存储空间

    环境配置

    iptables安装

     systemctl stop firewalld.service 
     systemctl disable firewalld.service
     yum install iptables-services -y
     systemctl restart iptables.service
     systemctl enable iptables.service
    

    关闭SELINUX

     vi /etc/selinux/config 
     #SELINUX=enforcing #注释掉
     #SELINUXTYPE=targeted #注释掉
     SELINUX=disabled #增加 
     :wq! #保存退出
     setenforce 0 #使配置立即生效
    

    Docker安装

     yum install -y yum-utils device-mapper-persistent-data  lvm2
     yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
     yum-config-manager --enable docker-ce-edge
     yum install docker-ce
     systemctl enable docker
     systemctl start docker
    

    网络配置

    发ticket,请求分配 ipv6地址段,一般几分钟到几小时内会回复。
    点这里发Linode Ticket
    内容如下

    内容自己发挥,表达出意思就行。

    拿到ipv6 address pool后 新建网络模式

        docker network create -d bridge --subnet=172.200.6.0/24 --ipv6 --subnet="2400:8901:xxxx:xxxx::/64" --opt "http://com.docker.network.bridge.name"="br-v6slave" v6slave
    

    准备镜像

    docker pull ubuntu 然后安装 或者 从已有的镜像导出 导入

     cat  zennode.tar | docker import zennode:362788
    

    新建第一个节点

    docker run -itd --name node002 --ip 172.200.6.2--ip6 2400:8901:xxxx:xx::2 --network v6slave ubuntu:latest /bin/bash
    

    网络测试

     curl -6 ipv6.myexternalip.com/raw
    

    这一步注意指定网络模式为刚才创建的自定义网络
    其它参考官方ubuntu下安装步骤
    或者自由发挥,就是一个zend 、一个node 两个服务,越简单越好
    做好服务高可用
    然后做好镜像保持

     docker export node002 > zennode.tar
     cat  zennode.tar | docker import zennode:362788
    

    或者

     docker commit node002 zennode:362788
    

    新建第N个节点

    通过脚本,需要根据自己镜像环境修改
    脚本自动化完成,只需要完成给节点z地址转币即可

    #!/bin/bash
    #
    # docker network create -d bridge --subnet=172.200.6.0/24 --ipv6 --subnet="2400:8901:xxxx:xxxx::/64" --opt "com.docker.network.bridge.name"="br-v6slave" v6slave
    #
    
    if [ $# -lt 4 ]; then
        echo "Execution format ./$0 node_num image_tag node_type domian_name stakeaddr"
        exit
    fi
    
    num=$1
    tag=$2
    nodetype=$3
    domain=$4
    taddr=$5
    email=xxxx@xxx.com
    NO=$(printf "%03d" "$num")
    
    docker run -itd --name node$NO --ip 172.200.6.$num --ip6 2400:8901:xxxx:xx::$num --network v6slave zennode:$tag /bin/bash
    
    echo "setting..."
    
    docker exec node$NO rm -fr /root/.zen/wallet.dat
    docker exec node$NO sed -i "s/9000/9$NO 1>\/dev\/null 2>\/dev\/null/" /root/start-zend.sh
    docker exec node$NO sed -i "s/9000/9$NO/g" /root/.zen/zen.conf
    docker exec node$NO sed -i  "s/::11/::$num/g" /root/.zen/zen.conf
    docker exec node$NO sed -i  "s/18600/18$NO/g" /root/.zen/zen.conf
    docker exec node$NO nohup sh /root/start-zend.sh & 1>/dev/null 2>/dev/null
    
    echo "starting zend..."
    docker exec node$NO rm -fr /root/nodetracker/config/
    docker exec node$NO mkdir /root/nodetracker/config
    
    docker exec node$NO sh -c "echo '
    {
    \"active\": \"$nodetype\",
    \"$nodetype\": {
      \"nodetype\": \"$nodetype\",
      \"nodeid\": null,
      \"servers\": [
       \"ts2.na\",
       \"ts1.na\",
       \"ts3.na\",
       \"ts4.na\",
       \"ts1.eu\",
       \"ts2.eu\",
       \"ts3.eu\",
       \"ts4.eu\"
      ],
      \"stakeaddr\": \"$taddr\",
      \"email\": \"$email\",
      \"fqdn\": \"$domain\",
      \"ipv\": \"6\",
      \"region\": \"na\",
      \"home\": \"ts2.na\",
      \"category\": \"none\"
    }
    }'>/root/nodetracker/config/config.json"
    #sleep 120s
    #docker exec node$NO /usr/bin/zen-cli z_getnewaddress
    #docker exec node$NO /usr/bin/zen-cli z_listaddresses
    #docker exec node$NO /usr/bin/zen-cli z_gettotalbalance
    
    

    相关文章

      网友评论

        本文标题:Horizen安全节点搭建-docker方案-低成本

        本文链接:https://www.haomeiwen.com/subject/rrrswftx.html