Александр Фролов - Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство

Тут можно читать онлайн Александр Фролов - Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство - бесплатно ознакомительный отрывок. Жанр: comp-programming, год 2019. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    2019
  • ISBN:
    нет данных
  • Рейтинг:
    5/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Александр Фролов - Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство краткое содержание

Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство - описание и краткое содержание, автор Александр Фролов, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Эта книга поможет быстро приступить к созданию смарт-контактов Solidity и распределенных приложений DApp для блокчейна Ethereum. Она состоит из 12 уроков с практическими заданиями. Выполнив их, читатель сможет создавать собственные локальные узлы Ethereum, публиковать смарт-контракты и вызывать их методы, обмениваться данными между реальным миром и смарт-контрактами с помощью оракулов, работать с сетью Rinkeby. Книга адресована всем, кто интересуется передовыми технологиями в области блокчейнов и хочет быстро получить знания, позволяющие заниматься интересной и перспективной работой.

Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство - читать онлайн бесплатно ознакомительный отрывок

Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Александр Фролов
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Просмотр состояния транзакции

Зная хеш транзакции, вы можете получить о ней определенную информацию. Это можно сделать при помощи метода web3.eth.getTransaction, передав ему в качестве параметра строку хеша транзакции.

В ответ вы получите объект следующего вида:

> web3.eth.getTransaction("0xb6d13a5e915c3af1feabad7caec7b45348146695973b32285df287639717e916")

{

blockHash: "0x3c9761fefa52a0bc563733d87163828c5fe1316d78ca89be8af18d9c818b0eea",

blockNumber: 4643,

from: "0x4f744742ac711fd111c7a983176db1d48d29f413",

gas: 90000,

gasPrice: 1000000000,

hash: "0xb6d13a5e915c3af1feabad7caec7b45348146695973b32285df287639717e916",

input: "0x",

nonce: 0,

r: "0x1e3519fbca45cc5f6a0804232c8f0362d42c8abfeaf5225536867651f53787fd",

s: "0x69e617eceec461b727a0997fd837264e02242fa16f61491e58974faaf20c49c7",

to: "0xf212d0180b331a88bd3cafbd77bbd0d56398ae00",

transactionIndex: 0,

v: "0xfc2",

value: 50000000000000000

}

Поля объекта состояния транзакции перечислены в табл. 4.3.

Таблица 4.3. Состояние транзакции

Как видите здесь есть адреса отправителя fromи получателя to а также объем - фото 16

Как видите, здесь есть адреса отправителя fromи получателя to, а также объем переведенных средств в Wei.

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

Поля v, r, s содержат значения для подписи транзакции. Их содержимое можно использовать для получения публичного ключа аккаунта. Способ их использования с этой целью обсуждается здесь: https://ethereum.stackexchange.com/questions/13778/get-public-key-of-any-ethereum-account.

Содержимое полей gasPriceи gasимеет отношение к стоимости транзакции. Пока мы работаем с тестовой сетью, об этом можно не беспокоиться. Если кратко, то gasPriceсодержит так называемую стоимость газа, который тратится на выполнение транзакции, а поле gas– количество газа, которое выделил отправитель для выполнения транзакции.

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

Квитанция транзакции

Когда транзакция выполнилась (о чем можно узнать при помощи только что рассмотренного метода web3.eth.getTransaction), вы можете получить так называемую квитанцию об ее выполнении. Для этого предназначен метод web3.eth.getTransactionReceipt.

Передайте этому методу в качестве параметра хеш завершенной транзакции, и вы получите квитанцию в виде объекта:

> web3.eth.getTransactionReceipt("0xb6d13a5e915c3af1feabad7caec7b45348146695973b32285df287639717e916")

{

blockHash: "0x3c9761fefa52a0bc563733d87163828c5fe1316d78ca89be8af18d9c818b0eea",

blockNumber: 4643,

contractAddress: null,

cumulativeGasUsed: 21000,

from: "0x4f744742ac711fd111c7a983176db1d48d29f413",

gasUsed: 21000,

logs: [],

logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",

root: "0xa5cdcd909d837e937189f4cffc52840111f4430bf871f07094eaea96c47d682d",

to: "0xf212d0180b331a88bd3cafbd77bbd0d56398ae00",

transactionHash: "0xb6d13a5e915c3af1feabad7caec7b45348146695973b32285df287639717e916",

transactionIndex: 0

}

Поля объекта квитанции перечислены в табл. 4.4.

Таблица 4.4. Квитанция выполненной транзакции

Анализируя квитанцию вы можете узнать номер блока в котором размещена - фото 17

Анализируя квитанцию, вы можете узнать номер блока, в котором размещена транзакция blockNumber, а также индекс позиции размещения транзакции в блоке transactionIndex.

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

Также обратите внимание на поле contractAddress. Когда мы займемся публикацией смарт-контрактов, нам потребуется адрес размещенного смарт-контракта из этого поля.

Итоги урока

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

Вы узнали, что созданные транзакции сначала попадают в состояние ожидания и находятся в нем до тех пор, пока в блокчейн не будет добавлен новый блок. Проверку состояния транзакции можно выполнить методом web3.eth.getTransaction.

Когда транзакция выполнена, то с помощью метода web3.eth.getTransactionReceipt вы можете получить ее квитанцию. Из квитанции можно определить, сколько газа было потрачено на выполнение транзакции. Если транзакция была связана с публикацией контракта, то этот метод поможет вам получить адрес опубликованного контракта. Адрес контракта необходим, как вы скоро узнаете, для вызова его методов.

Урок 5. Публикация первого контракта

Цель урока: на этом уроке вы узнаете о смарт-контрактах в сети Ethereum и о том, как они выполняются виртуальной машиной Ethereum. Мы расскажем, как создать смарт-контракт на языке Solidity и как опубликовать его в приватной сети. Также вы научитесь устанавливать и запускать пакетный компилятор solc. Вам нужно узнать о так называемом бинарном интерфейсе приложения Application Binary Interface (ABI) и научится его использовать.

Практические задания: на пятом уроке вы создадите первый контракт HelloSol в среде разработки Remix Solidity IDE. Этот контракт вам предстоит опубликовать в приватной сети и проверить в работе. Также вы установите пакетный компилятор solc и откомпилируете им свой смарт-контракт HelloSol.

Как вы, конечно, знаете, обычные контракты заключаются между двумя (или несколькими сторонами) в бумажном виде. Например, в контракте может быть написано, что одна сторона берет на себя обязательство поставить какой-нибудь товар, а другая обязуется после получения товара выполнить оплату. Либо контракт может предусматривать предоплату, и тогда товар поставляется после получения денег.

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

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Александр Фролов читать все книги автора по порядку

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




Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство отзывы


Отзывы читателей о книге Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство, автор: Александр Фролов. Читайте комментарии и мнения людей о произведении.


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

Напишите свой комментарий
x