WEBASE整体架构
W
WEBASE各个模块
WEBASE-Front(节点前置服务)
- 源码地址:**WeBASE-Front**
- 包含模块:服务+前端
- 提供服务:
- 节点交互
- 私钥管理
- 合约部署管理
- 监控统计
WeBASE-Node-Manager(节点管理服务)
- 源码地址:https://github.com/WeBankBlockchain/WeBASE-Node-Manager
- 包含模块:服务+前端
- 提供的服务:
- 结合WeBase-Front对多节点进行管理(智能合约、统计、分析)
处理前端页面所有web请求,管理各个节点的状态,管理链上所有智能合约,对区块链的数据进行统计、分析,对异常交易的审计,私钥管理等。
WEBASE-SIGN(私钥托管服务)
- 源码地址:https://github.com/WeBankBlockchain/WeBASE-Sign
- 包含模块:服务
- 提供服务:
- 用户私钥匙的托管
WEBASE-CHAIN-MANAGER(多链管理服务)
- 源码:https://github.com/WeBankBlockchain/WeBASE-Chain-Manager
- 包含模块:服务+前端
- 提供服务:
- 多条链的管理(前置服务、群组、节点、合约)
WEBASE-STAT(数据统计服务)
- 源码:https://github.com/WeBankBlockchain/WeBASE-Stat
- 包含模块:服务
- 提供服务:
- 前置管理
- 群组管理
- 数据统计分析
基于WEBASE进行应用开发
区块链API服务
API服务的数据库设计
用户表
- id
- address
- networkId
- ip
- port
新增transaction表
- id(分布式ID)
- appId
- chainId
- 流水号
- groupId
- transactionId
- type(上链类型:1:hash上链 2:明文)
- fileUrl
app
- 删除groupId,传参
- privateSaveType:密钥存储方式
network_app_rel
- chainId
- chianName
network:
- weight
- chainId
- chianName
渲染流程
- 用户验证数据,点击交易hash地址跳转到浏览器携带appId、templateId
- 在用户点击deploy按钮调用web-node- manage接口时,会通过appId和templateId调用区块链API服务拿到渲染URL的地址,重定向到该地址。
- 三方应用异步请求区块链API服务获取数据,异步渲染。
接口文档
- 原来的接口参数
字段 | 说明 | 类型 | 备注 | 是否必填 |
---|---|---|---|---|
appId | 应用id | String | 是 | |
netId | 网络id | String | 不传为默认的网络节点 | 否 |
groupId | 分组id | String | 是 | |
data | 上链数据 | String | 是 | |
templetId | 模版Id | String | 该模版用于数据的渲染 | 是 |
publicAddress | 地址 | String | 地址 | 是 |
password | 密码 | String | keystory文件的管理密码 | 是 |
- 优化后的接口参数
字段 | 说明 | 参数位置 | 类型 | 备注 | 是否必填 |
---|---|---|---|---|---|
appId | 应用id | Header | String | 授权给三方的appId | 是 |
sign | 签名 | Header | String | 请求参数拼接后通过appSecret加密后的签名 | |
data | 上链数据 | body | String | 是 | |
publicAddress | 地址 | body | String | 地址 | 是 |
password | 密码 | body | String | keystory文件的管理密码 | 是 |
原来的网络以及群组配置到了数据库,方便后期与sass的扩展。
存在问题
- password问题
目前webase-sign服务中只存储了用户的私钥和公钥,password参数传递过来无法获取用户的私钥。
- 签名问题
上一次开会讨论,只通过webase-sign进行签名,不通过webase-sign获取私钥,但是在区块链API服务在跟节点进行交互时,必须要依赖fiscobcos的sdk,fiscbcos sdk调用相关接口私钥和公钥地址是必要参数。
- webase-sign安全问题
目前webase-sign接口的调用无任何的安全验证
- 公私钥问题
- DID公私钥导入,sass用户融合
- 多条链处理并发问题存在那些问题
- 区块链数据
待处理的工作
存证合约代码的优化
存证合约event事件的订阅通知研究和实现
存证starter的starter调整
- 支持多个用户灵活配置
区块链API服务的开发
- 数据库设计
- 开发
- 测试
web-node- manage解析逻辑的添加
- 调用区块链API服务获得重定向url