2021收官特辑:Neo-CLI v3.1.0版本发布,测试框架开发取得进展|Neo技术发展版月报
月度亮点💡
2021年进入尾声,核心开发者团队进行了多次小规模的优化改进、修复了一些bug,并进一步提升了开发者友好度。随着越来越多的NFT项目进入N3生态系统,核心节点不仅对NEP-11标准达成了进一步支持,还发布了全新的跟踪模块。TokensTracker插件除了原本的NEP-17标准外,还能跟踪任何一种通证标准,并分别启用RPC方法。
十一、十二月,对专注于开发工具和基础设施的开发者社区来说,共同的关注点是测试框架的开发。AxLabs、Neo SPCC和NGD Enterprise各自发布了全新工具,以简化智能合约的自动化测试。
其中,AxLabs和Neo SPCC社区推出的新工具,主要面对的是Java和Go语言开发者,而NGD Enterprise所开发的新工具,则是专门为非C#开发者访问C#测试框架而设计的。如今,通过这些工具,N3开发者能够最大程度地获取他们所需的全部资源,让全新应用程序为生产使用做好充分准备。
协议开发💻
Neo核心
●Neo-CLI v3.1.0版本发布,增加了新的Witness Scope和NFT追踪模块
十一月,核心开发者团队和NGD都在为Neo-CLI v3.1.0版本的发布做准备。此次更新对Neo核心的许多部分做了优化和改进,为用户和开发者带来了新的功能。
新添加的witness scope,Rules,为交易中的签名使用提供了更高的控制度,也为用户在N3网络上的安全互动提供了额外的工具。Rules允许其他范围和条件被组合和嵌套,从而在较为复杂的合约调用链中进一步限制签名的使用。
此外,另一个新工具TokensTracker插件添加了对全新NEP-11调用的RPC支持,以获取特定账户的NFT余额、转账或者查询通证属性。该模块包含原始的NEP-17 Tracter和新实现的NFT追踪功能。
在系统内部,任务管理器的优化和新增的ECPoint cache有望进一步提高客户端的性能和同步速度。Neo-CLI v3.1.0版本也是第一个基于微软最新、最快的LTS版本——.NET 6.0的版本。
Neo-CLI v3.1.0版本于12月2日发布,于12月6日正式部署到测试网。经过两周的评估期,证明运行情况稳定后,N3主网于12月21日进行了升级。
●NeoFS的C#存储节点和公证服务正在进行测试
C#存储节点的实现草案已于近期提交,正在进行测试。此外,NGD还移植了Neo SPCC的公证服务。该服务是Neo P2P协议的扩展,有助于建立和转发多签名交易的过程,已经开始在NeoFS的内部运作中应用。
基础设施与工具开发🔧
COZ
COZ社区完善了Neon桌面端钱包中的WalletConnect实现,并发布了第一个Neon钱包移动端版本。
AxLabs
AxLabs社区为neow3j添加了一个新的多功能测试框架,能够轻松地编译、部署和调用任何数量的合约进行测试。
Neo SPCC
Neo SPCC社区在NeoGo节点上表现出了创纪录的高性能,并增加了一个新的合约测试框架。
NGD Enterprise
NGD Enterprise发布了Neo Test Runner,使非C#开发者和框架能够使用C#测试引擎进行单元测试。
Red4Sec
Red4Sec社区为各种生态计划和项目进行合约审计,包括NeoFS C#、Flamingo、Humswap和TOTHEMOON。
NEXT
NEXT社区增强了NeoLine钱包的NFT传输功能,并重新部署了NeoTube。
项目里程碑🏆
节点
●来自Neo SPCC社区的NeoGo
为了实现Neo-CLI v3.1.0版本的完全兼容,在十一、十二月中,Neo SPCC社区添加了新的 WitnessScope:Rules,增加了NEP-11追踪功能、被调用的合约追踪等。此外,该团队还在十一月进行了Oracle服务压力测试,并整理出了一份报告,为Neo理事会决议减少预言机费用提供参考。
十二月初发布的0.98.0版本与最新的Neo-CLI v3.1.0版本完全兼容。在最新一轮的优化中,新的实施方案在单节点测试中达到了创纪录的50,000 TPS。其他改进包括在公证子系统中支持多个Multisigs、各种编译器的优化、在util转换中支持base64脚本哈希值等等。
此外,该团队还对原生合约的测试进行了调整和重构,以利用随原生版本添加的新测试框架。新的测试框架使开发者可以很容易地用Go语言编写自己的自动化合约测试。
浏览器
●来自NEXT社区的N3 NeoTube
在过去的几个月里,N3版本的NeoTube进行了一些小的升级和错误修复——解决了一个导致页面跳转混乱的小错误,重新部署了网站,优化了加载速度,以提供更好的服务。
智能合约编译器
●来自COZ社区的Boa
COZ社区开发的Python编译器在十一月底更新到了0.10.1版本,增加了对Neo-CLI v3.1.0版本和Python 3.9版本的支持。新版本的编译器包含新的内置方法,用户创建类的属性,以及一些关键的缺陷缓解措施。
SDK
●来自COZ社区的Mamba
与Boa一样,在十一、十二月,COZ社区对Mamba进行了一些用户体验方面的改进。其中,值得一提的是Mamba用户可以通过新的RPC客户端界面,轻松地与Neo N3区块链节点进行对接。此外,团队成员还进行了一些与新工具相关的探索,比如自动SDK核算和NFT倡议。
dApp 架构
●来自AxLabs社区的neow3j
十一、十二月中,AxLabs社区对neow3j工具包进行了一系列的扩展。其中,最显著的改进是添加了一个新的多功能测试框架,能够轻松地编译、部署和调用任何数量的合约进行测试。
此外,neow3j 3.14版本还增添了用于脚本构建的新功能,增加了对Neo-CLI中NEP-11追踪模块的RPC支持,以及用于调整合约参数的反序列化器。开发包中增加了对多维数组和整数的键值存储的支持,以及提高结构、地图构建效率的两个新操作码。
●来自NGD Enterprise的Neo区块链工具包
十一、十二月,NGD Enterprise 的主要成就是发布了Neo Test Runner。在Neo区块链工具包已内置单元测试框架的基础上,Neo Test Runner是一种机制,使非C#开发者能够轻松地运用与C#测试框架相同的测试引擎进行单元测试。此外,其他的工具包组件也进行了更新,与Neo-CLI v3.1.0版本保持兼容。
钱包
●来自COZ社区的Neon
COZ社区针对Neon钱包的桌面端和移动端进行了大量的开发工作。十一月,兼容BIP39的移动端钱包的第一个公开版本发布了,同时支持Neo Legacy和Neo N3。此外,Neon桌面端钱包中的WalletConnect实现也得到了完善。
十二月,Neon桌面端钱包实现了对multi-invoke和自定义签名范围的支持。这使得Neon桌面端能够与Neo N3上的dApp进行普遍整合。与此同时,Neon移动端钱包的WalletConnect支持也取得了一定进展。
●来自NEXT社区的NeoLine
NEXT社区为NeoLine移动端钱包添加了一个申领GAS的按钮,还实现了移动端钱包对NEP-5资产跨链的支持。此外,NeoLine移动端和网页端钱包的N3 NFT的转账功能都得到了优化。
NeoFS
●来自Neo SPCC社区的NeoFS
十一月,Neo SPCC团队发布了多个NeoFS组件的新版本,包括修复了LOCODE数据库的节点 0.26.1版本;修复了容器名称注册的合约 0.12.1版本;对会话通证处理进行了改进的HTTP网关 0.17.0版本。
此外,Neo SPCC团队还进行了各种升级,包括为NeoFS后端添加Restic插件,改进连续复制方案,以及整合Send.NeoFS和NeoFS.CDN等。该团队还在S3网关中实现了多部分上传支持,并开始着手开发CDN专用app。
十二月,一个主要节点更新引入了响应状态代码和存储子网,S3网关版本也新增了多部分上传功能和CORS支持。团队还在CoreDNS中增加了一个增强的端点健康检查模块,并在存储引擎中进行了一些小的错误修复和优化。
代码审查
●来自Red4Sec社区的代码审查
十一、十二月,Red4Sec社区主要致力于核心协议和生态项目的代码审查工作。核心协议的代码审查方面,该团队研究了neo-devpack和neo-vm中的问题,并修复了可能对NeoFS的C#实现中的资金产生影响的关键性漏洞。
生态项目的代码审查方面,团队为Humswap、Flamingo和TOTHEMOON团队提供了代码审查服务,并发现和解决了后两者的智能合约中的重要问题。
特别举措🙋♂️