Ethereum транзакции отследить платеж

Транзакции Ethereum: как работают и как проверить

Далеко не каждый знает, что, в отличие от биткоина, изначальной функцией Ethereum (ETH) была не передача монетарной ценности, а только лишь обеспечение работы смарт-контрактов. Однако вскоре было замечено, что эфир вполне может использоваться как средство накопления, и разработчики внедрили возможность передачи стоимости путем проведения транзакции Ethereum.

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

Что такое транзакции Ethereum

Транзакции Ethereum — это операция по отправке подписанного пакета с данными, инициированная участником сети (аккаунтом). Под операцией имеется в виду пересылка какого-то количества ETH, запуск записанного в контракте кода (программы) или же создание нового контракта.

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

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

Содержимое транзакций Эфириума

Каждая операция по переводу Ethereum содержит стандартный набор данных:

  • transaction hash (хеш транзакции) — уникальный номер, состоящий из цифр и букв латинского алфавита, использующийся для идентификации;
  • номер блока, в котором записаны данные о транзакции;
  • адрес кошелька (аккаунта), который является получателем;
  • цифровая подпись, подтверждающая намерение отправителя провести транзакцию;
  • value — количество эфира, которое пересылается (может равняться 0);
  • gas limit — предельное количество газа, разрешенное для расходования на выполнение транзакции;
  • gas price — установленная пользователем цена за единицу газа;
  • gas Used — фактически использованное на обработку транзакции количество газа;
  • transaction fee — плата за проведение операции;
  • data — необязательное для заполнения поле, в котором можно указать сообщение для получателя.

Понятие газа и его функция в сети Ethereum

За проведение транзакции Ethereum отправитель должен оплатить комиссию майнерам, которые ее подтверждают и записывают в блокчейн. Эта оплата производится в единицах, которые называются «gas».

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

Значение лимита газа в транзакциях эфира

При отправке транзакции Эфириум пользователь указывает максимально возможное количество газа (gas limit), которое он готов потратить на ее проведение. Таким образом, он страхуется от чрезмерных комиссионных расходов в случае сбоев в сети.

Минимально необходимое значение газа для проведения транзакции эфира — 21000. Однако рекомендуется выставлять большее значение gas limit, с запасом, который даст уверенность в том, что транзакция завершится успешно.

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

Читайте также:  Как пользоваться калькулятором chia

Стоимость газа и ее влияние на скорость проведения транзакций

Цена газа (gas price) исчисляется в wei — самой маленькой неделимой частице Ethereum. Однако большинство веб-сервисов, кошельков и бирж отображают этот показатель в gwei (1 млрд wei) или непосредственно в ETH.

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

Цена газа не имеет фиксированных значений и устанавливается на усмотрение пользователя. При этом от указанного значения gas price будет зависеть скорость подтверждения транзакций: майнеры обрабатывают их в порядке очереди, которая формируется по принципу ценовой приоритетности — сначала самые выгодные, потом более дешевые.

Узнать актуальную стоимость газа и примерное время подтверждения Эфириум-транзакций при выборе разных вариантов можно на сайте ethgasstation.info.

Нюансы проведения транзакций в сети Эфириум

Для того чтобы Эфириум-транзакция прошла проверку со стороны сети и была исполнена, она должна соответствовать ряду требований:

  • Транзакция проводится в формате RPL и содержит цифровую подпись отправителя;
  • Статистика по числу исходящих операций, указанная в транзакции, совпадает с аналогичными данными в аккаунте;
  • Количество газа, требующегося для проведения операции по пересылке средств, меньше или равно установленному пользователем лимиту;
  • На балансе отправителя, кроме отправляемого количества ETH, имеется достаточно средств для оплаты авансовых комиссионных сборов (лимит газа умноженный на указанную пользователем стоимость).

Если все эти условия соблюдены, транзакция признается валидной (корректной) и принимается в обработку, которая состоит из следующих этапов:

  1. С баланса отправителя снимается аванс, а количество исходящих транзакций увеличивается на 1.
  2. Подсчитывается остаток эфира на счету аккаунта.
  3. Начинается непосредственная операция по переводу средств.
  4. Происходит обработка (подтверждение) транзакции майнерами.
  5. Транзакция завершается и ей присваивается статус «Success» (успешно).
  6. Отправитель получает обратно неиспользованный газ, а баланс аккаунта получателя пополняется пересылаемыми в рамках обработанного перевода средствами.

Также советуем вам посмотреть наше интересное видео о том, что планируют разработчики Ethereum:

Будущее масштабное обновление Эфириума

Как проверить транзакцию Эфириум

Что проверить транзакцию Эфириум нужно:

  1. Знать хеш транзакции;
  2. Зайти на сайт обозреватель блоков;
  3. Ввести хеш транзакции.

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

Чтобы проверить транзакцию Эфириума, нужно воспользоваться специальным обозревателем блоков (эксплорером), такими как:

Детали любого перевода отобразятся в выбранном для этой цели эксплорере сразу же после ввода хеша (tx hash).

Если же идентификатора транзакции у вас нет, поскольку речь идет не о лично отправленных средствах, а о выводе с биржи, его всегда можно найти в разделе с историей депозитов/выводов.

Если в эксплорере указать хеш зависшей ETH-транзакции, которая долго не достигает адресата, в строке ее статуса будет отображаться «Pending» (обрабатывается). Там же можно будет увидеть предположительное время до ее завершения.

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

  • Хеш;
  • Номер блока, в который она включена;
  • Возраст транзакции;
  • Адрес аккаунта отправителя и получателя;
  • Вид транзакции (исходящая/входящая);
  • Количество переведенных средств;
  • Комиссия.

Способ отмены транзакции Ethereum

Особенностью блокчейна эфира является возможность отмены транзакции, которая по какой-либо причине зависла и длительное время находится в статусе «Pending». Например, из-за указания слишком низкой цены газа или перегрузки сети.

Читайте также:  Как рассчитать срок окупаемости проекта при ставке дисконтирования 10

Для этого нужно получить доступ к кошельку, из которого были отправлены средства, с помощью веб-сервиса MyEtherWallet (MEW), зайти в меню «Отправить», выбрать «Отправить офлайн» и сформировать транзакцию, которая отменит зависший Ethereum-перевод.

При этом указывается сумма отправки, равная 0 ETH, а в поле «Цена газа» вводится более высокое, чем в зависшем переводе, значение, рекомендуемое сервисом ethgasstation.info.

Ключевым моментом является правильное заполнение строки «Nonce» — сюда нужно вставить соответствующее значение из аналогичной строки в данных зависшего перевода. Этот параметр отображает порядковый номер ETH-транзакции, которую необходимо отменить. Если до этого в аккаунте было, например, 37 успешно завершенных переводов средств, Nonce зависшего будет равняться 38 (37+1).

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

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

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

Источник

Транзакции Ethereum – руководство по проверке, подтверждению и отмене платежей

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

Стремительный рост популярности цифровых денег вызвал обратный эффект – миллионы пользователей перегружают сети, скорость при этом падает до минимума, и мы уже описывали на сайте, как эту проблему решает Биткоин. Давайте теперь посмотрим, как проконтролировать и ускорить транзакции Ethereum.

Сервисы для проверки транзакций

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

Популярным и удобным является Etherscan.io, где достаточно ввести адрес кошелька или номер перевода для получения всей нужной информации:

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

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

Где задерживаются платежи?

Прежде чем понять, почему платежи длятся часами или вообще не исполняются, давайте еще раз вспомним, что нужно сделать на любой криптовалюте чтобы средства пришли от отправителя к получателю:

  1. Вначале требуется проверить транзакцию эфира на корректность адресов кошельков и наличие необходимой суммы. При успешной проверке, информация уходит на общий для всех memory pool, откуда ее заберут майнеры.
  2. Все, что майнеру получается «забрать», он должен поместить внутри найденных им блоков с уникальными идентификаторами (хешами). Затем из них формируются новые цепочки блокчейна, а ему выплачивается вознаграждение за работу.
Читайте также:  Калькуляция это способ исчисления доходности продаж

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

Как видим процесс конкурентный, возникает закономерный вопрос: по какому принципу происходит фильтрация наиболее выгодных операций из memory pool? Ответ прост – исключительно по размеру комиссии, которая здесь называется «газом» (Gas).

Откуда берется и как рассчитывается Gas?

Газ берется с баланса кошелька отправителя или инициатора смарт-контракта при каждой транзакции эфира, после чего перечисляется майнерам как премия за выполненную работу. Расчет идет по формуле:

Лимит gas * стоимость за единицу

Одна единица равна 20 GWEI или 0,000000001 Ethereum. Чтобы не переплачивать, можно посмотреть транзакции за последние год-полтора: средняя комиссия на уровне 25-40 GWEI для подтверждения следующими 3-4 блоками, 50-60GWEI при пиковых нагрузках и ICO-проектов.

Можно самостоятельно задать нужный объем комиссии. Проверка транзакции эфира через сайт ETH Gas Station поможет оценить вероятную скорость исполнения.

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

Как уменьшить время обработки?

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

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

Так что лучше дождаться снижения нагрузки. Если даже после этого транзакции eth будут постоянно задерживаться вероятнее всего проблема с количеством газа:

  • Нужно как можно точнее рассчитать какой уровень Gas’а должна быть задан. Например, установлен лимит в 50 000, а было достаточно 25 000. Все сделано правильно, проверка транзакции Эфириума пройдет успешно, найдет свой блок и вернет остаток. Но если было необходимо больше, то платеж будет отменен.
  • Узнайте заранее, какую комиссию поставить для выполнения смарт-контракта или покупки токена. Иначе придется проводить операцию несколько раз, постоянно заглядывая в блокчейн эфириума, чтобы посмотреть, прошли ли транзакции или нет.
  • По умолчанию для переводов между кошельками установлен максимальный лимит 21 тыс. Gas. Проще говоря, купить или перевести средства, выгоднее всего через стандартные транзакции Эфириума, без оформления smart-контракта.

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

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

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

Почему вторая сумма равна нулю? Это страховка от редкого случая — вторая операция обработалась до того как произошел возврат основной суммы. Но при нулевой ставке теряется только немного баланса для «газа» после чего можем сделать еще одну попытку отмены.

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

Источник

Оцените статью