我们很高兴与大家分享 Gear 的最新进展,现在网络功能完整! 我们已经迈过这个巨大的里程碑,接下来我们将把重点转向代码优化,并为测试网的全面发布做准备。这一阶段将涉及内部审查和第三方审计,用以提高安全性和性能。
2 月份,我们在开发过程中有几项重要的更新,我们特意在这里与大家分享。
本月的主要更新是 gstd crate,更新后的 gstd crate 允许从程序中发送消息,而无需明确设置 gas 限制。换句话说,当使用 msg::send(), msg::reply()
和相关函数时,我们不需要设置处理这些消息所需的 gas 限制。Gas 将自动从父消息中借用。注意,这是一个突破性的改变,因为当前函数的签名已经改变。新函数 msg::send_with_gas(), msg::send_commit_with_gas() 和msg::send_bytes_with_gas()
被引入,用于在需要时发送有明确 gas 限制的消息。想了解更多细节,请查阅 gstd::msg 文档。
我们为程序实施发布了补丁 1 和补丁 3。现在,一个程序不仅可以由用户提交,也可以由其他程序提交。首先,用户必须通过调用外部的 submit_code 来存储代码,并接收代码 id。然后,程序可以通过提供代码 id、salt 和 init 消息来使用 prog::create_program_with_gas()
函数在链上创建一个新的程序实例。这个函数返回新创建程序的 id。开发者可以通过更改 salt 参数来创建多个程序实例。
我们重新设计了用于计算 gas 费的 RPC 调用。现在不仅可以计算出处理一个消息所需的 gas 量,而且还可以计算出初始化一个程序和处理应答所需的 gas 量。现在,该节点接受三个 RPC 调用:
- gear_getInitGasSpent 用于计算提交和初始化一个新程序时的 gas 量;
- gear_getHandleGasSpent 用于获取处理一条消息的 gas 量;
- gear_getReplyGasSpent 用于计算回复用户邮箱中的信息所需的 gas 量。
另一个更新是回滚状态机制。在这种情况下,成功的执行是指在程序结束前或通过调用没有陷阱的 wait 来完成的执行。即使出现陷阱,也不会有任何变化影响链:没有内存(状态)变化,没有传出消息,只提供系统错误回复。另外,我们增加了一个特殊的系统调用 leave,以引起一些 panic(人工陷阱)退出执行,但保存状态和传出消息。
另一个新的系统调用 exit 也已经实现。它预先停止了一个程序的执行,并将该程序从存储器中删除。现在所有可用的程序余额被转移到 exit 参数指定的地址。另外,从现在开始,程序中的价值管理允许从链上管理账户余额。直接发送的最小值取决于节点的 ExistentialDeposit。
我们规范化了缺失函数入口的情况。换句话说,如果某些函数入口点(init、handle 或 handle_reply)未被提供,则意味着这个函数是空的。
我们添加了一个 gear-wasm-builder crate。gear-wasm-builder 是一个用于构建脚本(又称 build.rs)的辅助工具箱。它有助于构建智能合约并获得 WASM 二进制文件(.wasm)以及只需在 build.rs 脚本中添加一行代码便可以生成优化(.opt.wasm)和元数据(.meta.wasm)输出。此外,它还可以使用更直接的命令来启动构建(仅仅是 cargo 构建,不需要任何附加参数),并保证在测试( cargo 测试)之前创建合约。
另一个重要的技术更新是,现在我们可以通过唤醒逻辑保存消息上下文。之前我们无法通过 wait-wake 存储 msg::send_push 和 msg::reply_push 传递的不完整的有效载荷,因为我们没有存储具体消息执行的上下文,现在我们不仅具备这种能力,还解决了程序发送多个回复时的 bug。
本月,我们社区举办了两场在线 Workshop,一场面向中文用户,与 Forge合作的另一场则面向英文用户。后续,我们将与 Forge 共同举办 Workshop 的第二部分。这场 Workshop 非常具有实践性,所有参与者将学会在 Gear 上部署他们的第一个智能合约。
继我们在世界各地举行一系列教育 Workshop 之后,我们很开心与@escomunidad合作,在墨西哥举办了首场 Workshop!另外,在 2 月份,我们在比特币大使馆酒吧组织了我们在墨西哥的第一次聚会。
在此,我们向各位参与者表示衷心的感谢!我们将在未来举办更多具有互动性和沉浸式的 Workshop 和 Meetup,请持续关注我们,获取最新资讯!
同时,我们真诚感谢社区成员制作的视频和文章,欢迎关注我们的 Twitter,查看相关信息。
此致,
Gear 团队
关于 GearFans
Gear 是波卡生态的计算组件,GearFans 是 Gear 爱好者社区。
- 官网:https://gear-tech.io/
- Twitter:https://twitter.com/gear_techs
- GitHub:https://github.com/gear-tech
- Discord:https://discord.com/invite/7BQznC9uD9
- Medium:https://medium.com/@gear_techs
- Telegram 群:https://t.me/gear_tech
- Telegram 中文群:https://t.me/Gear_CN
- Telegram 中文开发群:https://t.me/gear_dev_cn
- QQ 群:677703337