Pelajaran 1

Обзор децентрализованного рынка и Remix IDE

В этом уроке мы сначала узнаем, что такое децентрализованная торговая площадка и как она работает. Затем мы познакомимся с IDE Remix и напишем простой контракт на Solidity.

Понимание децентрализованных торговых площадок

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

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

Введение в Remix IDE

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

Вы можете получить доступ к IDE Remix по адресу https://remix.ethereum.org. Когда Вы откроете Remix в браузере, Вы найдете три панели:

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

  2. Центральная панель: Это Ваш редактор кода. Здесь Вы будете писать и редактировать свой код Solidity.

  3. Правая панель: Эта панель предоставляет различные инструменты для компиляции Ваших контрактов, их развертывания в сети Ethereum (либо в реальной сети Ethereum, либо в симуляторе JavaScript VM), а также для взаимодействия с развернутыми контрактами.

Ваш первый контракт Solidity: контракт "Item"

В этой части мы напишем наш первый контракт Solidity. Этот контракт будет представлять собой базовый "предмет" на нашем рынке.

Для начала создайте новый файл в Ремиксе, щелкнув по второй сверху иконке на левой панели (иконка файла). На центральной панели появится новый диалог. Введите Item.sol в качестве имени файла и нажмите "OK".

Теперь мы можем приступить к составлению нашего контракта:

Solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;

contract Item {
 // Определите событие, которое будет срабатывать при создании нового элемента
 event NewItem(uint itemId, string itemName, uint itemPrice);

   // Каждый элемент имеет id, имя и цену
 struct ItemStruct {
        string name;
        uint price;
    }

    // Массив для хранения всех элементов
 ItemStruct[] public items;

 // Функция для создания нового элемента
 function createItem(string memory _name, uint _price) public {
        items.push(ItemStruct(_name, _price));
        emit NewItem(items.length - 1, _name, _price);
    }
}

Давайте объясним различные части этого контракта:

  1. Идентификатор лицензии SPDX: Это стандартный способ выражения лицензии контракта. Строка // SPDX-License-Identifier: MIT указывает на то, что в нашем контракте используется разрешительная лицензия MIT.

  2. Директива Pragma: pragma solidity ^0.8.6; указывает, что контракт написан на Solidity версии 0.8.6. Символ ^ означает, что он также будет совместим с любыми более новыми версиями, вплоть до версии 0.9.0, но не включая ее.

  3. Определение контракта: contract Item {...} определяет новый контракт под названием Item. Здесь мы записываем переменные состояния и функции контракта.

  4. Определение события: событие NewItem(uint itemId, string itemName, uint itemPrice); определяет событие, которое мы можем испускать всякий раз, когда создается новый элемент. События - это способ, с помощью которого смарт-контракты регистрируют активность, которую могут прослушивать внешние стороны.

  5. Определение структуры: struct ItemStruct {...} определяет новый тип данных ItemStruct, который представляет товар с названием и ценой.

  6. Переменная состояния: ItemStruct[] public items; объявляет переменную состояния items, которая содержит массив ItemStructs. Ключевое слово public автоматически создает функцию getter, которая позволяет любому получить доступ к списку элементов.

  7. Определение функции: function createItem(string memory _name, uint _price) public {...} определяет публичную функцию, которую любой может вызвать для создания нового элемента. Функция принимает название и цену, создает новый ItemStruct, добавляет его в массив items и выдает событие NewItem.
    Чтобы составить этот контракт, перейдите на правую панель и щелкните на третьем значке сверху (логотип Solidity). Здесь Вы можете составить контракт. Нажмите кнопку "Compile", и если ошибок нет, то Ваш контракт будет успешно скомпилирован.

На левой панели может появиться Вопрос:

Вопрос о Swarm или IPFS касается метода, который Remix будет использовать для хранения метаданных Вашего контракта. Давайте рассмотрим их подробнее:

  1. IPFS: InterPlanetary File System (IPFS) - это протокол, предназначенный для создания постоянной и децентрализованной сети Интернет. Это похоже на один рой BitTorrent, обменивающийся объектами в пределах одного Git-репозитория.

  2. Swarm (Рой): Swarm - это платформа распределенного хранения и служба распространения контента, встроенная в стек Ethereum web3. Она позволяет сети равных хранить и распространять данные.
    Когда Вы компилируете контракт, компилятор Solidity генерирует JSON-файл, содержащий, помимо прочей информации, его Application Binary Interface (ABI) и байткод. Это называется метаданными контракта. Хранение этих метаданных в децентрализованной сети хранения обеспечивает их постоянную доступность, и они могут быть полезны для проверки исходного кода контракта.

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

Pernyataan Formal
* Investasi Kripto melibatkan risiko besar. Lanjutkan dengan hati-hati. Kursus ini tidak dimaksudkan sebagai nasihat investasi.
* Kursus ini dibuat oleh penulis yang telah bergabung dengan Gate Learn. Setiap opini yang dibagikan oleh penulis tidak mewakili Gate Learn.
Katalog
Pelajaran 1

Обзор децентрализованного рынка и Remix IDE

В этом уроке мы сначала узнаем, что такое децентрализованная торговая площадка и как она работает. Затем мы познакомимся с IDE Remix и напишем простой контракт на Solidity.

Понимание децентрализованных торговых площадок

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

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

Введение в Remix IDE

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

Вы можете получить доступ к IDE Remix по адресу https://remix.ethereum.org. Когда Вы откроете Remix в браузере, Вы найдете три панели:

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

  2. Центральная панель: Это Ваш редактор кода. Здесь Вы будете писать и редактировать свой код Solidity.

  3. Правая панель: Эта панель предоставляет различные инструменты для компиляции Ваших контрактов, их развертывания в сети Ethereum (либо в реальной сети Ethereum, либо в симуляторе JavaScript VM), а также для взаимодействия с развернутыми контрактами.

Ваш первый контракт Solidity: контракт "Item"

В этой части мы напишем наш первый контракт Solidity. Этот контракт будет представлять собой базовый "предмет" на нашем рынке.

Для начала создайте новый файл в Ремиксе, щелкнув по второй сверху иконке на левой панели (иконка файла). На центральной панели появится новый диалог. Введите Item.sol в качестве имени файла и нажмите "OK".

Теперь мы можем приступить к составлению нашего контракта:

Solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;

contract Item {
 // Определите событие, которое будет срабатывать при создании нового элемента
 event NewItem(uint itemId, string itemName, uint itemPrice);

   // Каждый элемент имеет id, имя и цену
 struct ItemStruct {
        string name;
        uint price;
    }

    // Массив для хранения всех элементов
 ItemStruct[] public items;

 // Функция для создания нового элемента
 function createItem(string memory _name, uint _price) public {
        items.push(ItemStruct(_name, _price));
        emit NewItem(items.length - 1, _name, _price);
    }
}

Давайте объясним различные части этого контракта:

  1. Идентификатор лицензии SPDX: Это стандартный способ выражения лицензии контракта. Строка // SPDX-License-Identifier: MIT указывает на то, что в нашем контракте используется разрешительная лицензия MIT.

  2. Директива Pragma: pragma solidity ^0.8.6; указывает, что контракт написан на Solidity версии 0.8.6. Символ ^ означает, что он также будет совместим с любыми более новыми версиями, вплоть до версии 0.9.0, но не включая ее.

  3. Определение контракта: contract Item {...} определяет новый контракт под названием Item. Здесь мы записываем переменные состояния и функции контракта.

  4. Определение события: событие NewItem(uint itemId, string itemName, uint itemPrice); определяет событие, которое мы можем испускать всякий раз, когда создается новый элемент. События - это способ, с помощью которого смарт-контракты регистрируют активность, которую могут прослушивать внешние стороны.

  5. Определение структуры: struct ItemStruct {...} определяет новый тип данных ItemStruct, который представляет товар с названием и ценой.

  6. Переменная состояния: ItemStruct[] public items; объявляет переменную состояния items, которая содержит массив ItemStructs. Ключевое слово public автоматически создает функцию getter, которая позволяет любому получить доступ к списку элементов.

  7. Определение функции: function createItem(string memory _name, uint _price) public {...} определяет публичную функцию, которую любой может вызвать для создания нового элемента. Функция принимает название и цену, создает новый ItemStruct, добавляет его в массив items и выдает событие NewItem.
    Чтобы составить этот контракт, перейдите на правую панель и щелкните на третьем значке сверху (логотип Solidity). Здесь Вы можете составить контракт. Нажмите кнопку "Compile", и если ошибок нет, то Ваш контракт будет успешно скомпилирован.

На левой панели может появиться Вопрос:

Вопрос о Swarm или IPFS касается метода, который Remix будет использовать для хранения метаданных Вашего контракта. Давайте рассмотрим их подробнее:

  1. IPFS: InterPlanetary File System (IPFS) - это протокол, предназначенный для создания постоянной и децентрализованной сети Интернет. Это похоже на один рой BitTorrent, обменивающийся объектами в пределах одного Git-репозитория.

  2. Swarm (Рой): Swarm - это платформа распределенного хранения и служба распространения контента, встроенная в стек Ethereum web3. Она позволяет сети равных хранить и распространять данные.
    Когда Вы компилируете контракт, компилятор Solidity генерирует JSON-файл, содержащий, помимо прочей информации, его Application Binary Interface (ABI) и байткод. Это называется метаданными контракта. Хранение этих метаданных в децентрализованной сети хранения обеспечивает их постоянную доступность, и они могут быть полезны для проверки исходного кода контракта.

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

Pernyataan Formal
* Investasi Kripto melibatkan risiko besar. Lanjutkan dengan hati-hati. Kursus ini tidak dimaksudkan sebagai nasihat investasi.
* Kursus ini dibuat oleh penulis yang telah bergabung dengan Gate Learn. Setiap opini yang dibagikan oleh penulis tidak mewakili Gate Learn.
It seems that you are attempting to access our services from a Restricted Location where Gate is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Thailand, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.