Logo
Поделиться этой статьей

Каково это — просматривать код Bitcoin

CoinDesk подробно рассматривает сложный процесс проверки кода программного обеспечения Bitcoin CORE .

19 июня разработчик Chaincode Джон Ньюбери собрал группу разработчиков для изучения предлагаемого изменения кода биткоина.

Тема обсуждения, которая проходила в рамках интернет-чата (IRC), состояла в том, поможет ли изменение предотвратить деятельность группы недобросовестных майнеров.ускорение скорости производства блоков биткоина, является положительным <a href="https://bitcoin-core-review-club.github.io/15481.html one with">https://bitcoin-core-review-club.github.io/15481.html с</a> ограниченными рисками безопасности или неблагоприятными последствиями.

Продолжение Читайте Ниже
Не пропустите другую историю.Подпишитесь на рассылку Crypto for Advisors сегодня. Просмотреть все рассылки

Таким образом, цель Ньюбери — передать свои знания о проверке такого кода.

img1

Было ли это препятствие «атаке искажения времени» существенным изменением?

«Искажение времени использует это, сдвигая блок регулировки сложности далеко в будущее, а затем следующий блок обратно в настоящее», — написал Ньюбери, объясняя вектор атаки.

Но тот факт, что Ньюбери вообще проводит эти сессии, можно рассматривать как признак зрелости сообщества разработчиков биткоина, поскольку это ONE из примеров того, как лучшие кодеры проекта усердно трудились, делая проект более инклюзивным. Процесс проверки кода, возможно, T обсуждался так открыто и подробно ранее.

Ньюбери основал Bitcoin CORE Review Club <a href="https://bitcoin-core-review-club.github.io/">https://bitcoin-core-review-club.github.io/</a> , чтобы давать кодерам советы о том, как разобраться, как просмотреть изменение и определить, полезно ли оно для Криптовалюта. Стенограммы встреч теперь публикуются на сайте каждую неделю.

Это возможно потому, что код биткоина имеет открытый исходный код, находящийсяна GitHubдля любого, у кого есть подключение к Интернету, чтобы посмотреть – или даже изменить. Этот процесс вывел проект из кода, который люди когда-то называли "монолитный сгусток" к программному обеспечению, которое разработчикам легче читать и в котором меньше критических ошибок. Люди постоянно пытаются улучшить его, преследуя благородную конечную цель — сделать его достойной кодовой базой для будущего денег.

Таким образом, также возможно быть ONE из людей, которые вносят вклад в код биткоина. В отличие от проприетарного кода, его код может видеть и использовать любой — то, что известно как «открытый исходный код».

ONE из причин, по которой это называется «программируемыми деньгами», заключается в том, что в отличие от других цифровых денег, любой человек в мире с нужными знаниями может попытаться добавить новые функции кода к деньгам. ONE из способов Словарь кодовую базу — это просмотреть и протестировать код, который присылают программисты, чтобы убедиться, что он действительно работает, T вносит ошибку или — к сожалению, не разделяет сеть Bitcoin пополам.

Но, просматривая страницы кода и сотни предлагаемых изменений, трудно решить, с чего начать.

«Этот еженедельный IRC-клуб предназначен для людей, которые хотят помочь с проверкой запросов на включение изменений в Bitcoin CORE , но считают этот процесс пугающим», — поясняется на веб-сайте клуба, и далее:

«Проверка и тестирование запросов на включение изменений — лучший способ начать вносить вклад в Bitcoin CORE, но сложно понять, с чего начать. Существуют сотни открытых запросов на включение изменений, многие из которых требуют обширных контекстных знаний, а Авторы и рецензенты часто используют незнакомую терминологию».

Таким образом, хотя код этой цифровой валюты доступен для просмотра и изменения, сделать это не всегда легко. Требуется практика, чтобы знать, что проверять.

Вот как выглядит этот процесс.

Это может сделать каждый.

Для начала пользователи могут зайти на GitHub, сайт, на котором размещены всевозможные проекты с открытым исходным кодом. Есть ONE , специально предназначенный для Bitcoin CORE, базовой реализации программного обеспечения Bitcoin , которую запускает большинство пользователей.

Вы заметите, что на GitHub есть много всего, но просмотр кода в основном заключается в просмотре "запросы на извлечение, — ряд изменений, которые разработчики по всей экосистеме представили на рассмотрение.

img2-2

Другими словами, есть 300 изменений, которые еще T проверены, чтобы официально добавить их в кодовую базу, — от упрощения чтения документации, описывающей код, до улучшения производительности Bitcoin.

На этом этапе разработчики пытаются решить, следует ли одобрять эти изменения. Проблема в том, что есть ограниченное количество разработчиков, которые имеют достаточный опыт проверки изменений кода, чтобы определить, следует ли их официально добавлять в кодовую базу. Из-за этого ONE из участников Bitcoin CORE однажды описал список запросов на извлечение как «кладбище крутых идей."

Вот почему Ньюбери пытается помочь в этом процессе.

Итак, как на самом деле ONE рассмотреть изменение? Как Ньюбери описывает на сайте клуба, есть несколько ключевых шагов, с которых можно начать, например, просмотреть «внесение вклада в руководство Bitcoin CORE» и повозиться с C++, языком программирования, на котором написан Bitcoin CORE .

Следующий шаг — просто выбрать изменение для обзора. С чего начать, имея более 300 активных запросов на включение? Лучшим выбором для тех, кто еще T знаком с кодовой базой, являются изменения кода, которые специально помечены как «хорошие первые проблемы».

После завершения подготовительных работ разработчику необходимо «клонировать» репозиторий или использовать git для создания копии кодовой базы на своем компьютере, чтобы можно было проверить, что изменения работают так, как планировалось.

Для копирования всей кодовой базы на ваш компьютер достаточно одной простой команды.

img3

Оттуда вы можете просмотреть Request на извлечение. Затем указанные разработчики должны запустить все «тесты», чтобы убедиться, что изменение кода случайно T затронет другой фрагмент кода, а затем перейти к просмотру остальной части кода.

В голове рецензента

О чем следует подумать рецензентам?

Во-первых, существуют проблемы высокого уровня. Определение того, следует ли вносить изменения, особенно ONE, в основном основано на «грубом консенсусе», что означает, что большинство активных Авторы согласятся, что следует проводить изменения.

На другом собрании клуба Ньюбери сказалhttps://bitcoin-core-review-club.github.io/16060.html:

«Мои мысли об открытии pull-запросов: никто не должен вам делать обзор. Любой, кто проверяет ваш код, делает вам одолжение. Если вы открываете pull Request, вы конкурируете с другими pull-запросами за время обзора».

«Если вы сомневаетесь в том, насколько полезным ваш Request на включение изменений будет для других, смело задавайте его в хэштеге #bitcoin-core-dev или напрямую другим Авторы», — добавил Ньюбери, имея в виду другую IRC-группу, где разработчики могут задавать вопросы, связанные с разработкой Bitcoin CORE .

Тем не менее, разработчики T всегда сходятся во мнении, стоит ли добавлять изменение или нет. ONE группа разработчиков сосредоточилась на спорном изменении кода. Некоторые утверждали, что плохое перевешивает хорошее, в то время как другие продолжают утверждать, что это может быть полезно.

Но даже если идея в целом ONE , есть и более низкие проблемы. Есть ли ошибки? Сопровождается ли изменение кода тестами, которые гарантируют, что изменение кода работает так, как запланировано? Это вопросы, на ответы на которые тратится много времени при обзоре.

Например, на встрече 29 мая (полную стенограмму которой вы можете найти здесь <a href="https://bitcoin-core-review-club.github.io/15741.html">https://bitcoin-core-review-club.github.io/15741.html</a> ) разработчики рассмотрели возможность повышения производительности части кошелька узла Bitcoin .

Участник под псевдонимом «Ариард» провел встречу, проведя обзор процесса проверки, который они разработали с течением времени. «Сначала я попытался определить, какой тип PR это был: документация, стиль кода, исправление буфера, новая функция или добавление теста. Потому что [по моему Мнение] знание этого факта будет определять, как вы будете читать коммиты в первый раз, сколько времени вам понадобится для проверки и какие типы тестов необходимы», — сказал разработчик.

Другой обозреватель отметил, что он заметил улучшение, просто проверив, сколько времени потребовалось для выполнения кода — до и после. «Мой импорт 10000 ключей сократился с 8 минут до 3 секунд xD», — сказал другой пользователь под ником «jb55».

Стенограммы встреч далее изобилуют различными другими советами о том, как оптимизировать этот процесс и сделать его более удобным для обзора, с большим количеством встреч, которые будут запланированы в будущем. Следующие несколько разделов будут вестись техническим писателем и участником Bitcoin Дэвидом Хардингом.

Изображение Адама Бэка из архивов Consensus

Alyssa Hertig

Алисса Хертиг, технический репортер CoinDesk, программист и журналист, специализирующийся на Bitcoin и Lightning Network. На протяжении многих лет ее работы также появлялись в VICE, Mic и Reason. В настоящее время она пишет книгу, в которой исследует все тонкости управления Bitcoin . Алисса владеет некоторым количеством BTC.

Alyssa Hertig