Как создать свой первый твердый смарт-контракт ? В этом руководстве мы узнаем, как написать смарт-контракт на языке программирования Solidity и развернуть его в локальном блокчейне Ethereum. Если вы новичок в мире блокчейнов, ознакомьтесь с моим предыдущим учебником Учебное пособие по блокчейну Ethereum с нуля
- Как работает блокчейн?
- Смарт-контракт
- Solidity
- Как создать свой первый смарт-контракт В Solidity
- Установить Truffle Framework
- Функции Truffle Framework
- Установить расширение Metamask для Chrome.
- Установить расширение Solidity в коде Visual Studio.
- Создать Смарт-контракты.
- Создайте миграцию футбольного контракта.
- Взаимодействие с цепочкой блоков.
Как работает блокчейн?
Приложения Blockchain работают совершенно иначе, чем веб-приложения. В веб-приложении данные хранятся на сервере центральной базы данных. Клиенты общаются с веб-приложением, и веб-приложение записывает и читает в базу данных, а затем отвечает в соответствии с ней. В технологии блокчейн все клиенты являются узлами, и нет такой вещи, как центральная база данных. Данные полностью неизменяемы, и после создания мы не можем их изменить обратно. Таким образом, Blockchain обеспечивает высокий уровень безопасности. Итак, наше приложение полностью децентрализовано на блокчейне . Данные в конечном итоге распределяются между несколькими узлами.
Блокчейн — это сеть одноранговых узлов. Они общаются друг с другом. После того, как вы подключились к цепочке блоков, теперь вы являетесь частью цепочки блоков. Вы являетесь одним из узлов цепочки блоков.
Вы можете суммировать это, поскольку цепочка блоков — это база данных и сеть. Блокчейн Ethereum позволяет нам написать код, который мы можем развернуть в блокчейне, и узел сети может выполнить этот код.
Смарт-контракт
Блокчейн Ethereum позволяет нам писать код, который запускается на виртуальной машине Ethereum с помощью смарт-контрактов. . Это означает, что вся бизнес-логика нашего приложения находится в смарт-контракте. Он будет читать и записывать данные, передавать значение и выполнять любую бизнес-логику, которую мы программируем в цепочке блоков.
Solidity
Solidity — это язык, на котором мы можем писать наши смарт-контракты. Затем эти смарт-контракты развертываются в блокчейне. Вся логика чтения и записи данных определена на этом языке Solidity. Это похоже на микросервисы, которые живут в блокчейне.
Как создать свой первый смарт-контракт В Solidity
Мы начнем наш проект с установки зависимостей для создания этого небольшого децентрализованного приложения.
Если вы не установили Node.js на вашем компьютере, затем вы можете установить его с помощью следующей команды.
brew install node
Он также поставляется с NPM , который является диспетчером пакетов узлов.
Следующее, что нам нужно установить, это Ганаш. Он быстро запускает личный Ethereum блокчейн , который вы можете использовать для запуска тестов, выполнения команд и проверки состояния, контролируя работу цепочки.. Перейдите по этой ссылке. Вы можете установить его в соответствии с вашей ОС. После установки вы можете увидеть что-то вроде этого.
Установить Truffle Framework
Затем установите Truffle Framework. Truffle — самый популярный фреймворк для разработки Ethereum, цель которого — сделать вашу жизнь намного проще. Установите с помощью следующей команды.
sudo npm install -g truffle
Функции Truffle Framework
- Встроенная компиляция смарт-контрактов, связывание, развертывание и двоичное управление.
- Автоматизированное тестирование контрактов для быстрой разработки.
- Фреймворк развертывания и миграции с возможностью создания сценариев .
- Управление сетью для развертывания как в общедоступных, так и в частных сетях.
- Внешний исполнитель сценариев, который выполняет сценарии в среде трюфелей.
- Доступ к сотням внешних пакетов.
- Создан для скорости.
Установить расширение Metamask для Chrome.
Вы можете установить его по этой ссылке.
Установить расширение Solidity в коде Visual Studio.
Если вы еще не установили Visual Studio Code , тогда, пожалуйста, установите его, на мой взгляд, это лучший редактор. Вы можете ознакомиться с моей статьей о Как установить код Visual Studio на Mac.
Не выключайте Ganache. Keep открыт. Это локальный блокчейн, и в нем уже есть 10 пользователей. Вы можете увидеть их адрес.
Теперь нам нужно создать проект для написания smart контрактов в Solidity язык. Мы уже установили Truffle Framework, поэтому можем использовать его для создания шаблона для нашего проекта. Итак, перейдите в общий каталог проекта и введите следующую команду, чтобы создать папку проекта. Зайдите в эту папку.
mkdir blocksolcd blocksol
Хорошо, теперь сгенерируйте шаблон трюфеля, используя следующий код.
трюфель unbox pet -shop
Откройте проект в вашем редакторе, используя следующую команду. У меня есть VScode , поэтому
code.
Как видите, наша основная структура папок выглядит так, как показано ниже.
Создать Смарт-контракты.
В структуре папок вы можете видеть, что есть одна папка с именем контракты. Мы будем создавать все наши контракты в этой папке. Создадим один контракт под названием Football.sol. Здесь расширение файла — .sol , потому что мы используем язык Solidity для кодирования контракта. Напишите внутри него следующий код.
pragma solidity ^ 0.4. 2, контракт по футболу {строка публичная команда; function Football () public {team = "Реал Мадрид"; }}
В первой строке мы определили версию твердости, которая выше 0.4.2. Тогда мы заключили договор Футбол. Кроме того, я взял переменную под названием team , и она является общедоступной . Теперь мы можем использовать эту общедоступную переменную как метод для возврата ее значения. Таким образом, переменную, которая определена как общедоступная в контракте, мы также можем вызвать как функцию, чтобы получить значение этой переменной.
Создайте миграцию футбольного контракта.
Создайте один файл в папке migrations с именем 2_football_migration.js file.
//2_football_migrationvar Football = artifacts.require ("./Football.sol"); module.exports = function (deployer) {deployer.deploy (Football);};
Хорошо, теперь разверните контракт в сети блокчейн с помощью следующей команды.
truffle network
Не беспокойтесь о предупреждениях компиляции; это нормально.
Взаимодействие с цепочкой блоков.
Вы можете взаимодействовать с нашим приложением, используя следующую команду.
трюфельная консоль
Теперь введите в свой терминал следующее:
Football.deployed (). then (function (instance) {app = instance})
Смарт-контракты возвращают обещание, которое в основном представляет собой концепцию JavaScript, которая представляет собой асинхронное поведение. Например, если нам нужно дождаться завершения некоторых процессов, он может отправить нам обещание, которое либо разрешается, либо отклоняется. Теперь, после завершения события, оно даст нам результат, и это приложение . Итак, мы можем выполнить дальнейший запрос следующим образом.
app.address
Теперь, взамен, вы можете увидеть адрес в строке.
Мы также можем получить название команды с помощью следующей функции.
app.team ()
Он вернет Реал Мадрид. Но подождите, мы не определили какую-либо функцию с именем team, но она вернет значение.
Поскольку общедоступные переменные сами являются функцией получения. Таким образом, мы можем вызвать его как функцию, а взамен получить ее значение.
Итак, наконец, мы развернули наш Первый смарт-контракт на Solidity.
Это все для сегодняшнего урока Как создать свой первый смарт-контракт на Solidity . В будущем мы построим полностью децентрализованное приложение с использованием блокчейна Ethereum.