Разработка смарт-контрактов в Ethereum - страница 8



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

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

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

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

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

Газ используется для оплаты не только вычислительных действий, но и хранения данных.

Общая плата за хранение пропорциональна наименьшему использованному объему, кратному 32 байтам числу.

В комиссии за хранение данных есть свои нюансы.

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

Поэтому, если транзакция инициирует выполнение действия, в результате которого объём занимаемого хранилища сокращается, то комиссия за выполнение этой операции не взимается, ПЛЮС производится возврат средств за освобождённый объём.

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

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

Она просто не будет включена в блокчейн майнерами.

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

Майнер просто прекратит обработку транзакции, вернет любые сделанные изменения, но все равно включит ее в блок-цепочку в качестве «неудачной транзакции», удержав за нее плату.

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

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

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

Шахтеры взимают плату только за ту работу, которую они на самом деле делают.

Эфириум построен таким образом, что интервал между блоками в нём значительно меньше (~15 секунд), чем в других блокчейнах и, например, в Биткоине (~10 минут).

Это позволяет ускорить процесс обработки транзакций.

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

Эти конкурирующие блоки называют ещё потерянными, то есть намайненными блоками, но не включёнными в основную цепочку.

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