草庐IT

《区块链国产化实践指南——基于Fabric 2.0》

609127400 2024-02-28 原文

简介

区块链作为一项可以改变互联网底层基础设施服务的分布式账本技术,已经作为我国重点发展的战略技术,逐渐在我国各行业落地应用。在社会分工日益明细的趋势下,区块链的分布式技术可以在一定程度上解决因分工导致生产要素在协同、整合方面出现的问题,这也在另一方面提高了社会生产的效率,可以为我国的全面深化改革创新、传统产业改造升级、大国“智”造等,注入新的技术能量。也可以预见,区块链技术将对城市的发展和管理,以及我们的日常生活产生越来越大的影响。

区块链是一项较新的技术,各国发展区块链技术基本处于同一起跑线,在奔跑的过程中,首先要做到“自立自强”,实现自主可控。在国际竞争环境下,自主可控的重要性不言而喻。其中,区块链技术的国产化是实现自主可控的重要途径之一。

本书以主流开源区块链技术Hyperledger Fabric v2.0.0为研究对象,遵从的思路是在研究现有技术的基础上,对现有技术升级改造,使技术符合我国标准或主流需求,以实现国产化,进而达到自主可控的目的。全书共分为三部分。

第一部分,第1至12章,从源码层面深入刨析Hyperledger Fabric的实现。其中,第1章,从顶层视角,概述了Fabric相关的概念、架构,目的是让各位对Fabric有个初步的轮廓。第2章,讲述Fabric的配置。第3-5章是一个小单元,均与Fabric网络中的身份有关,按照对象包含与被包含的关系,从上层到下层,依次讲述了MSP、BCCSP、Identity模块的实现。策略的实现依赖于身份,在理解身份的基础上,第6章,叙述了策略模块的实现。第7章,讲述了账本模块的实现。可以说,我们讲述第3-7章的各个模块,是为第8-11章叙述通道、通道服务、节点的内容打基础。第12章,专门讲述了链码的生命周期管理。

第二部分,第13章,讲述如何部署应用Hyperledger Fabric,包括使用k8s进行部署。

第三部分,第14至17章,叙述了区块链技术在国内的发展和对Hyperledger Fabric进行国产化改造的实践,包括4个方向:国密改造、性能改造、BaaS服务平台和与物联网相结合。这些都是实践性地尝试,以抛砖引玉。国密改造、BaaS服务平台的实现,主要以代码的形式呈现。性能改造的实现,主要以详述性能优化方案的形式呈现。与物联网相结合,则主要以实际部署操作的形式呈现。

全书目录内容



内容节选

第4章 加密服务提供者(BCCSP)

第7章 账 本

第9章 背书服务

第12章 链码生命周期管理

第15章 Fabric国密改造实践

第15章 Fabric性能优化实践

第16章 BaaS服务平台的应用实践

第17章 搭建树莓派参与的Fabric区块链系统


大咖推荐


目录详情

第1章 Fabric2.0概述

1.1 Fabric核心概念对象
1.2 Fabric经典网络架构
1.3 Fabric经典交易流程
1.4 Fabric源码目录结构

第2章 Fabric中的配置

2.1 配置的形式
2.2 网络配置
2.3 应用通道配置
2.4 peer节点配置
2.5 orderer节点配置
2.6 成员服务提供者MSP配置

第3章 成员服务提供者MSP

3.1 MSP的类型和关联
3.2 本地MSP

3.2.1 加密服务类型MSP的初始化
3.2.2 加密服务类型MSP的使用

3.3 多通道下的MSP的管理

第4章 加密服务提供者BCCSP

4.1 BCCSP初始化

4.1.1 BCCSP的条件编译
4.1.2 默认类型swbccsp
4.1.3 公钥加密标准类型pkcs11bccsp

4.2 BCCSP的使用

4.2.1 签名方法
4.2.2 验签方法

第5章 身份对象

5.1 身份对象的初始化

5.1.1 公开身份对象
5.1.2 签名身份对象
5.1.3 序列化身份对象

5.2 身份对象的使用

5.2.1 公开身份的使用
5.2.2 签名身份的使用
5.2.3 序列化身份的使用

第6章 策略 35

6.1 MSP身份主体
6.2 策略的类型

6.2.1 签名策略
6.2.2 隐式元策略

6.3 策略对象
6.4 签名策略对象

6.4.1 签名策略分析器
6.4.2 签名策略评估员
6.4.3 身份反序列化工具
6.4.4 接口实现

6.5 隐式元策略对象

6.5.1 隐式元策略分析器
6.5.2 接口实现

6.6 策略管理员
6.7 策略检查器
6.8 策略的层级
6.9 策略的使用

6.9.1 通道策略配置
6.9.2 背书策略
6.9.3 权限控制列表ACL

第7章 账 本

7.1 账本的配置
7.2 账本的结构
7.3 区块链数据结构
7.4 私有数据结构
7.5 账本对象的层级
7.6 账本数据存储流程
7.7 块存储对象

7.7.1 goleveldb状态数据库
7.7.2 块文件blockfile的管理
7.7.3 简化块文件存储

7.8 私有数据存储对象
7.9 账本存储对象
7.10 节点账本和账本管理者对象

7.10.1 交易管理工具
7.10.2 历史状态数据库
7.10.3 账本初始化工具
7.10.4 节点账本对象
7.10.5 节点账本管理对象

第8章 通 道

8.1 通道的配置
8.2 系统通道的启动
8.3 应用通道的启动
8.4 加入应用通道

第9章 通道服务

9.1 基础gRPC网络通信服务

9.1.1 Fabric对gRPC的封装
9.1.2 服务通信功能

9.2 背书服务endorse

9.2.1 服务功能和原型定义
9.2.2 服务流程

9.3 原子广播服务AtomicBroadcast

9.3.1 服务功能和原型定义
9.3.2 服务流程

9.4 共识排序服务etcdraft

9.4.1 etcdraft共识集群网络拓扑结构
9.4.2 etcdraft共识集群配置和启动
9.4.3 etcdraft共识集群服务流程

9.5 散播服务gossip

9.5.1 服务功能和原型定义
9.5.2 服务的配置和启动
9.5.3 服务流程

9.6 发现服务discovery

9.6.1 服务配置和原型定义
9.6.2 服务流程

9.7 操作服务operation

9.7.1 服务配置和原型定义
9.7.2 服务流程

第10章 通道配置更新和交易验证

10.1 通道配置更新流程
10.2 交易验证流程

10.2.1 TLS安全连接验证
10.2.2 身份验证
10.2.3 多版本并发验证
10.2.4 版本能力验证

第11章 Fabric网络核心节点

11.1 peer节点

11.1.1 peer程序的命令结构
11.1.2 peer节点的启动过程

11.2 orderer节点

11.2.1 orderer程序的命令结构
11.2.2 orderer节点的启动过程

11.3 第三方服务节点

11.3.1 zookeeper、kafka节点和共识排序服务
11.3.2 CouchDB节点与状态数据库

第12章 链码生命周期管理

12.1 系统链码

12.1.1 系统链码的类型和功能
12.1.2 系统链码的初始化

12.2 应用链码

12.2.1 应用链码与系统链码的关系
12.2.2 应用链码与容器的关系
12.2.3 应用链码的安装交易过程
12.2.4 应用链码的实例化交易过程
12.2.5 应用链码的升级交易过程
12.2.6 应用链码作为外部服务

第13章 Fabric区块链网络部署

13.1 Fabric SDK

13.1.1 SDK的分类
13.1.2 SDK在Fabric区块链网络中的角色

13.2 Fabric镜像

13.2.1 Fabric区块链网络中的核心镜像
13.2.2 获取Fabric核心镜像

13.3 Fabric的编译

13.3.1 编译工程文件Makefile
13.3.2 编译Fabric项目工程

13.4 官网实例fabric-sample

13.4.1 fabric-sample的结构
13.4.2 部署first-network
13.4.3 扩展first-network
13.4.4 以k8s为器,部署first-network

第14章 国内区块链技术的发展

14.1 区块链技术应用发展趋势浅析
14.2 区块链技术与网络信息安全
14.3 区块链技术与自主可控
14.4 Hyperledger Fabric的发展与自主可控

第15章 Hyperledger Fabric的国产化之路

15.1 超级账本社区与中国的桥梁
15.2 加解密算法领域的国产化实践
15.3 性能优化领域的国产化实践

第16章 BaaS服务平台的应用实践

16.1 BaaS服务平台的特性与应用场景
16.2 BaaS服务平台架构设计实践
16.3 BaaS服务平台开发实践

16.3.1 部署负载均衡层
16.3.2 Restful接口服务层
16.3.3 资源编排服务层
16.3.4 任务执行层
16.3.5 消息队列

第17章 当Fabric遇上树莓派

17.1 区块链与物联网发展的融合
17.2 树莓派参与的Fabric网络架构
17.3 搭建树莓派参与的Fabric开发环境
17.4 部署树莓派参与的Fabric区块链网络
17.5 Fabric区块链+物联网的应用场景

有关《区块链国产化实践指南——基于Fabric 2.0》的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

  3. 区块链之加解密算法&数字证书 - 2

    目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非

  4. ruby-on-rails - Rails 中同一个类的多个关联的最佳实践? - 2

    我认为我的问题最好用一个例子来描述。假设我有一个名为“Thing”的简单模型,它有一些简单数据类型的属性。像...Thing-foo:string-goo:string-bar:int这并不难。数据库表将包含具有这三个属性的三列,我可以使用@thing.foo或@thing.bar之类的东西访问它们。但我要解决的问题是当“foo”或“goo”不再包含在简单数据类型中时会发生什么?假设foo和goo代表相同类型的对象。也就是说,它们都是“Whazit”的实例,只是数据不同。所以现在事情可能看起来像这样......Thing-bar:int但是现在有一个新的模型叫做“Whazit”,看起来

  5. ruby-on-rails - 向 Rails 3 添加 Ruby 扩展方法的最佳实践? - 2

    我有一个要在我的Rails3项目中使用的数组扩展方法。它应该住在哪里?我有一个应用程序/类,我最初把它放在(array_extensions.rb)中,在我的config/application.rb中我加载路径:config.autoload_paths+=%W(#{Rails.root}/应用程序/类)。但是,当我转到railsconsole时,未加载扩展。是否有一个预定义的位置可以放置我的Rails3扩展方法?或者,一种预先定义的方式来添加它们?我知道Rails有自己的数组扩展方法。我应该将我的添加到active_support/core_ext/array/conversion

  6. Ruby 最佳实践 : working with classes - 2

    参见下面的示例,我想最好使用第二种方法,但第一种也可以。哪种方法最好,使用另一种的后果是什么?classTestdefstartp"started"endtest=Test.newtest.startendclassTest2defstartp"started"endendtest2=Test2.newtest2.start 最佳答案 我肯定会说第二种变体更有意义。第一个不会导致错误,但对象实例化完全过时且毫无意义。外部变量在类的范围内不可见:var="string"classAvar=A.newendputsvar#=>strin

  7. Ruby 和指南针路径与 yeoman 项目 - 2

    我安装了ruby​​、yeoman,当我运行我的项目时,出现了这个错误:Warning:Running"compass:dist"(compass)taskWarning:YouneedtohaveRubyandCompassinstalledthistasktowork.Moreinfo:https://github.com/gruUse--forcetocontinue.Use--forcetocontinue.我有进入可变session目标的路径,但它不起作用。谁能帮帮我? 最佳答案 我必须运行这个:geminstallcom

  8. ruby - 存储外部 API 的密码 - 最佳实践 - 2

    如果我构建了一个应用程序来访问来自Gmail、Twitter和Facebook的一些数据,并且我希望用户只需输入一次他们的身份验证信息,并且在几天或几周后重置,那会怎样是在Ruby中动态执行此操作的最佳方法吗?我看到很多人只是拥有他们客户/用户凭证的配置文件,如下所示:gmail_account:username:myClientpassword:myClientsPassword这看起来a)非常不安全,b)如果我想为成千上万的用户存储此类信息,它就无法工作。推荐的方法是什么?我希望能够在这些服务之上构建一个界面,因此每次用户进行交易时都必须输入凭据是不可行的。

  9. 区块链入门教程(6)--WeBASE-Front节点前置服务安装 - 2

    文章目录1.任务背景2.任务目标3.相关知识点4.任务实操4.1安装配置JDK4.2启动FISCOBCOS4.3下载解压WeBASE-Front4.4拷贝sdk证书文件4.5启动节点4.6访问节点4.7检查运行状态5.任务总结1.任务背景FISCOBCOS其实是有控制台管理工具,用来对区块链系统进行各种管理操作。但是对于初学者来说,还是可视化界面更友好,本节就来介绍WeBASE管理平台,这是一款微众银行开源的自研区块链中间件平台,可以降低区块链使用的门槛,大幅提高区块链应用的开发效率。微众银行是腾讯牵头设立的民营银行,在国内民营银行里还是比较出名的。微众银行参与FISCOBCOS生态建设,一定

  10. iNFTnews | 周杰伦18年前未发布的作品Demo,藏在了区块链技术里 - 2

    当音乐碰上区块链技术,会擦出怎样的火花?或许周杰伦已经给了我们答案。8月29日下午,B站独家首发周杰伦限定珍藏Demo独家访谈VCR,周杰伦在VCR里分享了《晴天》《青花瓷》《搁浅》《爱在西元前》四首经典歌曲Demo背后的创作故事,并首次公布18年前未发布的神秘作品《纽约地铁》的Demo。在VCR中,方文山和杰威尔音乐提及到“多亏了区块链技术,现在我们可以将这些Demos,变成独一无二具有收藏价值的艺术品,这些Demos可以在薄盒(国内数藏平台)上听到。”如何将音乐与区块链技术相结合,薄盒方面称:“薄盒作为区块链技术服务方,打破传统对于区块链技术只能作为数字收藏的理解。聚焦于区块链技术赋能,在

随机推荐