- Вернуться к меню
- Вернуться к менюЦены
- Вернуться к менюИсследовать
- Вернуться к менюКонсенсус
- Вернуться к менюПартнерский материал
- Вернуться к меню
- Вернуться к меню
- Вернуться к менюВебинары и Мероприятия
Почему CORE разработчики Bitcoin хотят иметь несколько версий
По словам ведущего разработчика, процесс разработки Bitcoin T является демократическим, но больше возможностей может пойти на пользу Bitcoin CORE.
Недавние дебаты о том, следует ли разрешать людям вносить собственные изменения в протокол Bitcoin , высветили важную идею: возможно, разработка Bitcoin CORE, эталонной версии кода, — это T единственный способ для людей внести свой вклад.
Недавнее изменение кода Bitcoin , которое попал в вариант Linux под названием Gentooзаставил некоторых людей возмутиться, прежде чем разработчик отключил эту функцию по умолчанию.
«Они никогда не будут объединены в репозиторий Bitcoin на Github, но те, кто захочет, смогут ими воспользоваться», — сказал ведущий разработчик Bitcoin Владимир Дж. ван дер Лаан.
Но что такое Github, почему ван дер Лаан имеет право выбирать, что туда поместить, и как вообще разрабатывается Bitcoin ?
Как разрабатывается Bitcoin
Эталонная реализация протокола Bitcoin называется Bitcoin CORE. Это код, который Сатоши изначально передал CORE группе разработчиков, прежде чем исчезнуть.
Эти "ученики" теперь поддерживают этот код, вместе с помощью более широкого сообщества разработчиков. Основное внимание уделяется повышению эффективности кода, но при этом делается это осторожно и консервативно, чтобы ничего не сломалось.
Bitcoin CORE управляется с помощью системы контроля версий программного обеспечения, которая называется Гит. Это позволяет людям KEEP , над какими версиями кода они работают и какие изменения они внесли.
Разработчики Bitcoin , использующие Git на своих компьютерах, подключаются к центральной службе, чтобы все они могли работать над версиями одного и того же проекта одновременно. Эта служба, называемая Гитхаб, имеет много разных проектов, поддерживаемых разными группами людей. Bitcoin — ONE из таких проектов, и у него есть свой собственный Страница на Github.
Код проекта хранится в одном месте на Github, называемом репозиторием. Официальная, развертываемая версия репозитория Bitcoin известна как репозиторий upstream, но люди, которые хотят работать над своими собственными изменениями в коде, могут создавать свои собственные версии репозитория, копируя его в онлайн-форк.
Разработчики могут изменять свои форки так, как им хочется. Они могут попросить, чтобы их форк был объединен обратно в главный репозиторий, отправив « Request на извлечение», который открывает их версию репозитория другим членам проекта, которые могут просматривать ее и комментировать.
«Идея состоит в том, что другие разработчики в сообществе рассмотрят изменение», — пояснил ван дер Лаан. «Затем отправитель исправляет проблемы, поднятые другими. Также может потребоваться Rally некоторых людей для тестирования изменения, особенно если оно сложное или если в нем присутствует субъективный компонент (например, для изменений пользовательского интерфейса или RPC)».
Если достаточному количеству людей нравятся изменения, внесенные в pull Request, то он объединяется обратно в главный репозиторий. Но кто на самом деле может объединить pull?
Оказывается, есть своего рода жречество Bitcoin , которое следит за тем, что в конечном итоге попадает в код Bitcoin CORE . Ван дер Лаан, главный научный сотрудник и бывший ведущий разработчик Гэвин Андресен, Джефф Гарзик, Грегори Максвелл и Питер Вюйле — это команда, которая принимает окончательное решение, и это T то, что решается голосованием, как это можно было бы наблюдать в демократическом обществе.
«Отдельные репозитории Github недемократичны», — пояснил ван дер Лаан. «Его сопровождающие сотрудничают в разработке и решают, что и когда объединять, а что нет. Сложные технические вопросы не решаются народным голосованием».
BIPS и запросы на извлечение
Однако, где это возможно, развитие Bitcoin обычно осуществляется посредством общественного консенсуса. В широком смысле, существуют две категории изменений.
Bitcoin CORE поддерживается намеренно консервативным образом, и большинство изменений вносятся «непротиворечивым и санитарным» образом, сказал ван дер Лаан. Они имеют дело с небольшими, постепенными изменениями, а не с крупными, революционными. Патч Bitcoin может переместить часть кода, чтобы сделать его более читаемым, или, возможно, оптимизировать использование памяти.
Есть еще один класс изменений в Bitcoin , которые имеют гораздо больше последствий, и это те, которые изменяют правила консенсуса. Правила консенсуса — это технические правила, которых должны придерживаться все клиенты Bitcoin , чтобы сеть Bitcoin работала должным образом.
«Их нужно внимательно изучить. Сначала их нужно обсудить в списке рассылки, и должен быть BIP, а предложения, как правило, спорные и остаются открытыми для обсуждения в течение длительного времени», — сказал он.
BIP – сокращение отПредложение по улучшению Bitcoin– это документ, предлагающий глобальное изменение некоторых аспектов Bitcoin. Он может распространяться на вещи за пределами Bitcoin CORE, включая мобильные кошельки или генерацию ключей в аппаратных кошельках. Он также может управлять процессами вокруг Bitcoin, например, изменениями в процессе принятия решений.
Создать BIP может любой желающий, главное, чтобы он был написан наэтот формат. Сообщество обсуждает это, и если людям это нравится, его статус может быть изменен на «активный» или «окончательный».
Изменения в этом направлении - это изменения вБИП 62, что было изменением, касающимсянедостаток пластичности транзакций в Bitcoin.
Что повышает вероятность внедрения предлагаемого изменения в протокол? Автору BIP полезно написать пример кода, чтобы люди могли его протестировать и просмотреть, добавил ван дер Лаан.
Рассмотрение и одобрение
Консультант по Bitcoin и аудитор безопасности Серхио Лернерхотелось бы видеть большую формализацию процесса утверждения кодекса.
«Когда вы видите Request на включение изменений, который был объединен, сложно сказать, кто его одобрил [и] в какой степени патч был рассмотрен», — сказал он. «Вам нужно прочитать много комментариев и несколько «+1», которые вы можете интерпретировать как «Я согласен на объединение», но вы также можете интерпретировать их как «Мне нравится, но я на самом деле T просматривал код»».
Лернер хотел бы увидетьмультиподпись Процесс утверждения патча, в котором определенная часть разработчиков официально одобряет код, подписывая обзор. Это будет более масштабная версия процесса, который в настоящее время используется в некоторых кошельках, где для использования Bitcoin адреса необходимо использовать несколько подписей.
Лернер также хотел бы видеть журнал обнаруженных ошибок и анализ того, почему они не были обнаружены вовремя, внешний обзор кода для каждого исправления, ориентированный на безопасность, формальное описание документации, которая должна сопровождать исправление, и описание того, что на самом деле означает обзор исправления.
«Означает ли это построчный обзор исходного кода? Означает ли это проверку того, достаточно ли документации по изменению?» — спросил Лернер. «Означает ли это анализ изменения на предмет известных векторов атак?»
Проблема в том, что все это требует времени и Human ресурсов, сказал Лернер:
«Очевидно, что реализация всего этого требует большей организации, большего бюджета и большего количества CORE ресурсов разработчиков (которых в настоящее время не хватает). Но программное обеспечение, которое поддерживает отрасль с оборотом в 6 миллиардов долларов, требует этого».
Помимо CORE Bitcoin
В то время как Лернер излагает некоторые требования к обзору кода, ван дер Лаан повторяет основную речь Гэвина Андресена на конференцииКонференция Bitcoin 2014, где он сказал, чтоможно было бы сделать больше для упрощения утверждения BIP.
«Процесс BIP может потребовать некоторой доработки. Я был бы рад, если бы разработчики других (полных) реализаций узлов были более активны в комментариях предложений (или выдвижении предложений)», — сказал он.
Андресен также предлагает перенести обсуждение BIP и других вопросов перекрестной реализации из общего списка рассылки по разработке биткойнов в специальный список рассылки BIP.
Как и в случае с разработкой программного обеспечения в рамках проекта с открытым исходным кодом, ответственность за реализацию проекта всегда лежит на пользователях.
«Поскольку это по своей сути глобальный, распределенный, неорганизованный процесс, управление процессом BIP не является задачей какой-то одной организации, поэтому вся ответственность лежит на людях и организациях, которые хотят BAND и что-то сделать», — предположил ван дер Лаан.
Но T Bitcoin Foundation, главная торговая организация биткойна, не должна следить за такими вещами? Нет, утверждает он. Вместо этого мир Bitcoin расширяется за пределы этого, и команда разработчиков приветствует различные реализации Bitcoin.
Ван дер Лаан сказал:
«Выступление Гэвина на Bitcoin 2014ясно дал понять что его внимание сосредоточено на диверсификации. Он говорил о различных реализациях полных узлов, даже сказал: «Чем больше, тем лучше». Хотя поддержание Bitcoin CORE — моя работа, я склонен с этим согласиться».
Ван дер Лаан считает, что больше не следует возлагать ответственность за разработку Bitcoin CORE.
«В первые годы Bitcoin CORE, возможно, был чрезмерно важен, и его разработчикам приходилось KEEP за инфраструктурой узлов (и не спать по ночам, чтобы исправлять ошибки по мере их появления). Но в дальнейшем, чтобы Bitcoin стал глобальной распределенной системой, которой он должен был быть, мы должны выйти за рамки этого».
Итак, может быть благосклонное священство для Bitcoin CORE, в том смысле, что окончательное решение о том, что будет в коде, остается за небольшой группой людей. Но это T значит, что эта группа хочет, чтобы все было эксклюзивным или элитарным — далеко не так.
По крайней мере, некоторые из CORE разработчиков активно поощряют других расширять сеть собственными реализациями, предполагая, что большинство из них будут придерживаться правил консенсуса. Те, кто T сделает, выйдут из синхронизации, что сделает очевидным, кто находится в меньшинстве, и заставит их это исправить.
Развитие Bitcoin в этом направлении может создать пространство для различных вариантов Политика , которые некоторые люди просили, сохраняя при этом правила консенсуса: части, которые действительно делают Bitcoin тем, чем он является. Это также облегчило бы давление на перегруженный набор людей, пытающихся поддерживать Технологии, лежащую в основе быстро растущего бизнеса. И, если все сделано правильно, это могло бы ввести некоторые из новых процессов, о которых просят участники, такие как Лернер.
Вопрос в следующем: как Bitcoin сможет развить такое разнообразие альтернативных реализаций чисто, эффективно и без какой-либо сопутствующей драмы?
Разнообразить изображениечерез Shutterstock
Danny Bradbury
Дэнни Брэдбери — профессиональный писатель с 1989 года, а с 1994 года работает внештатным автором. Он пишет статьи о Технологии для таких изданий, как Guardian.
