问题
I want to add more node information to a network node. Is it possible to share more data besides what's in the node configuration file? Maybe some custom fields, like an encoded logo image or stuff like that.
Thanks
回答1:
- Yes you can.
- Inside your module under
srcfolder add a file calledconfig.conf. - Add your values inside of it in the following format:
key1="string_value"
key2=number_value
- Inside
build.gradlego to the part where you define your nodes, let's say your module name is "my_module"; do this:
cordapp (project(':my_module')) {
config project.file("src/config.conf")
}
- Now when you run
deployNodes, gradle will generate a file calledmy_module.confunderbuild\nodes\my_node\cordapps\config. - To access those values inside your flow:
getServiceHub().getAppContext().getConfig().getString("key1");
- As for testing flows; to mimic the custom config file you need to do the following:
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))));
来源:https://stackoverflow.com/questions/58609748/is-there-a-way-to-add-more-information-to-a-node-except-the-mandatory-ones