《区块链服务技术要求和测试方法》(报批稿)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
区块链服务平台技术要求和测试方法
区块链服务平台技术要求与测试方法
1 范围
本文件规定了区块链服务平台的技术要求与测试方法,包括系统参考框架、关键技术要求与测试方法。
本文件适用于区块链服务平台的设计研发、运营管理和测试验收。
2 规范性引用文件
下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。
其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
T/CCSA 391.1-2022 区块链第1部分:总体技术要求
T/CCSA 391.2-2022 区块链通用评测指标和测试方法
3 术语与定义
ITU-T X.1400、ISO 22739:2020中界定的以及下列术语和定义适用于本文件。
3.1
分布式账本 distributed ledger
在分布式节点间共享并使用共识机制实现具备最终一致性的账本。
注:区块链是分布式账本中的一类。
[来源:ITU-T F.751.0,定义3.2.14]
3.2
区块链 blockchain
一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、防篡改、防抵赖的技术体系。
注:典型的区块链是以块链结构实现数据存储的,以下行文,分布式账本系统和底层链使用区块链表述。
[来源:ITU-T F.751.0,定义3.2.2]
3.3
对等网络 peer-to-peer network
一种仅包含对控制和操作能力等效的节点的计算机网络。
[来源:GB/T 5271.18—2008,定义3.7]
3.4
共识协议 consensus agreement
分布式账本系统中各节点间为达成一致采用的计算方法。
[来源:JR/T 0184—2020, 定义 3.17]
3.5
智能合约 smart contract
一种旨在以信息化方式传播、验证或执行合同的计算机协议,其在分布式账本上体现为可自动执行的计算机程序。
[来源:JR/T 0184—2020,定义 3.20]
3.6
事务 transaction
工作过程的最小单元,是产生符合规则要求的结果所需的一个或多个动作序列,又称事务。
[来源:ITU-T F.751.0,定义3.2.19]
4 缩略语
下列缩略语适用于本文件。
BaaS:区块链即服务(Blockchain as a Service)
SDK:软件开发工具(Software Development Kit)
IP:网络协议地址(Internet Protocol Address)
5 参考框架
区块链服务平台框架架构图自底向上包括基础层、管理层和服务层三部分,区块链服务平台参考框架如图1所示。
图1 区块链服务平台参考框架
5.1 基础层
区块链层包含了区块链系统关键功能模块,包括共识算法、对等网络、智能合约、密码算法和数据存储,各模块功能应满足T/CCSA 391.1-2022中规定的技术要求以及如下要求:
a)共识算法确保了区块链节点在分布式环境下能够达成一致性;
b)对等网络为不同节点之间提供网络互通和数据传输能力;
c)智能合约为区块链提供了规范的编码要求和更灵活自由的功能实现;
d)密码学算法确保了用户匿名、数据安全与隐私保护的功能实现;
e)数据存储提供数据持久化存储能力。
5.2 管理层
管理层是区块链服务平台的核心层,提供了对底层区块链各模块的纳管功能,包括用户管理、节点管理、账本管理、合约管理和日志管理五个模块,要求如下:
a)用户管理模块实现了对平台中用户的管理,包括用户创建、身份管理、权限管理
和用户通知等功能;
b)节点管理模块实现了对平台中节点的管理,包括节点查询、节点资源配置、节点
监控和节点运维等功能;
c)账本管理模块实现了对平台中区块链账本的管理,包括账本创建、可插拔共识和
共识范围调整等功能;
d)合约管理模块应实现对平台中智能合约的管理,包括合约查看、合约部署、合约
版本管理和合约部署多方确认等功能;
e)日志管理模块实现了对平台中日志的管理,包括日志管理策略、平台日志管理和
用户日志管理等功能。
5.3 服务层
服务层为上层业务应用系统提供交互适配服务,包括区块链浏览器、多模式部署、SDK 接入和跨平台互通等模块,要求如下:
a)区块链浏览器提供了通过网页端管理底层区块链的途径;
b)多模式部署为区块链服务平台提供了多种部署方式;
c)SDK接入为开发人员提供了操作管理底层区块链的软件开发包;
d)跨平台互通应提供不同区块链服务平台进行交互的渠道。
6 技术要求
6.1 基础层
区块链服务平台基础层应具备区块链核心技术,包括共识算法、分布式存储、智能合约、密码学算法,具体要求如下:
a)共识算法:系统应具备全网共识一致的能力,宜支持绝对一致共识,应支持CFT容
错能力,宜支持BFT容错能力;
b)分布式存储:应支持数据持久化存储能力,应支持分布式存储,宜支持数据加密存
储、数据归档等数据安全存储、存储扩展能力,宜支持数据异常恢复能力;
c)智能合约:应支持智能合约,包括合约部署、升级、调用、吊销功能,宜支持基础
的合约模板;
d)密码算法:应支持非对称密码算法、杂凑算法,宜支持对称加密算法、零知识证明、
同态加密等密码算法。
6.2 管理层
区块链服务平台管理层应具备用户管理功能、节点管理功能、账本管理功能、合约管理功能和日志管理功能,各功能模块具体要求如下。
6.2.1 用户管理模块
6.2.1.1 用户创建
a)区块链服务平台应支持用户创建功能:
b)应支持平台管理员创建平台用户功能;
c)宜支持自助创建平台用户功能。
6.2.1.2 身份管理
a)区块链服务平台应支持身份管理功能:
b)应支持用户登录平台功能;
c)应支持平台用户查看身份信息功能;
d)应支持平台用户进行身份信息维护功能。
6.2.1.3 权限管理
a)区块链服务平台应支持权限管理功能:
b)应支持用户使用默认权限功能;
c)应支持用户权限申请与权限修改功能。
6.2.1.4 用户通知
a)区块链服务平台应支持用户通知功能:
b)应支持用户接受消息通知功能;
c)应支持平台自动通知用户功能,如邮件、站内信等方式;
d)宜支持平台自定义通知用户功能。
6.2.2 节点管理模块
6.2.2.1 节点查询
a)区块链服务平台应支持节点查询功能:
b)应支持节点在线情况查询功能;
c)应支持节点IP地址信息查询功能。
6.2.2.2 资源配置
a)区块链服务平台应支持资源配置功能:
b)应支持手动调整节点资源配置功能,包括计算资源、网络资源、存储资源;
c)宜支持自动触发节点资源配置调整功能;
d)宜支持自动调整节点资源配置功能。
6.2.2.3 节点监控
a)区块链服务平台应支持节点监控功能:
b)应支持对节点资源使用使用情况监控功能;
c)应支持对节点交易情况监控功能,如交易数量;
d)应支持对平台用户情况监控功能,如用户IP地址、用户名;
e)宜支持平台监控可视化功能。
6.2.2.4 节点运维
a)区块链服务平台应支持节点运维功能:
b)应支持对平台故障节点识别功能;
c)应支持故障节点报警功能,如通过短信、电话、邮件等方式;
d)宜支持故障节点自动恢复功能。
6.2.3 账本管理模块
6.2.3.1 账本创建
a)区块链服务平台应支持账本创建功能:
b)应支持创建区块链节点并组建区块链网络功能;
c)应支持区块链网络正常启动并发送交易功能。
6.2.3.2 可插拔共识
a)区块链服务平台宜支持可插拔共识功能:
b)应支持切换共识算法的功能;
6.2.3.3 共识范围调整
a)区块链服务平台应支持共识范围调整功能:
b)应支持共识范围缩减功能,如将共识节点调整为非共识节点或删减现有共识节点;
c)应支持共识范围扩大功能,如将非共识节点调整为共识节点或新增共识节点。
6.2.4 合约管理模块
6.2.4.1 合约查看
a)区块链服务平台应支持合约查看功能:
b)应支持列出所有的所有的智能合约名称、版本号;
c)应支持查看智能合约内容功能,包括源码、参数、合约逻辑等。
6.2.4.2 合约部署
a)区块链服务平台应支持合约部署功能:
b)应支持合约提交和部署功能;
c)应支持发送交易调用合约功能。
6.2.4.3 版本管理
a)区块链服务平台应支持版本管理功能:
b)应支持查看智能合约版本功能;
c)应支持智能合约版本管理功能。
6.2.4.4 多方确认
a)区块链服务平台宜支持多方确认功能:
b)宜支持合适的合约多方部署策略;
c)宜支持合约部署多方确认功能;
6.2.5 日志管理模块
6.2.5.1 管理策略
a)区块链服务平台宜支持日志管理策略功能:
b)宜支持对日志的权限管理功能;
c)宜支持日志内容检索和过滤功能;
d)宜支持日志内容可视化展示功能,如分类展示、分页展示等。
6.2.5.2 平台日志
a)区块链服务平台应支持平台日志管理功能:
b)应支持展示平台日志信息功能;
c)应支持根据特定信息检索平台日志信息功能。
6.2.5.3 节点日志
a)区块链服务平台宜支持节点日志管理功能:
b)宜支持展示节点日志;
c)宜支持根据特定信息检索节点日志信息。
6.3 服务层
区块链服务平台服务层应支持区块链浏览器、多模式部署、SDK接入和跨平台互通功能,具体要求如下。
6.3.1 区块链浏览器
a)区块链服务平台应支持区块链浏览器功能:
b)应支持查看区块链基本信息,包括区块高度、区块哈希、区块内容等;
c)应支持根据交易哈希查看交易信息;
d)宜支持复杂查询功能,如查看某一账户关联的交易信息、查看某一交易关联的交易
信息;
e)宜支持区块链数据统计与分析。
6.3.2 多模式部署
a)区块链服务平台宜支持多模式部署功能:
b)宜支持不同的云部署方案;
c)宜支持跨云部署方案。
6.3.3 SDK接入
a)区块链服务平台应支持SDK接入功能:
b)应支持接入SDK调用平台功能。
6.3.4 跨平台互通
a)区块链服务平台宜支持跨平台互通功能:
b)宜支持跨平台互通操作,如跨平台发送交易、跨链平台发送指令。
7 测试方法
区块链服务平台测试方法应满足T/CCSA 391.2-2022中关于区块链系统的测试要求,以及以下测试要求。
7.1 基础层
(1)底层区块链选型
(2)网络拓扑
7.2 管理层
7.2.1 用户管理模块(3)用户创建
(4)身份管理
(5)权限管理
(6)用户通知
7.2.2 节点管理模块(7)节点查询
(8)资源配置(可选)
(9)节点监控
(10)节点运维
7.2.3 账本管理模块
(11)账本创建
(12)可插拔共识(可选)
(13)共识范围调整
7.2.4 合约管理模块(14)合约查看
(15)合约部署
(16)版本管理
(17)多方确认(可选)
7.2.5 日志管理模块(18)管理策略(可选)
(19)平台日志
(20)节点日志(可选)
7.3 服务层
(21)区块链浏览器
(22)多模式部署(可选)
(23)SDK接入
(24)跨平台互通(可选)。