Компания, занимающаяся инфраструктурой биткойнов, Blockstream недавно провела ребрендинг своей реализации Lightning Network с c-lightning на Core Lightning (CLN), пытаясь подчеркнуть долгосрочную перспективу проекта. сосредоточьтесь на функциональной совместимости и работе со спецификациями.

Первоначальное название, которое намекало на язык программирования C, в который встроена реализация, не отражало фактическое намерение компании в отношении проекта. Теперь Core Lightning стремится отразить ценностное предложение реализации Blockstream.

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

Почему существуют разные реализации сети Lightning?

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

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

Принимая во внимание, что в биткойнах в настоящее время существует де-факто стандартное программное обеспечение узла, Bitcoin Core, в настоящее время существует более одного типа программного обеспечения для узлов Lightning. В результате необходим набор документов, определяющих, как эти различные типы узлов Lightning — также известные как «реализации» — могут взаимодействовать друг с другом.

Основные документы технологии Lightning (BOLT) определяют набор спецификаций, которым должны соответствовать все реализации узлов Lightning. чтобы быть стабильным и совместимым участником Lightning Network. В настоящее время существует 11 документов BOLT, в которых описывается все: от того, как установить платежный канал и пополнить его биткойнами, до того, как следует запрашивать платеж Lightning.

Естественно, тот факт, что существуют разные реализации Lightning, также означает, что пользователям доступны различные предложения, и они могут выбрать любое программное обеспечение для запуска в зависимости от своих конкретных потребностей. На высоком уровне существует четыре основных реализации Lightning: LND, Core Lightning, Eclair и LDK, каждая из которых ориентирована на конкретные варианты использования.

Core Lightning: создано на основе BOLT

CLN, ранее c-lightning, используется в основной сети Биткойн с начала 2018 года. Написано на языке C. языка, который предлагает разработчикам высокую степень контроля над поведением их кода даже на низком уровне, CLN уделяет особое внимание эффективности, а также предоставляет разработчикам и пользователям модульную, на основе плагинов реализация протокола масштабирования 2-го уровня Биткойн.

«Мы стремимся быть высокопроизводительная реализация корпоративного уровня, соответствующая спецификациям», — сказал разработчик Lightning в Blockstream Расти Рассел в интервью журналу Bitcoin Magazine. «Традиционно это означает, что мы больше ориентированы на высококлассных пользователей, предприятия и разработчиков».

CLN работает только в Linux и MacOS и требует локального или удаленного bitcoin версии 0.16 или выше, который полностью подключен к сети, в которой работает пользователь, и передает транзакции из нее. Отсечение поддерживается частично.

Как облегченная реализация, CLN обеспечивает большую уровень настройки, поскольку он позволяет пользователю делать его по-своему и добавлять только те функции, которые ему нужны или нужны. Разработчики могут взаимодействовать с демоном с помощью настраиваемых методов JSON-RPC, что позволяет им эффективно настраивать функциональность в соответствии со своими потребностями с помощью подключаемых модулей, которые могут напрямую обращаться к низкоуровневым данным.

Модульность, эффективность и надежность кода CLN обеспечиваются их сопутствующие минусы тоже. Кристиан Декер, исследователь из Blockstream, специализирующийся на решениях для масштабирования биткойнов, сказал во время лондонской встречи разработчиков биткойнов в прошлом месяце, что, придерживаясь философии UNIX, делать одно дело очень хорошо и не навязывать решения для пользователя CLN предоставляется в виде «голых костей» и требует от пользователя некоторой самоотверженности, чтобы заставить его работать.

Примечательно, что реализация Blockstream в значительной степени сосредоточена на процессе спецификации и генерирует много своего кода. Спецификации BOLT напрямую, по словам Рассела. Хотя это обеспечивает реализацию, полностью соответствующую спецификациям, у команды остается меньше времени на рекламу своей работы, и она определяет это как причину, по которой она видит меньше взаимодействия с сообществом и доли узлов, чем другие реализации.

«Мы созданы. буквально из спецификаций Lightning BOLT!» Рассел сказал Bitcoin Magazine. «Это означает, что мы очень заботимся (и как команда приложили огромные усилия) к координации архитектуры всей сети Lightning с помощью спецификаций BOLT».

Обычно команда предлагает новую спецификацию более широкому сообществу разработчиков, прежде чем добавлять ее в CLN в попытке обеспечить долгосрочную совместимость между различными реализациями, одновременно запрашивая больше внимания для просмотра, тестирования и комментариев к ее коду, прежде чем она в конечном итоге превратится в новый BOLT и станет готов к должны быть приняты во всех реализациях.

«Часть причины, по которой мы используем процесс спецификации и проверки для всех реализаций, заключается в том, что он помогает определить лучшие способы работы — найти ошибки, определить будущие проблемы», Лиза Нейгут, инженер протокола Lightning в Blockstream, рассказала журналу Bitcoin Magazine.

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

Команда Blockstream также разработала набор новых функций, расширяющих текущую функциональность BOLT, которые часто представляют собой проекты спецификаций или предложения по спецификациям, включая совместное открытие каналов, рекламу ликвидности и BOLT 12. CLN предоставляет пользователю дополнительные возможности. чтобы опробовать эти будущие спецификации.

«Мы связываем черновые части спецификации Lightning с экспериментальными вариантами», — сказал Рассел журналу Bitcoin Magazine. «Но если вы более предприимчивы, эти экспериментальные варианты дадут вам

представление о том, что будет дальше в Lightning Network!»

Открывается канал для совместной работы, ранее называвшийся «каналами двойного финансирования». », позволяют участникам совместно открыть новый канал, совместно финансируя транзакцию по финансированию канала. В настоящее время открыты каналы с односторонней транзакцией финансирования одним участником. Открытие канала для совместной работы также позволяет распределенным CoinJoin входить в открытый канал Lightning.

«Вы можете организовать свой собственный CoinJoin с кучей других узлов Lightning», — сказал Нейгут в интервью журналу Bitcoin Magazine. «Вы делаете это децентрализованно, поэтому единственные люди, которые знают о том, кто в этом участвует, — это люди, которые на самом деле участвуют в этой транзакции, поэтому нет центрального координатора, который делает это».

Реклама ликвидности также использует совместную работу. канал открывается. Согласно сообщению в блоге Blockstream, «они — это легкий способ обеспечить возможность координировать развертывание ликвидности в сети децентрализованным и доступным способом».

Эта функция пытается решить распространенную проблему в Lightning: входящая ликвидность.

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

BOLT 12 еще один проект спецификации для кошельков и узлов Lightning с экспериментальной поддержкой в ​​CLN. Предлагаемая функция, придуманная как «предложения», улучшит счета-фактуры BOLT 11, позволяя повторно использовать предложения, тогда как счет-фактура BOLT 11 может использоваться только один раз. Кроме того, хотя счет-фактура является исключительно платежным запросом, вы можете использовать предложение для отправки, а не только для получения денег.

Пользователи CLN теперь также могут автоматизировать свои задачи управления узлами с помощью CLBOSS, недавно выпущенный инструмент «искусственного интеллекта», который может решать, какие узлы открывать каналы, открывать каналы, когда комиссии низкие и есть средства в сети, корректировать комиссию за маршрутизацию, чтобы конкурировать с другими узлами, выполнять обмен подводными лодками с помощью API-интерфейса Boltz.exchange и автоматически перебалансировать каналы.

Пока различные реализации следует поощрять к поиску автономных решений для своих конкретных вариантов использования при соблюдении текущих спецификаций BOLT 11, выдвижение сопутствующего предложения спецификации, чтобы помочь другим реализациям развернуть ту же или аналогичную функцию, как правило, является хорошей практикой, поскольку такая переезд якобы рассчитан на долгосрочную перспективу интересы широкой и постоянно растущей базы пользователей Lightning. При этом процесс спецификации — непростая задача.

«Как процесс это сложно и занимает много времени. Это требует координации с другими людьми с множеством разных взглядов», — сказал Нейгут.

В результате разные компании посвящают этому процессу разное количество времени и усилий в соответствии со своими индивидуальными приоритетами, которые, естественно, различаются. В то время как, по словам Рассела, команда CLN потратила большую часть своих «усилий на спецификацию и низкоуровневые детали реализации и почти не потратила усилий на взаимодействие с разработчиками или маркетинг», Lightning Labs, компания, стоящая за LND, часто предпочитала уделять больше внимания инженерные ресурсы для новых функций и решения проблем клиентов, а не для трудоемкого процесса спецификации.

LND: пробелы, которые может заполнить CLN?

LND — это первая реализация Lightning для разработчиков, ориентированная на упрощая разработку приложений поверх него, тем самым уделяя особое внимание взаимодействию с разработчиками, особенно в стандартном подходе к общению через REST API, которые упрощают разработку приложений, а также предоставляют четкую документацию и простую настройку.

“Мы хотим, чтобы разработчики могли легко взять его, интегрировать в свой продукт, создать на его основе приложения и распространять его в виде кошелька или собственного узла”, – разработчик LND Оливер Гуггер сказал в Лондоне Встреча биткойн-разработчиков. «Донести это до публики».

В результате LND фокусируется на «наличии отличного интерфейса разработчика», добавил Гаггер, за счет включения gRPC и REST.

«У LND есть большое сообщество, простая установка и отличная документация для разработчиков», — сказал Рассел, когда его спросили, почему он считает LND самой популярной реализацией Lightning.

LND продемонстрировал наибольшее участие сообщества среди всех реализаций и в настоящее время использует большинство всех сетевые узлы. по некоторым оценкам доля LND в общем Количество узлов Lightning составляет от 70% до 90%.

LND также может похвастаться, пожалуй, самой большой штатной командой разработчиков. В результате команде удалось создать множество дополнительных сервисов на основе LND, таких как Aperture. и службы ликвидности Lightning Loop и Пул.

Loop использует подводные свопы для объединения биткойнов в сети и вне сети, что упрощает перемещение биткойнов в сеть Lightning и из нее. Он выполняет автоматическую балансировку каналов, некастодиальные свопы с обеспечением конфиденциальности, экономичное пакетирование оппортунистических транзакций и отслеживание хода выполнения свопов во время полета.

Pool — это одноранговая торговая площадка для каналов Lightning. Он связывает пользователей, которым нужен доступ к входящей ликвидности, с теми, у кого есть капитал для развертывания в сети Lightning, позволяя участнику сети Lightning подать сигнал о необходимости в нем и побуждая других открывать каналы с ними, используя их капитал.

Поскольку LND обычно фокусируется на новых функциях и поддержке клиентов, команда CLN обнаружила пробел на рынке, который она надеется заполнить, уделяя больше внимания процессу спецификации.

Согласоваться или не соответствовать спецификации

h2>

«Команда Labs придумала отличный материал, — сказал Нейгут. «Просто они, как организация, не очень хорошо пишут спецификации для вещей, которые они добавляют. Хороший пример — KeySend».

KeySend позволяет узлу Lightning отправлять кому-либо платеж Lightning, имея только идентификатор получающего узла, что означает, что инструмент не требует счетов, которые являются текущими стандарт де-факто платежного механизма Lightning.

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

Спецификация в конечном итоге была написана реализацией Spiral Lightning, LDK, вспоминает Нейгут. , после того как его команда реконструировала код Lightning Labs.

«И другим командам действительно пришлось последовать их примеру, потому что у LND такая большая база установок», — сказала она. «Это не самый совместный процесс».

«Команда людей, работающих над материалом Lightning Labs, довольно сплоченная», — добавил Нейгут. «Я просто думаю, что они как бы пользуются своим сетевым доминированием, чтобы не выполнять всю эту дополнительную работу, потому что, если они этого не сделают, это сделает кто-то другой, потому что большинство узлов в сети запускают их код».

Нейгут сказала, что она уже привыкла к тому, что LND находится в центре внимания и является реализацией Lightning по умолчанию. Она признается, что ей это нравится как разработчику из-за того, что она получает меньше запросов в службу поддержки.

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

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

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

«Создать инфраструктурную компанию с открытым исходным кодом сложно, поэтому неудивительно, что я не согласен со всеми [Lightning Labs’] приоритеты», — сказал Рассел. «Я искренне верю, что они найдут способ как создать устойчивый поток доходов, так и стать надежным партнером в техническом развитии сети Lightning; Я не думаю, что кто-то хочет, чтобы сеть была разделена на части».

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

«Если бы [Lightning Labs] были лидером, и они также лидируя в спецификациях, я думаю, что будет немного меньше трений, связанных с добавлением новых функций, потому что будет не так сложно следить за тем, что они делают», — сказал Нейгут. «Возможно, в дальнейшем они будут более активно участвовать в процессе спецификации. Я думаю, что они определенно получили отзывы от нас и остального сообщества о том, что процесс спецификации важен».

Часть спора и напряжения в процессе спецификации BOLT вытекает из электронного письма, опубликованного в Твиттере в конце февраля. в котором глава отдела ликвидности Lightning в Lightning Labs Алекс Босворт прокомментировал BOLT 12 и процесс спецификации BOLT.

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

Lightning Labs позже уточнил, что комментарии Босворта отражают только его мнение, а не обязательно мнение компании.

Босуорт, возможно, намекнул на отказ от соответствия процессу спецификации всякий раз, когда это противоречит тому, что он называет «текущими проблемами» в Lightning, поскольку такие стандарты могут не использоваться большей частью сети и, следовательно, не требуют больших усилий по разработке, в то время как эти проблемы могут представлять болевые точки большинства пользователей и должны поэтому отдавайте предпочтение. Источник изображения.

Декер поделился своими мыслями о Комментарии Босворта и процесс спецификации BOLT во время лондонской встречи разработчиков биткойнов.

«Я думаю, что это очень сильные заявления от человека, который никогда не участвовал ни в одном собрании спецификаций», — сказал он. «В процессе спецификации есть некоторые разногласия, но это сделано намеренно. Если бы одна реализация могла диктовать, как должна выглядеть вся сеть, у нас было бы очень близорукое представление о том, какой может быть сеть, и мы не смогли бы обслуживать все различные варианты использования, которые мы обслуживаем».

«Итак, да, иногда процесс спецификации разочаровывает, я полностью с этим согласен», — добавил он. «Конечно, у нас разные взгляды на то, как должна выглядеть сеть. Но с помощью этого тезиса, антитезиса и процесса синтеза мы приходим к системе, которая гораздо больше способна служить нашим пользователям, чем если бы одна реализация делала это в одиночку».

«Лично я не работаю над спецификации, поэтому я не чувствую себя квалифицированным, чтобы дать ответ», — сказал Гуггер на встрече, комментируя электронное письмо Босворта. «Я просто хотел добавить, что не обязательно согласен со всеми пунктами, которые упомянул Алекс. Я бы точно сказал и по-другому. Я думаю, что нехватка ресурсов для работы над спецификацией иногда интерпретируется как то, что мы блокируем вещи, что, конечно же, не является нашим намерением и целью. Мы хотим еще поработать над спецификацией, поэтому я надеюсь, что мы ее улучшим. Интересно наблюдать, как это разочарование иногда выходит на поверхность. Спасибо [Decker и разработчику ACINQ Bastien Teinturier] за всю работу, которую вы проделали над спецификацией. Мне тоже нужно взять трубку, так что я сделаю все возможное».

Рассел также прокомментировал письмо Босворта в тред в Твиттере, в котором он пообещал уделять больше времени полировке и маркетингу CLN, поскольку он сказал, что LND не внедрила Lightning первой и не реализовала ее. лучше всего — хотя сообщество у них отличное, добавил он.

«Оказывается, они решили, что могут использовать доминирование в сети для управления протоколами, а процесс спецификации не« настоящий », — написал он в нить. «Lightning Labs заявляла о своих правах на сеть Lightning разными способами: я не хотел публично об этом говорить. Но сеть и сообщество Lightning заслуживают большего».

Рассел не ответил на вопросы журнала Bitcoin Magazine, касающиеся этой ветки. Lightning Labs отказалась от комментариев.

«В 2016 году мы пришли с трех разных направлений и решили объединить все, чему научились на этом начальном этапе экспериментов, в единую спецификацию, чтобы мы могли сотрудничать и взаимодействовать.”,-сказал Декер на встрече. «Эта экспериментальная фаза всегда должна сопровождаться предложением, которое может быть проанализировано всеми остальными и может быть реализовано всеми остальными. Иногда это официальное предложение отсутствует, и это не позволяет другим реализациям дать собственный обзор этой функции. Этот обзор очень важен, чтобы убедиться, что он работает для всех и что это лучшее, что мы можем сделать».

«Как следует из названия Lightning Network, он очень выигрывает от сетевых эффектов, которые мы получаем. быть совместимым, способным взаимодействовать и позволяющим всем реализациям играть на равных условиях», — добавил он позже.

Реализации дополняют друг друга, они не конкурируют

Кроме того Из-за очень специфических разногласий в отношении процесса спецификации реализации Lightning в основном работают по отдельности, а затем вместе, чтобы принести в сеть лучшие и наиболее востребованные функции, обеспечивая общее лучшее взаимодействие с пользователем.

В результате Blockstream перешел на push CLN как модульное и облегченное предложение, соответствующее спецификациям, является альтернативой для тех, кто заинтересован в реализации узла, который стремится быть полностью совместимым с остальной частью сети и предоставляет уникальный набор преимуществ для тех, кто это делает.

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

Categories: IT Info