LibKing » Книги » comp-programming » Тимур Машнин - Разработка смарт-контрактов в Ethereum

Тимур Машнин - Разработка смарт-контрактов в Ethereum

Тут можно читать онлайн Тимур Машнин - Разработка смарт-контрактов в Ethereum - бесплатно ознакомительный отрывок. Жанр: comp-programming, год 2022. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте LibKing.Ru (ЛибКинг) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Тимур Машнин - Разработка смарт-контрактов в Ethereum
  • Название:
    Разработка смарт-контрактов в Ethereum
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    2022
  • ISBN:
    нет данных
  • Рейтинг:
    3/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Ваша оценка:

Тимур Машнин - Разработка смарт-контрактов в Ethereum краткое содержание

Разработка смарт-контрактов в Ethereum - описание и краткое содержание, автор Тимур Машнин, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Эта книга рассказывает о принципах работы Ethereum, отличии Ethereum от Bitcoin. Вы узнаете что такое децентрализованные приложения Dapp и смарт-контракты, познакомитесь с инструментами разработки Dapp. Изучите высокоуровневый язык Solidity создания смарт-контрактов для виртуальной машины Ethereum. Познакомитесь со средой разработки Remix. Узнаете о практическом применении смарт-контрактов, стандартах ERC20, ERC-721, ERC-1155 и EIP-3156.

Разработка смарт-контрактов в Ethereum - читать онлайн бесплатно ознакомительный отрывок

Разработка смарт-контрактов в Ethereum - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Тимур Машнин
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

Счетчик nonce, используемый для проверки, что каждая транзакция может обрабатываться только один раз;

Текущий баланс эфира;

Код смарт-контракта аккаунта, если присутствует;

И хранилище аккаунта (пустое по умолчанию);

И данные состояния (вместе с балансами, контрактами) хранятся каждым клиентом Ethereum (или узлом Ethereum).

Есть два типа аккаунтов:

Счет внешнего владельца, который контролируется закрытым ключами и не имеет никакого кода, связанного с ним.

И счет контракта, который контролируются его кодом контракта, и имеет связанный с ним код.

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

Сообщение между двумя счетами внешних владельцев – это просто передача денег.

Но сообщение от счета внешнего владельца на счет контракта активирует код счета контракта, позволяя ему выполнять различные действия (например, передавать токены, записывать данные во внутреннее хранилище, майнить новые токены, выполнять вычисления, создавать новые контракты и т. д.).

В отличие от счетов внешних владельцев, счета контрактов не могут инициировать новые транзакции самостоятельно.

Вместо этого счета контрактов могут только запускать транзакции в ответ на другие транзакции, которые они получили.

Таким образом, Ethereum имеет набор аккаунтов.

У каждого аккаунта есть владелец и баланс в эфирах.

И если владелец аккаунта может доказать свою идентичность, он может перенести эфир с его аккаунта на другой. Эта операция называется транзакцией.

Виртуальная машина Ethereum представляет собой систему обработки транзакций То - фото 19

Виртуальная машина Ethereum представляет собой систему обработки транзакций.

То есть у нас есть состояние – это совокупность всех аккаунтов и их балансов.

Далее мы применяем одну или несколько транзакций, и мы получаем новое состояние – это обновленный набор аккаунтов и их балансов.

Аккаунт выполняет некоторый код, когда он получает транзакции, с помощью смарт-контракта аккаунта.

Когда смартконтракт создается или когда его пробуждает транзакция код - фото 20

Когда смарт-контракт создается или, когда его пробуждает транзакция, код контракта может читать и записывать данные в хранилище аккаунта.

Если ваша транзакция удаляет данные из хранилища контрактов, то есть после того, как ваша транзакция будет выполнена, общее хранилище контрактов станет меньше, вы получите премию в виде газа.

Полный узел Ethereum синхронизирует блокчейн, загружая всю цепочку, от блока генезиса до текущего блока, выполняя все транзакции, содержащиеся внутри.

Также полный узел может быть без выполнения каждой транзакции.

Но независимо от этого, любой полный узел содержит всю цепочку блоков.

Но если узлу не нужно выполнять каждую транзакцию или быстро запрашивать исторические данные, нет необходимости хранить всю цепочку блоков.

Такие узлы называются легкими узлами.

Вместо того, чтобы загружать и хранить всю цепочку и выполнять все транзакции, легкие узлы загружают только цепочку заголовков блоков.

Что дает возможность легкому узлу при необходимости выбрать заголовок и загрузить данные этого блока.

Термин «транзакция» используется в Ethereum для ссылки на подписанный пакет данных, который хранит сообщение, отправляемое из внешнего аккаунта.

Транзакции содержат информацию о получателе сообщения, подпись, идентифицирующую отправителя, количество эфира для передачи от отправителя получателю, дополнительное поле данных, значение газа для транзакции и значение цены газа.

Контракт может получить доступ к данным, содержащимся в поле данных.

Как пример использования, если контракт функционирует как служба регистрации домена, тогда данные транзакции будут содержать домен и IP-адрес для его регистрации.

Контракт будет читать эти значения из данных сообщения и соответствующим образом размещать их в хранилище.

Контракты имеют возможность отправлять «сообщения» другим контрактам.

Эти сообщения – это виртуальные объекты, которые никогда не сериализуются и существуют только в среде исполнения Ethereum. Такое сообщение содержит информацию об отправителе сообщения, получателе сообщения, количество эфира для передачи вместе с сообщением, дополнительное поле данных и значение газа.

По сути, сообщение похоже на транзакцию, за исключением того, что она создается контрактом, а не внешним аккаунтом.

Как и транзакция, сообщение приводит к тому, что аккаунт получателя запускает свой код.

Таким образом, контракты могут иметь отношения с другими контрактами точно так же, как и внешние аккаунты.

Код в контрактах Ethereum пишется на низкоуровневом основанном на стеке языке - фото 21

Код в контрактах Ethereum пишется на низкоуровневом, основанном на стеке языке байт-кода, называемом кодом виртуальной машины Ethereum.

Код состоит из серии байтов, где каждый байт представляет операцию.

Для написания контрактов рекомендуется высокоуровневый язык Solidity, код которого затем компилируется в язык виртуальной машины Ethereum.

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

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

Поверх сети Ethereum создаются три типа приложений.

Первая категория – это финансовые приложения, предоставляющие пользователям способы заключения контрактов с использованием их денег.

Это включает в себя суб-валюты, финансовые деривативы, контракты хеджирования, сберегательные кошельки, и т. д.

Вторая категория – это полу-финансовые приложения, в которых задействованы деньги, но есть также не денежная сторона, например, оплата вычислительных задач.

Наконец, существуют такие приложения, как онлайн-голосование, которые не являются финансовыми.

Контракт сам по себе не является децентрализованным приложением.

Децентрализованное приложение состоим из комбинации контракта и графического интерфейса для использования этого контракта.

При этом интерфейс реализован как веб-страница HTML/CSS/JS со специальным Javascript API в виде библиотеки web3.js для работы с блок-цепочкой Ethereum.

Под капотом эта библиотека связывается с локальным узлом через вызовы remote procedure call RPC.

Читать дальше
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать


Тимур Машнин читать все книги автора по порядку

Тимур Машнин - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Разработка смарт-контрактов в Ethereum отзывы


Отзывы читателей о книге Разработка смарт-контрактов в Ethereum, автор: Тимур Машнин. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
Большинство книг на сайте опубликовано легально на правах партнёрской программы ЛитРес. Если Ваша книга была опубликована с нарушениями авторских прав, пожалуйста, направьте Вашу жалобу на PGEgaHJlZj0ibWFpbHRvOmFidXNlQGxpYmtpbmcucnUiIHJlbD0ibm9mb2xsb3ciPmFidXNlQGxpYmtpbmcucnU8L2E+ или заполните форму обратной связи.
img img img img img