Узнайте, как блокчейн и Web 3.0 могут повлиять на следующую итерацию разработки серверного программного обеспечения.

За последние пару лет я попытался использовать свой инженерный опыт со следующим утверждением:

«Узнайте, как работают вещи, в которые вы инвестируете, и инвестируйте в то, о чем вы знаете».

Это привело к некоторым хорошим, убедительным инвестициям в технологии, о которых я знал в основе. Точно так же я приложил усилия, чтобы узнать о технологиях, в которые поначалу инвестировал вслепую. В конце концов, я совершил одно из своих самых больших учебных путешествий, когда решил узнать, как криптовалюты работают в основе. Изучив технические документы уровня 1 (Ethereum, Bitcoin и т. д.), я понял, что самый быстрый способ принять участие — это освоить концепцию «смарт-контрактов» через изучение Solidity.

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

Начав писать смарт-контракты и взаимодействовать с экосистемой Web 3.0, я был поражен оптимизацией услуг и духом сотрудничества в этом дивном новом мире. Иногда я забывал, что валюта и финансы были основным вариантом использования, поскольку я видел, как фрагментарность API веб 2.0, ООП, хостинг и стандартизация объединены в универсальную технологию.

Мой главный вывод: блокчейн — это гораздо больше, чем просто валюта; это следующая итерация построения в Интернете. В этой статье я постараюсь предоставить новичкам некоторые термины и показать сходства в языке Web 2.0, чтобы помочь другим технологам увидеть потенциал этой технологии.

Кошельки, смарт-контракты, блокчейны и токены

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

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

Кошельки — адреса в цепочке блоков, которым может быть назначена/отправлена ​​часть L1 сети. токен, может назначать/отправлять токен сети L1 и может подписывать транзакции для взаимодействия со смарт-контрактами с идентификатором адреса (мы увидим, как это позволяет использовать другие токены L2).

Смарт-контракт — адрес в блокчейне, который включает в себя все функции кошелька (отправка/получение L1). Они могут хранить данные через переменные состояния (например, базы данных), выполнять функции с помощью байт-кода (например, функции базы данных/API) и взаимодействовать с другими контрактами, такими как кошелек.

Токены уровня 2 — смарт-контракт, реализующий интерфейс (ERC20) с общей функциональностью для облегчения чеканки, передачи, сжигания и других функций валюты. Кошелек не «держит» токены L2 так же, как он хранит L1; он просто может взаимодействовать с контрактом L2 для передачи токенов, эффективно изменяя переменную состояния баланса для своего собственного адреса и адреса, на который он переводится.

API в эпоху Web 3.0

Поток типичного API Web 2.0 выглядит примерно так:

1. Оплатить ключ аутентификации на сайте

2. Напишите код обработки строк для создания полезной нагрузки и/или переменных в строке URL.

3. Используйте HTTP-библиотеку для конкретного языка для отправки запроса на получение/отправку.

4. Изучив выходную структуру JSON, используйте другую библиотеку для анализа типов данных языка.

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

В Web 3.0 доступ к данным осуществляется по-другому, что решает многие из этих проблем:

1. Другой контракт, разработанный и развернутый некоторыми другими организациями или отдельными лицами, который предоставляет некоторые данные или услуги, публикует интерфейс (аналогичный библиотеке) их общедоступных функций.

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

IsomeAPI api = IsomeAPI(address);

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

uint temp = api.getTemp(latitude, longitude);

Это новое решение для доступа к данным позволяет быстро и эффективно интегрировать столько источников данных, сколько необходимо разработчикам. Учитывая природу с открытым исходным кодом, документация по-прежнему полезна, но больше не нужна, поскольку один разработчик Solidity может просто просмотреть код интерфейса, чтобы ответить на свои интерактивные вопросы. В то же время это позволяет появляться универсальным протоколам. IERC20 — это интерфейс/API для токенов L2. Предоставляя адрес любого токена, IERC20 (адрес), разработчики могут получить универсальный доступ к любому уникальному токену, а также создать свой собственный за считанные минуты.

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

Наконец, некоторые могут оспорить это понятие из-за несовместимости твердости с API-интерфейсами Web 2.0, данные которых еще очень нужно. К счастью, появились алгоритмы оракула, управляемые событиями, такие как Chainlink. Эти оракулы получают доступ к сторонним API и передают эти данные в мир смарт-контрактов, по сути обертывая API Web 2.0. В мире Web 3.0 доступ к этим API теперь так же прост, как создание объекта и использование простых функций для извлечения данных.

Чтобы продемонстрировать эффективность API Web 3.0, давайте рассмотрим, как выглядит процесс внесения денег на брокерский счет с точки зрения Web 2.0, и посмотрим, как это выглядит в Web 3.0.< br />
Веб 2.0:

1. Бэкенд получает одобрение пользователя на вызов API данного банка (требуется интеграция и понимание этого API, учетных данных и т. д.)

2. Банковский API инициирует ACH/банковский перевод на брокерские счета (ETA: от часов до дней)

3. Как только брокер получает средства, серверная часть вызывает API брокера для совершения сделки (вероятно, очень разные API, квалификационная система и др.)

4. Торговля происходит, и результаты должны быть явно зарегистрированы для поиска

Вот пример кода Web 3.0:

Как видите, выполнение сложного денежного перевода с помощью двух разных сервисов создает головную боль для разработчиков Web 2.0 из-за интеграции API, учетных данных и времени ожидания. В приведенном выше смарт-контракте Web 3.0 это можно сделать с помощью двух разных сервисов (исходный токен/банк и Uniswap/брокер) в нескольких строках легко читаемого кода. Кроме того, эта сложная финтех-транзакция будет выполняться за секунды, а не дни, хотя это выходит за рамки данной статьи.

В целом, реализация преимуществ хостинга API в эпоху смарт-контрактов многочисленна. Мы отметили, что любые данные или услугу можно рассматривать как объект с нативными функциями языка, стандартные протоколы могут появляться благодаря воспроизводимому характеру интерфейсов с уникальным адресом, а платежи через API могут быть упрощены. Наконец, в качестве бонуса, эти API следующего поколения не требуют настройки сервера, обслуживания или облачных платежей. Как только они будут развернуты, тысячи операторов блокчейна займутся этим и будут получать оплату через комиссию за газ за каждую транзакцию!

ООП переходит в онлайн

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

Переменные и функции звучат очень похоже на основную тему этой статьи. Смарт-контракты, по сути, являются объектами в языке ООП, и структура их кода выглядит так же, как классы Java, Python или C# с переменными, функциями и конструктором. Итак, что это значит, когда мы сложим это вместе? Объекты ушли в онлайн.

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

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

Заключение

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

Для любого технолога важно помнить, что крипто — это блокчейн, но блокчейн — это не крипто, чтобы обеспечить поток новых вариантов использования этого мощного глобального явления. Мои идеи в настоящее время сосредоточены вокруг процессов разработки программного обеспечения в Web 3.0, стандартизации доступа к данным и смарт-контрактов в качестве будущей внутренней структуры. Я рад видеть, куда приведут вас ваши идеи, когда вы начнете думать о блокчейне за пределами криптовалюты!

Want to Connect?
Connect with me on LinkedIn to share ideas and opportunities!

Ресурсы

[1] https://www.udemy.com/course/ethereum-and-solidity-the-complete-developers-guide/

[2] https://docs.openzeppelin.com/contracts/2.x/api/token/erc20

[3] https://docs.uniswap.org/protocol/V2/reference/smart-contracts/router-02

[4] https://www.gemini.com/cryptopedia/what-is-chainlink-and-how-does-it-work#section-understanding-chainlink-smart-contracts

[5] https://solidity-by-example.org/