Внутри сознания разработчиков блокчейна: Как избежать ада разработки

Cointelegraph следит за развитием совершенно нового блокчейна от зарождения до mainnet и далее в рамках серии «Inside the Blockchain Developer’s Mind», написанной Эндрю Левином из Koinos Group.

Мы недавно выпустили третью и финальную версию тестовой сети Koinos, поэтому я хочу поговорить о том, о чем мало кто любит говорить: Создание блокчейн — это ад для разработчиков. В этой статье я объясню, почему и как другие разработчики могут избежать попадания в него.

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

Блокчейн «фреймворки»

В попытке упростить создание новых блокчейнов другие команды выпустили «фреймворки» блокчейнов, которые, в теории, должны избавить разработчиков от необходимости беспокоиться о создании самого блокчейна, чтобы они могли сосредоточиться на любых уникальных функциях, которые они хотят встроить в блокчейн. Примерами таких блокчейн-фреймворков являются Cosmos, EOSIO и Substrate от Polkadot.

Когда наша команда прекратила работу над Steem (первым в мире блокчейном без комиссии), нашим первоначальным намерением было использовать существующий блокчейн-фреймворк для создания блокчейна, который должен быть максимально доступным. Мы потратили четыре года на доработку дизайна бескомиссионного Steem и решили, что, перенеся это решение в существующую блокчейн-систему, мы сможем создать блокчейн, гораздо более доступный, чем любой другой блокчейн, за относительно короткое время.

По-настоящему бесплатный и универсальный

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

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

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

Освобождение разработчиков

Мы хотели создать блокчейн, который освободил бы разработчиков для создания безумно замечательных приложений, которыми с удовольствием пользовались бы обычные люди. Это позволило разработчикам работать на языках программирования, которые они уже знали и любили (то, что мы называем «универсальной языковой поддержкой»); это позволило их приложениям (и самому блокчейну) быстро развиваться; и, что самое главное, это позволило им создавать приложения, которые можно использовать бесплатно.

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

Koinos — это тот самый универсальный блокчейн-фреймворк, который послужит основой для самого совершенного уровня 1: мейннета Koinos. Блокчейн Koinos Blockchain Framework (KBF) разработан как самый простой блокчейн, который только можно себе представить. Он содержит только те криптографические примитивы, которые необходимы для построения блокчейна, и правильные «системные вызовы», позволяющие добавлять широкий спектр моделей поведения внутри сети (без жесткого форка) путем загрузки смарт-контракта.

Возможность бесконечной модернизации

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

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

Это и есть ад разработки. Как основная команда разработчиков блокчейна Steem, которой пришлось наблюдать за 23 жесткими форками, мы знаем эту местность лучше, чем кто-либо другой, поэтому мы так стремились изгнать ее, ну… в ад.

Создание с нуля блокчейн-фреймворка Koinos с совершенно новой микросервисной архитектурой и доведение его до состояния, когда мы смогли запустить версии 1 и 2 тестовой сети, было невероятно сложной задачей. Но интеграция отзывов, полученных от этих тестовых сетей, исправление ошибок, которые они выявили, и доработка всех важных системных вызовов — это уже совсем другой уровень. Но мы прошли через этот ад разработки с надеждой сделать так, чтобы другим никогда не пришлось этого делать.

Предвестник

Testnet v3 — это, таким образом, больше, чем «просто еще одна» версия тестнета. Это финальная версия Koinos Blockchain Framework, поэтому теперь мы будем называть тестнет не по номеру версии, а по имени: Harbinger. Это кульминация почти двух лет работы, выявления и внедрения всех необходимых системных вызовов, необходимых для того, чтобы предоставить разработчикам блокчейна максимальный уровень свободы и позволить разработчикам приложений воспользоваться преимуществами платформы, которая совершенствуется более быстрыми темпами, чем любой другой блокчейн.

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

Для нас такой целью является не только избавление разработчиков блокчейна (включая нас самих) от бесчисленных часов, проведенных в аду разработчиков, но и использование этой новой технологии для создания Koinos mainnet: конечного уровня 1 для расширения возможностей разработчиков по созданию безумно классных приложений на основе блокчейна.

Больше никакого ада разработки

Цель KBF — устранить ад разработки, позволив разработчикам создать любой блокчейн, который они только могут себе представить, просто написав смарт-контракты, что бесконечно проще, чем работать в коде самого блокчейна. И это именно то положение, в котором мы сейчас находимся. Хотя разработка основы блокчейна была невероятно сложной задачей, теперь, когда она завершена, все, что нужно для завершения создания сети Koinos, — это всего два смарт-контракта: один для нашего алгоритма консенсуса proof-of-burn, а другой — для управления.

Написание смарт-контрактов не только намного проще, чем разработка блокчейна, но это также означает, что разработчики блокчейна теперь могут воспользоваться преимуществами постоянно расширяющихся инструментов, доступных для разработчиков смарт-контрактов, таких как AssemblyScript SDK, созданный одним из членов нашего сообщества. AssemblyScript не только создает гораздо более эффективные смарт-контракты, чем те, что написаны на C++ (это было неожиданностью), но и делает разработку смарт-контрактов доступной для разработчиков JavaScript.

Поскольку KBF превращает любого разработчика смарт-контрактов в потенциального разработчика блокчейна, это означает, что разработка собственных блокчейнов теперь будет доступна разработчикам JavaScript, а в будущем появятся еще больше языков, таких как Rust.

Если вы заинтересованы в запуске Harbinger, мы сделали запуск узла безумно простым, та
к что вы сможете приступить к работе менее чем за пять минут.

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