Обзор 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 выглядит следующим образом:
Директива Pragma: В этой строке указывается совместимая версия компилятора Solidity для смарт-контракта. Например:
Solidity
pragma solidity ^0.8.0;
Определение контракта: В этой строке объявляется контракт и его название. \
Например:
Solidity
контракт SimpleToken {
Переменные состояния: Это переменные, которые хранят состояние контракта в блокчейне. Например, Вы можете хранить общий запас жетонов:
Solidity
uint256 public totalSupply;
Функции: Функции определяют поведение контракта и могут быть вызваны внешними пользователями или другими контрактами. Вот простая функция для передачи токенов:
Solidity
function transfer(address recipient, uint256 amount) public {
// ... transfer logic ...
}
События: События используются для регистрации определенных действий в контракте и могут отслеживаться внешними пользователями или контрактами. Например, событие Transfer в токен-контракте:
Solidity
событие Transfer(адрес, индексируемый from, адрес, индексируемый to, значение uint256);
Модификаторы: Модификаторы используются для изменения поведения функций, обычно для контроля доступа или проверки предварительных условий. Например, модификатор, проверяющий, достаточно ли у отправителя жетонов для передачи:
JavaScript
модификатор hasEnoughTokens(uint256 amount) {
require(balanceOf[msg.sender] >= amount, "Insufficient balance");
_;
}
Конструктор: Конструктор - это специальная функция, которая инициализирует переменные состояния контракта при его развертывании. Например, инициализация общего запаса токена:
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 и т.д.
Обзор 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 выглядит следующим образом:
Директива Pragma: В этой строке указывается совместимая версия компилятора Solidity для смарт-контракта. Например:
Solidity
pragma solidity ^0.8.0;
Определение контракта: В этой строке объявляется контракт и его название. \
Например:
Solidity
контракт SimpleToken {
Переменные состояния: Это переменные, которые хранят состояние контракта в блокчейне. Например, Вы можете хранить общий запас жетонов:
Solidity
uint256 public totalSupply;
Функции: Функции определяют поведение контракта и могут быть вызваны внешними пользователями или другими контрактами. Вот простая функция для передачи токенов:
Solidity
function transfer(address recipient, uint256 amount) public {
// ... transfer logic ...
}
События: События используются для регистрации определенных действий в контракте и могут отслеживаться внешними пользователями или контрактами. Например, событие Transfer в токен-контракте:
Solidity
событие Transfer(адрес, индексируемый from, адрес, индексируемый to, значение uint256);
Модификаторы: Модификаторы используются для изменения поведения функций, обычно для контроля доступа или проверки предварительных условий. Например, модификатор, проверяющий, достаточно ли у отправителя жетонов для передачи:
JavaScript
модификатор hasEnoughTokens(uint256 amount) {
require(balanceOf[msg.sender] >= amount, "Insufficient balance");
_;
}
Конструктор: Конструктор - это специальная функция, которая инициализирует переменные состояния контракта при его развертывании. Например, инициализация общего запаса токена:
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 и т.д.