LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > 技术科普 | 详解 CPChain Gas 机制

技术科普 | 详解 CPChain Gas 机制

2019-12-11 CPChain物信链 来源:区块链网络

在CPChain智能合约开发入门一文中,我们介绍了CPChain的智能合约用例的部署与编写用例。当然,执行一项智能合约除了代码之外,还需要消耗一定量的Gas,在CPChain中,什么是 Gas呢?今天这篇文章就来给大家具体的讲讲 Gas。


Gas 是什么

Gas 是用于支付给在电脑上记录交易及其他行为的费用,在 CPChain 区块链系统中,智能合约和转账等操作的执行,都需要付出一定的代价,这个代价就是Gas 。


本质上,Gas 其实是一个单位,用于测量进行某些操作需要的计算量,也就是用来衡量一个操作有多少工作量。在CPChain主链中运行的所有智能合约中,每一行代码的执行都需要一定量的 Gas 来计算,也就是说,每个合约中可以使用的命令都会有一个相应的Gas 值。


所有消耗 Gas 的操作均在configs/protocol_params.go中进行。


下面是一个用例,该用例演示了非智能合约交易的Gas费用并创建了一个智能合约。


在这个用例中,正常的交易费用为 21,000 Gas,创建智能合约的成本为 53,000 Gas。


Gas Price&Gas Limit


除了 Gas 之外,Gas Price 和 Gas Limit 也是两个不可忽视的重要概念。

其中,Gas Price是记录交易时或者进行其他软件操作时的费用。当节点申请交易时,系统会基于链上的交易历史记录来计算Gas价格。但是,Gas价格也是可调的。只要节点能够负担,便可以将其定义为任何价格。Gas价格高的交易更有机会被出块委员会选中,并生成到区块中。但这会增加节点的开销。


Gas Limit:指的是节点将在交易中支付的最大气体。Gas ≤Gas Limit,Gas Limit 限制了智能合约中交易费用的上限,并且避免了当智能合约中发生报错时(例如过多的循环)时,出现意外高 Gas 费用的情况。当节点申请交易时,可对Gas Limit进行调整,CPChain为其提供了默认设置,以防止出现Gas耗尽的情况。


Gas 费用计算

一笔交易的费用为 Gas × Gas Price,但是,对于涉及多个操作流程的智能合约交易,往往是直到整个交易终止后才能确定费用。因此,当节点申请交易时,需要支付Gas Limit × Gas Price的费用,当交易终止后,未使用的费用(Gas Limit?Gas)×Gas Price 退还给该节点。


值得注意的是:当交易费用为 Gas× Gas Price 时,不需要退还。即使交易失败,例如涉及超出 Gas 限额的异常合同,系统也不会退还已扣除的费用,原因是出块委员会节点已经付出了一定的成本来验证此交易,应从交易费用中获得报酬,此外该机制还有助于防范某些节点恶意占用整条链的计算能力。


—-

编译者/作者:CPChain物信链

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...