WeBASE(WeBank Blockchain Application Software Extension) 是在区块链应用和FISCO BCOS底层之间搭建的一套通用组件,围绕交易、合约、密钥管理、数据、可视化管理来设计各个模块,屏蔽了区块链底层的复杂度,从而极大降低研发门槛,提速区块链应用开发效率。

近期FISCO BCOS开源社区发布了FISCO BCOS v3.0稳定版,在架构、性能、易用性以及开放协议等方向进行全面升级,满足数字经济时代对区块链系统可承载更大规模、更多场景、更广泛参与的产业应用需求。为更好支持FISCO BCOS v3.0稳定版,WeBASE 团队协同FISCO BCOS开源社区,现正式发布WeBASE v3.0。

基于WeBASE lab-rc1、lab-rc2两个版本的打磨与沉淀,本次WeBASE v3.0实现了对FISCO BCOS v3.0稳定版多个新特性的支持,提供了FISCO BCOS v3.0稳定版相匹配的链上数据概览、合约IDE、交易管理、私钥管理、权限管理等运维管理功能,并提供最新的快速部署工具,方便用户快速上手FISCO BCOSv3.0稳定版。

通过WeBASE v3.0,用户可以使用更直观的区块链文件系统(Blockchain File System,简称BFS)管理链上资源,使用更细粒度的链上权限治理框架,也可以用最新的Solidity v0.8.11或微众区块链自研的智能合约语言Liquid(WeBankBlockchain-Liquid,简称WBC-Liquid)进行合约开发等。

让我们来看看WeBASE v3.0的功能吧!

新增可视化的区块链文件系统(BFS)功能

BFS是FISCO BCOS v3.0稳定版中新增的链上合约资源管理功能,即支持通过类似文件系统的操作来管理合约。BFS功能中支持的操作包括:pwd、cd、ls、mkdir、link等,其功能与操作系统中的文件系统类似。

有了BFS功能,管理合约资源和调用合约变得跟操作文件系统一样简单,以往我们通过合约地址来调用合约,现在我们可以通过BFS中的“路径”进行合约调用了。WeBASE v3.0会默认会展示当前路径及当前目录的文件列表,如下图所示:

图1:WeBASE中的BFS页面

以往的CNS(Contract Name Service合约寻址功能)现也已集成到BFS功能中,在WeBASE中使用CNS时,后台会自动使用BFS进行寻址,用户体验和以往的CNS保持一致。

例如,我们部署了一个HelloWorld合约,得到合约地址0x123。在CNS功能中使用注册操作后,合约地址以“合约名+版本号”格式的别名记录到链上,如0x123的合约在CNS中对应为”HelloWorld:1.0″。我们调用合约时,可以通过直接调用BFS路径或CNS的合约名+版本号进行调用,如下图所示:

图2:WeBASE中的CNS功能

支持Solidity 0.8.11与Liquid合约

FISCO BCOS v3.0稳定版和WeBASE v3.0中,合约IDE已支持国密与非国密下使用Solidity 0.8.11进行合约编译,用户使用时在合约IDE左上角选择0.8.11版本即可,如下图所示:

图3:选择IDE的Solidity版本

除Solidity0.8.11之外,FISCO BCOS v3.0稳定版也支持用Rust写合约,对应的语言为WBC-Liquid。WBC-Liquid是微众区块链开发的基于Rust的智能合约编程语言,借助Rust语言特性,能够实现比Solidity语言更强大的编程功能。

WeBASE v3.0支持用户在一键部署时指定链的合约类型为WBC-Liquid,同时,如果链的合约类型为WBC-Liquid,WeBASE合约IDE会自动切换为对应的WBC-Liquid合约编译器进行编译。WBC-Liquid合约编译、部署、调用等操作与Solidity合约操作相似,具体的配置和使用方法可以参考WeBASE一键部署文档及在WeBASE中配置Liquid的指南。

参考地址:

https://webasedoc.readthedocs.io/zh_CN/lab/docs/WeBASE-Front/liquid.html

图4:WeBASE 合约IDE中使用WBC-Liquid

更强大的权限管理功能

权限治理框架:多方投票治理区块链

FISCO BCOS v3.0稳定版内置权限治理框架,直接从区块链实现层提供有效的权限控制,开启权限治理功能后,对区块链的修改需进行多方投票的授权。基于该框架,区块链参与者们能够定制区块链上的治理策略并通过投票的方式不断迭代更新。

如下图所示,WeBASE v3.0在链维度和合约维度进行权限治理的基础上,新增支持了合约方法维度的权限治理,用户可以通过设置合约管理员,对合约中的各个方法设置调用策略和调用权限管理。

图5:合约方法权限治理

WeBASE v3.0的一键部署工具支持搭建FISCO BCOS v3.0稳定版的链时,启用或禁用权限治理功能。如用户启用权限管理,会在链的ca证书目录生成一个account目录,其中包含一个.pem私钥文件,该私钥为链的管理员,需要妥善保管该私钥文件。

在WeBASE中使用权限治理时,用户需要导入该私钥到WeBASE,基于该私钥进行各个权限的分配管理。用户将链管理员的私钥文件导入后,可以通过该管理员的私钥发起交易进行权限分配,如下图所示:

图6:导入管理员私钥到权限管理

支持不同加密类型的群组

FISCO BCOS v3.0稳定版的链支持多个群组使用不同的加密类型,如群组1为非国密ECDSA加密算法,群组2是国密加密算法。以往WeBASE连接链后所有群组仅支持单个类型加密算法,而WeBASE v3.0在切换群组时,会自动切换到群组对应的加密类型,并进行合约编译、交易签名、交易解析等,如在群组1中WeBASE的合约IDE可以使用非国密的Solidity进行合约编译,在群组2中合约IDE可以自动切换到国密的Solidity进行合约编译。

WeBASE期待与更多社区开发者一道,协力打造更完善的WeBASE,如一起开发更多新特性新功能,包括更丰富的链状态监控、交易gas消耗监控、应用管理适配FISCO BCOS v3.0,共建更多社区应用案例,提供丰富的Task任务供开发者参与等。

即刻使用

上述优化及功能所涉及的最新代码位于WeBASE代码仓库的【master-3.0】分支,相应技术文档位于【lab】版本中,现已同步更新,详情可参考下文链接。WeBASE v1.x版本(如WeBASE v1.5.4)代码位于master分支,会持续迭代已支持FISCO BCOS v2.0系列。如需咨询技术问题,欢迎本公众号对话框回复【小助手】进技术交流群。

WeBASE 代码仓库:

https://github.com/WeBankBlockchain/WeBASE/tree/master-3.0

WeBASE 代码仓库国内镜像:

https://gitee.com/WeBank/WeBASE/tree/master-3.0

WeBASE 技术文档:

https://webasedoc.readthedocs.io/zh_CN/lab

WeBASE 技术文档国内镜像:

https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/doc/lab/index.html

首次体验WeBASE,可参考一键部署文档:

https://webasedoc.readthedocs.io/zh_CN/lab/docs/WeBASE/install.html

向我们报告问题,欢迎提交issue:

https://github.com/WeBankBlockchain/WeBASE/issues