RChain Dapp 开发手册(四):如何与 Rnode 通信

gRPC接口

RNode向终端用户(开发人员)开放了 gRPC 接口,此外,RNode 也使用gRPC与其他节点进行通信。因此,你也可以将你的DApp视为世界计算机中的一个应用节点。

gRPC接口描述文件是一些 .proto 文件。关于如何阅读和使用它,请熟悉协议缓冲(protocol buffers)和 gRPC。

最新的接口可以在RNode的代码中找到:传送门

如何执行代码(智能合约)?

你只需要将代码(智能合约)部署到验证节点,它会完成其他所有的工作。

部署代码主要使用DeployService.doDeploy 这个API。如果想在没有gRPC客户端的情况下快速完成代码部署,你必须使用 rnode-cli 来完成。

部署是什么?

部署(Deploy)是一个将代码发送到验证节点并请求执行此代码的过程。同时,部署也可以指代你请求验证节点执行的代码本身。

你的每个部署都必须经过良好的构造,以被验证节点接受。它应该包括:

  • 要执行的代码

  • 时间戳

  • phloLimit 字段:燃料上限

  • phloPrice 字段:燃料价格

将所有字段放在一起,使用 BLAKE2b-256 哈希函数对结果数据进行哈希,并且必须使用你的私钥对此散列进行签名。你的私钥必须使用 Secp256k1 这个椭圆曲线签名算法生成。

我如何从网络获取信息?

目前,Rnode 公开了名为 ListenForDataAtName(或LFDAN)的接口方法,作为DApp开发人员订阅数据的一种方法。

当 RNode 发现一些数据传进 Name 中时,RNode会将数据发送给你的DApp。具体的执行过程如下:

  • 当Rnode提出一个块时,它会执行队列中所有部署的代码。

  • 如果某些代码将数据发送到DApp正在监听的 Name 时 , RNode就会通知 DApp——将这些数据发给 DApp。

请注意,将来可能还有其他方法可以获取数据。比如这个很棒的想法:让Rholang代码能够通过http进行调用。这是相关的演示视频。

你可能感兴趣的:(RChain Dapp 开发手册(四):如何与 Rnode 通信)