CESA-2021-1-037 区块链 可装配系统 装配规范 征求意见稿_第1页
CESA-2021-1-037 区块链 可装配系统 装配规范 征求意见稿_第2页
CESA-2021-1-037 区块链 可装配系统 装配规范 征求意见稿_第3页
CESA-2021-1-037 区块链 可装配系统 装配规范 征求意见稿_第4页
CESA-2021-1-037 区块链 可装配系统 装配规范 征求意见稿_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ICS

CCS

团体标准

T/CESAXXXX—202X

区块链可装配系统装配规范

Blockchain-AssemblableSystem-ProcessingAssemblingSpecification

征求意见稿

在提交反馈意见时,请将您知道的相关专利连同支持性文件一并附上。

已授权的专利证明材料为专利证书复印件或扉页,已公开但尚未授权的专利申请

证明材料为专利公开通知书复印件或扉页,未公开的专利申请的证明材料为专利申请

号和申请日期。

202X-XX-XX发布202X-XX-XX实施

中国电子工业标准化技术协会发布

T/CESAXXXX—202X

前言

本文件按照GB/T1.1—2020《标准化工作导则第1部分:标准化文件的结构和起草规则》的规定起

草。

本文件由北京微芯区块链与边缘计算研究院提出。

本文件由中国电子工业标准化技术协会归口。

本文件起草单位:北京微芯区块链与边缘计算研究院、腾讯云计算(北京)有限责任公司、北京市大

数据中心、北京航空航天大学、北京电子商务交易技术国家工程实验室、北京数字认证股份有限公司。

本文件主要起草人:任常锐、黄普、唐琳、殷舒、万明超、胡志琳、武尚、杨华卫、李力、敖萌、

张建俊、石志国、高嵩、刘一萱、柴跃廷、黄亚东、张永强、梁海骅。

III

T/CESAXXXX—202X

引言

区块链可装配系统是由一组易替代、遵循一定规范的模块按照使用者的定制需求组合而成的可正常

运作的区块链系统。可装配区块链通过标准流程抽象,采用标准化、模块化的技术手段,使得用户可以

根据自身需求,精准地选择和裁剪不同的基础模块,支持不同的系统特性,从而装配出能支持广泛应用

场景的区块链系统,将区块链系统的实现从现有的手工作业模式推进到自动装配生产模式。

可装配系统与可插拔系统的区别在于可装配系统的自由度高于可插拔系统。一般可插拔系统有固定

的框架,并且有固定的模块接口,通过替换模块的方式实现可插拔。可装配系统是通过模块间的有序编

排,组合成一个完整的系统。从模块角度看,可装配系统的框架可以灵活选择和替换。因此从软件架构

角度看,可插拔系统是一种特殊的框架固定的可装配系统。

本标准是《区块链可装配系统》系列标准的第一篇,规定了区块链可装配系统的基本概念和区块

链可装配系统的基础原则。

本系列标准的第二篇《区块链可装配系统流程规范》给出了一种典型的区块链可装配系统的实现

方式。对照另外两篇标准,有助于理解区块链可装配系统的概念、开发模式以及系统用法。

本标准对可装配区块链相关的术语和定义进行了界定。本标准可为区块链可装配系统提供基础参考,

有助于理解如何开发区块链可装配系统,有助于区块链用户选择具体的区块链系统。此外,本标准有助

于区块链底层平台的多方协作共同开发,对于促进区块链技术普及和规模化应用具有重要意义。

IV

T/CESAXXXX—202X

区块链可装配系统装配规范

1范围

本文件规定了可装配区块链系统的基本概念和装配关键方法,具体包括如下内容:

a)区块链系统组件库构建方法;

b)区块链系统需求特性分析方法;

c)区块链系统装配方法;

本文件适用于:

a)指导区块链服务提供方提供可装配区块链的功能组件;

b)指导区块链服务提供方构建可装配区块链系统;

c)指导可装配区块链系统评估。

2规范性引用文件

下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,

仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本

文件。

T/CESA6001-2016区块链参考架构

3术语和定义

T/CESA6001-2016界定的以及下列术语和定义适用于本文件。为了便于使用,以下重复列出了

T/CESA6001-2016中的某些术语和定义。

3.1

区块链blockchain

使用密码技术链接将共识确认过的区块按顺序追加而形成的分布式账本。

[来源:T/CESA6001-2016,定义2.2.1]

3.2

智能合约smartcontract

以数字形式定义的能够自动执行条款的合约。

[来源:T/CESA6001-2016,定义2.2.7]

1

T/CESAXXXX—202X

3.3

共识算法consensusalgorithm

区块链系统中各节点间为达成一致采用的计算方法。

[来源:T/CESA6001-2016,定义2.2.3]

3.4

可装配区块链系统assemblableblockchainsystem

可装配区块链系统是由一组易替代、遵循一定规范的模块按照使用者的定制需求组合而成的可正常

运作的区块链系统。该系统具备易变更的特性,通过替换模块能够灵活变更为具备不同特性的另一个可

正常运作的区块链系统。

注:可装配区块链系统是一种可根据需求灵活定制架构的区块链系统。

3.5

可装配区块链系统框架assemblableblockchainsystemframework

可装配区块链系统框架是指为确定区块生成流程而设计的具有一定约束性的支撑结构。框架决定了

各个模块的调用规则,根据区块生成的具体要求选择相应的框架按照使用者的定制需求组合模块或在已

有框架上扩展、安插更多的模块,从而更迅速和方便地构建完整的区块链系统。

注1:可装配系统与常见的支持可插拔的系统的区别在于可装配系统的自由度高于支持可插拔的系统。一般支持可

插拔的系统基于一个固定的框架,并且有固定的模块接口,通过替换模块的方式实现可插拔。而可装配系统

是通过模块间的组合,直接组成一个完整的系统。

注2:从模块角度来看,可装配系统的框架可以灵活选择而且可替换。从软件架构角度看,可插拔系统是一种特殊

的框架固定的可装配系统。

注3:可装配区块链系统框架具有多种表现形式,可以是将多个模块库按照流程串接在一起的核心函数,可以是将

多个微服务模块按照流程串接在一起的服务引擎,可以是将多个程序插件按照流程串接在一起的主程序等。

3.6

可装配性Assemblability

对于可装配区块链系统,其组成模块的易替代性使得整个系统具备易变更性,从而适应各种定制需

求,称为可装配性。

4符号和缩略语

下列缩略语适用于本文件。

EVM以太虚拟机(EthereumVirtualMachine)

WASM一种可在虚拟机运行的二进制指令格式(WebAssembly)

JVMJava虚拟机(JavaVirtualMachine)

PoW工作量证明(ProofofWork)

PoS权益证明(ProofofStake)

DPoS委托权益证明(DelegatedProofofStake)

PBFT实用拜占庭容错(PracticalByzantineFaultTolerance)

2

T/CESAXXXX—202X

PKI公开密钥基础建设(PublicKeyInfrastructure)

5可装配区块链系统模块组件库构建方法

5.1原则

可装配区块链系统的框架可以根据实际需求灵活选择,根据选定的框架来组合不同模块构成一套具

体的区块链系统。可装配区块链系统的模块组件库由框架库和模块库两部分组成。构建可装配区块链系

统模块组件库应遵循以下4条原则:

a)框架库提供不同的装配框架,根据选定框架中的系统核心流程实现相应的系统结构、功能,以

适应不同的产品品种变化或市场需求的变化。

b)模块库中提供多种装配单元模块,每个模块单元作为独立的对象,根据特定产品需求选择装配

模块,通过模块间的组合直接构成一套完整的系统。模块间应减少关联度,提高自由度,以提

高模块组合的灵活度。

c)需求的执行流程决定了框架和模块。可装配区块链系统具体实现了特定需求的执行流程。执行

流程中每一个步骤均对应了多个区块链功能模块,整体的执行流程对应了整体的装配框架。

d)用户通过对产品需求进行设计分析,根据需求执行流程从框架库和模块库选择相应框架和模块

来定制具体的可装配区块链系统。

5.2系统工作流程

通常区块链系统的工作流程可以抽象为以下两部分,如下图1所示:

图1区块链系统工作流程

其中生成区块流程是系统核心流程。

在可装配区块链系统中,至少要求生成区块流程部分具备可装配性。

5.3框架库的构建方法

框架库的构建模式取决于以下两点:

a)可装配区块链系统的架构:通常根据装配成的区块链系统的目标形态,确定可装配区块链系统

的具体实现模式。

示例:如果最后装配成的区块链系统是一个完整的程序,表现为具体一个区块链节点上独立的进程,则可装配区块

链系统的架构可以确定为是一个主程序加插拔式模块库的形式;如果最后装配成的区块链系统是一个符合云原生标准的

云服务,表现为部署在云上的多个微服务,则可装配区块链系统的架构可以确定为是一个主框架服务加可替换微服务模

块库的形式。

3

T/CESAXXXX—202X

b)系统核心流程:根据可支持共识机制的类型确定系统核心流程。

通常架构库的情况决定了整个系统的基本性能范围和可支持的共识机制类型范围。

5.4模块库的构建方法

框架库一旦确定,相应的具体模块的接口即可确定。根据框架对模块的接口要求,可以确定模块库

的具体形态;根据拟支持的具体算法和功能,即可确定最终的模块库。

通常模块库的情况决定了系统可调整的关键属性的情况。

6区块链系统特性需求

6.1原则

可装配区块链系统内生多种可调属性,适应具体用户需求的多样和实际应用场景的差异。用户对区

块链系统特性的需求分析应遵循以下两点原则:

a)可装配区块链系统特性应遵循应用的具体需求。根据应用的具体需求反推可装配区块链系统的

系统需求,具体应用场景对应用系统的需求决定区块链系统的特性需求。

b)可装配区块链系统关键属性应具备调整的能力。通过特性需求分析得到对区块链系统的需求,

通过调整可装配区块链系统的关键属性实现区块链系统的目标运行能力。

6.2区块链系统的关键属性

节点规模

节点规模是参与整个区块链系统运行的节点的数目。根据类型不同,节点可分为共识节点和非共识

节点,共识节点在公链系统中数目可达上万,在联盟链中数目通常较小;非共识节点理论上没有数量限

制,其多少不应影响系统运行。

共识机制

区块链的共识机制由共识算法实现,共识算法应根据不同的业务需求、区块链网络组织形式等进行

选择。共识算法依据应用场景分为拜占庭和非拜占庭两类,拜占庭算法往往容错性较高,但是性能相对

较低,如PoW、PoS、DPoS、PBFT、Hotstuff等;非拜占庭算法性能较高,但容错性较差,如Paxos、

Raft等。

出块模式

出块模式是区块链系统特性的关键需求,是对应用场景和用户需求分析后的量化指标描述。出块模

式描述了区块链中未确认的交易打包成块的方式,包括区块大小、出块时间、区块交易数等。

智能合约运行环境

智能合约运行环境主要分为两种:虚拟机和容器。运行环境的作用是在一个沙盒中执行合约代码,

并对合约所使用的资源进行隔离和限制。虚拟机主要包括EVM、WASM、JVM等,容器主要指Docker。运行

环境可从代码兼容性、语言支持、执行效率、安全性等多个因素的考虑进行选择。

身份机制

4

T/CESAXXXX—202X

身份机制用于区块链系统中参与主体的身份认证。身份机制可通过身份权限管理模块接入自有或第

三方服务,主要有PKI、公私钥、分布式身份服务等。

6.3性能参数与关键属性间相互制约关系

关键特性间的相互制约关系

区块链系统的特性间存在关联关系,彼此依赖或相互制约。这种关联性使得区块链系统的运行特征

决定于各关键特性的综合调整,在优化运行指标时需尝试多种参数组合。

示例:吞吐率影响因素包括区块大小和出块时间,单独增加区块大小时,不一定提高吞吐率,还可能会增加出块时

间,甚至引起链的分叉等问题。

系统吞吐率的调整方法

系统吞吐率是区块链系统的关键指标,由装配框架、装配模块、装配参数等决定,包括节点规模、

共识机制、出块模式、智能合约运行环境、身份机制等。

示例1:装配框架的选择影响系统的吞吐率,框架主要分为微服务和单进程两种,分别使用不同的场景。微服务

框架使得各模块的部署更加灵活,但也会降低运行效率;单进程模式在运行中弹性不足,但在模块交互中具备性能优

势。

示例2:可装配系统中的共识机制模块是决定吞吐率的关键因素,当交易处理速度有很高要求时,可将共识模块

替换为通信轮次较少的其他共识组件。这时,相对于PBFT,HotStuff是一个更好的选择,它提出了一个三阶段投票

的BFT类共识协议,通过在投票过程中引入门限签名实现了O(n)的消息验证复杂度。

示例3:共识在节点规模较小是,达到一致性的时间周期会较短,可显著提高吞吐率。这时,吞吐率的提高的代

价是安全性、可靠性等的降低。

7装配方法

典型的区块链系统由可装配区块链系统厂商应提供的装配工具帮助用户完成,其装配方法通常遵循

以下步骤,其中:

7.1根据需求特性确认框架和关键属性

需求特性与框架及关键属性的对应关系应通过大量的实际测试得出。

提供可装配区块链系统的厂商宜提供一张表格(参见附录A),将不同的需求特性对应的关键属性

参考值通给用户。用户可以根据该表格,选择适合的关键属性参数,来装配出符合应用所需的区块链系

统。该表格可集成到装配工具中,方便用户直接输入需求特性自动生成关键属性参考值。

用户根据自己的实际情况,可以自行确定关键属性。

7.2选择模块及模块参数

用户根据关键属性,来选择对应的模块和模块参数。

提供可装配区块链系统的厂商宜提供一张表格,来帮助用户进行模块的选择。

用户根据自己的实际情况,可以自行确定需要的模块及参数。

7.3装配成系统

5

T/CESAXXXX—202X

将模块及模块参数输入到装配工具中,自动装配出一个区块链系统。

7.4调整系统参数

装配工具中宜包含调整系统参数用的功能,用户可在装配工具中,模拟运行装配好的区块链系统,

并根据运行结果,自动化或者手工的改变一些可调整参数,使整个模拟系统的运行情况满足用户的最终

需求。

7.5系统装配收尾

所有参数全部确定后,利用装配工具将获得的区块链系统打包,生成一个便于安装部署的软件包、

镜像或者安装程序。

8验证方法

8.1可替换性验证

验证该系统的各个模块是否满足易替换性:即将其中任意模块替换为遵循模块要求的另外一种实现,

区块链系统仍能正常运行;

验证该系统是否具有一个可替换的框架:即该系统的核心流程是由一个独立的框架控制的。

8.2装配工具适用性验证

对于提供了装配工具的可装配区块链系统,该工具能够根据用户需要,将遵循要求的框架及相关模

块装配为正常运行的区块链系统。

该工具应满足以下要求:

a)选择满足需求的框架;

b)选择给定框架下的模块和模块参数;

c)自动装配出区块链系统;

该工具宜提供以下功能:

a)支持模拟运行已装配的区块链系统,方便用户调整系统参数;

使用装配工具得到的区块链系统应满足8.1条目中规定的相关要求。

6

T/CESAXXXX—202X

附录A

需求特性与关键属性关系对应表

可装配区块链系统供应商可根据自己的可装配区块链系统的特性,编制适合自己产品的对应表。下

表仅供厂商参考对应标的格式。

节点规模共识机制出块模式智能合约运身份机制框架及其他关键属性参考

行环境建议值

7

T/CESAXXXX—202X

参考文献

[1]《新型区块链底层平台技术白皮书》,2020年9月,北京微芯区块链与边缘计算研究院

8

T/CESAXXXX—202X

目次

前言...................................................................................................................................................................III

引言.....................................................................................................................................................................IV

1范围...................................................................................................................................................................1

2规范性引用文件...............................................................................................................................................1

3术语和定义.......................................................................................................................................................1

4符号和缩略语...................................................................................................................................................2

5可装配区块链系统模块组件库构建方法.......................................................................................................3

5.1原则...........................................................................................................................................................3

5.2系统工作流程...........................................................................................................................................3

5.3框架库的构建方法...................................................................................................................................3

5.4模块库的构建方法...................................................................................................................................4

6区块链系统特性需求.......................................................................................................................................4

6.1原则...........................................................................................................................................................4

6.2区块链系统的关键属性...........................................................................................................................4

6.3性能参数与关键属性间相互制约关系..................................................................................................5

7装配方法...........................................................................................................................................................5

7.1根据需求特性确认框架和关键属性.......................................................................................................5

7.2选择模块及模块参数...............................................................................................................................5

7.3装配成系统...............................................................................................................................................5

7.4调整系统参数...........................................................................................................................................6

7.5系统装配收尾...........................................................................................................................................6

8验证方法...........................................................................................................................................................6

8.1可替换性验证...........................................................................................................................................6

8.2装配工具适用性验证...............................................................................................................................6

附录A需求特性与关键属性关系对应表..................................................................................................7

参考文献.........................................................................................................................................................8

II

T/CESAXXXX—202X

区块链可装配系统装配规范

1范围

本文件规定了可装配区块链系统的基本概念和装配关键方法,具体包括如下内容:

a)区块链系统组件库构建方法;

b)区块链系统需求特性分析方法;

c)区块链系统装配方法;

本文件适用于:

a)指导区块链服务提供方提供可装配区块链的功能组件;

b)指导区块链服务提供方构建可装配区块链系统;

c)指导可装配区块链系统评估。

2规范性引用文件

下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,

仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本

文件。

T/CESA6001-2016区块链参考架构

3术语和定义

T/CESA6001-2016界定的以及下列术语和定义适用于本文件。为了便于使用,以下重复列出了

T/CESA6001-2016中的某些术语和定义。

3.1

区块链blockchain

使用密码技术链接将共识确认过的区块按顺序追加而形成的分布式账本。

[来源:T/CESA6001-2016,定义2.2.1]

3.2

智能合约smartcontract

以数字形式定义的能够自动执行条款的合约。

[来源:T/CESA6001-2016,定义2.2.7]

1

T/CESAXXXX—202X

3.3

共识算法consensusalgorithm

区块链系统中各节点间为达成一致采用的计算方法。

[来源:T/CESA6001-2016,定义2.2.3]

3.4

可装配区块链系统assemblableblockchainsystem

可装配区块链系统是由一组易替代、遵循一定规范的模块按照使用者的定制需求组合而成的可正常

运作的区块链系统。该系统具备易变更的特性,通过替换模块能够灵活变更为具备不同特性的另一个可

正常运作的区块链系统。

注:可装配区块链系统是一种可根据需求灵活定制架构的区块链系统。

3.5

可装配区块链系统框架assemblableblockchainsystemframework

可装配区块链系统框架是指为确定区块生成流程而设计的具有一定约束性的支撑结构。框架决定了

各个模块的调用规则,根据区块生成的具体要求选择相应的框架按照使用者的定制需求组合模块或在已

有框架上扩展、安插更多的模块,从而更迅速和方便地构建完整的区块链系统。

注1:可装配系统与常见的支持可插拔的系统的区别在于可装配系统的自由度高于支持可插拔的系统。一般支持可

插拔的系统基于一个固定的框架,并且有固定的模块接口,通过替换模块的方式实现可插拔。而可装配系统

是通过模块间的组合,直接组成一个完整的系统。

注2:从模块角度来看,可装配系统的框架可以灵活选择而且可替换。从软件架构角度看,可插拔系统是一种特殊

的框架固定的可装配系统。

注3:可装配区块链系统框架具有多种表现形式,可以是将多个模块库按照流程串接在一起的核心函数,可以是将

多个微服务模块按照流程串接在一起的服务引擎,可以是将多个程序插件按照流程串接在一起的主程序等。

3.6

可装配性Assemblability

对于可装配区块链系统,其组成模块的易替代性使得整个系统具备易变更性,从而适应各种定制需

求,称为可装配性。

4符号和缩略语

下列缩略语适用于本文件。

EVM以太虚拟机(EthereumVirtualMachine)

WASM一种可在虚拟机运行的二进制指令格式(WebAssembly)

JVMJava虚拟机(JavaVirtualMachine)

PoW工作量证明(ProofofWork)

PoS权益证明(ProofofStake)

DPoS委托权益证明(DelegatedProofofStake)

PBFT实用拜占庭容错(PracticalByzantineFaultTolerance)

2

T/CESAXXXX—202X

PKI公开密钥基础建设(PublicKeyInfrastructure)

5可装配区块链系统模块组件库构建方法

5.1原则

可装配区块链系统的框架可以根据实际需求灵活选择,根据选定的框架来组合不同模块构成一套具

体的区块链系统。可装配区块链系统的模块组件库由框架库和模块库两部分组成。构建可装配区块链系

统模块组件库应遵循以下4条原则:

a)框架库提供不同的装配框架,根据选定框架中的系统核心流程实现相应的系统结构、功能,以

适应不同的产品品种变化或市场需求的变化。

b)模块库中提供多种装配单元模块,每个模块单元作为独立的对象,根据特定产品需求选择装配

模块,通过模块间的组合直接构成一套完整的系统。模块间应减少关联度,提高自由度,以提

高模块组合的灵活度。

c)需求的执行流程决定了框

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论