达世币 P2Pool节点架设

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

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

以下部分描述了为达世币设置运行P2Pool的Ubuntu 服务器的步骤。已经用Ubuntu 16.04 LTS和18.04 LTS和达世币 0.12.2.3对P2Pool进行了测试。虽然我们将作出合理的努力来保持它的更新,但应该可以稍微修改说明,以在需要时支持不同的版本或操作系统。

设置主机服务器

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需要运行一个全达世币节点来获取区块和交易数据。若要下载和安装达世币,请访问您计算机上的 https://www.dash.org/wallets 以找到最新版本的Dash Core钱包的链接。单击Linux,然后右键单击Dash Core Linux 64 Bit下载TGZ,并选择复制链接地址。返回到您的终端窗口并输入以下命令,右键单击或按下Ctrl + V将地址粘贴到Dash Core的最新版本:

cd ~
wget https://github.com/dashpay/dash/releases/download/v0.12.2.3/dashcore-0.12.2.3-linux64.tar.gz

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

sha256sum dashcore-0.12.2.3-linux64.tar.gz
../_images/setup-manual-download.png

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

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

mkdir .dashcore
tar xfvz dashcore-0.12.2.3-linux64.tar.gz
cp dashcore-0.12.2/bin/dashd .dashcore/
cp dashcore-0.12.2/bin/dash-cli .dashcore/
chmod 777 .dashcore/dash*

清理不需要的文件:

rm dashcore-0.12.2.3-linux64.tar.gz
rm -r dashcore-0.12.2/

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

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
sudo apt install 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/johndoe75/p2pool-node-status status
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的示例配置