Horizen中文资料

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

2018-08-31  本文已影响485人  itant

买服务器

推荐买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

上一篇下一篇

猜你喜欢

热点阅读