本教程说明了如何安装和运行Ergo全节点,不涵盖挖矿。
Windows用户还可以观看视频教程。
如何在Windows上设置和配置Ergo全节点
视频链接:https://www.youtube.com/watch?v=fpEDJ1CM6ns
这里是节点使用的一些重要方面,您的钱包及代币是否安全将取决于这些方面:
- Ergo节点需要在配置文件中存储安全关键参数。切勿公开此文件。
- Ergo节点提供一个REST API,用于与内置钱包进行交互。敏感的API方法需要安全令牌,切勿通过不受信任渠道发送该令牌。
- 须将Ergo REST API的访问权限限于已知主机。特别是,不得从Internet访问该API。
前提条件
如要运行Ergo节点,您需要在系统上安装JDK/JRE version >= 9。我们建议使用版本9或11。做到这一点的一种方法是安装Oracle Java SE。
请注意,不再支持Oracle JDK/JRE <= 8。
下一步是下载最新的Ergo客户端(Ergo client release)jar文件并创建节点配置文件。
请注意,您可以通过发出sbt assembly命令,使用SBT克隆存储库并根据源代码编译jar,而不是下载预编译好的Ergo jar。
创建一个专用文件夹(例如~/ergo)以运行该节点。用ergo_folder表示保存jar的文件夹。
使用ergo_folder中的以下文本创建配置文件ergo.conf。
ergo { node { mining = false } }
打开命令提示符并cd到ergo_folder。然后发出以下命令来首次运行节点:
java -jar ergo-<release>.jar --mainnet -c ergo.conf
此后,节点将立即开始同步。等待几分钟,以启动API,然后继续下一步。
**注意:**此文件可使用任何名称,而非ergo.conf
。所有配置参数都将通过此文件传递,您只需要重写您想要从默认值开始修改的参数即可。上面的配置文件实际上具有默认值。
计算您密语的哈希
首先,选择一个密语来保护您的API。然后转到http://127.0.0.1:9053/swagger#/utils/hashBlake2b并调用API以计算您密语的哈希。请参考下图:
复制包含哈希的响应,以用于下一步(请参见下图)。在我们的示例中,密语(Secret)是hello
,其哈希对应于324dcf027dd4a30a932c441f365a25e86b173defa4b8e58948253471b81b72cf
。
重要提示 您须将此密语更为其他安全性强的密语。
编辑配置文件ergo.conf并粘贴上一步中复制的哈希。该文件应如下所示:
ergo { node { mining = false } }
scorex { restApi { # Hex-encoded Blake2b256 hash of an API key. # Should be 64-chars long Base16 string. # below is the hash of the string 'hello' # replace with your actual hash apiKeyHash = "324dcf027dd4a30a932c441f365a25e86b173defa4b8e58948253471b81b72cf" } }
重新启动节点,然后转到http://127.0.0.1:9053/panel以访问面板。然后设置上一步中的API密钥密语。请注意,您需要设置密语,而不是配置文件中的哈希。在我们的示例中,这是字符串hello。
点击初始化钱包(Initialize wallet)。弹出窗口打开后,有两种方式可继续,根据您的情况而定。
如果这是您第一次运行该节点,则需要使用新的助记词对节点进行初始化。
如果您之前已创建一个钱包且想获得相同的地址(可能是因为此钱包中存储了资金),那么您须使用之前保存的助记词来恢复该钱包。
请根据您的具体情况执行以下步骤之一。
从头开始初始化钱包
在打开的弹出窗口中,您须输入钱包密码。助记密码是可选的。单击发送后,钱包将返回助记词,如下所示。
您须誊写这些助记词并将其保存在安全的地方。在另一台电脑上恢复钱包时需用到这些助记词。
用**先前数据恢复钱包**
复制先前数据中的助记词并将其粘贴到“Restore-wallet (恢复钱包)”表单的“Mnemonic(助记词)”字段中。输入安全的钱包密码。将助记密码保留为空(仅适用于高级用户)。请参考下图。
利用助记词成功恢复钱包后,您将看到确认信息,如下图所示。
此举旨在测试确保您正确设置了节点。它将返回钱包中的当前地址。在 http://127.0.0.1:9053/panel的面板中,单击左侧的“Wallet(钱包)
”选项卡,然后在“Get all wallet addresses(获取所有钱包地址
)”上单击以查看该钱包当前维护的地址。如果节点设置正确,它应该至少返回一个地址。
检查节点是否已同步
节点正在同步时,面板将显示“Active synchronization(同步活跃)”(请参见下图)。
节点完全同步后,上述文字会变为“Node is synced(节点已同步)”,如下所示。
发送资金
如果余额不为零,则可以使用面板将ERG发送到任何其他地址,如下所示:
**查看Swagger用户**界面
可以在http://127.0.0.1:9053/swagger中找到Swagger用户界面。您之前已经使用它来计算密语的哈希。您还可以使用此用户界面对面板中尚不可用的高级操作进行API调用。例如:
- 使用寄存器和上下文变量创建非标准交易。
- 创建发出代币的交易。
- 创建使用某些币盒作为输入的交易。
以后的文章将详细介绍上述每项操作。
请注意,API中的大多数方法都是受保护的,您将需要使用您的密语(从先前数据获得)来访问这些方法。在Swagger用户界面中设置此密语的过程如下图所示。
输入密码并单击“Authorize(授权)”后,将显示以下弹出窗口:
现在,在您输入密码的同一选项卡中导航至http://127.0.0.1:9053/swagger#/wallet/walletAddresses,然后单击“Try it out(试用)”。您应该会看到您先前在面板中看到的同一地址列表。
英文原版(可能会有更新):
https://github.com/ergoplatform/ergo/wiki/Set-up-a-full-node