您的位置:首页 > 区块链

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

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

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


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

fA9IT资讯网

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

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

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

如何挖矿?fA9IT资讯网

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

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

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

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

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

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

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

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

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

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

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

演示fA9IT资讯网

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

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

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

示例fA9IT资讯网

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

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

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

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

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

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

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

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

结果fA9IT资讯网

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

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

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

TXID = 0x46bf31e8df3dfd5a31ad38cf53a3cf93b285eb0ff517c2b19d9ad133416f19bf
fA9IT资讯网

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

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

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

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

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

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

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

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


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

本文评论
番号RKI-483人物图片 RKI-483主演女优富田優衣作品封面
RKI-483, RKI-483 発射寸前! イクッ!イクゥゥ!ビクッビ
日期:12-06
股票策略私募4月战绩怎样?中小私募后来居上 部分今年来斩获数倍涨幅
2020年以来,A股市场经历了大起大落。4月的A股市场整体
日期:05-12
番号EKDV-560人物图片 EKDV-560主演女优高野しずか作品封面
EKDV-560, EKDV-560 元カレとのSEXを自画撮りそれを
日期:12-06
番号ATOM-358人物图片 ATOM-358主演女优AV简介作品封面
ATOM-358, ATOM-358 完全撮り下ろし2作品収録!パンチ
日期:12-06
高盛、瑞银、施罗德等外资巨头又出手了 看上哪些A股?
随着上市公司半年报陆续披露,机构投资者最新动向也浮出
日期:07-31
皆乃せな 作品番号AOI-001剧情截图及介绍
皆乃せな,皆乃せな剧情介绍,AOI-001剧情:出道!她是无辜
日期:07-31
番号7LZPL-020人物图片 7LZPL-020主演女优藤川れいな作品封面
7LZPL-020, 7LZPL-020 はじめてのレズ友達~ふたりきり
日期:12-06
AMD 将推肾上腺素2020驱动,老显卡又迎新鸡血
根据VideoCardz的报道,AMD已经在预热即将推出的肾上腺
日期:12-09
智能电视怎样观看2020年B站首届晚会直播?当贝市场花式解锁
元旦在即,各大卫视的2020的跨年晚会官宣进度已经进入
日期:01-01
原油周评:NYMEX油价报复性怒涨逾30% 创史上最大周阳线!
【原油周评:NYMEX油价报复性怒涨逾30% 创史上最大周阳
日期:04-06
OPPO Find X2 Pro 官方限时直降 1000 元!骁龙 865 + 120Hz + 3K 屏
7月8日消息 OPPO官网及京东自营店显示,7月8日起,OPPO Fi
日期:07-09
人社部鼓励使用电子劳动合同,诺诺电子合同助力企业电子签约
近日,人力资源社会保障部办公厅印发《人力资源社会保障
日期:03-26