Я запустил сервис карт сети corda на моей виртуальной машине.Когда я изменил файл белого списка, сервис карт сети перестраивает карту сети, а также параметр сети.
Если файл параметров сети изменился и больше не соответствует тому, что сервис карты сети рекламирует, то узел автоматически отключится.
В моем случае все узлы отключаются, как и ожидалось.При запуске появилось сообщение «Узел использует параметры с хешем: X, но карта сети является рекламой: Y».После удаления сетевого параметра он запускается правильно.
Согласно упомянутым документам здесь , чтобы вручную принять обновленные сетевые параметры и отправить подтверждение параметров обратно оператору зоны, метод RPC fun acceptNewNetworkParameters (parametersHash: SecureHash) должен вызываться с параметром parametersHash из обновления.
Я вызвал вышеупомянутую функцию из оболочки corda, как показано ниже:
run acceptNewNetworkParameters parametersHash: "ba19fc1b9e9c1c7cbea712efda5f78b53ae4e5d123c89d02c9da44ec50e9c17d"
У меня ошибка "RPC не удалось: Java.lang.IllegalArgumentException: несоответствие типа аргумента ".
Мне нужно выяснить, как узлы Corda принимают обновленные сетевые параметры из службы карты сети и как можно предотвратить отключение узлов Corda после получения нового параметра.
Примечание. Использование службы «Карта сети» с указанными ниже изменениями конфигурации:
Тайм-аут кэша: 2 с. Параметр-задержка обновления: 10 с. Сетевая карта-задержка: 1 с.
08:35:13.664 [vert.x-eventloop-thread-3] ERROR i.c.n.s.NetworkMapServiceProcessor - failed during processParamUpdate
io.vertx.core.file.FileSystemException: java.nio.file.NoSuchFileException: /data/corda-workspace/network-map-service-v0.3.0/network-map/parameters-update/next-params-update
at io.vertx.core.file.impl.FileSystemImpl$10.perform(FileSystemImpl.java:638)
at io.vertx.core.file.impl.FileSystemImpl$10.perform(FileSystemImpl.java:615)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$1(ContextImpl.java:275)
at io.vertx.core.impl.TaskQueue.run(TaskQueue.java:76)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.nio.file.NoSuchFileException: /data/corda-workspace/network-map-service-v0.3.0/network-map/parameters-update/next-params-update
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
at sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
at sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:144)
at sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99)
at java.nio.file.Files.readAttributes(Files.java:1737)
at java.nio.file.FileTreeWalker.getAttributes(FileTreeWalker.java:219)
at java.nio.file.FileTreeWalker.visit(FileTreeWalker.java:276)
at java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:322)
at java.nio.file.Files.walkFileTree(Files.java:2662)
at java.nio.file.Files.walkFileTree(Files.java:2742)
at io.vertx.core.file.impl.FileSystemImpl$10.perform(FileSystemImpl.java:620)
... 7 common frames omitted
Я пытался несколько раз изменять сетевые параметры вместе с NMS, несколько раз получал обновление сетевых параметровфайлы в узлах и несколько раз попадали под вопросы:
Couldn't find parameters update for the hash: <Hash>
Refused to accept parameters with hash <Hash> because network map advertises update with hash <Hash>. Please check newest version