- Вернуться к меню
- Вернуться к менюЦены
- Вернуться к менюИсследовать
- Вернуться к менюКонсенсус
- Вернуться к менюПартнерский материал
- Вернуться к меню
- Вернуться к меню
- Вернуться к менюВебинары и Мероприятия
Как уровень P2P Bitcoin получил прирост скорости в последнем выпуске CORE
Разработчик Кори Филдс, финансируемый Массачусетским технологическим институтом, рассказывает о своей работе по переработке кода однорангового уровня Bitcoin Core — задаче, которая была совсем не простой.

«Сатоши оставил нам монолитный кусок кодовой базы».
Таким образом разработчик Bitcoin Кори Филдс хотел сказать, что, несмотря на инновационность, которую ему часто приписывают, код Bitcoin Core представляет собой своего рода беспорядок внутри.
Это проблема, с которой Филдс и другие боролись по крайней мере с 2015 года, когда онпредставил свои планы для перемещения ONE фрагмента кода: однорангового уровня.
Проблема, с которой часто сталкиваются разработчики, заключается в том, что компоненты не все аккуратно разделены. Поэтому, если разработчики изменят что-то, что должно повлиять только на ONE часть Bitcoin и на то, как он функционирует, сказал Филдс, это может непреднамеренно повлиять на другую, скажем, на валидацию, пул памяти, кошелек или p2p. Во- ONE , это затрудняет Словарь азов для новых Авторы Bitcoin .
Так, в таких проектах, как Филдс иlibconsensus (текущий проект, позволяющий альтернативным реализациям оставаться в согласии с сетью Bitcoin ), цель состоит в том, чтобы разделить код на более отдельные фрагменты, чтобы разработчикам было проще и менее необходимо понимать, как эти фрагменты взаимодействуют друг с другом.
Филдс, чья работа финансируется Инициативой по цифровой валюте Массачусетского технологического института, работал, в частности, над созданием одноранговой кодовой базы.
Большая часть его работы впервые появляется в Bitcoin Core. последняя версия программного обеспечения.
Филдс рассказал CoinDesk:
«Насколько мне известно, это первая масштабная переработка кода одноранговой сети».
Однако он упомянул, что со временем многие разработчики, такие как Джонас Шнелли и Мэтт Коралло, внесли свой вклад в этот слой, и, что немаловажно, многие другие приняли участие в проверке и тестировании изменений.
Уровень одноранговой сети обеспечивает соединения между тысячами узлов Bitcoin в сети (возможно, более 50 000(хотя точные подсчеты подсчитать сложно), которые постоянно «общаются» друг с другом, передавая информацию, когда пользователи отправляют биткоины, а майнеры создают новые блоки.
Истории ошибок
ONE из сложностей заключается в том, что стоимость сети Bitcoin составляет примерно 19 миллиардов долларов, а это значит, что вносить изменения в базовый код следует крайне осторожно.
По этой и другим причинам рефакторинг T был простым процессом. Даже для Филдса, который является ONE из самых активный Авторы Bitcoin CORE. («Я трачу почти все свое время на Bitcoin», — сказал он.)
Сначала он попытался создать отдельный слой с нуля. Эта попытка «полностью провалилась».
Однако его более поздний подход к работе над улучшением существующей кодовой базы, возможно, сработал лучше, чем ожидалось, что привело к Истории ошибки «эпохи Сатоши».
«Когда я начал разбивать данные, я заметил нечто странное в использовании полосы пропускания Core во время первоначальной загрузки блока», — сказал Филдс.
Проблема заключалась в том, что когда узел загружал блоки с другого узла, скорость передачи блоков иногда была высокой, иногда низкой, а иногда и на неожиданных уровнях.
Копнув глубже, он и другие разработчики определили, что узлы будут упорно отказываться отправлять данные и обрабатывать их одновременно (хотя это чрезмерное упрощение). Узел будет просто выполнять ONE процесс за раз.
Исправление скорости
Исправление, к которому в конце концов пришла команда, дебютировало в недавнем выпуске кода Bitcoin CORE , изменив скорость, с которой узлы могут передавать информацию ONE другу.
«В частности, уровень p2p получает огромное ускорение», — сказал Филдс.
Он провел несколько тестов, чтобы сравнить последнюю версию Bitcoin (0.13.2) с новой версией с улучшениями (0.14.0), изучив узлы, развернутые в облаке на экземплярах Amazon EC2 с двумя ЦП и 4 ГБ оперативной памяти.
Тесты показали двукратное увеличение скорости — по крайней мере, при сравнении производительности отправки данных между двумя узлами v0.13.2 по сравнению с двумя узлами v0.14.0.

По словам Филдса, здесь есть оговорка: в реальной сети это может привести к BIT меньшему, чем двукратному, улучшению производительности.
Долгосрочные преимущества
Теперь уровень одноранговых сетей в основном отделен от остального.
Стоит повторить, что, если не считать вышеперечисленных улучшений производительности, большинство изменений T заметят пользователи, но они скорее пойдут на пользу разработчикам.
Тем не менее, есть надежда, что они могут оказать долгосрочное воздействие.
«Я надеюсь, что теперь это позволит нам совершенствовать p2p более быстрыми темпами», — сказал Филдс.
Например, было бы сложнее внести изменения, включенные в последнюю версию CORE , если бы Филдс уже не работал над изоляцией кода.
Он сказал:
«[T]Это было относительно простое изменение, которое можно было внести в версию 0.14, но которое раньше было бы гораздо сложнее».
Быстрый набор Изображение предоставлено Shutterstock. Изображение Cory Fields предоставлено CoinDesk