区块链作为一项可以改变互联网底层基础设施服务的分布式账本技术,已经作为我国重点发展的战略技术,逐渐在我国各行业落地应用。在社会分工日益明细的趋势下,区块链的分布式技术可以在一定程度上解决因分工导致生产要素在协同、整合方面出现的问题,这也在另一方面提高了社会生产的效率,可以为我国的全面深化改革创新、传统产业改造升级、大国“智”造等,注入新的技术能量。也可以预见,区块链技术将对城市的发展和管理,以及我们的日常生活产生越来越大的影响。
区块链是一项较新的技术,各国发展区块链技术基本处于同一起跑线,在奔跑的过程中,首先要做到“自立自强”,实现自主可控。在国际竞争环境下,自主可控的重要性不言而喻。其中,区块链技术的国产化是实现自主可控的重要途径之一。
本书以主流开源区块链技术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服务平台的实现,主要以代码的形式呈现。性能改造的实现,主要以详述性能优化方案的形式呈现。与物联网相结合,则主要以实际部署操作的形式呈现。













3.2.1 加密服务类型MSP的初始化
3.2.2 加密服务类型MSP的使用
4.1.1 BCCSP的条件编译
4.1.2 默认类型swbccsp
4.1.3 公钥加密标准类型pkcs11bccsp
4.2.1 签名方法
4.2.2 验签方法
5.1.1 公开身份对象
5.1.2 签名身份对象
5.1.3 序列化身份对象
5.2.1 公开身份的使用
5.2.2 签名身份的使用
5.2.3 序列化身份的使用
6.2.1 签名策略
6.2.2 隐式元策略
6.4.1 签名策略分析器
6.4.2 签名策略评估员
6.4.3 身份反序列化工具
6.4.4 接口实现
6.5.1 隐式元策略分析器
6.5.2 接口实现
6.9.1 通道策略配置
6.9.2 背书策略
6.9.3 权限控制列表ACL
7.7.1 goleveldb状态数据库
7.7.2 块文件blockfile的管理
7.7.3 简化块文件存储
7.10.1 交易管理工具
7.10.2 历史状态数据库
7.10.3 账本初始化工具
7.10.4 节点账本对象
7.10.5 节点账本管理对象
9.1.1 Fabric对gRPC的封装
9.1.2 服务通信功能
9.2.1 服务功能和原型定义
9.2.2 服务流程
9.3.1 服务功能和原型定义
9.3.2 服务流程
9.4.1 etcdraft共识集群网络拓扑结构
9.4.2 etcdraft共识集群配置和启动
9.4.3 etcdraft共识集群服务流程
9.5.1 服务功能和原型定义
9.5.2 服务的配置和启动
9.5.3 服务流程
9.6.1 服务配置和原型定义
9.6.2 服务流程
9.7.1 服务配置和原型定义
9.7.2 服务流程
10.2.1 TLS安全连接验证
10.2.2 身份验证
10.2.3 多版本并发验证
10.2.4 版本能力验证
11.1.1 peer程序的命令结构
11.1.2 peer节点的启动过程
11.2.1 orderer程序的命令结构
11.2.2 orderer节点的启动过程
11.3.1 zookeeper、kafka节点和共识排序服务
11.3.2 CouchDB节点与状态数据库
12.1.1 系统链码的类型和功能
12.1.2 系统链码的初始化
12.2.1 应用链码与系统链码的关系
12.2.2 应用链码与容器的关系
12.2.3 应用链码的安装交易过程
12.2.4 应用链码的实例化交易过程
12.2.5 应用链码的升级交易过程
12.2.6 应用链码作为外部服务
13.1.1 SDK的分类
13.1.2 SDK在Fabric区块链网络中的角色
13.2.1 Fabric区块链网络中的核心镜像
13.2.2 获取Fabric核心镜像
13.3.1 编译工程文件Makefile
13.3.2 编译Fabric项目工程
13.4.1 fabric-sample的结构
13.4.2 部署first-network
13.4.3 扩展first-network
13.4.4 以k8s为器,部署first-network
16.3.1 部署负载均衡层
16.3.2 Restful接口服务层
16.3.3 资源编排服务层
16.3.4 任务执行层
16.3.5 消息队列
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵
目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非
我认为我的问题最好用一个例子来描述。假设我有一个名为“Thing”的简单模型,它有一些简单数据类型的属性。像...Thing-foo:string-goo:string-bar:int这并不难。数据库表将包含具有这三个属性的三列,我可以使用@thing.foo或@thing.bar之类的东西访问它们。但我要解决的问题是当“foo”或“goo”不再包含在简单数据类型中时会发生什么?假设foo和goo代表相同类型的对象。也就是说,它们都是“Whazit”的实例,只是数据不同。所以现在事情可能看起来像这样......Thing-bar:int但是现在有一个新的模型叫做“Whazit”,看起来
我有一个要在我的Rails3项目中使用的数组扩展方法。它应该住在哪里?我有一个应用程序/类,我最初把它放在(array_extensions.rb)中,在我的config/application.rb中我加载路径:config.autoload_paths+=%W(#{Rails.root}/应用程序/类)。但是,当我转到railsconsole时,未加载扩展。是否有一个预定义的位置可以放置我的Rails3扩展方法?或者,一种预先定义的方式来添加它们?我知道Rails有自己的数组扩展方法。我应该将我的添加到active_support/core_ext/array/conversion
参见下面的示例,我想最好使用第二种方法,但第一种也可以。哪种方法最好,使用另一种的后果是什么?classTestdefstartp"started"endtest=Test.newtest.startendclassTest2defstartp"started"endendtest2=Test2.newtest2.start 最佳答案 我肯定会说第二种变体更有意义。第一个不会导致错误,但对象实例化完全过时且毫无意义。外部变量在类的范围内不可见:var="string"classAvar=A.newendputsvar#=>strin
我安装了ruby、yeoman,当我运行我的项目时,出现了这个错误:Warning:Running"compass:dist"(compass)taskWarning:YouneedtohaveRubyandCompassinstalledthistasktowork.Moreinfo:https://github.com/gruUse--forcetocontinue.Use--forcetocontinue.我有进入可变session目标的路径,但它不起作用。谁能帮帮我? 最佳答案 我必须运行这个:geminstallcom
如果我构建了一个应用程序来访问来自Gmail、Twitter和Facebook的一些数据,并且我希望用户只需输入一次他们的身份验证信息,并且在几天或几周后重置,那会怎样是在Ruby中动态执行此操作的最佳方法吗?我看到很多人只是拥有他们客户/用户凭证的配置文件,如下所示:gmail_account:username:myClientpassword:myClientsPassword这看起来a)非常不安全,b)如果我想为成千上万的用户存储此类信息,它就无法工作。推荐的方法是什么?我希望能够在这些服务之上构建一个界面,因此每次用户进行交易时都必须输入凭据是不可行的。
文章目录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生态建设,一定
当音乐碰上区块链技术,会擦出怎样的火花?或许周杰伦已经给了我们答案。8月29日下午,B站独家首发周杰伦限定珍藏Demo独家访谈VCR,周杰伦在VCR里分享了《晴天》《青花瓷》《搁浅》《爱在西元前》四首经典歌曲Demo背后的创作故事,并首次公布18年前未发布的神秘作品《纽约地铁》的Demo。在VCR中,方文山和杰威尔音乐提及到“多亏了区块链技术,现在我们可以将这些Demos,变成独一无二具有收藏价值的艺术品,这些Demos可以在薄盒(国内数藏平台)上听到。”如何将音乐与区块链技术相结合,薄盒方面称:“薄盒作为区块链技术服务方,打破传统对于区块链技术只能作为数字收藏的理解。聚焦于区块链技术赋能,在