# Sapphire推出、钱包优化、多维度更新 | Oasis 第三季度工程技术回顾

By [Oasis 中文频道](https://paragraph.com/@oasis-2) · 2022-11-04

---

![](https://storage.googleapis.com/papyrus_images/1558c4dc350b9d49e3b375a6f300c8013a9619ac4d56fe4f99c16478e4f2bed8.png)

欢迎来到Oasis团队2022年第三季度的工程技术进展总结，让我们一起通过本篇文章了解Oasis团队在第三季度取得的最新成就！

对于Oasis工程技术团队来说，第三季度又是异常忙碌的几个月。

7月底，Sapphire在测试网上发布，为了将Sapphire引入ParaTime层，我们做了许多努力，也取得了巨大进步，现在我们很高兴的向社区宣布：开发者已经可以在测试网上的Sapphire ParaTime上构建和部署与EVM兼容的隐私智能合约了。

与此同时，我们对Cipher和Emerald的关注也丝毫没有减弱，这些ParaTime并没有停止运作，并且我们对其进行不断更新，以满足用户的更多需求！

另外，我们在支持钱包浏览器上的本地存储以及ParaTime交易方面也进行了一些重大升级，这些升级将进一步推动Oasis 钱包浏览器拓展程序端2.0版本的推出！它将是基于通用代码库构建的！

最后，整个第三季度Oasis Core（Core是为Oasis节点提供动力的底层引擎）也在持续更新与改进，目前三个维护版本也已经完成！

在第三季度硕果累累的丰收喜悦中，我们也开始规划第四季度的工作，我们相信Oasis在2022年第四季度也将取得重大进展，有更多更新！最值得关注的是，我们将在第四季度在主网上发布Sapphire！

一起继续往下阅读，了解更多Oasis在第三季度取得的成就！

**钱包更新**
--------

![](https://storage.googleapis.com/papyrus_images/a63f8b6a3f3e6af591ea0a90ff402b7a68d9dc9702a3bc9a48b69aa4e310ebe9.png)

[Oasis网页端钱包](https://wallet.oasisprotocol.org/)在第三季度取得了重大进展，现在已支持浏览器上的本地存储和ParaTime交易，另外我们计划在今年晚些时候发布对ParaTimes的支持，并推出基于通用代码库构建的拓展程序端钱包2.0版本。

在第二季度，我们合并了112个请求， 值得一提的优化内容如下（主要为功能的完善和修复）：

● 显示 ParaTime 交易列表 ( [#849](https://github.com/oasisprotocol/oasis-wallet-web/pull/849) )

● 浏览器扩展修复 ( [#904](https://github.com/oasisprotocol/oasis-wallet-web/pull/904) )

● 添加 lint 规则以强制执行我们的类型安全替换（[#911](https://github.com/oasisprotocol/oasis-wallet-web/pull/911)，[#914](https://github.com/oasisprotocol/oasis-wallet-web/pull/914)）

● 默认为空余额而不是 0（显示「 — 」表示未知余额）（[#916](https://github.com/oasisprotocol/oasis-wallet-web/pull/916)）

● 仅在您的账户上显示：AddEscrowForm( [#918](https://github.com/oasisprotocol/oasis-wallet-web/pull/918) )

● 标记失败的交易（[#925](https://github.com/oasisprotocol/oasis-wallet-web/pull/925)）

● 不要使用 RPC 中的误导性余额字段（[#927](https://github.com/oasisprotocol/oasis-wallet-web/pull/927)）

● 添加「回收所有」按钮（[#931](https://github.com/oasisprotocol/oasis-wallet-web/pull/931)，[#932](https://github.com/oasisprotocol/oasis-wallet-web/pull/932)）

● 优化钱包UI界面（[#933](https://github.com/oasisprotocol/oasis-wallet-web/pull/933)、[#935](https://github.com/oasisprotocol/oasis-wallet-web/pull/935)、[#936](https://github.com/oasisprotocol/oasis-wallet-web/pull/936)、[#937](https://github.com/oasisprotocol/oasis-wallet-web/pull/937)）

● 使用 BigNumber.js提高数值精度（[#952](https://github.com/oasisprotocol/oasis-wallet-web/pull/952)）

● ParaTime 存款和取款（[#962](https://github.com/oasisprotocol/oasis-wallet-web/pull/962)，[#969](https://github.com/oasisprotocol/oasis-wallet-web/pull/969)）

● 在解除质押列表中显示预计解除质押时间 ( [#963](https://github.com/oasisprotocol/oasis-wallet-web/pull/963) )

● 将加载网络配置的速度提高 40% ( [#976](https://github.com/oasisprotocol/oasis-wallet-web/pull/976) )

● 修复从 Ledger 导入多个账户 ( [#980](https://github.com/oasisprotocol/oasis-wallet-web/pull/980) )

● 添加对从助记符派生多个账户的支持（[#983](https://github.com/oasisprotocol/oasis-wallet-web/pull/983)）

● 在账户摘要中提及正确的股票代码 ( [#1026](https://github.com/oasisprotocol/oasis-wallet-web/pull/1026) )

● 通过一致的grommet imports减少包大小（7.2MB -> 5.4MB）（[#1038](https://github.com/oasisprotocol/oasis-wallet-web/pull/1038)）

● 较小的 UI 修复和清理（[#868](https://github.com/oasisprotocol/oasis-wallet-web/pull/868)、[#879](https://github.com/oasisprotocol/oasis-wallet-web/pull/879)、[#903](https://github.com/oasisprotocol/oasis-wallet-web/pull/903)、[#919](https://github.com/oasisprotocol/oasis-wallet-web/pull/919)、[#921](https://github.com/oasisprotocol/oasis-wallet-web/pull/921)、[#922](https://github.com/oasisprotocol/oasis-wallet-web/pull/922)、[#928](https://github.com/oasisprotocol/oasis-wallet-web/pull/928)、[#946](https://github.com/oasisprotocol/oasis-wallet-web/pull/946)、[#947](https://github.com/oasisprotocol/oasis-wallet-web/pull/946)、[#949](https://github.com/oasisprotocol/oasis-wallet-web/pull/949)、[#953](https://github.com/oasisprotocol/oasis-wallet-web/pull/953)、[#958](https://github.com/oasisprotocol/oasis-wallet-web/pull/958)、[#999](https://github.com/oasisprotocol/oasis-wallet-web/pull/999)、[#979](https://github.com/oasisprotocol/oasis-wallet-web/pull/979)、[#1019](https://github.com/oasisprotocol/oasis-wallet-web/pull/1019) , [#1049](https://github.com/oasisprotocol/oasis-wallet-web/pull/1049) )

虽然Oasis网页端钱包很快就会成为两个钱包的通用代码库，但是我们对拓展程序端的关于与也没有因此而止步，在三季度我们合并了9个需求，并发布了拓展程序端钱包的1.8.0版本，显著的变化有：

● 在测试网上添加Sapphire（[#279](https://github.com/oasisprotocol/oasis-wallet-ext/pull/279)）

● 提高收回托管中的数值精度（[#281](https://github.com/oasisprotocol/oasis-wallet-ext/pull/281)）

● 轮询Sapphire交易状态（交易现在被索引）（[#285](https://github.com/oasisprotocol/oasis-wallet-ext/pull/281)）

● 修复「无效随机数」错误（[#282](https://github.com/oasisprotocol/oasis-wallet-ext/pull/282)）

● 较小的 UI 修复和清理（[#280](https://github.com/oasisprotocol/oasis-wallet-ext/pull/280)、[#282](https://github.com/oasisprotocol/oasis-wallet-ext/pull/282)、[#286](https://github.com/oasisprotocol/oasis-wallet-ext/pull/286)）

作为一个用于管理你在 Oasis上账户和智能合约的统一CLI，Oasis CLI也有了一些改进：

● 添加对转储已部署 WASM 合约的支持 ( [#1007](https://github.com/oasisprotocol/oasis-sdk/pull/1007) )

● 添加合约状态转储支持 ( [#1034](https://github.com/oasisprotocol/oasis-sdk/pull/1034) )

● 按账户名查找地址，添加对测试账户的支持（[#1038](https://github.com/oasisprotocol/oasis-sdk/pull/1038)）

● 支持更改合约升级政策 ( [#1052](https://github.com/oasisprotocol/oasis-sdk/pull/1052/files) )

● 添加对地址簿的支持（[#1087](https://github.com/oasisprotocol/oasis-sdk/pull/1087)）

为了使用 Ledger 等硬件钱包签署 ParaTime 交易，我们已经提出了新的ADR 14规范。该规范将于四季度实施！

**ParaTime更新**
--------------

● 整个第三季度，Emerald 和 Cipher ParaTimes 在主网上保持稳定，没有出现停机或其他事件。

● 熊市对 DeFi 使用的影响可以从 Emerald 的交易量中看出。第三季度的日峰值出现在 7 月初，每天大约 6 万笔交易，而后开始稳步下降，截至三季度末，每天的交易量为 1.6 万-1.8 万。

● 截至 9 月 30 日， 52 个节点在主网上运行 Emerald ParaTime。

● 截至 9 月 30 日，已有 29 个节点在主网上运行 Cipher ParaTime。

**ParaTime发展**
--------------

第三季度，Oasis ParaTimes 取得了多项重大进展。

7 月底，我们在测试网上成功部署了与EVM兼容的首个隐私ParaTime Sapphire，该部分代码可在sapphire-paratime和oasis-sdk GitHub存储库中找到。

为方便起见，我们添加了对Cipher ParaTime上转储部署的智能合约代码以及转储（可选加密）智能合约状态的支持。这为验证链上的合约铺平了道路。

Runtime SDK的更新总结如下：

● 为 web-ts 添加加密传输库；用于 go、rust 和 typescript 的 derived\_symmetric\_key 测试（[#962](https://github.com/oasisprotocol/oasis-sdk/pull/962)）

● ORC 工具：添加对 SGXS 二进制文件签名的支持 ( [#1056](https://github.com/oasisprotocol/oasis-sdk/pull/1056) )

● EVM：不需要加密空字符串（[#1064](https://github.com/oasisprotocol/oasis-sdk/pull/1064)）

● Gas 计算修复：修复子调用调度（[#1066](https://github.com/oasisprotocol/oasis-sdk/pull/1066)）

● EVM：在签名查询中公开公共数据 ( [#1069](https://github.com/oasisprotocol/oasis-sdk/pull/1066) )

● EVM：添加加密预编译（[#1102](https://github.com/oasisprotocol/oasis-sdk/pull/1102)）

● EVM：不编码合约创建输出（[#1138](https://github.com/oasisprotocol/oasis-sdk/pull/1138)）

● 改进的测试和文档（[#991](https://github.com/oasisprotocol/oasis-sdk/pull/991)、[#1041](https://github.com/oasisprotocol/oasis-sdk/pull/1041)、[#1046](https://github.com/oasisprotocol/oasis-sdk/pull/1046)、[#1047](https://github.com/oasisprotocol/oasis-sdk/pull/1047)、[#1081](https://github.com/oasisprotocol/oasis-sdk/pull/1081)、[#1101](https://github.com/oasisprotocol/oasis-sdk/pull/1101)）

**开发者平台更新**
-----------

现在开发者已经可以在测试网上的Sapphire ParaTime中构建和部署与EVM兼容的隐私智能合约了，你可以点击下方链接查看教程！

[https://docs.oasis.io/dapp/sapphire/](https://docs.oasis.io/dapp/sapphire/)

Emerald Web3 网关现在支持 Emerald 和 Sapphire ParaTimes。其他修复主要包括版本的更新及功能的完善。在第三季度，我们合并了 9 个请求。版本v3.0.0修复了Gas估算功能，版本v3.1.0-rc1增加了对 Sapphire 的支持。

我们的文档由来自多个存储库的markdown文件组成，并且在第三季度从后端和前端方面进行了重大改革。前端类别文档现在更关注用户观看体验，可读性更强！

前端改进：
-----

● Oasis网络用户（关于 Oasis 网络和基金会的一般信息，钱包相关指南）

● 社区相关信息

● 节点运营商（Mainnet和Testnet网络参数，设置各种节点和服务）

● dApp 开发人员（为Sapphire、Emerald和Cipher ParaTimes编写应用程序）

● ParaTime 开发人员

● Core贡献者

后端改进：
-----

● 无论原始存储库位置如何，都支持编辑任何 Markdown 文件

● 无缝链接引用的 .md 文件和来自其他存储库的.doc文件

● 支持从文件中导入代码片段

● 为了向后兼容，已为所有以前的文档设置了重定向

此外文档已从[docs.oasis.dev](https://docs.oasis.dev/)迁移到[docs.oasis.io](https://docs.oasis.io/)域。我们希望你会喜欢新的变化。你也可以留下你的需求，我们会第一时间处理，当然我们也欢迎广大用户贡献Oasis相关的教程与指南！

你可以点击下方链接留言你的需求。

[访问https://github.com/oasisprotocol/docs](https://github.com/oasisprotocol/docs)

**Core平台更新**
------------

第三季度发布了Oasis Core 22.1.x 的三个维护版本（ [v22.1.9](https://github.com/oasisprotocol/oasis-core/releases/tag/v22.1.9)、[v22.1.10](https://github.com/oasisprotocol/oasis-core/releases/tag/v22.1.10)、[v22.1.11](https://github.com/oasisprotocol/oasis-core/releases/tag/v22.1.11)）。与此同时，Oasis Core 22.2.x 的开发始于英特尔 SGX2、基于 DCAP 的证明、改进链上治理和基于 TEE 的运行时安全性等关键特性。计划在第四季度初发布稳定版本。总体而言，第三季度合并了64 个请求。值得注意的新功能和重大更改如下（大部分计划在 Oasis Core 22.2.x 中登陆，有些被向后移植到 22.1.x）：

● go/staking/grpc：重命名错误命名的 GovernanceDeposits 方法（[#4652](https://github.com/oasisprotocol/oasis-core/issues/4652)）

● go/runtime：强制使用运行时调度控制（[#4665](https://github.com/oasisprotocol/oasis-core/issues/4665)）

● 添加对 PCS 证明的支持（[#4806](https://github.com/oasisprotocol/oasis-core/issues/4806)、[#4789](https://github.com/oasisprotocol/oasis-core/issues/4789)、[#4720](https://github.com/oasisprotocol/oasis-core/issues/4720)、[#4752](https://github.com/oasisprotocol/oasis-core/issues/4752)）

● go/governance：添加更改参数提案（[#4938](https://github.com/oasisprotocol/oasis-core/issues/4938)）

● 添加存档模式支持（[#4539](https://github.com/oasisprotocol/oasis-core/issues/4539)）

● go/control：在控制输出中显示调试选项状态（[#4634](https://github.com/oasisprotocol/oasis-core/issues/4634)）

● runtime：使持久交易检查状态可配置（[#4640](https://github.com/oasisprotocol/oasis-core/issues/4640)）

● go/runtime/txpool：限制每个发件人的未完成交易（[#4665](https://github.com/oasisprotocol/oasis-core/issues/4665)）

● go/control/status: 添加字段以快速查看节点状态 ( [#4669](https://github.com/oasisprotocol/oasis-core/issues/4669) )

● go/worker/storage：使检查点同步对等点选择更智能（[#4671](https://github.com/oasisprotocol/oasis-core/issues/4671)）

● runtime：使用共识验证器在调度程序中验证 epoch ( [#4677](https://github.com/oasisprotocol/oasis-core/issues/4677) )

● go/worker/compute：确保在注册之前验证信任根（[#4678](https://github.com/oasisprotocol/oasis-core/issues/4678)）

● go/worker/compute：为备份工作人员尽早开始批量解析（[#4679](https://github.com/oasisprotocol/oasis-core/issues/4679)）

● go/runtime/txpool：将 roothash 传入消息的数据添加为交易（[#4681](https://github.com/oasisprotocol/oasis-core/issues/4681)）

● go/worker/registration：添加节点状态指标（[#4686](https://github.com/oasisprotocol/oasis-core/issues/4686)）

● runtime：启用调度程序来验证查询的状态完整性（[#4694](https://github.com/oasisprotocol/oasis-core/issues/4694)，[#4830](https://github.com/oasisprotocol/oasis-core/issues/4830)，[#4904](https://github.com/oasisprotocol/oasis-core/issues/4904)）

● go/worker/common/p2p：添加对持久和阻塞对等点的支持（[#4713](https://github.com/oasisprotocol/oasis-core/issues/4713)）

● go/worker/common：正确处理动态密钥管理器配置（[#4715](https://github.com/oasisprotocol/oasis-core/issues/4715)）

● go/runtime/txpool：为被拒绝的运行时交易添加 txpool 指标 ( [#4724](https://github.com/oasisprotocol/oasis-core/issues/4724) )

● runtime：在服务请求时验证 RAK 处于共识状态（[#4741](https://github.com/oasisprotocol/oasis-core/issues/4741)）

● runtime：添加对报告 EnclaveRPC 对等反馈的支持 ( [#4757](https://github.com/oasisprotocol/oasis-core/issues/4757) )

● 归档模式：如果使用归档模式，则禁用运行时 P2P ( [#4775](https://github.com/oasisprotocol/oasis-core/issues/4775) )

● go/consensus/tendermint: 添加consensus.tendermint.halt\_height ( [#4793](https://github.com/oasisprotocol/oasis-core/issues/4793) )

● net-runner: 添加-fixture.default.runtime.version 标志（[#4813](https://github.com/oasisprotocol/oasis-core/issues/4813)）

● go/oasis-node: 允许 km 拥有私有节点 ( [#4821](https://github.com/oasisprotocol/oasis-core/issues/4821) )

● go/runtime/registry：允许客户端节点运行 sgx 运行时（[#4832](https://github.com/oasisprotocol/oasis-core/issues/4832)）

● go/worker/keymanager: 添加关键管理器工作指标 ( [#4877](https://github.com/oasisprotocol/oasis-core/issues/4877) )

● go/control/status：将 key manager worker 状态添加到节点状态（[#4883](https://github.com/oasisprotocol/oasis-core/issues/4883)）

● keymanager：添加对临时密钥的支持（[#4888](https://github.com/oasisprotocol/oasis-core/issues/4888)）

● oasis-net-runner：设置默认 max\_allowances，增加测试账户余额（[#4902](https://github.com/oasisprotocol/oasis-core/issues/4902)）

● runtime/consensus/verifier：支持信任根共识层升级（[#4903](https://github.com/oasisprotocol/oasis-core/issues/4903)）

● runtime：支持共识交易查询（[#4904](https://github.com/oasisprotocol/oasis-core/issues/4904)）

● keymanager：验证密钥管理器请求中的最新信任根高度（[#4910](https://github.com/oasisprotocol/oasis-core/issues/4910)）

● registry：添加 ProveFreshness 共识层交易（[#4916](https://github.com/oasisprotocol/oasis-core/issues/4916)）

● runtime：添加客户端节点 TEE 新鲜度验证（[#4922](https://github.com/oasisprotocol/oasis-core/issues/4922)）

● keymanager：验证策略是否已在共识层中发布（[#4925](https://github.com/oasisprotocol/oasis-core/issues/4925)）

● 将 TEE 证明绑定到节点并强制执行新鲜度 ( [#4926](https://github.com/oasisprotocol/oasis-core/issues/4926) )

● go/genesis: 缓存计算的 genesis 文档哈希 ( [#4919](https://github.com/oasisprotocol/oasis-core/issues/4919) )

● go/oasis-node/cmd: unsafe-reset 默认保留本地存储 ( [#4700](https://github.com/oasisprotocol/oasis-core/issues/4700) )

● go/oasis-node/cmd: unsafe-reset 检查 datadir 有效性（[#4702](https://github.com/oasisprotocol/oasis-core/issues/4702)）

● runtime: 将运行时日志作为 oasis-node 日志发出 ( [#4709](https://github.com/oasisprotocol/oasis-core/issues/4709) , [#4924](https://github.com/oasisprotocol/oasis-core/issues/4924) )

新的Oasis Indexer支持索引共识层和 ParaTime 交易，已开源。在第三季度，重点主要是构建基本功能、添加缓存、修复错误和改进部署工具。25 个需求 已合并。我们计划在未来更新 Oasis 钱包以使用 Oasis Indexer。

ADR 15提出了一种随机化 Paratime 块提议者顺序的机制。解决选择 ParaTime 块提议者的过程中的弱点。区块提议者目前是通过循环算法选择的，这使得提前确定给定区块的提议者变得很简单。

ADR 16提出了一种更有效的流程来更新 Oasis 网络上的共识参数。目前要更改共识参数，需要更新 oasis-node 二进制文件，重新启动它们并与新的共识网络版本重新同步。ADR 16 添加了一个新的参数更改 提案，可以防止停机并提高网络的稳健性。

ADR 17为特定于 ParaTime 的应用程序互操作性标准引入了标准格式。 这与我们第一个请求 Sapphire ParaTime 的隐私可替代代币标准的 RFP 相一致。

---

*Originally published on [Oasis 中文频道](https://paragraph.com/@oasis-2/sapphire-oasis-2)*
