您的位置:首页 > 区块链

使用本地算力提高交易优先级?技术详解唯链挖矿获额外交易 Gas Price

发布时间:2019-12-06 03:06:08  来源:IT资讯网    采编:佚名

原文标题:《关于唯链雷神区块链,你可能还不知道那些事儿(第四篇)- 挖矿获取额外交易 Gas 单价》GAfIT资讯网


作者:Peter Zhou,唯链首席科学家,英国南安普顿大学计算机博士,于 2017 年加入唯链,主要负责唯链雷神区块链的科研研发及知识产权保护等工作GAfIT资讯网

GAfIT资讯网

使用本地算力提高交易优先级?技术详解唯链挖矿获额外交易 Gas PricePeter Zhou,唯链首席科学家,英国南安普顿大学计算机博士,先后以研究员和资深研究员的身份任职于英国肯特大学和芬兰奥卢大学,参与了欧盟和芬兰科学院重要科研项目,拥有十年计算机科研研发以及在国际一流学术杂志和会议上发表科研成果之经验,于 2017 年加入唯链,主要负责唯链雷神区块链的科研研发及知识产权保护等工作GAfIT资讯网

唯链雷神区块链允许一个交易发起方用挖矿的方式为其交易获取额外的 Gas 单价(GasPrice)。具体来说,交易发起方可以利用其本地算力资源计算,在有限的时间内寻找最优的 TX nonce 值,从而最大化预先定义的计算证明(PoW)。GAfIT资讯网

在处理交易的时候,系统将会把任何有效的计算量证明转换成额外的 Gas 单价,来计算出块节点将交易打包进新区块的奖励。通过这种方式,交易发起方可以通过消耗一些本地算力来提高其交易在交易池中的优先级。GAfIT资讯网

如何挖矿?GAfIT资讯网

我们用 ng 分别代表交易模型中的 NonceGas 的值,用 b 来表示 BlockRef 对应的区块编号,用 h 代表包括了该交易的区块的编号(高度)。另外,我们用 Ω 表示没有 NonceSignature 的交易,S 表示交易发起方的账户地址,P 表示基准 Gas 单价,H 代表哈希函数,E 代表 RLP 编码函数。GAfIT资讯网

我们定义计算量证明 w 为:GAfIT资讯网

使用本地算力提高交易优先级?技术详解唯链挖矿获额外交易 Gas PriceGAfIT资讯网

额外获得的 gas 单价 Δ*P* ,可以通过如下表达式来计算:GAfIT资讯网

使用本地算力提高交易优先级?技术详解唯链挖矿获额外交易 Gas PriceGAfIT资讯网

其中变量 *h* 需要满足:GAfIT资讯网

使用本地算力提高交易优先级?技术详解唯链挖矿获额外交易 Gas PriceGAfIT资讯网

将交易打包进新区块的 VTHO 奖励 *r*,可以通过如下表达式来计算:使用本地算力提高交易优先级?技术详解唯链挖矿获额外交易 Gas PriceGAfIT资讯网

其中 *φ*∈ [0, 1] 为 gas 单价系数(GasPriceCoef),*g** 为实际执行交易时需要使用的 Gas 数量。GAfIT资讯网

从以上表达式中,我们可以得知:GAfIT资讯网

  1. 由于 b 是一个有效的区块编号,BlockRef 必须指向一个已经存在的区块。也就是说,它的值必须等于一个现有区块 ID 的前四个字节;
  2. 该交易必须在区块 b 之后的 30 个区块内被打包进一个区块,不然计算量证明将不会被系统承认;
  3. 额外的 gas 单价 Δ P ,不会大于基准 gas 单价 P

演示GAfIT资讯网

我们还是通过一个 演示 来更好理解一下上述的挖矿机制。在演示代码中,函数 POW.encode 负责 RLP 编码,也就是,GAfIT资讯网

使用本地算力提高交易优先级?技术详解唯链挖矿获额外交易 Gas PriceGAfIT资讯网

函数 `POW.evalWork` 用来计算计算量证明,而函数 `POW.workToGas` 和 `POW.minedGasPrice` 实现了上述用来计算了额外的 Gas 单价 Δ *P* 的等式。GAfIT资讯网

示例GAfIT资讯网

演示中的示例做了以下这些事情:GAfIT资讯网

1. 在一个 NodeJs 环境中链接到唯链测试网并获取了一个 Connex 事例。GAfIT资讯网

const net = new SimpleNet("https://sync-testnet.vechain.org");
const driver = await Driver.connect(net);
const connex = new Framework(driver);
GAfIT资讯网

2. 提取出创世区块和最新的区块 ID,计算 ChainTag(创世区块 ID 的最后一位),以及 BlockRef(最新区块 ID 的前四个字节)。GAfIT资讯网

body.chainTag = parseInt(connex.thor.genesis.id.slice(-2), 16);
body.blockRef = lastBlock.id.slice(0, 18);
GAfIT资讯网

3. 调用函数 mine 在接下来的 100 秒内搜索最佳的 Nonce 值,最大化计算量证明。GAfIT资讯网

const duration = 100;
const rlp = pow.encode(body, origin);
body.nonce = safeToHexString(mine(rlp, duration));
GAfIT资讯网

4. 准备和发起交易。
5. 获取交易收据并打印结果。GAfIT资讯网

结果GAfIT资讯网

以下是我运行代码后得到的结果。GAfIT资讯网

PoW = 15081760
nonce = 5438147356160918000
Number of rounds = 4900000
Duration (sec) = 101.459
GAfIT资讯网

打印出的结果的第一部分是由函数 mine 产生的。它展现了找到的最大的计算量证明值以及对应的 Nonce 值。之后我们看到的是交易的 TXID:GAfIT资讯网

TXID = 0x46bf31e8df3dfd5a31ad38cf53a3cf93b285eb0ff517c2b19d9ad133416f19bf
GAfIT资讯网

随后,我们看到的根据交易收据计算出来的通过挖矿获得的额外的 Gas 单价 Δ PGAfIT资讯网

Mined gas price computed from TX receipt = 4.3129e+14
GAfIT资讯网

最后,是通过计算公式得到的 Δ P 值:GAfIT资讯网

Mined gas price computed from TX data = 4.3129e+14
GAfIT资讯网

附:「关于唯链雷神区块链,你可能还不知道那些事儿」系列GAfIT资讯网

第一篇《区块链如何对抗重放攻击?硬核详解唯链 TXID 方案》
第二篇《区块链如何保证交易安全?硬核详解唯链「强制交易依赖性」功能》
第三篇《区块链普及尝试:技术详解唯链指定交易费代付协议 VIP-191》GAfIT资讯网

来源链接:bbs.vechainworld.ioGAfIT资讯网

  声明:本文仅为传递更多网络信息,不代表IT资讯网观点和意见,仅供参考了解,更不能作为投资使用依据。


返回网站首页 本文来源:IT资讯网

本文评论
苹果或将推iPhone SE 2升级版
(原标题:苹果或将推iPhone SE 2升级版 刘海变小可能年
日期:01-06
微信朋友圈广告又现大翻车 腾讯:我错了但下次还敢
据国内媒体报道,12月5日晚间,微信朋友圈广告再次发生翻
日期:12-08
番号JJPP-135人物图片 JJPP-135主演女优AV简介作品封面
JJPP-135, JJPP-135 イケメンが熟女を部屋に連れ込ん
日期:12-06
番号TOU-356人物图片 TOU-356主演女优AV简介作品封面
TOU-356, TOU-356 18才解禁☆早熟Cherry Boys 8
日期:12-06
多盟:打破用户增长困局,于存量市场中挖掘增量的掘金者
回顾移动应用的发展历程,从享受流量红利到进入「存量时
日期:01-09
番号KTRA-089人物图片 KTRA-089主演女优茜はるか作品封面
KTRA-089, KTRA-089 工業高校出身の地味なメガネ女子
日期:12-06
一图看懂iPhone 12/Pro/SE2屏幕尺寸
(原标题:爆料:一图看懂iPhone 12/Pro/SE2屏幕尺寸,iPhone
日期:01-04
番号VEC-334人物图片 VEC-334主演女优音羽文子作品封面
VEC-334, VEC-334 性欲が強すぎる母(浮気癖あり)に、愛
日期:12-06
高德地图首家上线“ETC对账助手” 让ETC收费明明白白
针对广大车主当前面临的高速ETC收费困惑,高德地图今日
日期:01-22
番号DBR-099人物图片 DBR-099主演女优姫野みく作品封面
DBR-099, DBR-099 2018年RUBY年鑑 1 8時間2枚組
日期:12-06
番号CJET-062人物图片 CJET-062主演女优AV简介作品封面
CJET-062, CJET-062 4時間!実録 熟女夜這いライブ!!大全
日期:12-06
番号IPX-236人物图片 IPX-236主演女优亜矢瀬もな作品封面
IPX-236, IPX-236 「溜まってるんでしょ?」フェラ好き
日期:12-06