节点安全性
为保证您的钱包和资产的安全,请格外注意以下几个节点使用中的注意事项:
- 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终端也提供了一个(不受保护的)哈希计算办法:
初始化钱包:
这里就用到了前一个步骤提及的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