我们的最新版本 Diablerets 现已可供测试!本教程将引导您了解如何安装和运行节点,并进行一些基本命令。如果您有任何问题,请随时在我们的 Telegram 群组中询问我们。
免责声明:这是一个初期版本,我们不能保证资金的安全。目前没有运行节点的奖励。因此,请仅添加测试所需的最少资金(最多 1xDAI 和 10wxHOPR)。
您将学到什么?
本教程将引导您了解如何:
- 在您的计算机上安装和使用 HOPRd
- 使用 xDai 和 HOPR 为您的节点提供资金
- 从您的节点中提取 xDai 并将它们发送到另一个节点
- 和同伴发送接受匿名消息来沟通
- 打开、资助和关闭沟通渠道
- 赚取和兑换小票并将其转换为 HOPR 代币
- 运行两个节点并使用这些节点进行通信
- 打开频道并将消息发送到公共节点
即使您之前曾运行过节点,我们也建议您按照以下所有说明进行操作,因为自上次运行节点以来,情况可能发生了很大变化。
安装
使用 HOPR 网络前,您需要安装一个 HOPR 节点。您可以直接在您的设备上或使用虚拟专用服务器 (VPS) 执行此操作。
您的节点采用 node.js 进程形式来实施HOPR协议。这被称为 hoprd。
重要提示:HOPR 节点目前可在 MacOS、Linux 和 AVADO 上运行。Windows 兼容将在未来版本中重新添加。
Linux
- 使用以下命令更新您的 Linux 操作系统,使其具有最新的软件包:
sudo apt-get update
- 安装 gcc,g++,make 运行节点所需的编译包:
sudo apt install gcc g++ make
Mac OS X
- 确保您有XCode命令行实用程序:
xcode-select --install
- 检查您是否有 Homebrew,OSX 包管理器,如果还没有安装,请安装。
安装hoprd
安装hoprd有几种方法。与一些涉及下载二进制文件的初期版本不同,HOPR Diablerets 的所有安装都通过您的终端进行。在终端中输入下面给出的命令后,您将通过浏览器访问您的 HOPR 节点。
NPM
首先您需要安装 NVM。请按照这些步骤以安装NVM。安装 NVM 后,请使用以下命令检查它是否已正确安装
nvm ls
现在您可以通过运行以下命令来安装 node.js v14:
nvm install v14
安装后,通过运行以下命令使 v14 成为默认值:
nvm use v14
重要提示:请暂时只使用 node.js v14。目前不支持其他版本。如果您是 MacOS M1 用户,请务必遵循这些 nvm 说明。
要安装节点,请输入以下命令:
mkdir MY_NEW_HOPR_TEST_FOLDER
cd MY_NEW_HOPR_TEST_FOLDER
npm install @hoprnet/hoprd@1.72
您的节点即将安装。这可能需要几分钟的时间。
如果安装失败,请运行以下命令并重试:
npm install --unsafe-perm=true @hoprnet/hoprd@1.72
安装节点后,运行以下命令:
DEBUG=hopr* npx hoprd --init --admin --host=0.0.0.0:9092 --adminPort=3000 --password='' --identity=./alice-identity --data=./alice-db
Docker
要使用 Docker 安装节点,首先需要在您的机器上安装 Docker(如果您还没有安装过)。要安装 Docker,请按照这些步骤操作。
现在您应该下载 hoprd 图片并按如下方式运行它:
docker pull gcr.io/hoprassociation/hoprd
docker run --pull always -ti -v $HOME/.hoprd-db-alice:/app/db -p 9091:9091 -p 3000:3000 gcr.io/hoprassociation/hoprd:latest-kiautschou --identity /app/db/.hopr-identity --password switzerland --init --announce --host "0.0.0.0:9091" --admin --adminHost 0.0.0.0 --adminPort 3000
AVADO
您可以在您的 AVADO 盒子上运行 HOPR Diablerets 版本。
重要提示:在安装新版 HOPR 节点之前,请将您节点上的所有资金提取到您的个人 ERC20 钱包中,否则您的资金将丢失!如果您在提取资金时遇到问题,请联系社区支持。
安装过程:当您连接到 AVADO 网络或通过 VPN 时,请转到这个链接。然后将显示一个新的包版本。只需单击安装按钮并等待您看到成功消息。安装可能要花点时间。
测试您的节点
如果您已经达到这一步,您的计算机上就会运行一个 HOPR 节点。恭喜!现在让我们开始测试。
您可以通过浏览器访问您的节点。前往 http://localhost:3000/ 查看。
不幸的是,您现在将看到如下所示的错误消息:
那是因为在我们可以使用节点之前,您需要为其提供资金。HOPR 节点需要两种资金:HOPR 代币和运行 HOPR 的链的原生代币。在这种情况下,代币是 wxHOPR 和 xDAI。
您可以在警告消息中看到您节点的 xDAI 地址。这个是您节点独一的地址,您需要向此地址发送资金。
通常我们会告诉人们按照这些步骤在他们的地址上接收 xDai 代币,但对于这个版本,我们正在资助节点,以便您测试我们的协议。
请通过向我们发送您的节点地址来向我们的 Telegram 群组索取资金,您将很快收到资金。
一旦您的节点收到 xDAI 和 wxHOPR 代币,您就可以使用 hoprd。从现在开始,在浏览器中继续操作,但保持终端运行。
要获取所有可用命令的列表,请键入 help。您可以尝试并测试所有命令,但如果您想要更结构化的体验,我们提供了您可以在 HOPRD 测试表中尝试的命令列表。
此版本中的一个新功能是身份功能,它允许您将不同的身份分配给不同的节点(不要将此与“别名”功能混淆,“别名”是一种使管理节点地址更容易的方法——“身份”是一个完全独立的节点)。
您可以通过从同一设备运行两个节点并在它们之间发送消息来尝试这一点。
高级任务:玩捉迷藏
Alice和Bob决定互相隐藏并继续互相发送匿名消息。要玩此游戏,您需要在计算机上运行两个本地节点。第一个节点将被称为 Alice,第二个将被称为 Bob。
您需要使用两个不同的终端/cmd 客户端并为每个节点分配不同的端口。下面我们将使用端口 3000 和 3010。在开始之前请先关闭当前正在运行的节点。
遗憾的是,AVADO 用户将无法仅在他们的 AVADO 盒子上执行此部分。如果您使用 AVADO,您可以继续使用该节点作为 Alice,并使用上述安装方法之一设置第二个节点作为 Bob。
NPM
如果您通过NPM安装:
Alice的节点:
DEBUG=hopr* npx hoprd --init --admin --host=0.0.0.0:9092 --adminPort=3000 --password='' --identity=./alice-identity --data=./alice-db
Bob的节点:
DEBUG=hopr* npx hoprd --init --admin --host=0.0.0.0:9093 --adminPort=3010 --password='' --identity=./bob-identity --data=./bob-db
##Docker
如果您通过Docker安装,请使用以下命令:
Alice的节点:
docker run --pull always -ti -v $HOME/.hoprd-db-alice:/app/db -p 9091:9091 -p 3000:3000 gcr.io/hoprassociation/hoprd:latest-kiautschou --identity /app/db/.hopr-identity --password switzerland --init --announce --host "0.0.0.0:9091" --admin --adminHost 0.0.0.0 --adminPort 3000
Bob的节点:
docker run --pull always -ti -v $HOME/.hoprd-db-bob:/app/db -p 9092:9092 -p 3010:3010 gcr.io/hoprassociation/hoprd:latest-kiautschou --identity /app/db/.hopr-identity --password switzerland --init --announce --host "0.0.0.0:9092" --admin --adminHost 0.0.0.0 --adminPort 3010
VPS 用户
如果您在 VPS 上运行您的节点,请确保您已使用端口转发功能登录到您的服务器。这将使您以相同的服务器用户身份登录并拥有两个正在运行的节点。
第一个终端/cmd客户端:
ssh -L 3000:127.0.0.1:3000 <root or username>@<Your_server_ip>
第二个终端/cmd客户端:
ssh -L 3010:127.0.0.1:3010 <root or username>@<Your_server_ip>
现在您的两个节点都在运行,您可以开始玩了。您将学习如何通过另一个节点发送消息并观看该节点获得的小票,您可以用其兑换 HOPR代币。
首先在不同的选项卡中打开 http://localhost:3000/ 和 http://localhost:3010/ 以访问两个节点。Alice 节点将是您之前设置的节点,但 Bob 节点是新的,具有新地址,需要向其先提供资金。
使用提取命令,将 xDAI 从您的第一个节点(Alice)提取到第二个节点(Bob)。您可能无法以相同的方式取回 HOPR(这是我们正在调查的已知bug),但这并不重要。只有 Alice 需要 HOPR 来处理接下来的事情。
在两个节点都获得资金后,您现在可以打开、关闭频道和发送消息。
- 首先为每个节点设置别名。设置别名可以更轻松地与其他节点交互,而不是每次都使用它们的完整 HOPR 地址。
要查找节点的 HOPR 地址,请使用命令 address 在每个节点中查看他们的 xDai 和 HOPR 地址。
现在使用以下命令为 Alice 的节点中的 Bob 设置别名,反之亦然:
Alice的命令
alias [Bob的HOPR地址] Bob
Bob的命令
alias [Alice的HOPR地址] Alice
- Alice 现在可以按如下方式向 Bob 发送消息:
send ,Bob nihao
重要的是不要忘记逗号“,” 否则将不会成功发送消息并且您会收到错误消息。
Bob 的节点将收到消息“您好”,但不会显示发送者的身份。HOPR 允许完全匿名,因此这是一项功能,而不是bug!
不过,总的来说如果我们发送消息的人知道他们在和谁说话,还是很有用的。Alice 可以通过更改她的设置让 Bob 知道她的身份:
settings includeRecipient true
完成此操作后,尝试从 Alice 向 Bob 发送另一条消息,您将看到该消息将被识别为来自 Alice 的节点。
- 现在,使用 Alice 的节点与 Bob 建立一个频道,并使用以下命令为该频道提供一些 HOPR:
open Bob 0.01
资助频道所需的最低金额为 0.1 HOPR。这基本上是 1 张小票的支出。但是,我们通常建议为频道提供足够支付几张小票的HOPR。
打开频道需要与区块链上的智能合约进行交互,因此您需要等待一段时间才能打开频道。等交互成功后,您会看到一条消息“已成功打开频道”。
- 您现在可以通过在两个节点中写入命令 channels 来验证此频道是否存在并已打开。channels 命令中显示所有当前打开的频道。例如 :
Channel: 0xa0b92e6d400f556c2139661e799ccc867da28ce079c382388086882806e34dd8
CounterParty: Z35Qj
Status: OPEN
Total Balance: 0.01 HOPR
My Balance: 0.01 HOPR
这意味着 Alice 与节点 Z35Qj 有一个开放的频道。频道已打开,其中可用余额为 0.01 HOPR。Alice 的余额是一样的,因为她是这个渠道的资金来源。
在 Bob 这边,您会看到类似的消息显示。但是这里 Bob 的余额将等于 0,因为他没有为频道提供资金。
Alice 现在可以使用 Bob 作为中继节点向自己发送消息。这将使他获得小票,然后可以将其兑换为 HOPR 代币。
- 首先在 Bob 的节点中验证 Bob 是否有任何小票。您会看到类似这样的:
admin > tickets
finding information about tickets…
Tickets:
- Pending: 0
- Unredeemed: 0
- Unredeemed Value: 0 HOPR
- Redeemed: 0
- Redeemed Value: 0 HOPR
- Losing Tickets: 0
- Win Proportion: 0%
- 在 Alice 的节点中,通过 Bob 的节点使用以下命令向您自己发送消息(Alice,由默认别名“我”表示,它始终标识您自己的节点):
send Bob,me nihao
现在再次使用命令 tickets ,您应该看到未兑换的小票从 0 变为 1。
- 您现在可以使用 Bob 的节点来兑换他赚到的小票,或者他可以继续充当中继者,赚取更多小票并一次性全部兑现。您可以继续这样做,重复上一步,直到 Alice 用完 HOPR 来支付消息费用。当您决定兑换时,请在 Bob 的节点中使用命令 兑换票 来执行此操作。
还记得 Bob 在这个频道有多少余额吗? 0
兑换小票后再次输入命令 channels ,您会看到Bob在频道中的余额增加了。
- 是时候和 Alice 说再见并关闭这个频道了。要关闭它,请使用 Bob 的节点并键入:
close Alice
等待几分钟,然后再次调用相同的操作,频道将完全关闭。
在此冷静期内,请务必兑换 Bob 节点获得的所有小票,因为通道关闭后,将无法进行兑换。
想继续玩吗?
使用身份是测试新功能和在单个设备上运行测试的好方法。但是您也可以向其他用户发送消息!您可以使用命令 peers (同伴) 找到可以打开通道的所有公开可用对等点的列表。
选择其中一位同伴,最好是质量为1的,然后使用 ping (叮一下) [同伴的HOPR地址]以查他们是否在线。
在检查对方是否在线后,您现在可以按照与 Alice 和 Bob 之间相同的步骤进行操作。
感谢您的参与,我们希望您有一个有趣的体验并了解更多关于 HOPR 协议的信息。您现在可以骄傲地称自己为 HOPRd 的用户了。
敬上,
HOPR团队
请跟进 HOPR 协议的进展、我们的演示、我们的文章等等!
网址: https://www.hoprnet.org
推特: https://twitter.com/hoprnet
电报: https://t.me/HOPRChinese
论坛: http://forum.hoprnet.org