Обзор нововведений и исправлений Beryllium Bullet
Это версия v0.13.0 программного обеспечения Monero. Выход версии связан с обновлением сети от 18 октября, в ходе которого, в свою очередь, был реализован протокол Bulletproofs, позволяющий снизить размер транзакций, размер кольца был глобально увеличен до 11 с целью обеспечения единообразия транзакций, алгоритм доказательства работы (PoW) был обновлён до версии CNv2, а также, наконец, был установлен максимальный размер транзакций, который теперь составляет половину от размера блока, на который не налагается штраф. Данная версия программного обеспечения Monero содержит ряд важных улучшений, а также большое количество исправлений выявленных ошибок.
Вот краткий обзор этого обновления:
- добавлен докер файл для 64-битной версии Android
- при помощи HIDAPI отредактирован код Ledger
- добавлен механизм Blackballing (механизм отрицательного отбора), который не дающий кошельку использовать известные потраченный выходы в кольцах
- в качестве основы для воспроизводимых сборок теперь будет использоваться система зависимостей
- введены базовые M/N мультиподписи, в которых M < N – 1
- обновлены переводы
- добавлена возможность ввода мнемонической фразы не по стандарту ASCII для Windows
- ключ траты теперь можно опционально хранить в зашифрованном виде в памяти
- улучшен механизм стирания памяти, не позволяющий секретным данным задерживаться в памяти
- добавлена система уведомлений по блокам и транзакциям
- добавлен новый набор расширений DNSSEC, поддерживающий используемые по умолчанию DNS серверы
- добавлена поддержка смены ключей шифрования DNSSEC
- на основе отчётов Coverity внесено множество незначительных исправлений
- часть памяти, в которой хранятся секретные данные, теперь заблокирована таким образом, что исключает перенос (для Linux)
- включена предварительная поддержка аппаратных кошельков, не имеющих отношения к Ledger
- исправлена проблема отказа преобразования формата блокчейна
- введён механизм предупреждения об использовании старых незашифрованных идентификаторов (ID) платежей
- сборка теперь помещает объекты / двоичные файлы в отдельную директорию для каждой ветки
- реализован протокол Bulletproofs, допускающий использование множества выходов
- благодаря Bulletproofs ускорен ряд процессов
- улучшен механизм отбора фальшивых выходов (чаще всего используется гамма-распределение)
- monero-wallet-rpc теперь может работать в режиме демон-программы
- реализован вариант 2 протокола Cryptonight
- реализован бот Travis
- исправлена функция —generate-from-json, использовавшая неверное имя файла кошелька
- исправления в сборке для s390x, ARM, Android, Windows, Docker, FreeBSD
- при помощи команд sweep_* упрощён процесс разделения выходов
- в базе данных блокчейна данные, которые можно «обрезать», и которые нельзя, теперь хранятся отдельно
- исправлен алгоритм Keccak для платформ с прямым порядком байтов
- задан новый параметр wallet creation height (высота создания кошелька), используемый, когда демон не запущен
- добавлен новый инкрементный режим обновления Keccak
- удалён устаревший код transfer_original
- комиссии за проведение транзакции теперь рассчитываются на байт, а не на килобайт
- предел размера/веса блока и комиссий за проведение транзакций теперь учитывает условный размер («вес») для вычисления времени верификации не линейного размеру
- добавлен новый флаг update_available в get_info RPC
- минимально увеличено время верификации RingCT
- в данные заголовка блока RPC включена совокупная сложность
- теперь при проведении одиночной транзакции блоки имеют максимальное весовой значение
- произведены новые расчёты и введены соответствующие объекты
- добавлена поддержка NetBSD
- добавлено большое количество тестов производительности
- устранена незначительная систематическая ошибка выборки при генерации случайной скалярной EC величины
- для общих случаев введён постоянный размер кольца, который теперь равен 11
- тесты производительности теперь указывают на минимальное, среднее и стандартное отклонение
- реализован выровненный распределитель памяти
- реализован режим Terse для тестов производительности
- unbound и miniupnpc теперь являются подмодулями git
- start_mining RPC теперь сообщает о том, производит демон майнинг или нет, а не о характерной ошибке
- добавлена возможность использования максимального количества опций предотвращения взлома везде, где это возможно
- появилась необходимость в cmake >= 3,5
- сетевые соединения теперь связываются с правильным IP
- теперь при одновременном использовании --wallet-file и --wallet-dir сообщается об ошибке
- теперь при работе с --restricted-rpc время запуска демона задерживается
- реализован новый close_wallet RPC
- исправлена ошибка, связанная с отказом кошелька сканировать транзакцию при первом недействительном публичном ключе
- теперь можно задать пароль RPC, используя переменную среды RPC_LOGIN
- Simplewallet теперь может использовать Monero напрямую посредством URI
- cn_deserialize теперь может извлекать ID платежей из транзакций
- демон теперь предупреждает об изменениях производительности, если обнаруживает блокчейн на вращающемся жёстком диске
- исправлена ошибка использования мнемонической фразы для платформ с прямым порядком байтов
- время сравнения секретных ключей теперь постоянно
- новое обновление RPC кошелька
- исправлена ошибка выхода кошелька из синхронизации, если он не производит синтаксический анализ транзакции
- исправлена ошибка кошелька, связанная с тем, что он не загружался после того, как его внутренняя буферная цепочка хеширования выходит из синхронизации
- файлы перевода теперь обрабатываются путём перекрёстной компиляции
- исправлен бесконечный цикл кода txpool в случае ошибки базы данных
- значительно ускорено get_output_distribution за счёт буферизации данных в базе данных блокчейна
- несколько ускорился синтаксический разбор HTTP
- реализован новый change_wallet_password RPC
- с целью повышения производительности реализована буферизация шаблона блока
- Simplewallet теперь понимает уровни приоритетности имён в дополнение к числам
- изменение размера блокчейна теперь происходит более консервативно
- внесены исправления в процесс буферизации высоты самого раннего форка в кошельке
- дамп ядра в двоичных файлах версии кошелька теперь отключён, так как он не содержит секретных данных
- регистрирующийся теперь будет вводить данные чрез консоль, чтобы знать, является ли регистрирующийся живым человеком
- в целях повышения производительности реализована побайтовая синхронизация блокчейна, а не по полученным блокам
- реализована новый программный конвейер Codefresh
- введены новые статистические инструменты blockchain_depth и blockchain_ancestry
- теперь кошелёк может использовать определённое пользователем количество циклов Cryptonight для KDF
- simplewallet при запущенном процессе rescan_blockchain теперь предупреждает о наличии невосстановимых данных
- исправлена ошибка, связанная с гонкой закрытия сетевых соединений
- исправлена ошибка, связанная с неверными сообщениями Simplewallet о длинном формате времени
- исправлена ошибка в проверке правильности хешей записей обновлений
- simplewallet теперь указывает выходы Coinbase в show_transfer
- повышена корректность работы и производительность 0MQ
- внесены исправления в Simplewallet, касающиеся деления на ноль при недействительном ответе демона
- введён новый get_address_index RPC кошелька
- getbalance RPC теперь принимает ряд индексов адресов
- введена новая команда set_tx_key Simplewallet, позволяющая импортировать ключи транзакций с других кошельков
- --log-file теперь обрабатывает имена файлов без директорий
- вызов RPC JSON теперь включает в себя версию JSON
- в сообщениях синхронизации теперь указывается процент выполнения и количество блоков, оставшихся до синхронизации
- исправлена сложность второго порядка в import_key_images
- введена новая команда locked_sweep_all для Simplewallet
- тесты теперь используют временные файлы в записываемой директории
- исправлена ошибка определения языка кошелька при использовании --use-english-language-names
- теперь возможно создание интегрированных адресов для случайных адресов
- не происходит синхронизации с базами данных, доступных только для чтения
- исправлена сборка для Boost 1.67
- у тестов ядра теперь есть опция --filter
- произведено обновление miniupnpc, rapidjson и несвязанного потока данных от абонента к центральному узлу
- минимальное разбиение и ускорение HTTP
- реализована новая настройка кошелька ignore-fractional-outputs, позволяющая игнорировать входы ниже уровня размера комиссии
- реализованы новые опции отладки --regtest и --fixed-difficulty
- реализован новый RPC отладки generatblocks
- теперь кеш кошелька нельзя открыть более чем с одного кошелька одновременно
- произведено преобразование имён файлов UTF-8 в UTF-16 для Windows
- реализовано новое поле suggested_confirmations, основанное на передаваемой сумме и сумме Coinbase
- в целях повышения скорости введён ключ шифрования ringdb кеша
- улучшена обработка сообщений
- ускорен процесс обновления информации кошелька
- alt_chain_info теперь позволяет увидеть определённую цепочку
- в import_key_images исправлена ошибка переполнения буфера считывания
- введён новый JSON RPC get_transaction_pool_hashes
- при использовании аппаратного кошелька упреждающий просмотр подадресов происходит менее интенсивно
- о размере блокчейна сообщается в getinfo
- при обнаружении блока сообщаются его хеш и высота
- исправлена ошибка использования двойного заголовка в неподписанном файле транзакции при холодном подписании
- исправлен сектор диаграммы теоретического уровня P2P при отмене установления входящего соединения в правильное время
- устранена длинная задержка при настройке автообновления информации в неправильное время
- исправлен слепой вызов 0MQ, когда адрес и/или порт свободны
- в файл README добавлен отказ от ответственности за данные третьих сторон, доверие к которым должно быть иным
- исправлена ошибка, связанная с отказом RPC кошелька при отсутствии открытого кошелька
- исправленная ошибка, связанная с отказом кошелька при использовании только что созданного счёта
- групповые транзакции теперь используются по умолчанию в LMDB
- при запуске кошелька теперь происходит разбивка обновляемых данных на подгруппы, помогающая против снятия отпечатков пальцев
- введена новая опция командной строки --max-log-files
- в Simplewallet теперь можно настроить пропуск несмешиваемых выходов (для отмены запустить rescan_spent)
- исправлена ошибка, связанная с указанием неправильных комиссий для разбитых транзакций
- реализован вывод сообщения о неверной версии базы данных при её несовместимости
- опции командной строки P2P теперь позволяют водить имя хоста, а также IP адреса
- реализована адаптивная система определения тайм аута соединения для смягчения последствий DoS
- Simplewallet не запрашивает отсутствующий ID платежа при отправке только подадресов
- при ротации логов при отсутствии данных текущего времени теперь считаются файлы
- Simplewallet теперь использовать имя файла с кольцами в команде set_ring
- исправлен процесс холодного подписания с применением Bulletproofs
- теперь --guard-against-pwnage является --dangerous-unverified-import в процессе импорта блокчейна, выдаёт предупреждения и приостанавливает процесс
- добавленны метаданные профиля ICC с авторскими правами Strip (не могу смириться с этим) из PNG файла иконки Monero
- кошелёк больше не регистрируется по умолчанию из соображений анонимности
- теперь адреса Tor/I2P считаются нелокальными в целях надёжности демон программы
- команда кошелька set_daemon теперь позволяет принимать опциональный доверенный/ненадёжный аргумент
- не стоит пытаться вычислить блоки, используя непредусмотренную версию из базы данных, доступной только для чтения
- в случае, если большинство блоков является недействительным, происходит разрыв P2P соединения
- добавлен новый ряд RPC кошелька для холодного подписания
- исправлена ошибка обнаружения диапазона локального IP 172.16..31
- исправлена ошибка помех в строке считывания при использовании std::cerr
- добавлены новые цели Makefile для отладочной сборки для Windows
- отключена проверка правильности размера файла для кешей кошелька, которая может быть довольно продолжительной
- добавлена возможность включения/выключения автоматического режима LMDB, где это возможно
- исправлена сборка GCC 8.1.0
- реализовано оповещение об отсутствии входящих соединений P2P
- необходимо использовать правильные единицы при указании комиссии в Simplewallet
- исправлена ошибка перетасовки выходов в случае с мультиподписями
- исправлена ошибка повторного добавления одной и той же транзакции в пул транзакций
- исправлена ошибка конфигурирования version.cpp без git
- реализованы предупреждения о неточном балансе для кошельков просмотра
- добавлены новые поузловые тесты
- множество других небольших исправлений, ускорений , улучшений и прочих доработок
Кто работал над этой версией
Над версией работало 58 человек, в большинстве случаев бесплатно и чисто из альтруистических побуждений, в результате чего было внесено 967 изменений, написано 37 385 строк нового кода. Мы хотели бы от всей души поблагодарить их за то время, что было потрачено ими и за их деятельность в целом.
- Rafficer
- rbrunner7
- einsteinsfool
- Sarang Noether
- stoffu
- el00ruobuob
- HomDx
- Jethro Grassie
- xiphon
- Maxim Shishmarev
- phloatingman
- redfish
- SChernykh
- m2049r
- Judemir Ribeiro
- Andrea
- Lee Clagett
- Jkat
- Leon Klingele
- naughtyfox
- jcktm
- philkode
- MoroccanMalinois
- itssteven
- Dusan Klinec
- Thaer Khawaja
- cornfeedhobo
- Italocoin
- iDunk5400
- Riccardo "fluffypony" Spagni
- Guillaume Le Vaillant
- Gene Peters
- victorsintnicolaas
- Gingeropolous
- Tuan M. Hoang
- luigi1111
- hrumag
- p8p
- moneroexamples
- Jonathan Cross
- fireice-uk
- Teutone
- ordtrogen
- S
- moneromooo
- Jean Pierre Dudey
- whythat
- Jorropo
- Howard Chu
- cryptochangements34
- OPSXCQ
- TheCharlatan
- anonimal
- artyomsol
- Ryan Ronnander
- k1nghat
- Alexandro Sanchez
- cslashm
- Thomas Vaughan
Официальные ссылки для загрузки:
Windows, 64-bit
Windows, 32-bit
macOS, 64-bit
Linux, 64-bit
Linux, 32-bit
Сравнить хеши
Если вы хотите убедиться в том, что вами был загружен правильный файл, пожалуйста, используйте следующие хеши SHA256:
monero-win-x64-v0.13.0.2.zip, 82db8f99fa4b2900f78c282c2d99309b79da544824f9cdb10d0b80ceb511c5ed
monero-win-x86-v0.13.0.2.zip, f9fad998af2c439dce45b8210784b228c8a99dced926e9bec3522af2a213c747
monero-mac-x64-v0.13.0.2.tar.bz2, bb0f197c9e43e183b9af48dfbc4f7b492568fe01d2c23c66ec3632c8aa85e4e9
monero-linux-x64-v0.13.0.2.tar.bz2, a59fc0fffb325b4f92a5b500438bf340ddbf78e91581eb4df95ad2d5e5fb42a8
monero-linux-x86-v0.13.0.2.tar.bz2, 87396e833859cbafff53db753443f8f94a962d9738cb0f69ea9d0b3c940960e6
Подписанный GPG список хешей можно найти по ссылке: https://getmonero.org/downloads/hashes.txt. Список является каноническим, подпись проверена соответствующим ключом GPG в исходном коде (in /utils/gpg_keys).