cryptofoundry

Связаться с cryptofoundry

Расскажите, что вы хотите создать или автоматизировать.

Электронная почта
[email protected]
ADAMANT Messenger
Открыть в ADAMANT
adamant

ADAMANT Node v0.10.0

ADAMANT blockchain node v0.10.0 — это крупное обновление функциональности и обслуживания для операторов, делегатов и разработчиков клиентов. Улучшены API, ориентированные на мессенджер, добавлен транспорт WebSocket для взаимодействия между узлами, усилена диагностика и инструменты установки, обновлены зависимости, а также ужесточены правила приема транзакций на P2P-уровне. Команда cryptofoundry рекомендует делегатам и операторам узлов обновиться для повышения надежности, безопасности и совместимости с новыми клиентами. Обновление не вводит обязательный консенсусный форк для уже синхронизированных сетей, поскольку поведение, зависящее от высоты блока, остается управляемым конфигурацией и обратно совместимым до достижения активационных высот.

Выпуск вводит поле timestampMs для транзакций с проверкой, управляемой консенсусом, и обработкой ответов. Добавлен флаг ?returnUnconfirmed=1 для транзакций, чатов, состояний и чат-комнат, а также дополнительные явные поля для не подтвержденных данных. Параметр includeDirectTransfers заменяет устаревший withoutDirectTransfers для чатов и чат-комнат. Сортировка по умолчанию теперь использует timestamp:desc, приоритизируя timestampMs при упорядочивании по времени. Исправлен разбор запросов для поддержки фильтров вида types[] в API-запросах к транзакциям. Прием транзакций с прошлым временем теперь ограничен чатами и транзакциями состояния, в то время как переводы допускают более широкое окно для оффлайн-кошельков. Публичный доступ к эндпоинту списка forging отключен в целях безопасности.

Добавлена конфигурация высот активации консенсуса для fairSystem и spaceship с поведением, зависящим от высоты блока. Правила протокола timestampMs сохранены: используются миллисекунды в эпохе ADAMANT, производное значение timestamp и тесты на границах активации. Существующие цепочки продолжают работать с детерминированным воспроизведением, однако операторам рекомендуется обновиться до будущих контрольных точек активации.

Ужесточение проверки временных меток на P2P-уровне гарантирует, что проверки будущих и прошлых временных меток, используемые Public API, теперь также применяются на пути P2P-распространения, устраняя уязвимость, при которой транзакции с далеким будущим временем могли обойти publish() через ретрансляцию между узлами. Пути воспроизведения и синхронизации verify() остались без изменений и не нарушают консенсус. Проверка Ed25519 теперь выполняется через sodium-native, а конфигурации кэша и ограничителя запросов улучшены.

Сетевые и производительностные улучшения включают транспорт WebSocket между узлами с ротацией соединений и приоритизацией пиров, а также улучшенное логирование WebSocket. Повысилась устойчивость синхронизации блоков, предотвращающая накопление устаревших блоков. Применены оптимизации SQL-запросов для чат-комнат, а пул транзакций переписан с использованием Map с улучшенным удалением и индексацией. Метаданные блоков и транзакций теперь сохраняются и включают height и blockTimestamp.

Инструменты и эксплуатация узлов обновлены: добавлены скрипты установки для Ubuntu/Debian и CentOS/RHEL 8–10, поддерживающие Node.js 22/24/26, работу с PostgreSQL, загрузку через wget, улучшенные приглашения и логирование. Скрипт fix_node.sh обновлен для сценариев восстановления операторов. Переопределение конфигурации теперь доступно через CLI и JSON-файлы с проверкой unsafe-ключей. Добавлены скрипты для localnet: start, stop, status и drop, а также среда запуска тестовых сценариев для testnet и localnet. Включены помощники для начальной загрузки testnet, поддержка списка пиров по умолчанию и автоматическое заполнение отсутствующих значений конфигурации из config.default.json при запуске. Добавлена документация по корректному завершению работы и безопасности mem-таблиц.

Улучшения для разработчиков включают структурированное логирование с ротацией, цветными уровнями и диагностикой прогресса синхронизации. Руководство по участию расширено живыми тестовыми сценариями и инструкциями по отчетности. Документированы рекомендации по рабочим процессам мейнтейнеров и агентов. Повышено покрытие модульных и API-тестов, улучшен процесс тестирования разработчиков. GitHub Wiki больше не используется как источник документации, а опция конфигурации verifyOnLoading удалена.

Операторам необходимо обновить Node.js до версии 22.13.0 или новее перед развертыванием. Рекомендуется использовать официальные скрипты установки и восстановления из этого релизного тега. Операторам следует проверить config.default.json на наличие новых опций, таких как wsNode, настройки логирования и высоты активации консенсуса. Узлы следует останавливать корректно, используя Ctrl+C, а не kill -9. После обновления необходимо проверить /api/node/status и подключение к пирам через HTTP и WebSocket.

Критические изменения

Node.js 18 более не поддерживается, требуется версия движка 22.13.0 или новее. Удалены устаревшие HTTP-эндпоинты, включая маршруты с передачей passphrase, неиспользуемые вспомогательные функции чатов, /delegates/fee, /normalize и связанные устаревшие обработчики. Поле count теперь возвращается как число во всех затронутых эндпоинтах списков. Фильтр withoutDirectTransfers объявлен устаревшим в пользу includeDirectTransfers. Криптографический стек перенесен с обертки sodium на нативные привязки sodium-native.