以太坊交易手续费计算

news2024/9/20 9:26:49

Gas 中译是:瓦斯、汽油,代表一种可燃气体。 这形象地比喻以太坊的交易手续费计算模式,不同于比特币中直接支付比特币作为转账手续费, 以太坊视为一个去中心化的计算网络,当你发送Token、执行合约、转移以太币或者在此区块上干其他的时候,计算机在处理这笔交易时需要进行计算消耗网络资源,这样你必须支付燃油费购买燃料才能让计算机为你工作。最终燃料费作为手续费支付给矿工,无论交易成功与否。

参考文章

What is gas? Why do transactions take so long?
以太坊技术与实现 Gas

经典例子

以太坊白皮书给出的转账时计算Gas的例子如下,假设合约存储开始时为空,发送一笔带有10 ETH、2000 Gas、0.001以太币Gas价格的交易,并且有两个数据字段:[2, ‘CHARLIE’]:

  1. 验证交易的有效性和格式:检查交易是否有效,格式是否正确。这包括验证交易的结构、签名以及发送者是否有足够的资金来支付最大可能的Gas费用。
  2. 检查发送者的资金:确保交易发送者账户中至少有2000 * 0.001 = 2 ETH。如果有,那么从发送者的账户中扣除2以太币作为可能的最大Gas费用。注意:这是从交易发送者的钱包里扣除的,不是从10 ETH的交易金额中扣除的
  3. 初始化Gas和扣除字节费:初始化Gas为2000。假设交易长度为170字节,每字节费用为5,因此扣除850(170*5),剩下1150Gas。
  4. 处理交易金额:从发送者账户中再扣除10以太币,并将其加到合约账户中。这是交易中指定的转账金额。
  5. 执行代码:运行合约代码。在这个例子中,操作相对简单:检查合约存储的索引2是否已被使用,发现未被使用,于是将索引2的存储值设置为’CHARLIE’。假设这个过程消耗了187Gas,剩余Gas为1150 - 187 = 963。
  6. 退还剩余Gas:将未使用的Gas转换回以太币并退还给发送者。在这个例子中,退还的是963 * 0.001 = 0.963 ETH。最后返回交易执行后的状态。
  7. 计算扣除的总金额:发送的ETH(10 ETH)+ 实际消耗的Gas费用(1.037 ETH)= 用户账户最终减少的总金额(11.037 ETH)。

实际例子

以下是我用老ThinkPad电脑在测试网络里辛辛苦苦挖的一点币,大家也可以去挖挖试试
GoerliETH Faucet地址
在这里插入图片描述

现在我们从Account1转账0.001ETH给Account2,预估的Gas费用为0.0000315ETH,直接给你计算好了
也就是说我们这笔交易预估花费的总金额 = 0.001 ETH + 0.0000315 ETH = 0.0010315 ETH
在这里插入图片描述

稍作等待后,等到转账confirmed后,我们点击View on block explorer前往网页
也可以在 Goerli Testnet Explorer网站 搜寻transaction ID就行
在这里插入图片描述

可以从以下界面看到整个交易的过程
Transaction Fee = Gas Used * Gas Price = 21,000 Gas * 1.500000007 Gwei = 31500.000147 Gwei
注意:21000 Gas 是标准转账交易的gasUsed。因此一笔标准的转账交易你可以设置 gasLimit 为21000,多退少也不能补,因为少了的话就打水漂了。还有这个大小和你转账多少ETH没有关系,转0.001用的是21000Gas,转账1000ETH也是21000Gas,如果想要提高转账的速度,可以通过提高Gas价格(Gas Price)来实现。
在这里插入图片描述

换算单位

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1967737.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

东巴古籍——纳西族古老文字的见证

关注我们 - 数字罗塞塔计划 - 华夏大地上的每个民族都有各自独特的文化传承,在前面的文章中,我们已经介绍过中国档案文献遗产名录中收录的永州女书和水族水书(详细参见《永州女书——世上唯一专属于女性的文字》、《水书——破解象形文字含义…

二叉树LeetCode热题

94.二叉树的中序遍历 题目 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 输入:root [1,null,2,3]输出:[1,3,2] 代码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* …

一文搞懂大模型在多GPU环境的分布式训练!

随着大模型时代的到来,模型参数量、训练数据量、计算量等各方面急剧增长。大模型训练面临新的挑战: 显存挑战:例如,175B的GPT-3模型需要175B*4bytes即700GB模型参数空间,而常见的GPU显存如A100是80G显存,这…

zabbix使用脚本自定义监控项

1. 在zabbix_agent的配置文件中配置自定义key和脚本位置 vim /etc/zabbix/zabbix_agentd.confUserParametermq_check_log,/etc/zabbix/zabbix_agentd.d/mqlog.shmq_check_log:是这个自定义参数的名称。在Zabbix的监控项(item)配置中&#xf…

WinForm中使用Graphics画元素

前言 有时候我们需要在一个图像上显示一些文字,或者画一些标志,这就想我们平时截图也需要做一些描述信息。在C#中我们可以Graphics这个对象来绘制自己所需要描述的信息,当然在WPF中的它的设计思路又不一样了,在WPf中考虑使用的矩…

upload-labs靶场:1—10通关教程

目录 Pass-01(JS 验证) Pass-02(MIME) Pass-03(黑名单绕过) Pass-04(.htaccess 绕过) Pass-05(大小写绕过) Pass-06(空格绕过) …

经典神经网络(15)GLM模型原理详解及其微调(文本摘要)

经典神经网络(15)GLM模型原理详解及其微调(文本摘要) 2024年01月16日,智谱推出新一代基座大模型 GLM-4。新一代基座大模型 GLM-4 的整体性能相比上一代大幅提升,十余项指标逼近或达到 GPT-4;支持更长上下文;更强的多模态&#xf…

马丁短链02异常码 异常拦截器

全局统一返回实体: 目的是除了数据信息,还要带上一些错误状态码,成功与否,错误信息等等以帮助更好理解可能的错误。 规约:默认的约定 异常码设计原则: A客户端异常 B服务端异常 C远程调用异常 具体异常码…

CentOS7.9 利用 KubeKey 扩容 Kubernetes v1.26 Worker 节点实战

转载:CentOS7.9 利用 KubeKey 扩容 Kubernetes v1.26 Worker 节点实战 知识点 定级:入门级 KubeKey 安装部署 KubeSphere 和 Kubernetes KubeKey 定制化部署集群 KubeSphere v3.4.0 功能概览 Kubernetes 基本操作 CentOS 系统内核升级 演示服务器配…

Spring源码- context:component-scan base-package标签的作用源码解析

1.扫描包路径下所有的类加载解析成bean定义信息 ClassPathBeanDefinitionScanner .doScan方法调用路径 doScan:276, ClassPathBeanDefinitionScanner (org.springframework.context.annotation) parse:95, ComponentScanBeanDefinitionParser (org.springframework.context.a…

【用C语言编写】题目名称:数9的个数题目内容:编写程序数一下1到100的所有整数中出现多少个数字9

题目名称&#xff1a;数9的个数 题目内容&#xff1a;编写程序数一下1到100的所有整数中出现多少个数字9 代码如下&#xff1a; #include <stdio.h> int main() {int i 0;int count 0;for (i 1; i <100; i){if (i % 10 9) //个位为9的count;else if (i / 10 9) //…

手机应用的时间可以修改吗??

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

Java线程安全之同步方法

同步方法 使用synchronized修饰的方法&#xff0c;就叫做同步方法&#xff0c;其固定格式如下&#xff1a; public [static] synchronized 返回值类型 同步方法() {可能会产生线程安全问题的代码 }注意事项&#xff1a; 同步方法可以是普通成员方法&#xff0c;也可以是sta…

聊一聊 webpack5性能优化有哪些?

介绍 此文章基于webpack5来阐述 webpack性能优化较多&#xff0c;可以对其进行分类 优化打包速度&#xff0c;开发或者构建时优化打包速度&#xff08;比如exclude、catch等&#xff09;优化打包后的结果&#xff0c;上线时的优化&#xff08;比如分包处理、减小包体积、CDN…

什么是安全生产痕迹化管理?如何做到生产过程中全程痕迹化管理?

安全生产痕迹化管理&#xff0c;简单来说&#xff0c;就是通过记录一些“信息”来确保安全工作的进展。这些方法包括记会议内容、写安全日记、拍照片、签字盖章、指纹识别、面部识别还有手机定位等。记录下来的文字、图片、数据和视频&#xff0c;就像一个个“脚印”&#xff0…

“免费”制作中国式报表的工具横空出世,内置丰富图表组件!

一.报表制作的烦恼 报表是我们日常工作中的好伙伴&#xff0c;它在企业管理和决策过程中扮演着重要角色&#xff0c;能够清晰直观地展示数据&#xff0c;让关键信息一目了然。 然而&#xff0c;无论是使用传统的手工报表还是基于软件的普通报表操作&#xff0c;都存在不便之处…

clickhouse sql 语法参考

clickhouse sql 语法参考 1. select1.1 将结果中的某些列与 re2 正则表达式匹配&#xff0c;可以使用 COLUMNS 表1.2 ARRAY JOIN - 数组数据平铺1.3 LEFT ARRAY JOIN 2. create2.1 分布式创建数据库2.2 分布式创建复制表2.4 CREATE TABLE [IF NOT EXISTS] [db.]table_name ENGI…

layui table 重新设置表格的高度

在layui的table模块中&#xff0c;如果使用table.render({})渲染了一个表格实例时&#xff0c;确定了height配置&#xff0c;后续用table.resize(id)方法重置表格尺寸时&#xff0c;表格的高度是不会变化的&#xff08;如果我的理解没有错的话&#xff09;。 有时我们希望根据…

ChatGPT在办公与科研中有怎样的应用?又是如何做论文撰写、数据分析、机器学习、深度学习及AI绘图

2022年11月30日&#xff0c;可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT-3.5&#xff0c;将人工智能的发展推向了一个新的高度。2023年11月7日&#xff0c;OpenAI首届开发者大会被称为“科技界的春晚”&#xff0c;吸引了全球广大…

8.1 字符串中等 43 Multiply Strings 38 Count and Say

43 Multiply Strings【默写】 那个难点我就没想先解决&#xff0c;原本想法是先想其他思路&#xff0c;但也没想出。本来只想chat一下使用longlong数据类型直接stoi()得不得行&#xff0c;然后就看到了答案&#xff0c;直接一个默写的大动作。但这道题确实考察的是还原乘法&…