买服务器
推荐买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
网友评论