Смарт-контракт используется для описания кода компьютерной программы, способного облегчить, выполнить и обеспечить выполнение соглашения с использованием технологии блокчейн. Смарт-контракты помогают вам обменивать деньги, имущество, акции или что-либо ценное прозрачным и бесконфликтным способом, избегая услуг третьих лиц или посредников. Термин «смарт-контракты» был впервые предложен Ником Сабо, американским ученым-компьютерщиком, который изобрел виртуальную валюту под названием «BitGold» в 1998 году. Он определил умные контракты как компьютеризированные протоколы транзакций, выполняющие условия контракта. Смарт-контракты делают транзакции прозрачными, отслеживаемыми и необратимыми.
Что такое Solidness?
Это объектно-ориентированный язык программирования высокого уровня, используемый для реализации умных контрактов. Солидность помогает создавать контракты для краудфандинга, слепых аукционов, голосования и кошельков с несколькими подписями. На солидность влияют такие языки, как Python, JavaScript и C ++. Он поддерживает наследование и статически типизирован. При развертывании интеллектуальных контрактов всегда важно использовать последнюю версию Solidness, поскольку регулярно появляются новые функции и исправления ошибок.
Структура смарт-контракта
Надежный смарт-контракт включает в себя следующее:
- Данные – Это сохраняет текущее состояние договора.
- Функция – это применяет логику для перехода к состоянию контракта.
Разработка смарт-контрактов
Существует два типа переменных, с которыми необходимо ознакомиться в умных контрактах.
Тип значения – эти переменные передаются по значению. Это означает, что они всегда копируются, когда они используются в присваиваниях или в качестве аргументов функции. Целочисленные и логические адреса являются яркими примерами.
Тип ссылки. Эти переменные имеют сложный тип и передаются по ссылке. Их копирование является дорогостоящим, и, следовательно, им необходимо тщательно управлять, и эти переменные не вписываются в 256-битные.
Добавление данных в смарт-контракт
Первый шаг включает добавление некоторых переменных данных в смарт-контракт. Для каждого заказа должно быть количество, связанное с ним. Например, в случае заказа на поставку должно быть определенное количество продукта, связанное с ним. Переменная, которая вводится сейчас, является целым числом без знака и представлена как uint256. Здесь 256 означает хранение 256 бит. Давайте теперь поймем эти термины.
- INT относится к целому числу.
- U означает без знака, что означает, что этот тип может представлять только положительные целые числа, а не как положительные, так и отрицательные целые числа.
- 256 - Это относится к размеру 256 бит.
- Минимальное значение uint 256 может быть присвоено 0.
- Максимальное значение, которое может быть назначено для uint 256, составляет 2 ^ 256-1.
Определение конструктора
Конструктор – это тот, который вызывается во время развертывания контракта. Конструктор использует некоторые значения для инициализации контракта. Также возможно создать параметризованный конструктор, который можно создать, передав переменную и инициализировав функцию, используя переданное значение. Модификатор доступа public, связанный с конструктором, является ключевым моментом, на который следует обратить внимание. Ключевое слово public означает, что любой может получить доступ к функции. Следовательно, это не ограниченная функция.
Добавление функций
Теперь мы добавим функции, чтобы сделать нашу программу интерактивной. Функции относятся к контролируемым возможностям, которые могут быть добавлены в программу. Любой функции всегда будет предшествовать ключевое слово function. Объявление функции выглядит следующим образом: «функция <имя функции> <доступ изменен> <мутатор состояния> <возвращаемое значение>».
Развертывание смарт-контракта
Настало время для развертывания умного контракта. Мы будем использовать Remix Online IDE для тестирования умного контракта. Remix – это онлайн-площадка, которая используется для умных контрактов Ethereum. Он полностью основан на браузере. Он предоставляет интегрированную среду разработки, в которой вы можете написать свои умные контракты. Remix предоставляет возможность компиляции в режиме онлайн. Remix IDE помогает без труда составить умный контракт, используя конкретную версию компилятора. Это помогает в быстром тестировании умного контракта. Remix оснащен полным набором инструментов для начала разработки смарт-контракта и модульного тестирования смарт-контракта без необходимости установки на локальный компьютер. Используя Remix IDE, вы можете начать разработку интеллектуальных контрактов, просто подключившись к Интернету и используя браузер.
Давайте разберемся с этапами развертывания умного контракта с Remix IDE.
- Создайте новый файл, нажав на значок плюса.
- Это создаст пустой файл. Нажмите, чтобы открыть этот файл.
- Скопируйте и вставьте контракт в этот файл.
- Нажмите на второй значок, который находится чуть ниже значка файла в левом меню, чтобы появилась опция компилятора солидности.
- Перейдите к метке компилятора и выберите версию компилятора. После выбора версии компилятора нажмите на файл. Это скомпилирует умный контракт.
- После компиляции нажмите на кнопку сведений о компиляторе. Это обеспечит вас двумя ключевыми данными, такими как байт-код и двоичный интерфейс приложения. Байт-код – это тот, в котором операционный код виртуальной машины Ethereum (EVM) и логика интеллектуального контракта преобразуются в байт-код после компиляции. Двоичный интерфейс приложения представляет собой файл JSON, в котором содержатся подробные сведения обо всех методах, представленных в смарт-контракте.
- Чтобы проверить умный контракт, его нужно развернуть. Чтобы развернуть смарт-контракт, щелкните значок в левом меню под значком компиляции.
Взаимодействие с развернутым контрактом
- Развернутый контракт имеет методы взаимодействия, с помощью которых вы можете взаимодействовать с интеллектуальным контрактом.
- Это публичные методы, упомянутые в договоре.
- Есть поле ввода, которое вы можете использовать для ввода своих параметров.
Любая операция, которая вызывает операцию записи в состояние контракта, приводит к транзакции.
Сообщения из Facebook