【问题标题】:Is there a way to add more information to a node, except the mandatory ones?有没有办法向节点添加更多信息,除了强制性信息?
【发布时间】:2020-02-24 19:55:23
【问题描述】:

我想向网络节点添加更多节点信息。除了节点配置文件中的内容之外,是否可以共享更多数据?也许是一些自定义字段,例如编码的徽标图像或类似的东西。

谢谢

【问题讨论】:

  • 什么样的信息?它是干什么用的?
  • 网络中另一个节点可读的信息。和默认的 O、L、C 一样。

标签: corda


【解决方案1】:
  1. 是的,你可以。
  2. src 文件夹下的模块中添加一个名为config.conf 的文件。
  3. 按以下格式在其中添加您的值:
key1="string_value"
key2=number_value
  1. build.gradle 中,转到定义节点的部分,假设您的模块名称是“my_module”;这样做:
cordapp (project(':my_module')) {   
    config project.file("src/config.conf")
}
  1. 现在当你运行deployNodes时,gradle会在build\nodes\my_node\cordapps\config下生成一个名为my_module.conf的文件。
  2. 要访问流中的这些值:
getServiceHub().getAppContext().getConfig().getString("key1");
  1. 关于测试流程;要模仿自定义配置文件,您需要执行以下操作:
Map<String, String> customConfig = new HashMap<>();
customConfig.put("key1", "string_value");
customConfig.put("key2", "int_value");

// Setup network.
network = new MockNetwork(new MockNetworkParameters().withCordappsForAllNodes(ImmutableList.of(
        TestCordapp.findCordapp("my_package").withConfig(customConfig))));

【讨论】:

  • 您好阿德尔,感谢您的回答。网络中的其他节点是否可以读取此信息,例如 O、L、C 字段?
  • 除非您编写了一个流对(发起者/响应者),其中发起者向响应者请求该信息。
  • 您能详细说明一下吗?我对corda很陌生。谢谢。
  • 我建议您阅读有关流(启动/响应者)的信息;简而言之,Node-A 将启动一个流,该流将建立一个会话以连接到 Node-B,Node-A 将向 Node-B 发送请求的信息,Node-B 将注册一个流以响应发起响应者内部的节点 A 流; Node-B 将从自定义配置中获取信息并将其发送到 Node-A。
  • 我将我的答案格式化为一篇简短的 Medium 文章:blog.b9lab.com/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多