开源进展 | 微众银行区块链中间件平台WeBASE v1.3.1发布
作者:WeBASE
来源:微众银行区块链
WeBASE是一个体验友好、功能丰富的区块链中间件平台,通过一系列通用功能组件和实用工具,助力开发者快速搭建区块链应用的基础环境,提供可视化合约IDE和一站式联盟链管理台。
上一个版本,WeBASE对链上事件通知、私钥托管和交易上链等功能进行优化。结合社区开发者的反馈与底层FISCO BCOS的新增特性,我们在WeBASE v1.3.1中新增了动态群组管理、合约ABI导入、合约ABI解析、节点流量日志解析等功能;同时,控制台与节点前置的私钥也可以导入到WeBASE了。
目前,WeBASE v1.3.1已正式发布。本文带大家概括性地认识本次更新的关键特性,欢迎大家积极体验新版本,并将开发心得和建议反馈给我们。
动态群组管理
在过去的版本中,用户在各节点之间创建新群组时,需要到节点的部署机器上执行多个脚本与命令,才可以创建一个新的群组。用户能否更方便地对节点和群组进行运维和管理呢?WeBASE v1.3.1 给出了答案。
WeBASE v1.3.1 支持创建、启动、停止等动态群组管理功能,同时支持增、删、查、改等动态群组成员管理功能。
群组管理入口图示
群组管理页图示
小改变,大便利!如今,用户在WeBASE管理台中,为联盟链一个新区块链应用创建群组时,只需要像“拉聊天群”一样,在页面选中多个节(好)点(友),输入配(群)置(名)即可“拉群成功”。节点与群组图示
合约ABI导入
多机构共建联盟链应用时,经常会遇到这样的需求:区块链合约可能由某一个机构独立完成,而大家都需要调用此合约。
例如,机构A在自己的WeBASE中完成合约的编辑、编译、部署之后,机构B也需要调用这个合约,这个时候,机构B想要机构A提供合约原文,但是机构A又不想暴露具体的合约代码实现。
这个需求WeBASE v1.3.1安排上了!WeBASE v1.3.1加入合约ABI导入功能,这样一来,机构A就可以在不暴露合约代码实现的基础上,提供合约地址和合约ABI给机构B。机构B导入相应ABI和合约地址后,就可以像普通合约一样调用其方法了。
合约ABI导入图示
合约ABI编码器
智能合约的ABI(Application Binary Interface)实际上是智能合约的二进制接口标准,它定义了一个编码协议,不同语言都可以遵守这个协议编码合约交易。
随着社区的发展壮大,用户需求日渐多元。其中,我们发现不少用户想拥有自己熟悉语言的SDK。事实上,有些用户已经开始动手构建这样的SDK。但是开发过程中,用户反馈遇到了交易编码规则繁复、没有趁手ABI编码工具可以参照等困难。
WeBASE v1.3.1召唤了ABI编码器,让用户可以可视化地观察整个ABI编码过程。下面,我们导入一个 HelloWorld.sol合约的ABI,以此了解ABI编码器的各个功能。
合约ABI编码器图示
从上图的ABI窗口中可以看到 HelloWorld 合约的 set(uint256) 方法,下方则是解析之后得到ABI中包含了 set 这个方法,输入 set 方法的入参为 0x123 后,可以看到下方的输出窗口出现了 set 方法的签名 0x8311131 ,而入参则是补全到32位的十六进制的 123 。希望这个功能可以帮助到社区的这部分用户,也欢迎大家向社区贡献更好的方法。
私钥导入功能
随着FISCO BCOS开源社区的蓬勃发展,底层FISCO BCOS配套使用的工具越来越多,有FISCO BCOS console、WeBASE、Buildchain等等。这些工具的产生为应用构建带来极大便利,但同时也有用户反馈,这些平台中的私钥账号格式不一,账号不能兼容。
WeBASE v1.3.1提供多种私钥格式导入功能,让FISCO BCOS console和Buildchain等工具的私钥账号能够导入,方便跨平台的私钥管理和合约调用。同时,WeBASE v1.3.1也支持市面常用的私钥格式,兼容其他平台私钥。
私钥导入图示
新增交易通道
WeBASE v1.3.1新增交易通道,可通过WeBASE-Transaction的proxy分支搭建。WeBASE-Transaction用Web3sdk直连节点,支持平行扩展,支持WeBASE-Sign和区块链应用相关服务部署在同一区域,安全性大幅提升。
新增数据统计服务
WeBASE v1.3.1新增WeBASE-Stat(数据统计服务)。WeBASE-Stat通过WeBASE-Front采集CPU、内存、IO、群组大小、群组gas、群组网络流量的数据,记录在数据库。该服务供业务层在区块链运行过程中进行实时数据分析、健康度统计和监控,为运维管理提供数据支撑。
其他优化
-
优化: 支持根据encryptType自动切换国密与非国密的solcJ jar包进行合约编译 -
优化: 移除自动删除无效群组数据的逻辑,通过群组管理手动删除 -
bugfix: 链上事件通知中,订阅合约Event多个参数时订阅失败问题 -
bugfix: 修复节点前置web页面中节点监控的入参错误问题 -
bugfix: 修复公钥用户发交易时签名报空问题 - bugfix: 修复部署合约权限不足,导致合约地址为0x0的问题