作为开发者,你可能希望在本地运行一个独立节点以便运行或者调试 DApp。
如果你还不知道如何安装 RNode,请移步:传送门
首先你需要清理自己的 Rnode工作目录(默认为 〜/ .rnode
),然后以独立的非验证节点模式运行 Rnode。
rm -rf ~/.rnode
rnode run -s --map-size 1099511627776
这会创建一条新链(DAG),同时诞生出创世区块。默认的情况下,这条链的盟约列表(bonds list)中会有5个验证节点。你可以在〜/ .rnode / genesis /
中找到这些验证节点的私钥和公钥。* .sk
文件的名称是公钥,私钥就是文件的内容。
现在你可以按 Ctrl + C
退出这个节点,然后使用其中一个私钥在重启 RNode ,不过这次启动是验证节点模式。
rnode run -s --map-size 1099511627776 --validator-private-key $(cat ~/.rnode/genesis/*.sk | tail -1)
由于现在启动节点的私钥能与创世块中盟约列表中的公钥匹配,你的节点就就成为了验证节点。你可以在这上面添加新块,或者部署上去一些智能合约。
rnode deploy --private-key <deployer_private_key> --phlo-limit <value> --phlo-price <value> <file.rho>
这里注意:记得不要把 deployer_private_key
与用于启动节点的 validator-private-key
混淆。这两个不是同一个密钥。这个秘钥用于支付部署合约的费用。(关于如何编写 file.rho
智能合约,请参考Rholang 编程指南)
PS:出于测试目的,你可以设置--phlo-limit 1000000 --phlo-price 1
,意味着 phlo(类似 ETH 里的 gas 费用) 上限为 1000000 phlo ,单价为 1 phlo。
部署成功后,你应该能看到带有 deployID
的返回信息:
DeployId is: 3044022100a65b2c5d890ed53174fcd9f53f150756c9ff4b37e0a4137f025d53ec418c1894021f18c42eccf307b27e6159606e92ca4e96f4b9688b6b95ee05944c8794b0dd76
这个时候智能合约虽然部署完了,但是还没有被链确认,你需要调用你的验证节点发表一次声明(propose),来出一个块。
rnode propose
这个时候你应该会收到如下的返回信息:
Response: Success! Block 8b70f0c681... created and added.
至此,你的智能合约就部署完毕了。
网友评论