【问题标题】:In Corda, how can nodes be assigned public roles?在 Corda 中,如何为节点分配公共角色?
【发布时间】:2018-10-12 20:36:53
【问题描述】:

我写了一个 CorDapp,我想根据交易对手的“角色”区别对待他们。

例如,我可能想在向对方请求现金发行之前检查对方节点是否具有“现金发行人”角色。

以这种方式定义公共节点角色的最佳方式是什么?

【问题讨论】:

  • 不是最好的方式,但我们可以采用 Oracle 方式。每个节点都可以有一个 corda 服务,在启动时,即在它的 init 方法或构造函数中(现在我已经访问了 service hub )启动与 Oracle 的发送/接收流。存储它的角色信息。其他节点可以在启动流程之前向 oracle 询问它的角色。每次在开始流程之前调用预言机确实会带来不必要的麻烦。

标签: corda


【解决方案1】:

从 Corda 3 开始,没有对该功能的内置支持。预计将在未来的版本中添加支持。

与此同时,有几种解决方法:

  • 使用预言机,正如 Kid101 上面提到的那样。预言机将存储节点可以查询的角色信息
  • 可以通过流中的 HTTP 调用检索角色 - 请参阅 Flow HTTP sample
  • 角色可以存储在节点的数据库中并在流程中检索 - 请参阅Flow DB sample
  • 每个节点都可以有一个返回节点角色的流对
  • 角色可以硬编码在每个节点上安装的配置文件中 - 请参阅How to provide a CorDapp with custom config in Corda?
  • 角色可以在 CorDapp 的流程中硬编码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-10
    • 2017-01-18
    • 2020-03-17
    • 2018-11-06
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    相关资源
    最近更新 更多