Skip to content

共识节点

Tom Mo edited this page Sep 11, 2017 · 3 revisions

NEO的全节点有两个客户端,一个是 AntSharesCore-CLI(为开发者提供的命令行客户端),一个是 AntSharesCore-GUI(为高级用户提供的图形界面的客户端)

部署共识节点用的是 AntSharesCore-CLI

NEO区块链共识节点在 Windows Server 中部署

  1. 系统要求
  • CPU: 2核
  • 内存: 4G
  • 带宽: 5M
  • 操作系统:
AntSharesCore-GUI AntSharesCore-CLI
Windows 7 SP1 x64
Windows Server 2008 R2 SP1
  1. 运行环境
  1. 安装步骤
  • 编译 AntSharesCore 项目中的 AntSharesCore-CLI,或直接在Github上下载 AntSharesCore-CLI 程序包
  • 将 AntSharesCore-CLI 程序包复制到目标服务器
  • 开放防火墙端口:10332,10333,20332,20333
  • 运行 AntSharesDaemon.dll 启动服务
    dotnet AntSharesDaemon.dll 可启动一个共识节点
    dotnet AntSharesDaemon.dll /rpc 可启动一个带RPC服务器的共识节点

NEO区块链共识节点在 Linux 中部署

  1. 系统要求
  • CPU: 2核
  • 内存: 4G
  • 带宽: 5M
  • 操作系统:
AntSharesCore-GUI AntSharesCore-CLI
Ubuntu 14.04
Ubuntu 16.04
CentOS 7.1
Red Hat 7.1
  1. Linux部署说明
    目前共识节点程序由C#编写,因此其需要在合适的运行环境下才能运行在linux操作系统上。因此,部署主要分为两步
  • 完成 .Net Core运行环境的搭建
  • 共识节点部署
  1. 运行环境搭建方法请参考 .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
  1. 共识节点部署
  • 下载最新的节点文件 AntSharesCore-CLI
  • 将程序包复制到目标服务器
  • 开放防火墙端口:10332,10333,20332,20333
  • 运行 AntSharesDaemon.dll 启动服务
    dotnet AntSharesDaemon.dll 可启动一个共识节点
    dotnet AntSharesDaemon.dll /rpc 可启动一个带RPC服务器的共识节点

NEO区块链共识结点Docker部署

  • 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"

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目录删除后再运行)