长安链ChainMaker v2.0.0版本重磅发布!

长安链ChainMaker v2.0.0版本已经正式发布!

本次大版本升级中,我们对长安链的区块、数据结构以及部分模块代码都进行了重构,并将部分模块拆分为独立项目,另外新增了一个新功能。详细讲解v2.0.0版本以前我们对v1.x版本的工作做一个回顾。

v1.x版本的工作回顾

长安链ChainMaker自v1.0.0版本发布以来经过6个版本的迭代,截止v1.2.4版本中已经支持:

  • 四种合约引擎:支持GASM、WASMER、WXVM、EVM四种合约引擎;

  • 四种合约语言:支持Golang、Rust、C++、Solidity四种合约语言;

  • 五种共识算法:支持Solo、RAFT、TBFT、HotStuff、dPoS;

  • 三种存储引擎:支持LevelDB、RocksDB、MySQL。

在v1.2.x版本中长安链ChainMaker支持go、java、nodejs的链sdk,支持spv轻节点和跨链;支持合约内执行sql语句,合约支持基于paillier的半同态运算和bulletproofs的范围证明;支持区块链浏览器、CMC命令行工具、CA服务管理、chainmaker-cryptogen证书生成工具等。

至此长安链ChainMaker v1.2.x版本作为区块链底层技术平台,已经在政务、金融、能源及食品溯源等行业得到应用,成为数字经济、数字社会和数字政府建设的基础底座。长安链ChainMaker v1.2.x版本也将作为我们的长期稳定版本进行定期升级维护。

v2.x版本的开启

在最新发布的长安链 v2.x版本中,我们将着重在长安链的易用性、稳定性、安全性三方面做更多工作。除丰富产品工具集以外,长安链特有的可装配性将进一步体现出来。

此次更新的 v2.0.0版本中侧重对数据模型、代码结构的调整,我们进行了如下升级:

1.    对区块、交易等数据结构进行了重构(章节见:v2.0.0技术文档>技术设计文档>3.数据结构)

本次升级对数据模型主要做了以下三方面的调整:

  1. 数据类型更准确,更易扩展。比如区块高度字段,在实际中从创世区块(Genesis)高度为0开始递增,不可能为负数,所以将数据类型从int64调整为uint64。再比如合约参数KeyValuePair,之前Value为string类型,传入二进制数据时需要进行hex或base64编码及解码操作,使得交易变大且合约逻辑变复杂,所以本次升级将其改为bytes类型。

  2. 交易数据模型重构。在v1.x版本中,交易请求内容分为多种并使用TxType区分,每种交易请求使用不同的数据结构,并序列化后放入交易的Payload字段。在v2.x中,将合约安装、用户合约调用、系统合约调用、链配置更改、查询链数据、订阅消息等等各种行为都统一为合约调用,只是被调用的合约名、方法名和参数不同,因此可以用统一的Payload并简化TxType。一方面统一了用户行为,另一方面减少了序列化、反序列化的次数。

  3. 为多个数据模型增加了新字段,以适应新的需求的扩展。以交易的Payload对象为例,在原有基础上增加了Limit和Sequence字段,BlockHeader增加了BlockType,SerializedMember增加了MemberType字段等,这些字段都为v2.x中可装配性提供了扩展能力。

2.    身份权限、系统合约等模块代码重构

在不影响原有功能的前提下,对身份权限、系统合约等模块的代码进行重构,提升代码质量。其中,身份权限模块一方面调整整体接口框架,为之后增加公钥身份、DID身份提供扩展能力;另一方面将原有整体流程中分步鉴权的代码进行收拢,进一步理清鉴权逻辑,并支持根据系统合约的合约名加方法名进行更细粒度权限控制。系统合约模块,一方面根据合约内容对系统合约进行归类,使整体结构更加清晰;另一方面,将合约管理逻辑从原来的合约模块移入系统合约中,与系统合约定位相符。

3.    拆分部分模块为独立项目,并启用go mod代替原有的git submodule

本次升级中将common、pb、pb-go、protocol、sdk-go作为chainmaker-go的依赖包,以go mod的形式引入,代替原有的git submodule模式。Go mod模式是go语言官方推荐的包管理模式,长安链各组件以go mod包的形式被引入,可以更好的做到依赖包的版本管理,从而方便长安链在可装配性和自定义模块的扩展能力。

4.    增加外部证书兼容(章节见:v2.0.0技术文档>技术设计文档>9.身份权限管理>9.3权限管理>9.3.4外部证书兼容)

长安链v1.x版本中,若采用数字证书作为用户标识,需要在证书O和OU字段中,附加组织和角色等信息,无法复用参与方原有的数字证书。因此在v2.0.0中,增加了对外部证书的兼容支持,用户可将已有的第三方CA颁发的数字证书作为区块链节点或用户的签名证书,从而支持更灵活易用的证书体系。

以上详情可查看v2.0.0技术文档:https://docs.chainmaker.org.cn/index.html

同时,docker go 智能合约引擎功能已在v2.0.0_dockervm_alpha分支已经开放试用,欢迎大家提出宝贵意见。

在新版本中有任何问题,都可以私信长安链开源社区小助手或在长安链开源社区技术交流群内反馈。9月8日(下周三)我们将邀请两位长安链架构师在社群内进行长安链v2.x版本的解读,敬请期待。

添加小助手进群交流

Tips

更多长安链开源项目QA,可登录开源社区、技术文档库查看。

下载源码

https://git.chainmaker.org.cn/chainmaker/chainmaker-go

查阅文档

https://docs.chainmaker.org.cn/

更多社区权益申请

https://wj.qq.com/s2/8620064/7abd

 “长安链ChainMaker”是国内首个自主可控区块链软硬件技术体系,由微芯研究院联合头部企业和高校共同研发,具有全自主、高性能、强隐私、广协作的突出特点。长安链面向大规模节点组网、高交易处理性能、强数据安全隐私等下一代区块链技术需求,融合区块链专用加速芯片硬件和可装配底层软件平台,为构建高性能、高可信、高安全的数字基础设施提供新的解决方案,为长安链生态联盟提供强有力的区块链技术支撑。取名“长安链”,喻意“长治久安、再创辉煌、链接世界”。

猜你喜欢

转载自blog.csdn.net/weixin_55760491/article/details/120159439