Conflux 进阶课
在这里,Conflux 团队成员将敞开心扉,权威解析 Conflux 网络最新进展、生态构建进程等信息,没有八卦、没有小道消息,绝对干货、绝对知无不言,想要 360° 无死角了解 Conflux,来这里就够了!
将EVM字节码移植到Conflux上
Conflux 采用了存储押金机制。执行智能合约时,如果通过 SSTORE (0x55)
指令往存储中写入非零数据的时候,则需要支付存储押金。当这段数据被清空时,存储押金会被退还给支付者。
存储押金的价格是 1/1024 CFX/byte。每个存储单元计 64 字节。除此之外,合约创建后,代码也要收存储押金。
存储押金机制产生的区别
Conflux 采用了存储押金机制。执行智能合约时,如果通过 SSTORE (0x55)
指令往存储中写入非零数据的时候,则需要支付存储押金。当这段数据被清空时,存储押金会被退还给支付者。
存储押金的价格是 1/1024 CFX/byte。每个存储单元计 64 字节。除此之外,合约创建后,代码也要收存储押金。
交易的存储上限域
在 Conflux 中,每个交易需要填写存储上限,单位是字节。如果存储上限填写的过高,超过了账户余额所能支付的存储押金,交易就会失败。如果存储上限填写过低,导致交易执行结束时实际新增的存储超过了存储上限,交易也会失败。
一个最简单的方案是,通过 Conflux RPC 估算(详见相关章节)交易需要的存储上限。或者,可以通过 n
*1024
的公式计算账户余额最高支持的存储上限。(其中 n
为支付了交易费和账户转账费用后的余额。为了保险起见,也可以填一个小一点的数,如
n*1000
)
写存储消耗的燃料
量就可以了。在 Conflux 中,所有 SS
TORE (0x55)
指令消耗的燃料都是 5000 gas。相比较,以太坊在这里的逻辑很复杂。不过,一般开发者不需要关心每个指令的具体 gas 定价,只需要通过 RPC 估计整个交易的燃料用量就可以了。
共识