Миграция с 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.