Skip to content

Горячая перегрузка Iroha в контейнере Docker

Используйте горячую перезагрузку только для локальной дебгагировки. Для нормальной локальной разработки, предпочтительно восстановить изображение или запустить созданный набор Docker Compose из нового пакета Kagami.

Заменить бинарный параметр

Создать совместимый с Linux двойной демона из рабочего пространства вверх потока:

bash
cargo build --release -p irohad --target x86_64-unknown-linux-musl

Копируйте его в бегущий контейнер, а затем перезапустите этот контейнер:

bash
docker cp target/x86_64-unknown-linux-musl/release/irohad <container>:/usr/local/bin/irohad
docker restart <container>

Используйте docker ps для подтверждения названия контейнера. В генерируемой пакете однородные контейнеры определяются ./localnet/docker-compose.yml.

Перезагрузить Genesis в одноразовой сети

Для одноразовой сети Docker остановить накопление, удалить генерируемое состояние, восстановить или заменить подписанный пакет генезиса и начать снова:

bash
docker compose -f ./localnet/docker-compose.yml down
cargo run --bin kagami -- localnet --build-line iroha3 --peers 4 --out-dir ./localnet
cargo run --bin kagami -- docker --peers 4 --config-dir ./localnet --image hyperledger/iroha:dev --out-file ./localnet/docker-compose.yml --force
docker compose -f ./localnet/docker-compose.yml up

Не заменяйте генезис в сети, состояние которой должно быть сохранено.

Используйте пользовательскую конфигурацию

Нынешняя конфигурация пира - TOML. Присоедините или скопируйте генерированные файлы config.toml, genesis.signed.nrt и связанные с ними ключи в пути контейнеров, ожидаемые изображением, а затем перезагрузите пир. Сохраняйте генерируемые файлы вместе; смешивание файлов из различных Kagami путей может привести к дезерялизации или сбоям консенсуса.