如何创建跟设置Ergo全节点

author img

Ilya Oskin

2019.03.17

blog photo

节点安全性

为保证您的钱包和资产的安全,请格外注意以下几个节点使用中的注意事项:

  • Ergo节点要求在设置文件中存储一定的关键安全参数,因此,切勿泄露您的设置文件。
  • Ergo节点已为内置钱包的交互提供了REST API(变现层状态转移编程接口)。灵敏API手段需要安全的通证,切勿采取非信任的渠道发送通证。

节点环境设置

您需要安装至少JRE 8.0 版本来运行Ergo节点。安装方法之一是通过Oracle执行的Java

设置Ergo节点

当运行环境设置完备,您就可以下载最新版的Ergo客户端(Ergo client release)创建一个设置文件了。至于jar包,不需要单独下载,您只需要用SBT通过sbt assembly指令来克隆一份资源库,就可创建您自己的jar包

所有的设置参数都可以在默认设置文件((default configuration file](https://github.com/ergoplatform/ergo/blob/master/src/main/resources/reference.conf))中找到。在您的设置文件基础上,您只需重写您在默认值基础上想要进行改动的参数即可。比如,在该设置文件样本(sampleconfiguration file)中您可以查看最新的测试网,里面只包含了一些重要的参数。请注意,在这个样本文件中,您必须去除以下几行指令:

testMnemonic = ...
testKeysQty = ...

现在,我们来运行下面几个重要步骤:

、设置一个API密钥:

设置API端口密钥。要想设置钱包,您需要先通过节点设置文件来设置apiKeyHash参数,参见此处。文件中要编辑替换:

javascript scorex.restApi.apiKeyHash = "replace_this_with_your_unique_api_key_hash"

替换值是在运行您的API请求时生成的密码字符,是一串hex加密Blake2b256哈希数值。您可以使用这个脚本或任意其他脚本来计算blake2b哈希值。密码字符应该是一串随机字符,请务必保管妥善,切勿发给任何非信任方。 这个REST API终端也提供了一个(不受保护的)哈希计算办法:

/utils/hashBlake2b

初始化钱包:

这里就用到了前一个步骤提及的API端口密钥。第一次运行节点时,需要先通过REST API对钱包进行初始化,有两个办法可以做到:

  • 从头初始化(节点会生成一个种子文件):向/wallet/init发送一个包含数据body: {"pass": "123", "mnemonicPass": "abc"}的POST请求(提示:别忘了保存下来助记词,节点响应要用到。请求中的mnemonicPass参数是可选项,它用来保护助记词)

  • 从已有种子文件恢复钱包:该方法需要您提供助记词。向/wallet/restore发送一个包含数据body: {"pass": "123", "mnemonic": "abandon abandon ...", "mnemonicPass": “abc”}的POST请求(提示:mnemonicPass部分只有在您的助记词有额外密码保护的情况下才用得到)。

解锁钱包:

钱包初始化之后,向/wallet/unlock发送一个包含数据body: {"pass": “123”}的POST请求(提示:使用您在初始阶段用的密码)

更多关于钱包的细节描述,请查看此处

运行Ergo节点

ergo-assembly-<version>.jar二进制和ergo.conf设置文件运行节点:

$ java -jar ergo-assembly-<version>.jar ergo.conf

为确保节点在运行,在浏览器里打开127.0.0.1:9052/info这里会显示关于节点的相关信息。

使用REST API

节点会提供REST API(相关描述) 您可以用Swagger来完成API请求,访问127.0.0.1:9052/swagger。API完整说明可以在这里找到。要接入受保护的API端口路径,需把您在前面步骤创建的密码字符,输入到[api_key, Content-Type]部分,或者点Swagger里的Authorize按键然后键入您的密码字符。

关闭控制端打印Console Printing

默认情况下,Ergo节点会打印大量排错信息,这个功能可以关闭,在src/main/resources里编辑logback.xml,然后重新编译(或直接在jar包里编辑XML文件)。编辑以下指令:

<root level="WARN"> <!-- other options are TRACE, ERROR -->   
  <appender-ref ref="STDOUT"/> <!-- remove this line to disable all printing -->   
  <appender-ref ref="FILE"/>
</root>

或者也可以在运行节点时设置想要的参数,如:

java -jar ergo-assembly-<version>.jar ergo.conf -Dlogback.stdout.level = ERROR

分享转发

相关阅读