Жизненный цикл CordApp - PullRequest
       9

Жизненный цикл CordApp

0 голосов
/ 31 октября 2018

Существует ли какой-либо поддерживаемый способ Corda для развертывания изменений CordApp на всех узлах, которые имеют более старую версию? Или как бы мне распространять даже новый CordApp?

В идеале, чтобы никто (каждый затронутый владелец узла) ничего не делал.

Прямо сейчас это будет означать зависимость обновления в узле gradle, rebuild и restart, что довольно неудобно, когда мой узел является частью многих бизнес-сетей.

Есть ли какой-нибудь план иметь что-то аналогичное WebServer, например tomcat, где я мог бы развернуть файл войны?

1 Ответ

0 голосов
/ 31 октября 2018

Во-первых, вам не нужно запускать deployNodes для создания нового JAR-файла CorDapp. Вместо этого вы можете использовать команду Gradle jar:

  • Unix / Mac OSX: ./gradlew jar
  • Windows: gradlew.bat jar

Это создаст новый JAR CorDapp под build/libs. Затем вы устанавливаете новый CorDapp, добавляя новый JAR CorDapp в папку cordapps каждого узла, который будет использовать новое CorDapp.

Начиная с Corda 3, чтобы забрать новое CorDapp, узел должен быть перезапущен (в будущем мы ожидаем, что Corda будет поддерживать горячую перезагрузку CorDapps). Здесь есть несколько соображений:

  • Если вы обновляете один или несколько существующих потоков:

  • Если вы обновляете одно или несколько существующих состояний или контрактов:

    • Вам нужно одновременно хранить и старое, и новое определения состояний и контрактов на пути к классам (например, IOUState и IOUStateV2)
    • Состояния и контракты не нужно обновлять сразу на каждом узле. Вы просто столкнетесь с ошибкой, если отправите другому узлу состояние или контракт, для которого у них нет определения
    • См. документы по обновлению контрактов и состояний для более подробной информации
  • Если вы используете ограничения зоны для контрактов CorDapp, вам необходимо обновить сетевые параметры зоны совместимости

    • Этот шаг не требуется, если вы используете хеш-ограничения или ограничения подписи, введенные в Corda 4
...