Dash Core Group很高兴地宣布Dash平台v0.15在Evonet发布。这是我们新规划流程后的第4次发布,总体来说是第5个版本,关注Dash开发的用户大概每6周就可以看到交付的新功能。因此,下一次的版本发布时间预计会在10月6日-10月20日期间。
发布亮点
同往常一样,由于此次发布中引入了重大的更改,Evonet的所有数据已经被清空。开发者应该对其本地配置进行调整与之对应。在下方列表你可以看到最重要的更新。你可以通过查看各平台组成部分的版本注释查询更加详细的更新说明,本文的最后一部分将包含这些内容。
文档二进制属性:在很多情况下开发者需要在其应用程序中存储二进制数据。此前,他们需要编码并将其存储为字符串,这就在平台状态中需要额外的空间且会增加状态转换的费用。现在,开发者可以通过在数据合约中指定’contentEncoding’关键词来直接定义这些二进制字段。这使开发者可以使用本地二进制类型 (例如Buffer, ByteArray)来存储其数据。
协议版本化:随着Dash平台的持续迭代更新,很有可能在协议层引入重大更改(例如硬分叉)。这会导致先前创建的数据与新版本之间,以及在同一网络中参与的客户端和节点的不同版本之间出现各种不兼容问题。此前,DCG需要通过清除Evonet的数据,强制开发者在每次新版本发布时更新他们的平台软件,从而解决不兼容问题。虽然这种方法在初期测试时很有效,但并不适用于测试网和主网。为了解决不同版本的数据、节点、客户端间的兼容协调工作,DCG引入了版本控制功能,在不影响用户体验的情况下顺利推出重大更新。
DPNS优化:在DCG将发布Dash平台名称服务(DPNS)改进协议的预期中,对DPNS数据合约进行了一些优化,其中包括身份的默认名称功能。使用新的‘dashUniqueIdentityId’记录类型,用户可以确保其身份只能解析一个域名,因此要指定一个主要的用户名用于(例如Dashpay钱包)UI。当需要别名时,用户仍然可以使用‘dashUniqueIdentityId’记录类型注册一个或多个域名。
JS钱包库重构:此前,Javascript钱包库(wallet lib)依赖早期Evolution原型留下的方法,最大程度使用的是getUTXO。这个方法对于引导Dash平台非常有效,但是它速度很慢,并且在网络上产生了DDoS攻击媒介。同时它也缺少一些隐私功能,如概率过滤器。我们此前不太赞成这种方法,所以在这次发布中,它被完全移除了。现在钱包库使用带有bloom过滤器的交易流,与现在Dash钱包的点对点类似,但是使用的是HTTP作为传输协议,而非直接在节点之间传输。所以,钱包库中的交易处理逻辑被极大程度的简化了。这是全面实现DAPI SPV协议的重要一步。
安装软件包优化:为了简化主节点的引导程序,我们对发行软件包进行了优化。最为显著的是以下三个特点:一、通过引入‘config’命令及移除‘.env’文件,管理环境配置的复杂性被大幅减小。这使配置管理更为轻松简单,例如获取和设置值,以及在不同环境间的切换。二、由于实施了可配置的区块矿工,简化了本地独立的节点测试和开发。三、通过将所有数据从安装目录移动到docker命名卷,现在初始设置将更为流畅。
DAPI端点的更改:为了在平台API方法之间进行更常规的命名,我们对DAPI进行了重要的更改。‘sendTransaction’和‘applyStateTransition’方法现在各自变更为‘broadcastTransaction’和‘broadcastStateTransition’。我们删除了交易过滤器流gRPC服务,以便对核心链相关的端点只使用Core服务。此外,我们也删除了不安全的‘getUTXO’和‘getAddressSummary’方法,从而减少了对平台进行潜在攻击的媒介。
总结
最后我想要感谢Dash社区在我们的测试网和主网版本发布前对改进Dash平台做出的努力。在各个社交媒体平台上的交流可以帮助DCG团队更好地进行准备工作以供实际落地应用。我个人对开发者社区中出现的用例创新感到非常的兴奋。平台团队投入了大量时间开发并发布此版本,因为我们始终致力于为Dash的持续成功和增长付出一致、可靠的进步。除此版本外,DCG还将在未来几周内发布与身份和Dash平台名称服务(DPNS)相关的改进协议。这些改进协议将取代DIP5(区块链用户),提供关于初始用户名设计所作更改的更多技术细节。