Я изучаю технологию блокчейна для своего клиента. Я понимаю понятие "газ" в вычислительных затратах. Мы рассматриваем возможность создания криптовалюты в качестве альтернативы использованию традиционной платежной платформы для решения замкнутого цикла. Я хочу получить представление о «стоимости транзакции», связанной с простой платежной транзакцией с использованием сети ethereum. Я нахожу метод расчета не совсем ясным. Кто-нибудь может помочь?
Расчет gas
* gascost
, поэтому простая транзакция будет стоить21,000 gas * 20 GWei/gas = .00042 ETH
value
переводы в транзакции. Таким образом, полная формула будет gas
* gascost
+ value
.Простая транзакция, которая передает стоимость, но не имеет дополнительных данных и не запускает какой-либо код EVM (получатель не является смарт-контрактом), потребляет ровно 21000 единиц газа. Вам просто нужно знать цену на газ, чтобы рассчитать стоимость сделки.
Цена на газ по умолчанию составляла 20 Gwei (20 * 10 -9 ETH), но сейчас рекомендуется использовать более низкое значение. Воспользуйтесь сервисом ETH Gas Station , чтобы получить актуальную статистику о ценах на газ.
Вы также можете оптимизировать расходы, отправляя несколько платежей за одну транзакцию, используя простой смарт-контракт. Не вдаваясь в подробности, один платеж в рамках такой транзакции обойдется вам в ~10000 единиц газа.
Я создал частную тестовую сеть Ethereum и инициировал транзакцию 5 эфиров с одной учетной записи на другую. Баланс на обоих счетах составляет 20 Ether перед транзакцией. После транзакции:
Таким образом, стоимость транзакции составляет 0,0004575186 эфира, что составляет примерно 0,00663 доллара США по сегодняшнему обменному курсу.
Дополнительную информацию о ценах можно найти в «Приложении G. Таблица комиссий» желтой бумаги Ethereum .
Комиссия за транзакцию определяется (gasConsumed * gasPrice). Для простой транзакции количество gasConsumed всегда равно 21 000, и вы можете установить лимит газа на 21 000, чтобы прервать транзакцию, если узел попытается превысить ожидаемые 21 000 газа.
На данный момент рекомендуемая MyEtherWallet.com цена на газ составляет 21 Gwei, что в основном является «рыночной ценой» на газ. Итак, вы смотрите на (21 000 * 21) = 441 000 Gwei для отправки любого количества эфира сегодня. Это чертовски выгодно, если вы хотите отправить 1 эфир (1 000 000 000 Gwei), который сейчас оценивается примерно в 330 долларов!
Чтобы отправить 1 Эфир, вы платите всего (441 000/1 000 000 000) или 0,0441% комиссии за транзакцию! Самое замечательное в этом то, что если вы отправляете 2 эфира, то (gasConsumed * gasPrice) остается прежним, и стоимость вашей транзакции может быть сокращена вдвое (441 000/2 000 000 000) 0,02205%, потому что это все еще одна транзакция.
Лично это абсолютно нелепое значение, и я написал некоторый код на C#, чтобы платить всем трудолюбивым майнерам 1,5% комиссии за транзакцию. Таким образом, мне не нужно заботиться о том, сколько, по моему мнению, платят другие в любой момент времени и какова стоимость эфира в любой момент времени.
Вам, вероятно, лучше получить среднее значение, если вы обычный пользователь, но с компьютером с воздушным зазором ваша единственная незащищенность — это неправильное понимание ценности того, что вы держите, поэтому я планирую рассмотреть любые возможности с локально подписанными транзакциями в фиксированный процент от суммы, которую я перевожу.
decimal gasLimit = 30000;
decimal etherToSend = .4m;
decimal desiredFeePercentage = .015;
decimal 1.5GetGasPriceInWeiForTransactionFeePercentage(gasLimit, desiredFeePercentage, etherToSend); // 200000000000 wei gasPrice for a transaction costing a max of 30,000 gas
public decimal GetGasPriceInWeiForTransactionFeePercentage(
decimal gasLimit,
decimal desiredTransactionFeeAsPercent,
decimal amountOfEtherToSend)
{
decimal transactionFeesInEther = amountOfEtherToSend * desiredTransactionFeeAsPercent;
decimal transactionCostInWei = transactionFeesInEther * AMOUNT_OF_WEI_IN_ETHER;
decimal requiredGasPriceInWei = transactionCostInWei / gasLimit;
return requiredGasPriceInWei;
}
сломанный