IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> Filecoin Gas设置在钱包应用实现中的设计 -> 正文阅读

[区块链]Filecoin Gas设置在钱包应用实现中的设计

1 EIP-1559

Filecoin Gas设置引入了EIP1559方案,并将其纳入了其核心协议。EIP-1559是Vitalik于2019年提出的以太坊改进方案,它旨在提高以太坊费用市场的效率。

在区块链的网络中,GAS的概念被用来衡量执行特定链上交易所需的计算资源。在以往的区块链实现中,一般将gas费全部激励给矿工,gas费是gas price * gas limit乘积计算而来。在发送消息时,用户需要设置gas的使用量gas limit 和消耗的燃料价格 gas price,gas limit设置过低会导致消息失败,gas price则会影响消息上链的效率,矿工会优先打包提供了更高价格的消息。

EIP-1559其主要创新之处在于引入了与每个区块相关的base fee(每单位Gas的价格)。该费用会根据网络拥堵情况而上升和下降,将网络流量维持到目标水平。在此机制下,发送消息所消耗的费用,除了激励给矿工的,还有一部分会反补网络予以销毁。之所有采用这样的设计,会提高网络效率,至于为什么我们不做探讨,我们这里探讨一下这个规则本身。

2 手续费相关的参数

2.1 BasFee

EIP-1559通过追踪最低的gas费来实现这一点,最低的gas费即BASE FEE,被记录在每个区块中。当一个区块所用容量超过一定数量时,BASE FEE会上升,而当一个区块所用容量低于一定数量时,BASE FEE会下跌。

2.2 GasFeeCap

交易创建者指定的一个费率上限(他们愿意为将该交易打包在内而支付的每单位Gas的最高价格)。当价格上限低于一个区块的base fee时,该区块就不能被打包在内。

2.3 GasPremium

交易创建者还指定的一个小费费率(也是每单位Gas的价格);这个小费由区块矿工收取。

2.4 GasLimit

交易创建者指定的Gas数量上限,设置较高的gaslimit将会面临更多的超额燃烧,设置过低会影响消息的成功率。

2.5 GasUsed

交易被区块打包时,真正消耗的gas数量。

3 手续费的构成

3.1 基础燃烧

基础燃烧的部分将补偿整个网络为执行交易而消耗的资源,该部分将会被销毁。

计算公式:BaseBurnt = BaseFee * GasUsed

3.2 矿工小费

矿工小费由区块矿工收取。

计算公式:MinerTips = min (GasFeeCap - GasPremium,GasPremium)* GasUsed

3.3 超额燃烧

超额燃烧是因交易创建者设置了较高的gas数量而带来的网络资源消耗的补偿,该部分也将会被销毁。

计算公式:OverBurnt = BaseFee * (GasLimit - GasUsed)*(GasLimit - GasUsed *1.1)/GasUsed

4 钱包的Gas参数设置方案

4.1 Gas参数推荐

在上述手续费相关的5个参数中,BaseFee为区块信息,GasUsed为交易实际发生的Gas消耗数量,均为已知或未来已知的参数。另外的3个参数,由交易创建者在发送交易时设定。

在Filecoin网络中,节点提供了4个获取预估值的接口:

  • GasEstimateFeeCap,返回预估的GasFeeCap
  • GasEstimateGasLimit,返回预估的GasLimit
  • GasEstimateGasPremium,返回预估的GasPremium
  • GasEstimateMessageGas,返回预估的Gas费

通过节点获取预估参数值,但会存在网络连接上的问题,当节点连接延迟时,会降低用户体验。

为了避免网络连接问题,FiveToken在实现交易时,提供了基于ChainInfo(一个同步链数据的基础服务)的数据支持,提供手续费设置的推荐值。取值规则如下:

  • GasLimit = GasUsed * 1.6,3小时内或近20条相同消息类型的成功消息的GasUsed中位数
  • GasFeeCap = BaseFee * 3,3小时内或近20条相同消息类型的成功消息的BaseFee中位数
  • GasPremium = GasPremium *1.5,3小时内或近20条相同消息类型的成功消息的GasPremium中位数

4.2 To地址的Gaslimit设置

当to地址为新地址时,将会消耗更多的gas,根据数据统计,这种情况下,gasused在2100000上下,不超过2200000。在实现时,采用了2200000的推荐值,很好地解决to地址为新地址时,经常发生的交易失败的问题。

4.3 多签消息的参数设置

多签功能在实现时,遇到了批准消息失败的问题,通过调查,同一高度的多签批准消息使用了不同的手续费参数。分析原因为不同的提案类型,批准消息时,会消耗不同的gas费用,就需要采用不同的gas费参数。

因批准消息的提案信息需要解析,暂没有可用于分析的数据,该项目工作在进行中。当前情况,批准消息采用的手续费参数临时方案为:将GasLimit推荐值设置为20000000。针对这一个情况,还需要更多的数据分析支持,以实现既可以高效的发送消息又可以减少超额燃烧降低交易成本。

关于gas设置优化需要搞清楚的问题:网络的推荐值的算法是怎样的?不同消息类型的手续费消耗从代码实现上有什么区别?

EIP-1559 https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2021-09-05 11:03:08  更:2021-09-05 11:03:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 19:46:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码