Эфириум: транзакции

Эфириум: транзакции, газ, счета и влияние майнеров на размер блока

Для начала давайте разберемся, какие есть типы счетов в Эфириуме. Они представлены двумя видами: счета контрактов и счета внешних владельцев (ЕОА). У первых есть несколько основных особенностей:

  • у них есть свой код и баланс эфиров;
  • в активированном состоянии выполняют операции любой сложности;
  • управляют собственной постоянной памятью;
  • транзакции инициируют выполнение кода.

Счета ЕОА от них отличаются:

  • они контролируются методом использования секретных ключей;
  • у них нет своего кода;
  • они могут совершать транзакции;
  • есть баланс эфиров.

Особенности сообщений и транзакций

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

  • подпись;
  • идентификатор получателя транзакции;
  • VALUE – количество wei;
  • графу для дополнительных данных;
  • показатель GASLIMIT;
  • показатель GASPRICE.

Эфириум: транзакции, газ, счета и влияние майнеров на размер блока

Что такое сообщение в Эфириуме?

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

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

Рано или поздно все майнеры встают перед выбором – подхватывать или не подхватывать транзакцию. От суммы комиссии за нее зависит сама скорость подтверждения транзакции.

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

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

Эфириум: транзакции, газ, счета и влияние майнеров на размер блока

Как правильно оценить стоимость планируемой транзакции

Она зависит от таких факторов:

  • gasUsed – необходимого количества газа для проведения транзакции;
  • gasPrice – стоимости транзакции в единицах газа.

Пользователь при подготовке транзакции вправе указать любое значение gasPrice. Сразу уточним, что для версии Frontier ее значение автоматически равно 0,05e12 wei. Вот в этом и вся загвоздка – если у вашей транзакции будет нулевое или меньшее значение, чем 0,05e12 wei, вам будет очень сложно убедить майнера принять транзакцию. Особенно, если он старается максимально оптимизировать свои расходы и доходы.

Понятие лимита газа на блок

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

Что такое DoS

DoS, или другими словами, denial of service – это случай отказа в обслуживании клиента. На него жалуются многие пользователи платформы – сеть Эфириум становится неудобной в использовании из-за забивания транзакциями и общего замедления работы.

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

Злонамеренные DoS – это спам-атака транзакциями, вследствие нее смарт-контракты злоумышленника непрерывно вызывают опкоды, вызывая сбой работы системы. Последний раз подобная атака была произведена осенью, тогда пользователей просили снизить лимит использования газа на формирование блоков.

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

Почему лимит газа не увеличивается

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

Изначально этот механизм сочетали с решением, согласно которому блок можно было увеличить на 150% от среднего значения для последних сформированных 1024 блоков. Благодаря этой разработке одновременно повышался спрос и увеличивалась пропускная способность сети.

Эфириум: транзакции, газ, счета и влияние майнеров на размер блока

Как можно исправить ситуацию

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

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Похожие статьи