Lição 2

Основы Ethereum и Solidity

Ethereum - это платформа на основе блокчейна, поддерживающая смарт-контракты и децентрализованные приложения (dApps).

Обзор Ethereum

Ethereum - это основанная на блокчейне платформа распределенного программного обеспечения с открытым исходным кодом, которая стала главным соперником Биткойна. Впервые Ethereum был предложен в 2013 году криптовалютным исследователем Виталиком Бутериным, который предложил добавить к Биткойну скриптовый язык для программирования. Он был запущен 30 июля 2015 года. Разработка Ethereum была спонсирована онлайновым краудсейлом - разновидностью краудсорсинга, в ходе которого выпускались криптовалютные токены.

Подробнее: Что такое Ethereum?

Родная криптовалюта Ethereum называется Ether (ETH), и в ней используется язык программирования, известный как Solidity. Блокчейн, технология, лежащая в основе Ethereum, - это распределенная бухгалтерская книга, которая ведет постоянный, защищенный от взлома список записей. Эта децентрализованная архитектура позволяет разработчикам создавать широкий спектр децентрализованных приложений (dApps), используя преимущества надежной экосистемы платформы и ее универсальность.

Одна из основных особенностей Ethereum - поддержка смарт-контрактов, которые представляют собой цифровые контракты, выполняющиеся автоматически на основе заранее определенных условий, как мы уже говорили в Уроке 1. Эти смарт-контракты позволяют создать среду без доверия, в которой транзакции могут проводиться безопасно и прозрачно, без участия посредников. Майнеры в сети Ethereum выпускали токены Ether, которые служили не только валютой, но и средством оплаты за использование платформы; после "Слияния" Ethereum перешел на механизм Proof-of-Stake (PoS), при котором валидаторы (не майнеры) подтверждают транзакции и создают новые блоки. Вместо того чтобы выпускать токены Ether, валидаторы зарабатывают комиссионные за транзакции и вознаграждения за блок в Ether за свое участие в сети. Эфир по-прежнему служит средством оплаты за использование платформы, но его выпуск и распределение отличаются от предыдущего механизма Proof-of-Work (PoW).

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

Читайте далее: Что такое слияние?

Подробнее: Что такое DApp?

Введение в язык программирования Solidity

Solidity - это высокоуровневый, статически-типизированный язык программирования, специально разработанный для написания смарт-контрактов на блокчейне Ethereum. Разработанный основной командой Ethereum, синтаксис Solidity создан под влиянием JavaScript, что делает его знакомым и доступным для широкого круга разработчиков. Язык является Тьюринг-полным, что позволяет разработчикам создавать сложную логику и реализовывать различные функциональные возможности в своих смарт-контрактах. Solidity компилируется в байткод Ethereum Virtual Machine (EVM), который выполняется в сети Ethereum.

В Solidity разработчики могут определять пользовательские структуры данных, создавать определяемые пользователем функции и реализовывать механизмы контроля доступа, среди прочих возможностей. С помощью Solidity можно создавать широкий спектр децентрализованных приложений, включая децентрализованные финансовые (DeFi) платформы, не сгораемые токены (NFT), децентрализованные автономные организации (DAO) и многое другое.

Структура контракта Solidity: пример

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

  1. Директива Pragma: В этой строке указывается совместимая версия компилятора Solidity для смарт-контракта. Например:

    Solidity
    pragma solidity ^0.8.0;
    
  2. Определение контракта: В этой строке объявляется контракт и его название. \
    Например:

    Solidity
    контракт SimpleToken {
    
  3. Переменные состояния: Это переменные, которые хранят состояние контракта в блокчейне. Например, Вы можете хранить общий запас жетонов:

    Solidity
    uint256 public totalSupply;
    
  4. Функции: Функции определяют поведение контракта и могут быть вызваны внешними пользователями или другими контрактами. Вот простая функция для передачи токенов:

    Solidity
    function transfer(address recipient, uint256 amount) public {
     // ... transfer logic ...
    }
    
  5. События: События используются для регистрации определенных действий в контракте и могут отслеживаться внешними пользователями или контрактами. Например, событие Transfer в токен-контракте:

    Solidity
    событие Transfer(адрес, индексируемый from, адрес, индексируемый to, значение uint256);
    
  6. Модификаторы: Модификаторы используются для изменения поведения функций, обычно для контроля доступа или проверки предварительных условий. Например, модификатор, проверяющий, достаточно ли у отправителя жетонов для передачи:

    JavaScript
    модификатор hasEnoughTokens(uint256 amount) {
     require(balanceOf[msg.sender] >= amount, "Insufficient balance");
     _;
    }
    
  7. Конструктор: Конструктор - это специальная функция, которая инициализирует переменные состояния контракта при его развертывании. Например, инициализация общего запаса токена:

    JavaScript
    constructor(uint256 _totalSupply) {
     totalSupply = _totalSupply;
     balanceOf[msg.sender] = _totalSupply;
    }
    

Если собрать все это вместе, то простой контракт Solidity для токена может выглядеть следующим образом:

TypeScript
pragma solidity ^0.8.0;

contract SimpleToken {
 uint256 public totalSupply;
 mapping(address => uint256) public balanceOf;

 event Transfer(address indexed from, address indexed to, uint256 value);

 modifier hasEnoughTokens(uint256 amount) {
        require(balanceOf[msg.sender] >= amount, "Insufficient balance");
        _;
    }
}

Основные моменты
Ethereum - это платформа на основе блокчейна, поддерживающая смарт-контракты и децентрализованные приложения (dApps).
Родной криптовалютой Ethereum является Эфир (ETH).
Solidity - это высокоуровневый язык программирования, используемый для написания смарт-контрактов на Ethereum.
Смарт-контракты в Ethereum выполняются автоматически на основе заранее определенных условий.
Ethereum перешел на механизм Proof-of-Stake (PoS) для подтверждения транзакций и создания новых блоков.
Solidity позволяет разработчикам определять структуры данных, создавать функции, реализовывать контроль доступа и многое другое.
Экосистема Ethereum привлекает разработчиков и организации из различных отраслей.
Контракты Solidity состоят из прагм, определения контракта, переменных состояния, функций, событий, модификаторов и конструкторов.
Контракты Solidity можно использовать для создания DeFi платформ, NFT, DAO и т.д.

Isenção de responsabilidade
* O investimento em criptomoedas envolve grandes riscos. Prossiga com cautela. O curso não se destina a servir de orientação para investimentos.
* O curso foi criado pelo autor que entrou para o Gate Learn. As opiniões compartilhadas pelo autor não representam o Gate Learn.
Catálogo
Lição 2

Основы Ethereum и Solidity

Ethereum - это платформа на основе блокчейна, поддерживающая смарт-контракты и децентрализованные приложения (dApps).

Обзор Ethereum

Ethereum - это основанная на блокчейне платформа распределенного программного обеспечения с открытым исходным кодом, которая стала главным соперником Биткойна. Впервые Ethereum был предложен в 2013 году криптовалютным исследователем Виталиком Бутериным, который предложил добавить к Биткойну скриптовый язык для программирования. Он был запущен 30 июля 2015 года. Разработка Ethereum была спонсирована онлайновым краудсейлом - разновидностью краудсорсинга, в ходе которого выпускались криптовалютные токены.

Подробнее: Что такое Ethereum?

Родная криптовалюта Ethereum называется Ether (ETH), и в ней используется язык программирования, известный как Solidity. Блокчейн, технология, лежащая в основе Ethereum, - это распределенная бухгалтерская книга, которая ведет постоянный, защищенный от взлома список записей. Эта децентрализованная архитектура позволяет разработчикам создавать широкий спектр децентрализованных приложений (dApps), используя преимущества надежной экосистемы платформы и ее универсальность.

Одна из основных особенностей Ethereum - поддержка смарт-контрактов, которые представляют собой цифровые контракты, выполняющиеся автоматически на основе заранее определенных условий, как мы уже говорили в Уроке 1. Эти смарт-контракты позволяют создать среду без доверия, в которой транзакции могут проводиться безопасно и прозрачно, без участия посредников. Майнеры в сети Ethereum выпускали токены Ether, которые служили не только валютой, но и средством оплаты за использование платформы; после "Слияния" Ethereum перешел на механизм Proof-of-Stake (PoS), при котором валидаторы (не майнеры) подтверждают транзакции и создают новые блоки. Вместо того чтобы выпускать токены Ether, валидаторы зарабатывают комиссионные за транзакции и вознаграждения за блок в Ether за свое участие в сети. Эфир по-прежнему служит средством оплаты за использование платформы, но его выпуск и распределение отличаются от предыдущего механизма Proof-of-Work (PoW).

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

Читайте далее: Что такое слияние?

Подробнее: Что такое DApp?

Введение в язык программирования Solidity

Solidity - это высокоуровневый, статически-типизированный язык программирования, специально разработанный для написания смарт-контрактов на блокчейне Ethereum. Разработанный основной командой Ethereum, синтаксис Solidity создан под влиянием JavaScript, что делает его знакомым и доступным для широкого круга разработчиков. Язык является Тьюринг-полным, что позволяет разработчикам создавать сложную логику и реализовывать различные функциональные возможности в своих смарт-контрактах. Solidity компилируется в байткод Ethereum Virtual Machine (EVM), который выполняется в сети Ethereum.

В Solidity разработчики могут определять пользовательские структуры данных, создавать определяемые пользователем функции и реализовывать механизмы контроля доступа, среди прочих возможностей. С помощью Solidity можно создавать широкий спектр децентрализованных приложений, включая децентрализованные финансовые (DeFi) платформы, не сгораемые токены (NFT), децентрализованные автономные организации (DAO) и многое другое.

Структура контракта Solidity: пример

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

  1. Директива Pragma: В этой строке указывается совместимая версия компилятора Solidity для смарт-контракта. Например:

    Solidity
    pragma solidity ^0.8.0;
    
  2. Определение контракта: В этой строке объявляется контракт и его название. \
    Например:

    Solidity
    контракт SimpleToken {
    
  3. Переменные состояния: Это переменные, которые хранят состояние контракта в блокчейне. Например, Вы можете хранить общий запас жетонов:

    Solidity
    uint256 public totalSupply;
    
  4. Функции: Функции определяют поведение контракта и могут быть вызваны внешними пользователями или другими контрактами. Вот простая функция для передачи токенов:

    Solidity
    function transfer(address recipient, uint256 amount) public {
     // ... transfer logic ...
    }
    
  5. События: События используются для регистрации определенных действий в контракте и могут отслеживаться внешними пользователями или контрактами. Например, событие Transfer в токен-контракте:

    Solidity
    событие Transfer(адрес, индексируемый from, адрес, индексируемый to, значение uint256);
    
  6. Модификаторы: Модификаторы используются для изменения поведения функций, обычно для контроля доступа или проверки предварительных условий. Например, модификатор, проверяющий, достаточно ли у отправителя жетонов для передачи:

    JavaScript
    модификатор hasEnoughTokens(uint256 amount) {
     require(balanceOf[msg.sender] >= amount, "Insufficient balance");
     _;
    }
    
  7. Конструктор: Конструктор - это специальная функция, которая инициализирует переменные состояния контракта при его развертывании. Например, инициализация общего запаса токена:

    JavaScript
    constructor(uint256 _totalSupply) {
     totalSupply = _totalSupply;
     balanceOf[msg.sender] = _totalSupply;
    }
    

Если собрать все это вместе, то простой контракт Solidity для токена может выглядеть следующим образом:

TypeScript
pragma solidity ^0.8.0;

contract SimpleToken {
 uint256 public totalSupply;
 mapping(address => uint256) public balanceOf;

 event Transfer(address indexed from, address indexed to, uint256 value);

 modifier hasEnoughTokens(uint256 amount) {
        require(balanceOf[msg.sender] >= amount, "Insufficient balance");
        _;
    }
}

Основные моменты
Ethereum - это платформа на основе блокчейна, поддерживающая смарт-контракты и децентрализованные приложения (dApps).
Родной криптовалютой Ethereum является Эфир (ETH).
Solidity - это высокоуровневый язык программирования, используемый для написания смарт-контрактов на Ethereum.
Смарт-контракты в Ethereum выполняются автоматически на основе заранее определенных условий.
Ethereum перешел на механизм Proof-of-Stake (PoS) для подтверждения транзакций и создания новых блоков.
Solidity позволяет разработчикам определять структуры данных, создавать функции, реализовывать контроль доступа и многое другое.
Экосистема Ethereum привлекает разработчиков и организации из различных отраслей.
Контракты Solidity состоят из прагм, определения контракта, переменных состояния, функций, событий, модификаторов и конструкторов.
Контракты Solidity можно использовать для создания DeFi платформ, NFT, DAO и т.д.

Isenção de responsabilidade
* O investimento em criptomoedas envolve grandes riscos. Prossiga com cautela. O curso não se destina a servir de orientação para investimentos.
* O curso foi criado pelo autor que entrou para o Gate Learn. As opiniões compartilhadas pelo autor não representam o Gate Learn.
It seems that you are attempting to access our services from a Restricted Location where Gate.io 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.