Skip to content

Commit

Permalink
add index.rst Introduction.rst
Browse files Browse the repository at this point in the history
  • Loading branch information
chenshaowei committed Jul 8, 2021
1 parent 81d94db commit 6367c30
Show file tree
Hide file tree
Showing 17 changed files with 7,146 additions and 245 deletions.
33 changes: 23 additions & 10 deletions docs/zh_CN/Architecture development.rst
Original file line number Diff line number Diff line change
@@ -1,28 +1,41 @@
大规模组网
^^^^^^^^^^^^^^
^^^^^^^^^

随着联盟规模不断扩大,多样化业务模式不断扩展,传统的对等网络已经无法满足应用需求。比如在工业互联网、物联网场景中,传统的对等网络模式难以支撑海量终端设备接入区块链,混合式分层级的新型组网模型才能更好的应对这种大规模终端接入的应用场景。
随着联盟规模不断扩大,多样化业务模式不断扩展,传统的对等网络已经无法满足应用需求。比如在工业互联网、物联网场景中,传统的对等网络模式难以
支撑海量终端设备接入区块链,混合式分层级的新型组网模型才能更好的应对这种大规模终端接入的应用场景。

基于上述问题,平台相应提出大规模分层组网模型, 通过分层架构设计,有效实现整体网络节点水平扩展,并提供实时计算与验证服务,实现数十万级不同类型网络节点的大规模部署。层级结构如下所示:
基于上述问题,平台相应提出大规模分层组网模型, 通过分层架构设计,有效实现整体网络节点水平扩展,并提供实时计算与验证服务,实现数十万级不同
类型网络节点的大规模部署。层级结构如下所示:

|image0|

- **共识节点层** :由VP(Validation Peer)组成,该层级节点全部参与共识,负责区块链网络的共识验证与账本一致性保证。
- **非共识节点层** :由NVP(Non-Validation Peer)组成,同步共识节点账本数据,不参与共识,并通过网络自发现转发模型实现大规模NVP节点组网,实现区块链数据网络水平扩展。
- **轻节点层** :包含微数据中心、IOT网关等,靠近边缘设备终端,提供轻量级的计算功能,具备数据缓存以及本地计算的能力,将各种边缘设备与区块链网络桥接起来,赋予边缘计算能力,提高数据的处理效率,降低整体响应延迟。
- **非共识节点层** :由NVP(Non-Validation Peer)组成,同步共识节点账本数据,不参与共识,并通过网络自发现转发模型实现大规模NVP
节点组网,实现区块链数据网络水平扩展。
- **轻节点层** :包含微数据中心、IOT网关等,靠近边缘设备终端,提供轻量级的计算功能,具备数据缓存以及本地计算的能力,将各种边缘设备与
区块链网络桥接起来,赋予边缘计算能力,提高数据的处理效率,降低整体响应延迟。
- **终端设备层** :包括感知器、通信模组、摄像头等各类IOT设备,负责数据采集与转发上链,解决数据真实性的“第一公里”问题。

读写分离(NVP)
^^^^^^^^^^^^^^^^^^
-------------

在数据新基建的大潮流下,随着人民链、星火链网、BSN等国家级区块链平台的相继推出,未来区块链需要支撑的应用场景规模将会越来越大,这势必会带来性能与扩展性的矛盾。试想如果区块链网络中都为共识节点,一方面,网络复杂度的增加对网络连通性和稳定性提出了更高的要求,但在真实落地场景中,出于网络安全和建设成本的考虑理想化的网络环境往往很难实现;另一方面,共识节点的数量增加会导致共识效率的降低,从而拖慢系统的整体性能。针对这些问题,趣链区块链平台通过非共识节点NVP提供了一种新的解题思路。
在数据新基建的大潮流下,随着人民链、星火链网、BSN等国家级区块链平台的相继推出,未来区块链需要支撑的应用场景规模将会越来越大,这势必会
带来性能与扩展性的矛盾。试想如果区块链网络中都为共识节点,一方面,网络复杂度的增加对网络连通性和稳定性提出了更高的要求,但在真实落地场
景中,出于网络安全和建设成本的考虑理想化的网络环境往往很难实现;另一方面,共识节点的数量增加会导致共识效率的降低,从而拖慢系统的整体性
能。针对这些问题,趣链区块链平台通过非共识节点NVP提供了一种新的解题思路。

NVP定位于轻量级服务节点,不参与共识,仅通过信任的VP来同步账本数据,并对外提供交易转发、查询等服务。NVP拥有完善的数据恢复机制,当由于网络异常等原因导致节点落后时,能及时同步数据,恢复到最新的账本状态,提高了节点的可用性。此外,NVP提供的区块链服务是独立于VP的,除了交易上链、查询、验证等基础功能外,还支持数据索引、数据归档、可信文件存储、接口权限管理等功能,适应更加多样化的应用场景。趣链区块链平台支持一个VP连接多个NVP,用户可选择同步VP的全量账本数据或某个NS的账本数据,同步范围灵活可配。
NVP定位于轻量级服务节点,不参与共识,仅通过信任的VP来同步账本数据,并对外提供交易转发、查询等服务。NVP拥有完善的数据恢复机制,当由于
网络异常等原因导致节点落后时,能及时同步数据,恢复到最新的账本状态,提高了节点的可用性。此外,NVP提供的区块链服务是独立于VP的,除了交
易上链、查询、验证等基础功能外,还支持数据索引、数据归档、可信文件存储、接口权限管理等功能,适应更加多样化的应用场景。趣链区块链平台支
持一个VP连接多个NVP,用户可选择同步VP的全量账本数据或某个NS的账本数据,同步范围灵活可配。

NVP适用于多种应用场景:

- 针对数据低频写、高度读的存证类场景,机构内部可在VP的基础上再增设NVP,将一部分数据读压力转移到NVP上,让VP专注于数据写入,通过读写分离来分担VP压力,实现区块链系统的高效运行。
- 针对大规模、分层级、跨区域的国家级基础设施类场景,下属机构或中小型企业可用NVP替代VP,从平台角度考虑,一方面减轻了共识网络的压力,在保证性能的提前下提高了区块链网络的可扩展性,另一方面网络复杂度的降低也更利于平台落地;从机构及企业角度考虑,在满足业务需求的同时也降低了设备及运维成本。
- 针对数据低频写、高度读的存证类场景,机构内部可在VP的基础上再增设NVP,将一部分数据读压力转移到NVP上,让VP专注于数据写入,通过读写
分离来分担VP压力,实现区块链系统的高效运行。
- 针对大规模、分层级、跨区域的国家级基础设施类场景,下属机构或中小型企业可用NVP替代VP,从平台角度考虑,一方面减轻了共识网络的压力,
在保证性能的提前下提高了区块链网络的可扩展性,另一方面网络复杂度的降低也更利于平台落地;从机构及企业角度考虑,在满足业务需求的同时也
降低了设备及运维成本。
- 针对海量终端设备接入的城市级物联网场景,以共识节点层为中心,通过NVP非共识节点层实现数据网络的扩展,优化分摊系统压力。


Expand Down
56 changes: 40 additions & 16 deletions docs/zh_CN/Data management.rst
Original file line number Diff line number Diff line change
@@ -1,47 +1,71 @@
数据管理
^^^^^^^^^^^^
^^^^^^^^

数据归档
------------
--------

随着区块链运行时间的增长,区块链系统存储的数据容量将高速增长,且数据的增长的速度甚至会超过存储介质容量增长的速度,从而限制区块链技术的发展。为此,平台实现了区块链数据归档,在不停机的情况下,将一部分线上数据迁移到线下存储。以此解决在有限存储空间下区块链数据的存储问题。平台也提供归档数据浏览器,支持用户查阅归档数据。平台也实现了归档数据恢复的功能,在不影响链上正常工作的情况下,支持运维人员将线下存储的数据恢复至线上。
随着区块链运行时间的增长,区块链系统存储的数据容量将高速增长,且数据的增长的速度甚至会超过存储介质容量增长的速度,从而限制区块链技术的发展。
为此,平台实现了区块链数据归档,在不停机的情况下,将一部分线上数据迁移到线下存储。以此解决在有限存储空间下区块链数据的存储问题。平台也提供
归档数据浏览器,支持用户查阅归档数据。平台也实现了归档数据恢复的功能,在不影响链上正常工作的情况下,支持运维人员将线下存储的数据恢复至线上。

数据归档针对的主体是区块数据,同时包括区块对应的日志数据、索引数据、交易回执数据。平台支持用户自定义归档范围,用户可以直接指定一个已经被提交的区块号作为参数,创世区块到入参区块的数据将被归档至线下。另外,考虑到直接归档的流程较为耗时,直接归档的请求返回和归档流程将异步进行,用户可通过查询归档结果的接口查询归档是否成功。数据归档功能支持各节点自主定义归档范围,节点间无需同步归档。数据归档对区块链的变化如下图所示:
数据归档针对的主体是区块数据,同时包括区块对应的日志数据、索引数据、交易回执数据。平台支持用户自定义归档范围,用户可以直接指定一个已经被提
交的区块号作为参数,创世区块到入参区块的数据将被归档至线下。另外,考虑到直接归档的流程较为耗时,直接归档的请求返回和归档流程将异步进行,用
户可通过查询归档结果的接口查询归档是否成功。数据归档功能支持各节点自主定义归档范围,节点间无需同步归档。数据归档对区块链的变化如下图所示:

|image0|

数据索引
-----------
--------

数据查询是区块链应用中最普遍的场景,但由于区块链独特的账本结构,一直以来都缺少一种高效安全的查询手段。

区块链底层的账本数据以Key-Value键值对模型进行存储,目前只能提供基于key 的精确检索,而在实际应用场景存在更广泛的基于value(业务数据)的检索需求。比如在商品溯源场景中,我们可能要通过商品ID来检索出该商品在整个流通过程中的交易,受限于区块链底层数据的存储特点,只能通过遍历区块的方式来检索,效率十分低下。为了提高检索效率,目前有两种解决思路,一种是将商品ID到交易哈希的映射关系存储在外部数据库当中,但数据安全难以得到有效保障;另一种是将映射关系存储在智能合约中,但随着数据量增大,合约会遇到性能瓶颈,检索效率依然难以得到提升。
区块链底层的账本数据以Key-Value键值对模型进行存储,目前只能提供基于key 的精确检索,而在实际应用场景存在更广泛的基于value(业务数据)的
检索需求。比如在商品溯源场景中,我们可能要通过商品ID来检索出该商品在整个流通过程中的交易,受限于区块链底层数据的存储特点,只能通过遍历区块
的方式来检索,效率十分低下。为了提高检索效率,目前有两种解决思路,一种是将商品ID到交易哈希的映射关系存储在外部数据库当中,但数据安全难以得
到有效保障;另一种是将映射关系存储在智能合约中,但随着数据量增大,合约会遇到性能瓶颈,检索效率依然难以得到提升。

为了解决上述问题,平台依托底层索引数据库,从区块中提取关键信息存储到索引数据库中,实现高效安全的业务数据自定义条件检索功能,极大简化了上层业务系统开发和维护复杂度。平台采用内嵌式索引数据库,保证检索结果可信的同时,极大提升了业务数据的检索效率,检索速度达毫秒级。为了更加贴合实际使用场景,平台支持自定义多条业务索引信息,满足更加精准的检索需求,同时支持精准、匹配(模糊)、多条件查询等多种检索模式,并支持大数据量分页查询,避免出现查询接口OOM问题。
为了解决上述问题,平台依托底层索引数据库,从区块中提取关键信息存储到索引数据库中,实现高效安全的业务数据自定义条件检索功能,极大简化了上层
业务系统开发和维护复杂度。平台采用内嵌式索引数据库,保证检索结果可信的同时,极大提升了业务数据的检索效率,检索速度达毫秒级。为了更加贴合实
际使用场景,平台支持自定义多条业务索引信息,满足更加精准的检索需求,同时支持精准、匹配(模糊)、多条件查询等多种检索模式,并支持大数据量分
页查询,避免出现查询接口OOM问题。

|image1|

数据索引的应用十分广泛,特别是在查询频繁的存证类场景中。以茶品溯源场景为例,当茶品溯源平台将茶品采摘、加工、质检、物流、销售流程中的相关信息以交易的形式上链存证时,用户可在交易的ExtraID字段中输入茶品批次、类型、原产地、经销地点等自定义索引信息,这些索引信息将存储在底层专用索引数据库当中。随后,用户可调用相应接口,通过精确检索模式查询某一批次编号的产品全流程交易信息,或通过多条件检索模式查询云南产普洱茶的交易信息。
数据索引的应用十分广泛,特别是在查询频繁的存证类场景中。以茶品溯源场景为例,当茶品溯源平台将茶品采摘、加工、质检、物流、销售流程中的相关
信息以交易的形式上链存证时,用户可在交易的ExtraID字段中输入茶品批次、类型、原产地、经销地点等自定义索引信息,这些索引信息将存储在底层
专用索引数据库当中。随后,用户可调用相应接口,通过精确检索模式查询某一批次编号的产品全流程交易信息,或通过多条件检索模式查询云南产普洱茶
的交易信息。

可信文件共享
--------------
------------

中心化的文件存储与共享存在易篡改、低可信、单点故障等问题,而区块链因其可信任、安全不可篡改、冗余备份、多方协作等特性在文件可信存储与共享方面具有天然的优势,但目前区块链对于商业化文件存储与共享存在成本高、容量小、性能差、结构单一等问题,具体表现在:
中心化的文件存储与共享存在易篡改、低可信、单点故障等问题,而区块链因其可信任、安全不可篡改、冗余备份、多方协作等特性在文件可信存储与共享
方面具有天然的优势,但目前区块链对于商业化文件存储与共享存在成本高、容量小、性能差、结构单一等问题,具体表现在:

- 文件容量大导致系统性能下降。目前的区块链技术架构,大容量的文本、文件由每个节点全量直接链上存储不仅需要消耗大量的存储资源,还会严重影响平台性能,无法满足商业场景的需求。
- 文件容量大导致系统性能下降。目前的区块链技术架构,大容量的文本、文件由每个节点全量直接链上存储不仅需要消耗大量的存储资源,还会严重影响
平台性能,无法满足商业场景的需求。

- 链上存储结构单一。区块链的存储结构对结构化文件友好,但不适于图片、音视频等非结构化文件的直接存储,无法适应涉及大量非结构化文件的应用场景。
- 链上存储结构单一。区块链的存储结构对结构化文件友好,但不适于图片、音视频等非结构化文件的直接存储,无法适应涉及大量非结构化文件的应用
场景。

为此,平台通过自研可信文件共享功能,通过链上存证、链下传输的文件分离存储模型,实现了文件可信存储、安全共享与高效查询。在保证平台性能和稳定性不受影响的情况下,能支持GB级别图片、音视频等非结构化文件的可信存储,并通过区块链网络定向流传输共享。向用户提供节点白名单和用户白名单,支持用户多维度自定义授权存储节点与用户下载权限,允许用户按需查询、下载文件,有效降低链上非结构性文件存储与共享的成本并增强可用性、可控性。可信文件共享由一方上传文件,多方同步文件索引信息、定向共享文件,功能示意图如下所示:
为此,平台通过自研可信文件共享功能,通过链上存证、链下传输的文件分离存储模型,实现了文件可信存储、安全共享与高效查询。在保证平台性能和
稳定性不受影响的情况下,能支持GB级别图片、音视频等非结构化文件的可信存储,并通过区块链网络定向流传输共享。向用户提供节点白名单和用户
白名单,支持用户多维度自定义授权存储节点与用户下载权限,允许用户按需查询、下载文件,有效降低链上非结构性文件存储与共享的成本并增强可用性、
可控性。可信文件共享由一方上传文件,多方同步文件索引信息、定向共享文件,功能示意图如下所示:

|image2|

可信数据源服务
----------------
-------------

在中国人民银行发布的《区块链能做什么?不能做什么?》的报告中,预言机定义如下:区块链外信息写入区块链内的机制,一般被成为预言机。预言机解决的是链外数据不可信、不确定而导致不可用的问题,由于区块链对于用户来说是一个黑盒,只了解输入和输出但不知晓内部的细节,系统内部为了满一致性要求,需保持合约运行结果的一致性和确定性,但如Web天气服务、航班动态信息、随机数等都是变化的数据,区块链想使用这些动态变化的数据就需要预言机。预言机作为区块链和外部世界的桥梁,通过可信计算技术以及建立信任的约束机制,让区块链系统打破了封闭,使区块链主动获取外部数据成为现实。
在中国人民银行发布的《区块链能做什么?不能做什么?》的报告中,预言机定义如下:区块链外信息写入区块链内的机制,一般被成为预言机。预言机
解决的是链外数据不可信、不确定而导致不可用的问题,由于区块链对于用户来说是一个黑盒,只了解输入和输出但不知晓内部的细节,系统内部为了满
一致性要求,需保持合约运行结果的一致性和确定性,但如Web天气服务、航班动态信息、随机数等都是变化的数据,区块链想使用这些动态变化的数据
就需要预言机。预言机作为区块链和外部世界的桥梁,通过可信计算技术以及建立信任的约束机制,让区块链系统打破了封闭,使区块链主动获取外部数
据成为现实。

预言机使用过程中首先需要事先部署oracle合约,负责与预言机服务交互,用户编写自己的用户合约去调用oracle合约对外部预言机合约请求数据,预言机服务向外部请求数据再将数据返回给oracle合约,最终返回给用户合约触发合约执行逻辑(详见下图预言机示例)。
预言机使用过程中首先需要事先部署oracle合约,负责与预言机服务交互,用户编写自己的用户合约去调用oracle合约对外部预言机合约请求数据,
预言机服务向外部请求数据再将数据返回给oracle合约,最终返回给用户合约触发合约执行逻辑(详见下图预言机示例)。

|image3|

Expand Down

0 comments on commit 6367c30

Please sign in to comment.