Как написать и развернуть свой первый смарт-контракт?

Опубликовано: 2020-02-13

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

Изучайте онлайн-курсы по программному обеспечению от лучших университетов мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Оглавление

Как написать свой первый смарт-контракт?

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

Если вы хотите написать свой первый смарт-контракт , ресурсы, собранные ниже, помогут вам в этом.

Читайте: 10 тенденций и прогнозов блокчейна на 2020 год

Определение смарт-контрактов

Термин «смарт-контракт» был впервые предложен американским ученым-компьютерщиком Ником Сабо еще в 1996 году. Это компьютер или цифровой протокол, который облегчает, проверяет и обеспечивает выполнение контракта. Как вычисление общего назначения, смарт-контракт находится в блокчейне или распределенной книге.

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

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

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

Читайте: Предварительные условия для изучения блокчейна. Это не то, что вы думаете

Требования для создания смарт-контракта

Для создания смарт-контрактов доступны различные языки программирования. Выбор языка в основном зависит от платформы блокчейна. Например, Solidity, Vyper, eWASM и байт-код Ethereum являются одними из самых популярных языков смарт-контрактов для платформы блокчейна Ethereum.

Среда разработки смарт-контрактов

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

  • Remix IDE: это интегрированная среда разработки для создания и тестирования смарт-контрактов. Этот полностью онлайн-вариант настоятельно рекомендуется для начинающих, так как он не требует установки. Более того, это создает меньше проблем для прототипирования и быстрой проверки смарт-контрактов.
  • Локальная установка: локальные компьютеры предоставляют еще один ресурс для разработки смарт-контрактов. Инструменты обеспечивают большую гибкость для приложений корпоративного уровня. И хотя для настройки этой среды требуется время, выбор инструментов для распределенных приложений или DApps — достаточно простой процесс.

Структура смарт-контракта

Давайте рассмотрим контракт заказа на поставку, разработанный с использованием языка программирования Solidity.

Смарт-контракт Solidity имеет стандартную структуру, состоящую из «данных» и «функций». В то время как данные поддерживают текущее состояние смарт-контракта, функция применяет логику для перехода в это состояние.

Контракт начинается с заявления, называемого « директивой прагмы ». Ключевое слово «прагма» включает проверки или функции компилятора. Рассмотрим утверждение ниже:

прочность прагмы >=0,4,0 <=0,6,0

Декларация призвана гарантировать, что смарт-контракт не будет компилироваться с версией компилятора ранее 0,40 и выше 0,60.

Далее следует « декларация контракта ». В следующем операторе используется ключевое слово «контракт» и идентифицируется пустой контракт по имени «Заказ на покупку».

контракт Заказ на покупку {}

Хранение данных

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

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

Добавление данных

В заказе на покупку обычно указывается количество продукта, связанное с ним. Итак, теперь давайте добавим переменную данных в смарт-контракт. Мы добавим переменную product_quantity с предположением, что она будет иметь только положительные значения.

Во-первых, мы вводим целое число без знака, представленное uint256. Здесь без знака (u) означает тип переменной, которая может представлять только положительные целые числа, а 256 означает хранение 256 бит.

заказ на поставку контракта{uint256 product_quantity;}

Конструктор

Конструктор инициализирует смарт-контракт некоторыми значениями при развертывании контракта. Предположим, что количество продукта установлено равным 100.

конструктор () общедоступный {product_quantity = 100;}

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

Добавление функций

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

Чтобы прочитать сохраненное значение, мы добавляем «функцию get». С «get_quantity» эта функция получает возможность извлекать или читать сохраненные данные. Посмотрите на заявление, данное ниже.

функция get_quantity() возвращает публичное представление (uint256) {return product_quantity;}

Разбивая его дальше, мы видим, что:

  • Имя функции: get_quantity («()» означает, что параметры не передаются)
  • Модификатор доступа: public (доступ не ограничен)
  • State Mutator: view (указывает, что функция не меняет состояние контракта, а только читает его)
  • Возвращает: определяет, что возвращает функция, т. е. переменная типа uint256.

Сеттерные функции

Функция setter появляется, когда вы хотите записать или обновить данные. Эта функция принимает входной параметр от пользователя, на основе которого обновляет значение переменной «product_quantity». Функция set (update_quantity) подключается так:

update_quantity (значение uint256) public {product_quantity = product_quantity + value;}

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

Развертывание смарт-контракта

После того, как вы выполните шаги, упомянутые ранее, пришло время протестировать ваш смарт-контракт. Вы можете сделать то же самое с помощью Remix IDE, которая предоставляет возможности компилятора Solidity для создания, тестирования и проверки вашего смарт-контракта в Интернете.

Вот пошаговые инструкции по разработке и развертыванию смарт-контракта с помощью Remix Online IDE:

  1. Нажмите на значок плюса, чтобы создать новый (пустой) файл.
  2. Нажмите, чтобы открыть пустой файл
  3. Вставьте свой договор в этот файл
  4. Перейдите в левое меню и нажмите на второй значок, чуть ниже значка файла. При этом появится опция компилятора Solidity.
  5. Перейдите к ярлыку компилятора, чтобы выбрать версию компилятора.
  6. Нажмите на файл, чтобы скомпилировать смарт-контракт
  7. После компиляции нажмите кнопку сведений о компиляторе, чтобы понять байт-код и двоичный интерфейс приложения. Байткод содержит операционный код Ethereum и логику смарт-контракта после преобразования и компиляции.
  8. В левом меню щелкните значок под значком компиляции, чтобы развернуть смарт-контракт.

Взаимодействие с развернутым контрактом

Общедоступные методы, упомянутые в контракте, предоставляют способы взаимодействия с развернутым контрактом. В контексте Заказа на поставку доступны два метода взаимодействия: «update_quantity» и «get_quantity». Вы также можете ввести свои параметры, используя поле ввода. Помните, что любая операция, изменяющая переменные контракта, приведет к транзакции.

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

Подведение итогов

В технологии блокчейна наблюдается рост карьеры, и блокчейн навсегда изменил само лицо технологической индустрии. Если вы хотите стать разработчиком блокчейна и создавать смарт-контракты и цепные коды, ознакомьтесь с программой сертификации IIIT-B и upGrad Advanced в технологии блокчейн .

Каковы некоторые возможные применения смарт-контрактов?

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

Почему смарт-контракты считаются более безопасными, чем обычные контракты?

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

Почему смарт-контракты становятся все более популярными?

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