在 Corda 中,如何为节点分配 public 角色?

In Corda, how can nodes be assigned public roles?

我写了一个 CorDapp,我想根据它们 "role" 来区别对待交易对手节点。

例如,我可能想在请求对方节点发行现金之前检查其是否具有 "cash issuer" 角色。

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

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

同时,有几种解决方法:

  • 使用 oracle,正如 Kid101 上面提到的。 oracle 将存储可以由节点查询的角色信息
  • 可以通过流程中的 HTTP 调用检索角色 - 请参阅 Flow HTTP sample
  • 角色可以存储在节点的数据库中并在流程中检索 - 请参阅 Flow DB sample
  • 每个节点都可以有一个流对,returns 节点的角色
  • 可以在每个节点上安装的配置文件中对角色进行硬编码 - 请参阅
  • 可以在 CorDapp 的流程中对角色进行硬编码