P2Pool Node Setup

本指南描述如何架设达世币P2Pool节点来管理矿池。与集中式矿池不同,P2Pool以与达世币相同的peer-2-peer(点对点)模式为基础,使矿池作为一个整体高度抵抗恶意攻击,并维持和保护达世币的去中心化性质。当您启动P2Pool节点时,它会与其他P2Pool节点(也被称为对等节点)的去中心化网络查找、连接和共享数据。P2Pool节点共享一个表示价值的加密数据链,类似于达世币的区块链。P2Pool版本被称为共享链。这种挖矿模式的去中心化和公平性意味着人们强烈鼓励使用P2Pool进行挖矿。达世币的P2Pool使用在GitHub上的p2pool-dash软件,它是比特币p2pool的分叉。有关更多信息,请参阅此处.

由于P2Pool在共享链上管理难度调整的方式,重要的是保持矿工和P2Pool节点之间的低延迟,以避免矿工提交算力太晚而无法进入共享链。在设置您的节点时,相对于您打算连接到该节点的矿工,您需要考虑其物理和网络位置。如果您经营一个矿场,您的P2Pool节点可能是与您的矿工相同的本地网络上的物理机器。如果您计划运营一个公共节点,最好将您的P2Pool节点设置为具有高速连接的数据中心的虚拟机,以便地理位置相近的矿工能够以相对较低的延迟挖到您的矿池。

This following section describes the steps to setup an Ubuntu Server running P2Pool for Dash. It has been tested with Ubuntu 18.04 LTS and Dash 0.13.1.0. While a reasonable effort will be made to keep it up to date, it should be possible to modify the instructions slightly to support different versions or operating systems as necessary.

设置主机服务器

https://www.ubuntu.com/download/server 下载Ubuntu Server LTS的副本,并按照 这里 描述的步骤在您的系统上对其进行安装。如果您正在使用如Vultr或AWS的VPS,则您的提供程序很可能在供应期间提供安装此系统的选项。确保您在设置期间启用OpenSSH服务器,以便您可以从远程控制台控制您的服务器。在您访问了您的服务器之后,创建一个新的非root用户,如果您尚未使用以下命令创建新的非root用户,请用您选择的用户名替换<username>

adduser <username>

您将被提示输入密码。输入并确认使用新的密码 (与root密码不同),并将其存储在安全的地方。您还将看到有关用户信息的提示,但此提示可以保留为空白。一旦用户被创建,我们将把它们添加到sudo组中,这样它们就可以root用户的身份执行命令:

usermod -aG sudo <username>

重新启动您的服务器并以新用户的身份登录。此时如果您还没有进行远程连接,建议使用PuTTY(Windows版本)或ssh(Linux和MacOS版本)进行远程连接。

设置端口转发

如果您使用的是路由器后面的专用网络,则您需要至少为端口8999 (UDP/TCP) 设置端口转发以访问共享链,如果您需要您的节点被公众访问,则您需要为端口7903 (UDP/TCP) 设置端口转发。这如何操作取决于您的特定网络路由器,因此超出了本文档的范围。来自流行的DD-WRT开放源码路由器发行版本的示例如下所示。关于设置端口转发的指南可以在这里这里找到。

从您的路由器管理接口或通过访问 https://www.whatismyip.com 来记录您的IP地址。

../_images/p2pool-ddwrt.png

在DD-WRT下设置端口转发

选项1:自动脚本设置

Dash社区成员 dracocephalum 慷慨地捐赠了一个脚本,用于在Ubuntu Server 16.04及更高版本下自动部署运行 p2pool-达世币节点所需的所有内容。有关更多的详细信息,请参阅 论坛的帖子,或者只需按照这些说明来获得脚本。要获取脚本并开始运行,请键入:

sudo apt install git
git clone https://github.com/strophy/p2pool-dash-deploy

这些文件将被创建在 p2pool-dash-deploy文件夹中。现在我们需要配置一些特定于您的系统的变量:

nano ./p2pool-dash-deploy/p2pool.deploy.sh

向下滚动到标记为 #Variables 的部分,并输入以下信息,替换 = 符号后面的 <xxx> 占位符。请注意,如果 DASH_WALLET_URLDASH_WALLET_ZIP 和``DASH_WALLET_LOCAL``与达世币的当前版本不匹配,则可能还需要对它们进行更新:

  • PUBLIC_IP = your public IP address from the previous step
  • EMAIL = your email address
  • PAYOUT_ADDRESS = your DASH wallet address to receive fees
  • USER_NAME = linux user name
  • RPCUSER = enter a random alphanumeric rpc user name
  • RPCPASSWORD = enter a random alphanumeric rpc password

Ctrl + X 关闭编辑器,并按 YEnter 保存该文件。然后运行脚本:

bash ./p2pool-dash-deploy/p2pool.deploy.sh

该脚本将执行在Ubuntu服务器上设置P2pool和启动dashd同步所需的所有步骤。当安装完成后,您应该会看到一条消息显示 安装已完成 。您现在可以运行第二个脚本来启动 p2pool-dash:

bash ~/p2pool.start.sh

您的P2Pool节点现在正在运行。如果您看到与 从dashd获取工作时出错-10 Dash Core正在下载区块 类似的错误,则您必须等待直到达世币完成同步。达世币同步完成后,您可以将您的矿工指向 <ip_address>:7903 以开始挖矿。

../_images/p2pool-antminer.png
../_images/p2pool-running.png

显示在本地网络上连接到p2pool-达世币节点的单个Bitmain Antminer D3的示例配置

选项2:手动设置

首先按以下方式更新您的操作系统:

sudo apt update
sudo apt upgrade

设置dashd

P2Pool requires a full Dash node to be running to get block and transaction data. To download and install Dash, visit https://www.dash.org/downloads on your computer to find the link to the latest Dash Core wallet. Click Linux, then right-click on Download TGZ for Dash Core x64 and select Copy link address. Go back to your terminal window and enter the following command, pasting in the address to the latest version of Dash Core by right clicking or pressing Ctrl + V:

cd ~
wget https://github.com/dashpay/dash/releases/download/v0.16.0.1/dashcore-0.16.0.1-x86_64-linux-gnu.tar.gz

通过运行以下命令,并将输出与诸如 Hash 文件 下达世币网站所示的该文件的值进行比较来验证您下载的完整性:

sha256sum dashcore-0.16.0.1-x86_64-linux-gnu.tar.gz
../_images/setup-manual-download.png

链接到Hash文件以验证下载完整性

为达世币创建一个工作目录,解压压缩的归档文件,将必要的文件复制到目录中,并将它们设置为可执行文件:

mkdir .dashcore
tar xfvz dashcore-0.16.0.1-x86_64-linux-gnu.tar.gz
cp dashcore-0.16.0/bin/dashd .dashcore/
cp dashcore-0.16.0/bin/dash-cli .dashcore/

清理不需要的文件:

rm dashcore-0.16.0.1-x86_64-linux-gnu.tar.gz
rm -r dashcore-0.16.0/

使用以下命令创建配置文件:

nano ~/.dashcore/dash.conf

一个编辑器窗口将会出现。现在我们需要指定几个变量来创建一个配置文件。复制并粘贴以下文本以开始创建,然后按如下所示替换您配置中的具体变量:

#----
rpcuser=XXXXXXXXXXXXX
rpcpassword=XXXXXXXXXXXXXXXXXXXXXXXXXXXX
rpcallowip=127.0.0.1
#----
listen=1
server=1
daemon=1
maxconnections=64
#----

按如下所示替换标记为 XXXXXXX 的字段:

  • rpcuser: 输入任何数字或字母字符串,不允许有特殊字符
  • rpcpassword: 输入任何数字或字母字符串,不允许有特殊字符

结果应该是这样的:

../_images/p2pool-dash-conf.png

在P2Pool节点上的 dash.conf 中输入密钥数据

Ctrl + X 以关闭编辑器,并按 YEnter 保存该文件。您现在可以开始在主节点上运行达世币,以便开始与区块链同步:

~/.dashcore/dashd

您将看到一条消息显示 Dash Core服务器启动 。您可以继续执行以下步骤,并使用以下命令定期检查同步状况。当 区块 的数量等于达世币区块链中的当前区块数量时,同步完成,从任何同步的达世币钱包或 区块浏览器中可以看到这一过程:

~/.dashcore/dash-cli getblockcount

设置 P2Pool

我们现在将设置P2Pool软件及其依赖项。从依赖项开始:

sudo apt install python-zope.interface python-twisted python-twisted-web python-dev gcc g++ git

创建工作目录并设置p2pool-dash:

mkdir git
cd git
git clone https://github.com/dashpay/p2pool-dash
cd p2pool-dash
git submodule init
git submodule update
cd dash_hash
python setup.py install --user

我们将向控制面板添加一些可选的额外接口:

cd ..
mv web-static web-static.old
git clone https://github.com/justino/p2pool-ui-punchy web-static
mv web-static.old web-static/legacy
cd web-static
git clone https://github.com/hardcpp/P2PoolExtendedFrontEnd ext

您现在可以启动p2pool,并按以下方式选择性地指定支付地址、外部IP(如有必要)、费用和捐款:

python ~/git/p2pool-dash/run_p2pool.py --external-ip <public_ip> -f <fee> --give-author <donation> -a <payout_address>

然后,您可以通过浏览到以下地址来检测您的节点,用您P2Pool节点的IP地址替换 <ip_address> :

../_images/p2pool-antminer.png
../_images/p2pool-running.png

显示在本地网络上连接到p2pool-达世币节点的单个Bitmain Antminer D3的示例配置