Перейти к основному содержимому

Миграция с 3.x

Текущие релизы: узел 4.0.3, кошелёк 4.0.0 и протокол epicbox 3.0.0.

Изменения API

total_difficulty — объект

Сложность отслеживается отдельно для каждого алгоритма доказательства работы:

{
"total_difficulty": {
"cuckaroo": 0,
"cuckatoo": 1234,
"randomx": 5678,
"progpow": 9012
}
}

Заголовки блоков описывают доказательства двумя полями

proof задаёт название алгоритма, а solution — размеченное объединение, форма которого зависит от него. В 3.x решение хранилось в одном скалярном поле.

Чтение выходов и транзакций кошелька поддерживает пагинацию

retrieve_outputs и retrieve_txs принимают limit, offset и sort_order. Передавайте их явно.

Status получает поля supply

supply и max_supply — суммы в freemen. blocks_to_next_halving — количество блоков, при api/src/types.rs:96. Шаги эмиссии не являются исключительно халвингами; см. emission.

Ядра представлены в двух формах

get_block возвращает плоское ядро (kernel). get_kernel и get_last_n_kernels возвращают исходный тип с внешне размеченным полем features.

Изменения командной строки

Флаги изменились. init -h для текущего каталога теперь -w, scan -h <height> теперь -s <height>, а аргумент taxes узла — start_height. Новые команды кошелька: export_tx, import_tx и change_password, а также --slate_version для команд перевода. Все команды и флаги описаны в configuration and CLI.

Смесь алгоритмов в тестовых сетях задаётся ключом конфигурации, а не флагом командной строки. См. the block policy.

Тулчейн и сборка

Каждый репозиторий фиксирует версию Rust, поэтому достаточно установить rustup — самостоятельно фиксировать версию не нужно. Сборка также требует системных пакетов помимо тулчейна Rust; они перечислены по платформам в building from source.

Изменения хранилища

Кошелёк хранит данные в SQLite по пути db/sqlite/epic.db в режиме WAL, а его каталог Tor — wallet_tor. Всё, что читало базу данных кошелька 3.x напрямую, требует переработки. Пути и ключи описаны в wallet configuration.

Новое поведение

Встроенный Tor

Сборка с --features with-tor загружает экспертный пакет Tor и проверяет его по зафиксированному дайджесту. Релизные сборки не включают эту функцию. См. what this version does not cover.

Epicbox подтверждает доставку

Протокол 3.0.0 добавляет подтверждение Made с идентификатором сообщения, поэтому слейт (slate) помечается доставленным только после того, как получатель подтверждает его обработку. Совместимость с клиентами до версии 3.5.2 сохранена. См. the protocol.

Подтверждение мемпула после публикации

После публикации транзакции кошелёк отслеживает мемпул узла и фиксирует отдельное состояние при её появлении там. Именно это ожидание объясняет, почему отправка может выглядеть зависшей — см. the send appears to hang; кроме того, опубликованный перевод выходит из множества, которое принимает cancel_tx, — см. cancelling has preconditions.

Реализация релея Epicbox изменилась

Релей — EpicCash/epic-epicbox-docker, Node.js с вспомогательным модулем верификации на Rust. Топология развёртывания и хранилище описаны в the epicbox reference.

Поведение, которое нужно проверить в вашей интеграции

  • tx_lock_outputs обязателен в ручной последовательности отправки. См. what reserves outputs.
  • Epicbox конвертирует каждый слейт в V2, что удаляет запрос доказательства платежа. См. the transport comparison.
  • change_password удаляет резервную сид-фразу, если не передан --remove-backup.
  • Значения по умолчанию для валидации синхронизации изменились. skip_pow_validation и disable_checkpoints по умолчанию равны true, что пропускает доказательство работы для контрольных точек истории, при этом всегда полностью проверяя последние 1,000 блоков. См. node and wallet setup.

Далее