Это новый небольшой релиз версии, включая параметры активации для
segwit softfork, различные исправления и улучшения производительности, а также
обновлены переводы.
Пожалуйста, сообщайте об ошибках с помощью системы отслеживания проблем на GitHub:
Чтобы получать уведомления о безопасности и обновления, пожалуйста, подпишитесь на:
Совместимость
Microsoft прекратил поддержку для Windows XP на 8 апреля 2014,
ОС первоначально выпущен в 2001. Это означает, что даже не критическая безопасность
обновления будут выпускаться больше. Без обновлений безопасности, используя Bitcoin
бумажник на XP машине безответственно, по крайней мере.
В дополнении к этому, с 0.12.x там варьировались отчеты Bitcoin Ядра
случайным образом сбой на Windows XP. это не ясно
что источник этих аварий является, но вполне вероятно, что вверх по течению
не библиотеки, такие как Qt больше не тестируется на XP.
У нас нет ни времени, ни ресурсов, чтобы обеспечить поддержку ОС, которая является
конец жизни. не из 0.13.0 на, Windows XP больше не поддерживается. Пользователи могут
предложил обновить до более новой версии Windows, или установить альтернативную ОС
что поддерживается.
Не предпринималось никаких попыток предотвратить установки или запуска программы на Windows XP,
Вы все еще можете сделать это на свой страх и риск, но не ожидайте, что работать: не
сообщить вопросы о Windows XP для отслеживания проблем.
Не от 0.13.1 года OS X 10.7 больше не поддерживается. 0.13.0 был предназначен для работы на 10.7+,
но серьезные проблемы с версией LibC ++ на 10.7.x держать его от работы надежно.
0.13.1 теперь требует 10.8+, и сообщит, что 10,7 пользователей, а не врезаться неожиданно.
Заметные изменения
Раздельное свидетель мягкой вилки
Раздельное свидетель (segwit) является мягкой вилкой, что, если он активирован, будет
позволяют производить транзакции, программное обеспечение для разделения (сегрегации) сделки
подписи (свидетели) от части данных в сделке,
покрываются TXID. Это обеспечивает несколько непосредственных преимуществ:
- Устранение нежелательной податливости сделки: Разделение свидетеля
позволяет существующим и усовершенствованное программное обеспечение для расчета сделки
Идентификатор (TXID) сделок без ссылки на свидетельство, которое может
иногда быть изменены третьими лицами (например, шахтеры) или путем сопоручителями в
multisig потратить. Это решает все известные случаи нежелательной сделки
податливость, которая является проблемой, что делает программирование Bitcoin кошелек
программное обеспечение более сложное и что серьезно усложняет конструкцию смарта
контракты на Bitcoin. - Повышение производительности: Segwit операции содержат новые поля, которые не являются
часть данных в настоящее время используется для вычисления размера блока, который
позволяет блок, содержащий segwit транзакции для хранения данных больше, чем разрешено
на текущий максимальный размер блока. Оценки, основанные на сделках
в настоящее время находится в блоках, показывают, что, если все бумажники переключиться на использование
segwit, сеть будет в состоянии поддерживать около 70% больше сделок.
Сеть также будет иметь возможность поддерживать больше платежей продвинутого типа
(Например, multisig), чем он может поддерживать в настоящее время из-за различного взвешивания
отдается различным частям сделки после segwit активирует (см
Следующий раздел для более подробной информации). - Весовые данные, основанные на том, как это влияет на производительность узла: Некоторые части
каждый блок необходимо Bitcoin хранить узлы для того, чтобы подтвердить будущее
блоки; другие части блока могут быть немедленно забыты (обрезка) или использовать
только для оказания помощи других узлов синхронизировать свою копию блока цепи. Один большой
часть сразу prunable данных являются транзакционными подписи (свидетели),
и segwit позволяет дать другое "вес" к изолированному
свидетели соответствуют более низким требованиям они размещают на узел ресурсах.
В частности, каждый байт сегрегированном свидетельство дается вес 1, каждый
другие байты в блоке даются весом 4, и максимально допустимый вес
блока составляет 4 миллиона людей. Взвешивание данных таким образом, лучше выравнивает наиболее
выгодная стратегия для создания блоков с долгосрочными издержками наталкиваются
Проверка. - Подпись охватывает значение: Простое улучшение пути подписей
генерируется в segwit упрощает конструкцию безопасных генераторов подписи
(Например, аппаратные кошельки), уменьшает количество данных подписи
генератор необходимо загрузить, и позволяет генератору работать подпись
быстрее. Это стало возможным за счет того, генератор знак суммы
из Bitcoins они думают, что они тратят, и имея полные узлы отказываются
принять эти подписи, если сумма Bitcoins тратятся не точно
такой же, как был подписан. Для не segwit сделок, бумажники вместо пришлось
скачать полные предыдущие операции тратятся на каждый платеж
они сделали, что может быть медленной операцией на аппаратные кошельков и в других
ситуации, в которых было ограничено пропускной способностью или вычисление скорости. - Линейное масштабирование sighash операций: В 2015 году блок-был произведен, что
требуется около 25 секунд для проверки на современном оборудовании из-за пути
транзакции подпись хэш выполняются. Другие подобные блоки или блоки
что может занять еще больше времени, чтобы проверить, все еще может быть произведено сегодня.
что причина этого не может быть установлен в мягкой вилкой без нежелательного
побочные эффекты, но операции, которые выбирают в к использованию segwit теперь будет использовать
Другой метод подписи, который не страдает от этой проблемы и не
есть какие-либо нежелательные побочные эффекты. - Повышенная безопасность multisig: Bitcoin адреса (оба адреса P2PKH
которые начинаются с «1» и P2SH адреса, которые начинаются с «3») используют хэш
Функция известна как RIPEMD-160. Для P2PKH адресов, это обеспечивает около 160
бит безопасности --- который находится за пределами того, что считают, шифровальщики могут быть нарушены
Cегодня. Но поскольку P2SH является более гибким, только около 80 бит безопасности является
при условии, на адрес. Хотя 80 бит очень высокий уровень безопасности, она находится в пределах
сфера возможности того, что она может быть разбита мощным противником.
Segwit позволяет продвинутая операции использовать функцию SHA256 хэша вместо этого,
который обеспечивает около 128 битых защиты (то есть 281 триллионов раз, как
много безопасности в 80 бит и эквивалентна максимальные биты безопасности
Считается, что обеспечиваются выбором Bitcoin о параметрах для его Эллиптического
Curve Digital Security Algorithm [ECDSA].) - Безопасность Более эффективная почти полный узел Оригинальный Сатоси Накамото в
Биткойн документ описывает способ позволяет вновь созданные полные узлы с
пропустить загрузку и проверку некоторых данных из исторических блоков, которые являются
защищено большое количество доказательств работы. К сожалению, Накамото-х
Метод не может гарантировать, что вновь стартующий узел с помощью этого метода
производить точную копию текущей книги Bitcoin (названный набор UTXO),
что делает узел уязвимым для падения из консенсуса с другими узлами.
Хотя проблемы с методом Накамото не могут быть зафиксированы в мягкой вилке,
Segwit выполняет что-то похожее на его первоначальное предложение: она делает это
возможно для узла, чтобы при необходимости пропустить загрузку некоторых данных blockchain
(В частности, сегрегированные свидетелей) и при этом гарантируя, что узел
можно построить точную копию набора UTXO для блока цепи с наиболее
доказательство работы. Segwit позволяет эту возможность на основе консенсуса слоя, но
обратите внимание, что Bitcoin ядро не дает возможность использовать эту возможность в качестве
0.13.1 этого выпуска. - версии сценария: Segwit делает его легким для будущих мягких вилок, чтобы позволить
Bitcoin пользователей индивидуально выбирать в почти любое изменение в Bitcoin
Сценарий язык, когда эти пользователи получают новые транзакции. Особенности
В настоящее время исследуются Ключевыми участниками Bitcoin, которые могут использовать это
Возможности включают поддержку подписей Шнорры, которые могут улучшить
конфиденциальность и эффективность multisig сделок (или сделки с
несколько входов) и Merklized абстрактные синтаксические деревья (МАСТ), который может
повысить конфиденциальность и эффективность сценариев с двумя или более условий.
Другие члены сообщества Bitcoin изучают несколько других улучшений
что можно сделать с помощью сценария управления версиями.
Активация для segwit мягкой вилки управляется с помощью BIP9
versionbits. версия битой Segwit является битом 1, и узлы начнут
отслеживания, который блокирует сигнал поддержки segwit в начале
первый нацелить период после даты начала segwit от 15 ноября 2016 года If
95% блоков в период Retarget в 2016-блок (около двух недель)
Поддержка сигнала для segwit, мягкая вилка будет заблокирована. После
еще 2,016 блоков, segwit будет активировать.
Для получения дополнительной информации о segwit, пожалуйста, см segwit FAQ,
segwit руководство разработчиков бумажника или БИП 141, 143,
144, а также 145. Если вы шахтер или майнинг
оператор, пожалуйста, см versionbits FAQ для получения информации о
сигнализации поддержки мягкой вилки.
Null манекен мягкой вилки
В сочетании с segwit мягкой вилкой является дополнительным изменением, которое поворачивает
длительно существующая политика сети ретрансляции в правило консенсуса.
OP_CHECKMULTISIG а также OP_CHECKMULTISIGVERIFY опкоды потребляют дополнительное
стек элемент ("ложный элемент") После проверки подписи. фиктивная
элемент не проверен каким-либо образом, и может быть заменен любым
значение без недействительности сценария.
Поскольку любое значение можно использовать для этого фиктивного элемента, это возможно для
третья сторона для вставки данных в операции других людей, изменяя
TXID сделки (называется сделка тягучесть) и, возможно,
вызывая другие проблемы.
Поскольку Bitcoin Ядра 0.10.0, узлы дефолте только релейной защиты и
горнодобывающие операции, чей манекен элемент был нулевым значением (0x00, также
называется OP_0). Нулевая фиктивная мягкая вилка поворачивает это правило реле в
Правило консенсуса как для не segwit сделок и сделок segwit,
так что этот метод мутируют сделки постоянно устранен
от сети.
Сигнализации для нулевой фиктивной мягкой вилки производится с помощью сигнализации поддержки
для segwit, и нулевая фиктивная мягкая вилка будет активировать одновременно
в segwit.
Для получения дополнительной информации, пожалуйста, см BIP147.
изменения RPC низкого уровня
- importprunedfunds принимает только два обязательных аргумента. Некоторые версии принимают
необязательный третий аргумент, который всегда был проигнорирован. Убедитесь в том, чтобы никогда не передать больше
чем двумя аргументами.
Linux ARM строит
С выпуском 0.13.0, преднастроенным ARM исполняемые файлы Linux были добавлены в набор
загруженные исполняемые файлы. Дополнительные подробности об архитектуре ARM ориентированы на каждый
приводится ниже.
Следующие дополнительные файлы можно найти в каталоге загрузки или торрент:
- Bitcoin - $ {VERSION} -arm-линукс-gnueabihf.tar.gz: Linux бинарники таргетинг
32-битный ARMv7-архитектура. - Bitcoin - $ {VERSION} -aarch64-линукс-gnu.tar.gz: Linux бинарники таргетинг
64-битный ARMv8-архитектура.
ARM строит все еще экспериментальные. Если у вас есть проблемы на определенном устройстве или
Linux сочетание распределения, пожалуйста, сообщите о них по ошибке трекера, это может быть
можно их решить. Следует отметить, что устройство, которое вы используете, должен быть (назад)
совместимы с архитектурой мишенью бинарник, который вы используете.
Например, Малина Pi 2 Модель B или Малина Pi 3 Модель B (в 32-битной
состояние выполнения) устройство, можно запустить 32-битный ARMv7-A целевой двоичный файл. Однако,
нет модели Raspberry Pi 1 устройство может работать как бинарные, так как все они
ARMv6 устройства архитектуры, которые не совместимы с ARMv7-A или ARMv8-A.
Обратите внимание, что Android не считается ARM Linux в этом контексте. исполняемые
не будет работать из коробки на Android.
0.13.1 изменений
Подробные примечания к выпуску следовать. Этот обзор включает в себя изменения, которые влияют на
поведение, не закодировать хода, refactors и обновление строки. Для удобства в поиске
изменения кода и сопутствующее обсуждение, оба запроса тянуть и
мерзавец слияние совершить упоминается.
### консенсус
- # 8636 `9dfa0c8` Реализовать NULLDUMMY softfork (BIP147) (jl2012)
- # 8848 `7a34a46` Добавить NULLDUMMY проверить флаг в bitcoinconsensus.h (jl2012)
- # 8937 `8b66659` Определить время начала и окончания для развертывания segwit (SIPA)
### RPC и другие интерфейсы
- # 8581 `526d2b0` Отбросьте ложную опцию в importprunedfunds (MarcoFalke)
- # 8699 `a5ec248` Удалить команду createwitnessaddress RPC (jl2012)
- # 8780 `794b007` принизить GetInfo (MarcoFalke)
- # 8832 `83ad563` Бросьте JSONRPCError когда utxo набор не может быть прочитан (MarcoFalke)
- # 8884 `b987348` getblockchaininfo помощь: pruneheight самый низкий, не самый высокий, блок (Лука-младший)
- # 8858 `3f508ed` RPC: Генерация аутентификации печенье в шестнадцатеричном вместо base64 (laanwj)
- # 8951 `7c2bf4b` RPC / Mining: getblocktemplate: Обновление и исправить форматирование помощи (Лука-младший)
### Блок обработки транзакций и
- # 8611 `a9429ca` Сокращение числа блоков по умолчанию для проверки при запуске (сип)
- # 8634 `3e80ab7` Добавить политику: нулевую подпись для неудавшегося ПРОВЕРКИ (MULTI) SIG (jl2012)
- # 8525 `1672225` Не храни свидетель TxN в кэше отбраковки (сип)
- # 8499 `9777fe1` Добавьте несколько ограничений политики и отключить несжатых ключи для segwit скриптов (jl2012)
- # 8526 `0027672` Сделать неминимальный OP_IF / NOTIF аргумент нестандартный для P2WSH (jl2012)
- # 8524 `b8c79a0` предвычисления sighashes (SIPA)
- # 8651 `b8c79a0` Predeclare PrecomputedTransactionData, как структура (SIPA)
### P2P протокола и код сети
- # 8740 `не 42ea51a` больше не посылать локальный адрес в addrMe (laanwj)
- # 8427 `` 69d1cd2` Игнорировать notfound` P2P сообщений (laanwj)
- # 8573 `4f84082` Установите флаг jonasschnellis фильтр-сеялка DNS (jonasschnelli)
- # 8712 `23feab1` Удалить maxuploadtargets рекомендуемый минимум (jonasschnelli)
- # 8862 `7ae6242` Фикс несколько случаев, когда сообщения были отправлены после запрашиваемого разъединения (theuni)
- # 8393 `fe1975a` Поддержка компактных блоков вместе с segwit (ГАРО)
- # 8282 `2611ad7` Feeler соединения для увеличения онлайн addrs в испытанной таблице (EthanHeilman)
- # 8612 `2215c22` Проверка на совместимость с загрузкой в FindNextBlocksToDownload (сип)
- # 8606 `bbf379b` Исправлены некоторых замков (сип)
- # 8594 `ab295bb` Не добавлять случайные входящие сверстников addrman (gmaxwell)
- # 8940 `5b4192b` Добавить сервис битную поддержку x9 в dnsseed.bluematt.me, seed.bitcoinstats.com (TheBlueMatt, cdecker)
- # 8944 `685e4c7` Удалить поддельный Assert по числу oubound соединений. (TheBlueMatt)
- # 8949 `0dbc48a` быть более агрессивным в получении соединений по отношению к аналогам с соответствующими службами (gmaxwell)
### Построение системы
- # 8293 `fa5b249` Разрешить строительство libbitcoinconsensus без univalue (Лука-младший)
- # 8492 `8b0bdd3` Разрешить строить bench_bitcoin сам по себе (Лука-Jr)
- # 8563 `147003c` Добавить проверку настроит для -latomic (ajtowns)
- # 8626 `ea51b0f` Berkeley DB исправление v6 (NetSafe)
- # 8520 `75f2065` Удалить проверку на` OpenSSL / ec.h` (laanwj)
### GUI
- # 8481 `d9f0d4e` Fix минимизировать и закрывать ошибки (adlawren)
- # 8487 `a37cec5` Persist в DATADIR после сброса опции (achow101)
- # 8697 `41fd852` Фикс порядок оп, добавляемых первое предупреждение (rodasmith)
- # 8678 `8e03382` Fix UI ошибка, которая может привести к неожиданному платить гонорар (jonasschnelli)
- # 8911 `7634d8e` Перевести все файлы, даже если кошелек отключен (laanwj)
- # 8540 `1db3352` Fix случайный Segfault при закрытии "Выберите каталог данных" Диалог (laanwj)
- # 7579 `f1c0d78` Показать сеть / ошибка цепи в GUI (jonasschnelli)
### Бумажник
- # 8443 `464dedd` тривиальной очистка изменений бумажника HD (jonasschnelli)
- # 8539 `cb07f19` CDB: исправить выход отладки (crowning-)
- # 8664 `091cdeb` Fix segwit связанных бумажник ошибка (sdaftuar)
- # 8693 `c6a6291` Добавить адрес свидетеля в адресную книгу (instagibbs)
- # 8765 `6288659` Удалить "неиспользуемый" ThreadFlushWalletDB от removeprunedfunds (jonasschnelli)
### Тестирование и QA
- # 8713 `ae8c7df` create_cache: Удалить временный реж когда сделано (MarcoFalke)
- # 8716 `e34374e` Проверьте унаследованный бумажник, а также (MarcoFalke)
- # 8750 `d6ebe13` Refactor RPCTestHandler для предотвращения TimeoutExpired (MarcoFalke)
- # 8652 `63462c2` удалить корневую директорию теста для испытаний RPC (yurizhykin)
- # 8724 `da94272` walletbackup: Блоки синхронизации внутри цикла (MarcoFalke)
- # 8400 `bea02dc` включить rpcbind_test (yurizhykin)
- # 8417 `f70be14` Добавить тест RPC walletdump (включая HD- & Шифрование-тесты) (jonasschnelli)
- # 8419 `a7aa3cc` Включить учет размера в горнодобывающей промышленности модульных тестов (sdaftuar)
- # 8442 `8bb1efd` Ремонтный Обои, тест бумажника дампа (MarcoFalke)
- # 8528 `3606b6b` Обновление p2p-segwit.py, чтобы отразить правильное поведение (instagibbs)
- # 8531 `a27cdd8` abandonconflict: Используйте assert_equal (MarcoFalke)
- # 8667 `6b07362` Fix SIGHASH_SINGLE ошибка в test_framework SignatureHash (jl2012)
- # 8673 `03b0196` Фикс очевидной ошибки присваивания / равенства в тесте (JeremyRubin)
- # 8739 `cef633c` Фикс сломанной тест sendcmpct в p2p-compactblocks.py (sdaftuar)
- # 8418 `ff893aa` Добавить тесты для компактных блоков (sdaftuar)
- # 8803 `375437c` Ping регулярно p2p-segwit.py держать соединение (jl2012)
- # 8827 `9bbe66e` Разделить медленную RPC вызовов, чтобы избежать тестирования обрезки таймаута (sdaftuar)
- # 8829 `2a8bca4` Добавить Bitcoin-ТХ JSON тесты (jnewbery)
- # 8834 `1dd1783` blockstore: Переключить на немой дБмВт (MarcoFalke)
- # 8835 `d87227d` nulldummy.py: Не запускайте неиспользуемый код (MarcoFalke)
- # 8836 `eb18cc1` bitcoin-util-test.py должен завершиться неудачей, если выходной файл пуст (jnewbery)
- # 8839 `31ab2f8` Избегайте ConnectionResetErrors во время испытаний RPC (laanwj)
- # 8840 `cbc3fe5` Явного установить кодировку utf8 при открытии текстовых файлов (laanwj)
- # 8841 `3e4abb5` Fix nulldummy тест (jl2012)
- # 8854 `624a007` Фикс состояние гонки в тесте p2p-compactblocks (sdaftuar)
- # 8857 `1f60d45` mininode разрешено только названные арги в wait_until (MarcoFalke)
- # 8860 `0bee740` Util: Переместить wait_bitcoinds () в stop_nodes () (MarcoFalke)
- # 8882 `b73f065` условия Фикс гонки в p2p-compactblocks.py и sendheaders.py (sdaftuar)
- # 8904 `cc6f551` Фикс компактные блок shortids для тестового примера (dagurval)
### Документация
- # 8754 `0e2c6bd` Target Protobuf 2.6 в OS X строить заметки. (Fanquake)
- # 8461 `b17a3f9` документ возвращаемого значения networkhashps для getmininginfo RPC конечной точки (jlopp)
- # 8512 `156e305` Исправленная JSON опечатку на setban из net.cpp (Sevastos)
- # 8683 `8a7d7ff` Исправить неправильное имя файла bitcoin.qrc (bitcoinsSG)
- # 8891 `5e0dd9e` Обновление bips.md для сегрегированной Witness (fanquake)
- # 8545 `863ae74` Обновление git-subtree-check.sh README (MarcoFalke)
- # 8607 `486650a` Fix Doxygen вне по-одному комментарии, исправить опечатки (MarcoFalke)
- # 8560 `c493f43` Фикс два примера VarInt в serialize.h (cbarcenas)
- # 8737 `084cae9` UndoReadFromDisk работает на отмен файлов (об), а не на блок-файлов (paveljanik)
- # 8625 `0a35573` Уточнить заявление о параллельных заданий в rpc-tests.py (isle2983)
- # 8624 `0e6d753` построить: Упоминание завитка (MarcoFalke)
- # 8604 `b09e13c` строить, док: Обновление для 0.13.0+ и OpenBSD 5.9 (laanwj)
- # 8939 `06d15fb` Update реализован БИП для 0.13.1 (ГАРО)
### Разное
- # 8742 `d31ac72` Укажите Protobuf версии 2 в paymentrequest.proto (fanquake)
- # 8414, # 8558, # 8676, # 8700, # 8701, # 8702 Добавить отсутствующие заголовки авторского права (isle2983, kazcw)
- # 8899 `4ed2627` Fix следа от вопроса сна с усилением 1.59.0 (fanquake)
- # 8817 `bcf3806` обновление Bitcoin-TX для вывода данных свидетелей (jnewbery)
- # 8513 `4e5fc31` Устранить ошибку типа, который не будет компилировать на OSX. (JeremyRubin)
- # 8392 `30eac2d` Fix несколько проблем инициализации узла (SIPA)
- # 8548 `` 305d8ac` Используйте __func__`, чтобы получить имя функции для вывода печати (MarcoFalke)
- # 8291 `a987431` [Util] CopyrightHolders: Проверка нетранслированного замещения (MarcoFalke)
кредиты
=======
Спасибо всем, кто непосредственно способствовал этой версии:
- adlawren
- Алексей Веснин
- Андерс Шyvind Urke-Sжtre
- Эндрю Chow
- Anthony Towns
- BtcDrak
- Крис Стюарт
- Christian Barcenas
- Christian Decker
- Cory Поля
- crowning-
- Дагур Valberg Johannsson
- David A. Harding
- Эрик Ломброзо
- Этан Heilman
- fanquake
- Gaurav Rana
- Грегори Максвелл
- instagibbs
- isle2983
- Jameson Лопп
- Джереми Рубин
- jnewbery
- Johnson Lau
- Jonas Schnelli
- jonnynewbs
- Джастин Camarena
- Kaz Wesley
- leijurv
- Люк Dashjr
- MarcoFalke
- Marty Jones
- Мэтт Corallo
- Миха
- Майкл Форд
- mruddy
- Павел Janнk
- Pieter Wuille
- rodasmith
- Sev
- Suhas Daftuar
- Почему так
- Владимир Дж ван дер Лан
А также всем, кто помогал переводить на Transifex.