Bytom2.0上线已有三周时间,其中,有关Bytom2.0合约体系在此次更新中进行了重大升级,升级内容包括但不限于UTXO的世界状态、类Goland的开发语言、更完备的操作符、注册合约以及后续对EVM的兼容等内容。
在本篇文章中,我们会主要向Bytom用户介绍有关Bytom2.0的注册合约。
一、什么是注册合约?
注册合约即通过销毁一个UTXO向链上写入一个合约代码,通过该合约的哈希即可直接使用该合约的代码。注册合约可以通过该方式联系到Bytom1.0中的合约模板,但合约模板只是给开发者一个参考,开发者需要自己把合约模板部署到链上,而注册合约注册完成后,开发者可以直接调用。
Curve或存在ERC-777相关安全隐患,官方回应称相关池已弃用:8月2日消息,今日,安全团队Decurity发现Curve平台另一安全漏洞。Curve在一部分代币市场的智能合约中使用了ERC-777 Callback,而这一用法存在安全隐患,可能会被重入攻击。Decurity还指出,一MEV机器人已利用此漏洞进行了一笔1900美元的攻击。Curve官方回应称,该问题属于旧的 pBTC 矿池问题,该池早已被弃用,但在合约中仍剩余少量资金。
目前尚不清楚是否有其它资金池存在类似安全隐患。[2023/8/3 16:14:48]
二、注册合约的优势:一次发行,永久调用
注册合约的优点是只需要往链上发行一次,即可不限次数的使用,并且除了可以自己使用,也可以提供给外部使用。
Celo区块链停止出块,官方称正识别和解决问题:7月14日消息,Celo官方于今日8时左右发推文称:“Celo网络在14035019处(Celo官方笔误为“1403519”)停止出块。验证人员正在努力识别和解决问题。所有资金都是安全的。将尽快提供更新。”[2022/7/14 2:12:06]
除此之外,注册合约发行在链上,公开透明,不可更改,杜绝了恶意人员篡改的可能性。
对于链的整体运行而言,注册合约在发行后只占用一次的空间,相比于每次都部署新的合约,大大节省了链上存储,从而降低了网络的开销。
三、Bytom2.0注册合约使用流程
1、创建合约
Gate.io提醒用户:谨防冒充官方的行为:据官方公告,近期Gate.io收到多名用户反馈,有不法分子假冒Gate.io官方工作人员,通过电话、邮箱、QQ等形式诱导用户实施。Gate.io特此提醒广大用户:Gate.io官方及工作人员不会以任何形式向用户索要账号密码、短信验证码、邮箱号码等信息,请所有用户提高警惕,谨防上当受。遇到类似问题,用户可通过官方验证通道确认网址是否为官方链接,或与官网在线客服进行联系核实。[2021/6/7 23:17:46]
2、使用Bytom2.0全节点在本地创建一份注册合约
3、构建特殊register-contract交易,将合约、gas费用、输入输出填写完成
SumSwap郑重提示:市场发现假冒SumSwap项目网站,请用户务必认准官方指定网址:SumSwap官方消息,经社区反馈并被官方证实:当前市场上出现不法分子假冒SumSwap平台网站,并用其诱导用户。为了防止广大SumSwap用户受,请用户务必认准官方指定网址。
?SumSwap指定官网见原文链接;DAPP应用网址:app.sumswap.org (仅限在主流去中心化钱包,或安装Metamask插件的浏览器打开);SumSwap平台通证SUM唯一合约地址:0x043c308bb8a5ae96d0093444be7f56459f1340b1。[2021/4/11 20:07:55]
4、签名交易并提交
5、客户端将该交易广播到全网
6、共识节点获得该交易,对格式进行校验,对输入输出进行校验,并检查gas费用是否足够,如果校验无误,则放入交易池中
7、共识节点从交易池中获取交易并打包入块
8、注册合约注册成功
四、注册合约案例
下面我们将通过流程模拟实现注册合约的案例:
1.钱包搭建
用户需要首先搭建Bytom2.0全节点并创建钱包,具体可查看搭建教程文档:https://developer.bytom.io/guide/01_set_up_full_node.html
2.合约编写
使用Bytom2.0合约语言编写一个合约,以下仅为示例展示:
将合约编译成字节码
实例化合约参数的字节码
3.在本地创建合约
使用全节点的create-contract即可在本地创建合约
4.注册合约上链
使用基本的交易上链流程,build-sign-submit即可
构建注册合约的交易结构,其中type为"register_contract",同时将本地创建的合约id带入contract中
5.签名交易
6.提交交易
至此,只要该交易打包上链,注册合约完成。
五、小结
总的来讲,注册合约是Bytom2.0合约的创新,它以的特点,方便合约代码的复用,同时公开透明防篡改,也有效节约了链上存储。
之后,我们还会进一步介绍如何将已注册的合约进行交互调用,敬请期待相关文章。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。