-
Notifications
You must be signed in to change notification settings - Fork 1k
共识节点
NEO的全节点有两个客户端,一个是 AntSharesCore-CLI(为开发者提供的命令行客户端),一个是 AntSharesCore-GUI(为高级用户提供的图形界面的客户端)
部署共识节点用的是 AntSharesCore-CLI
- 系统要求
- CPU: 2核
- 内存: 4G
- 带宽: 5M
- 操作系统:
AntSharesCore-GUI | AntSharesCore-CLI | |
---|---|---|
Windows 7 SP1 x64 | ✅ | ✅ |
Windows Server 2008 R2 SP1 | ✅ |
- 运行环境
- 安装步骤
- 编译 AntSharesCore 项目中的 AntSharesCore-CLI,或直接在Github上下载 AntSharesCore-CLI 程序包
- 将 AntSharesCore-CLI 程序包复制到目标服务器
- 开放防火墙端口:10332,10333,20332,20333
- 运行 AntSharesDaemon.dll 启动服务
dotnet AntSharesDaemon.dll
可启动一个共识节点
dotnet AntSharesDaemon.dll /rpc
可启动一个带RPC服务器的共识节点
- 系统要求
- CPU: 2核
- 内存: 4G
- 带宽: 5M
- 操作系统:
AntSharesCore-GUI | AntSharesCore-CLI | |
---|---|---|
Ubuntu 14.04 | ✅ | |
Ubuntu 16.04 | ✅ | |
CentOS 7.1 | ✅ | |
Red Hat 7.1 | ✅ |
- Linux部署说明
目前共识节点程序由C#编写,因此其需要在合适的运行环境下才能运行在linux操作系统上。因此,部署主要分为两步
- 完成 .Net Core运行环境的搭建
- 共识节点部署
- 运行环境搭建方法请参考 .Net Core
- Ubuntu 14.04
sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
sudo apt-get update
sudo apt-get install dotnet-dev-1.0.0-preview2-003131
- Ubuntu 16.04
sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
sudo apt-get update
sudo apt-get install dotnet-dev-1.0.0-preview2-003131
- CentOS 7.1
sudo yum install libunwind libicu
curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=827529
sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
sudo ln -s /opt/dotnet/dotnet /usr/local/bin
- RedHat Enterprise Linux 7 Server
subscription-manager repos --enable=rhel-7-server-dotnet-rpms
yum installQ scl-utils
yum install rh-dotnetcore10
scl enable rh-dotnetcore10 bash
- 如果安装成功,则可以通过运行以下命令来检测dotnet core环境是否安装成功
mkdir hwapp
cd hwapp
dotnet new
dotnet restore
dotnet run
- 共识节点部署
- 下载最新的节点文件 AntSharesCore-CLI
- 将程序包复制到目标服务器
- 开放防火墙端口:10332,10333,20332,20333
- 运行 AntSharesDaemon.dll 启动服务
dotnet AntSharesDaemon.dll
可启动一个共识节点
dotnet AntSharesDaemon.dll /rpc
可启动一个带RPC服务器的共识节点
- docker 安装请参考网页:
https://www.docker.com/products/overview
- 下载docker二进制程序安装包
curl -fsSLO https://get.daocloud.io/docker/builds/Linux/x86_64/docker-1.12.1.tgz
- 安装docker
sudo tar --strip-components=1 -xvzf docker-1.12.1.tgz -C /usr/local/bin
- 用daemon模式启动docker
/usr/local/bin/dockerd
如果报错:"Your kernel does not support cgroup memory limit",是因为cgroup没有在宿主机上挂载,编辑 /etc/fstab,增加一行"none /sys/fs/cgroup cgroup defaults 0 0"
- 加载 antsharesdaemon 镜像文件,带dotnet运行环境(请从官网云盘下载:https://pan.baidu.com/s/1jI0TIJW#list/path=%2FDocker )
sudo docker load < docker_image_antsharesdaemon.tar
- 运行 antshares/antsharesdaemon 镜像
sudo docker run -it -p 10332:10332 -p 10333:10333 antshares/antsharesdaemon
其中-p为端口映射指令,10333为共识节点端口,10332为RPC服务端口,可在镜像中config.json与protocol.json文件里对端口进行修改。可在系统中使用指令"sudo docker port $CONTAINERID"查看端口映射情况。
-
进入目录 /home/antshares/AntSharesDaemon
-
编辑配置文件 config.json,DataDirectoryPath表示区块数据存储目录,NodePort表示客户端端口号
-
编辑配置文件 protocol.json,Magic表示协议标识,CoinVersion用于控制地址的第一个字母,StandbyMiners表示默认共识人公钥列表,SeedList代表种子结点列表
-
通过 dotnet 开启共识结点,并打开 rpc 服务
dotnet AntSharesDaemon.dll /rpc
(如果报错 KeyNotFoundException,很有可能是修改配置前已经运行过一次Miner结点了,解决的方法是将/Miner目录下的/Chain目录删除后再运行)