Есть ли способ добавить больше информации к узлу, кроме обязательных? - PullRequest
2 голосов
/ 29 октября 2019

Я хочу добавить больше информации об узле в сетевой узел. Можно ли поделиться еще данными помимо того, что находится в файле конфигурации узла? Может быть, некоторые пользовательские поля, такие как закодированное изображение логотипа или что-то в этом роде.

Спасибо

1 Ответ

1 голос
/ 04 ноября 2019
  1. Да, вы можете.
  2. Внутри вашего модуля в папке src добавьте файл с именем config.conf.
  3. Добавьте свои значения внутри него в следующем формате:
key1="string_value"
key2=number_value
Внутри build.gradle перейдите к той части, где вы определяете свои узлы, скажем, имя вашего модуля - "my_module";сделать это:
cordapp (project(':my_module')) {   
    config project.file("src/config.conf")
}
Теперь, когда вы запустите deployNodes, Gradle создаст файл с именем my_module.conf в build\nodes\my_node\cordapps\config. Чтобы получить доступ к этим значениям в вашем потоке:
getServiceHub().getAppContext().getConfig().getString("key1");
Что касается тестирования потоков;Чтобы имитировать пользовательский файл конфигурации, вам нужно сделать следующее:
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))));
...