Перейти к публикации
Tomcat_MkII

Новый релиз Bitcoin Core 0.11.0: борьба со спамом и оптимизация базы данных блоков

Рекомендованные сообщения

130715_Bitcoin_Core_011_1.jpg
 
В суматохе последних дней, связанной с кризисами в разных концах света - Европе и Китае, мы уже начали забывать о технических проблемах в сети Bitcoin. В самом деле, когда вся Европа наблюдает за саммитом по Греции, валятся китайские акции, а курс Биткоина за несколько дней растет и падает на десятки долларов - очереди транзакций и работа программистов отходят на второй план.
 
Атака спамом транзакций идет без перерывов уже почти неделю и задержка платежей утратила новизну. Некоторые прозевавшие начало "праздника" даже придумали "вторую волну атаки", хотя она не прекращалась ни на минуту.
 
Упорству неизвестного спамера можно позавидовать - уже с 10 июля размер очереди стабилизировался в диапазоне 12-20 тысяч транзакций, но он продолжает упорно рассыпать по сети свою "пыль".  Она причиняет некоторые неудобства, возможно даже заставляет кого-то чихать, но большая часть пользователей уже не обращает на нее внимания.
 
Между тем, разработчики ядра Биткоина не сидели без дела и прошлой ночью выпустили большое обновление - версию Bitcoin Core 0.11.0. В свете последних событий она очень актуальна, так как большая часть изменений направлена именно на борьбу о спамом и оптимизацию хранения блокчейна, чего пользователи ждали уже давно. Из-за постоянного роста базы данных количество полных узлов в сети начало сокращаться, а без них обеспечение децентрализации невозможно. 
 
Скачать новую версию можно на официальном сайте Bitcoin.org. Версия 0.11 обратно совместима с версиями 0.10.*, тогда как перейти на более старые без повторной загрузки блокчейна уже невозможно из-за изменения механизма синхронизации блоков.
 
Так как я давно не запускал свой кошелек и еще не проверял новой параллельной загрузки, то решил удалить свою копию блокчейна и закачать ее "с чистого листа". Новый кошелек быстро установился и запустился. Закачка нового блокчейна стартовала через минуту и пошла достаточно резво, по сравнению со старыми версиями, поедая дисковое пространство со скоростью нескольких сотен мегабайт в минуту. 
 
130715_Bitcoin_Core_011_2.jpg
 
Кроме небольших косметических изменений интерфейса, все осталось по-прежнему. Но окно отправки платежа со включенными "экспертными" опциями стало богаче, в частности теперь имеется более гибкое управление комиссиями.
 
130715_Bitcoin_Core_011_3.jpg
 
Но невидимые для пользователя компоненты клиента изменились еще более значительно. Итак, традиционный список главных изменений:

  • Защита от "спама транзакций" (transaction flooding): 
  • a) Для мониторинга использования памяти кошельком введена команда для вывода информации по mempool - массиву неподтвержденных транзакций. Это команда getmempoolinfo.
    б)Появилась возможность фильтровать ретрансляцию транзакций вашим узлом по минимально заложенному объему комиссии. По умолчанию установлено значение в 1000 сатоши (0.00001 BTC). Его можно поменять с помощью команды minrelaytxfee. Транзакции с комиссией меньше заданного значения, будут отвергаться кошельком и не будут ретранслироваться другим узлам.
    в) Еще одна команда позволяет задать количество бесплатных транзакций, которое клиент будет размещать в mempool, а при майнинге включать в блок. Это команда limitfreerelay, по умолчанию стоит значение 15.
    Эти значения можно задавать и в файле bitcoin.conf. Более существенные меры для борьбы со спамом обещаны в следующем релизе.
  • Следующее важное нововведение - обрезка файла блоков (Block file pruning). База данных блокчейна состоит из четырех основных компонентов: базы неистраченных выходов, индекса блоков, данных отката (undo) и "сырых блоков" (raw blocks), полученных по сети.
    "Обрезка" позволяет удалять два последних компонента, как только они были использованы и внесены в индекс. Пользователь может задать вручную размер накапливаемых данных. Минимальное значение - 550 Мб. Оно задано из расчета, что кошелек сможет хранить в "сыром" виде не меньше 288 блоков - то есть примерно за двое суток. Если отведенное место заполнено, более старые блоки удаляются.
    На данный момент "обрезка" несовместима с ретрансляцией блоков. Узел со включнной функцией обрезки не может работать, как полноценный член сети - он хранит не весь блокчейн, а только неистраченные выходы и небольшое количество последних блоков. По сути, это нечто среднее между полным и легким кошельком. При начальной синхронизации обрезка удаляет старые блоки "на лету". Таким образом, чтобы превратить "обрезанный" кошелек в полный, нужно провести полную ресинхронизацию блокчейна. В будущих версиях разработчики обещают придумать более элегантное решение.
  • Другие важные изменения:
    а) Оптимизация использования памяти. путем управления кэшем UTXO, уменьшением необходимой памяти для поддержки соединений и уменьшения количества потоков, что снижает использование виртуальной памяти.
    б) Улучшен механизм расчета комиссии и отбора транзакций для включения в блок.
    в) Возможность отключения ретрансляции транзакций командой -walletbroadcast=0. Такой кошелек будет принимать транзакции, но не передавать их на другие. Передачу транзакций можно будет организовать с помощью отдельных скриптов, в том числе направлять их через Tor. Эта функция может пригодиться сторонникам максимальной анонимности.
    г) Также через Tor можно будет создавать и отдельные соединения, таким образом кошелек сможет работать в "сером" режиме - и в публичной, и в анонимной сети.

Кроме этого, в обновлении есть множество более мелких изменений и исправлений. Полный список на английском языке можно увидеть здесь или на github.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Предлагаю Закрепить тему до выхода следующего релиза-ибо нужная информация, часто спрашивают и не хотелось бы чтоб затерялась через 2-3 дня... :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Интересно, прикинув насколько напуганные пользователи увеличили комиссию при переводе, подумалось: может все ради этого и делается?.. Мелким майнерам от этого, конечно, профита практически 0, но во большим пулам...

Причем не обвиняю, это естественно: есть возможность заработать - надо заработать. Но ведь может такое быть, тем более, что если причастен пул, то ресурс у атаки "вечен и бесконечен", потому что это часть "производственного процесса" в некотором смысле... Или я ошибаюсь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Tomcat_MkII, скачался блокчейн? сколько весит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Litecoin кошелек тоже обновился и, судя по новому интерфейсу вкладки "Отправить", в него внесены указанные выше изменения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Tomcat_MkII, скачался блокчейн? сколько весит?

У меня занимает 44530M

 

В настоящее время количество транзакций значительно упало, у меня на ноде колеблется около 300:

2015-07-14 17:41:30.572859 New work for worker! Difficulty: 51.656590 Share difficulty: 4511247.812312 Total block value: 25.041451 BTC including 216 transactions

 

Хотя и в пик не наблюдал более 7000.

 

Проблемки были с новым кошельком - количество памяти было "под завязку" + 3 гига свободно.

После обновления пришлось добавить, так как он забивал всю свободную и из за нехватки lowmem bitcoind выбивало.

 

Изменено пользователем ISawa

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×