fabric区块链开发 fabric属于哪种区块链产品

皕利分享 192 0

本篇文章主要给网友们分享fabric区块链开发的知识,其中更加会对fabric属于哪种区块链产品进行更多的解释,如果能碰巧解决你现在面临的问题,记得关注本站!

区块链-什么是区块链?金点币讯能读懂区块链?

区块链-什么是区块链fabric区块链开发?金点币讯能读懂区块链?

区块先锋动画视频带你了解什么是区块链,简单易懂

什么是区块链,卯贝属于区块链?

答:卯贝不是属于区块链,只是运用了区块链的技术,区块链的特性就是每件发生的事物都会被记录,不得删除更改。

区块链,什么是区块

区块链全面解读

一说起区块链,人们总是拿它与比特币相提并论。 2008年10月31日,一名叫“中本聪”的人在一个密码学邮件群组中发出电子邮件,宣称,“我一直在研究一个新的电子现金系统,这完全是点对点的,无需任何可信的第三方。 ”fabric区块链开发他推出了一个以比特币为交易货币的新体系。

什么是区块链技术?什么叫区块链?

区块链是一种分布式共享记账的技术,它要做的事情就是让参与的各方能够在技术层面建立信任关系。

区块链可以大致分成两个层面,一是做区块链底层技术;二是做区块链上层应用,即基于区块链的改造、优化或者创新应用。

区块链的核心意义到底是什么,我们的理解是,区块链最核心的意义是参与方之间建立数据信用,通过单方面的对抗,在明确规定下打造单方面的生态共同保障完整机会,这是一个体系,这种建立可以结束没有区块链之前的问题,没有区块链之前,在数据共享的时候是无法做到有新的共享,即使做定向也只是给你一个接口,区块链有了以后,让参与方是实现信用的共享。

区块链的底层平台有哪些?

答:主要有一下几类:

1、比特币。是最早的区块链开发便是基于比特币的区块链网络进行开发了,由于比特币是全球最广泛使用和真正意义的去中心化,就区块链应用来说,比特币就是世上最强大的锚,拥有最大的权威性。

2、以太坊。可以说除了比特币外,以太坊目前在区块链平台是最吸引眼球的。 以太坊是一个图灵完备的区块链一站式开发平台,采用多种编程语言实现协议,采用Go语言写的客户端作为默认客户端(即与以太坊网络交互的方法, 支持其他多种语言的客户端)。

3、IBM HyperLedger 。又叫 fabric,他的目标是打造成一个由全社会来共同维护的一个超级账本,fabric源于IBM,初衷为了服务于工业生产,IBM将44,000行代码开源,是了不起的贡献,让我们可以有机会如此近的去探究区别于比特币的区块链的原理。

4、LISK。是新一代的区块链平台,允许JavaScript(又是Javascript技术,工程师们注意了)的开发和基于分布的分散的应用程序使用一个易于使用的,功能齐全的生态区块链系统。

5、网录区块链平台。是网录区块链底层技术的研发成果和能够进行商业交付的基础平台,网录区块链平台除了服务网录公链外,也是网录为客户打造私有链和联盟链的基础平台。

什么是区块链?什么是数字货币的区块链?

狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一 种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数 据的一种全新的分布式基础架构与计算范式。

现在,主流的数字货币基本上都是基于区块链技术开发的。区块链是数字货币的底层技术。国内的茶本位数字货币普银就是基于区块链技术开发的。

什么是区块链

区块链的本质是一种去中心化的记账系统,比特币是这个系统上承载的“以数字形式存在”的货币。区块链是比特币背后的一套由信用记录和信用记录的清算构成的体系。

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 [1] 。

区块链(Blockchain)是比特币的一个重要概念,火币网联合清华大学五道口金融学院互联网金融实验室、新浪科技发布的《2014—2016全球比特币发展研究报告》提到区块链是比特币的底层技术和基础架构 [2] 。它本质上是一个去中心化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块

区块链的进化方式是:

▪ 区块链1.0——数字货币

▪ 区块链2.0——数字资产与智能合约

▪ 区块链3.0——IFMChain,区块链正式链接移动终端

如何创建属于自己的 fabric 区块链

这个是需要借助平台进行创建。

IBM中国研究院开发的超能云(SuperVessel)平台提供了给区块链爱好者、开发者的区块链开发测试环境。通过该平台,用户能够免费、超快速创建基于Hyperledger Fabric的多节点区块链、并在自己的链上花式玩转智能合约。

当然,国外的去中心化内容分享平台DECENT也是可以创建的。

区块链之联盟链(三) 认识Fabric

Fabric 是超级账本联盟推出的核心区块链框架,它适合在复杂的企业内和企业间搭建联盟链。根据超级账本联盟的目标, Fabric 被建设为一个模块化的、支持可插拔组件的基础联盟链框架。;

与以太坊系的Quorum不同,Fabric从一开始就只考虑企业间的应用。其独有的channel概念,将企业根据业务目的不同以不同的子网连接起来, 每一个子网对应一个channel,而每个channel有自己独立的区块链。而Quorum很显然是只有一个公网(所有企业节点都加入进去),企业与企业间的私有业务是通过Private Manager 完成的。

理解channel的最简单方法就是,将它类比为一个消息服务提供的Topic,实际上Fabic最早就是基于Kafka 的分布式消息服务来实现。

       在Fabric网络中,一个企业可以有一个或多个节点加入整个联盟链;一个企业可以加入1个或者多个Channel(子网);  一个节点可以加入1个或者多个channel。每个channel构成一个子网,所以Fabric 是 一种由子网组成的网络。

那么Fabric是怎么实现智能合约的执行和完成业务上链(将事务结果记录在区块链里)的呢?

与其它框架不同, Fabric 将整个过程分成了三个阶段:

业务背书阶段 : 客户的请求发送的背书节点,通过智能合约完成业务的计算(但不更新状态),并完成背书;将背书结果返回个客户端。

业务的排序阶段 : 客户端将背书结果通过Channel被发送到排序节点(orderer),在排序节点完成事务的排序,并打包到block里,最后下发给所有连接到channel的节点。

业务验证并写入账本阶段 : 通过Gossip 网络,所有Channel的节点都会接收到新的block,节点会验证block中的每一个事务,确定是否有效:有效地将会跟新world state,无效的将会标志为“无效”,不会更新World state,但整个block会被完整的加入到帐本中(包括无效的事务)。

根据以上的描述,Fabric 节点实际可以分为  ,普通节点和Order节点:

 Peer, 普通节点, 完成背书(包括只能合约的执行)和验证.

orderer,  排序节点,完成排序。

加入orderer节点的Fabric网络可以被描述如下:

每一个Channel,都定义了所有属于channel的节点,但是并不需要所有节点都连接到Orderer 节点(节点间可以通过gossip 协议通讯来传播私有数据或事务).

       在区块链中,共识是区块链的基础。与公有链不同,联盟链的共识要求所有加入账本的事务是确定的、最终的,也就是不可以有分叉,区块与区块间的顺序是一定的,只存在唯一条链。在Fabric 中,这个客观需求正是由排序实现的,所有的事务将被提交给orderer节点获得确定的顺序,并最终打包成block进入帐本。 Fabric 从1.4.1开始支持基于Raft实现排序服务,  可以认为基于Raft实现共识。

基于RAFT的排序服务相对于早期的Kafka 具有更好的分布性,配置更加简单,是联盟链里常用的一个常用的达成共识的算法,Quorum就 默认使用RAFT作为共识层。简单的说,RAFT是一个leader和follower的模式, 所有加入RAFT网络的节点,任意时候都有一个leader,  只有这个leader有权决定事务的顺序,并打包成Block,其它节点只能作为follower提交事务和同步block。

基于FAFT网络,每个企业可以有一个或多个节点参与到Orderer中去。在Frabric中企业间的网络连接可以变化成如下形式:

       区块链的使用用户在以太网中被称作EOA(External of Account), EOA的载体是钱包。我们沿用这个概念,来看看Fabric是如何实现用户和发起事务的。Fabric中EOA是一个CA中心发布的certificate(x.509),一个Certificate代表一个Identity(这与以太坊还是有很大区别的, 以太坊中一个EOA其实是一个hash地址),EOA能够参与的channel以及被授权的操作是有channel的MSP( Membership Service  Provider)决定的(如下图)。

注:certificate 是一种密码学上验证身份的通用做法; certificate包含了个人的信息,公钥以及发布这个certificate的CA的签名。验证方只需要拥有这个CA的证书(包含CA的公钥),就可以验证这个签名是否正确,certificate的内容是否有篡改。简单的说,通过CA和Certificate,我们可以获得一个可验证的的身份和信任链。

      如上图,fabric中通要使用Wallet作为EOA的载体,一个Wallet中可以包含多个Identity(x.509 certificate)。 Identity 通过 CA提供的信任链来验证正确性。

  验证了身份之后, Fabric 通过MSP在区块链网络中解决该身份是否代表组织的成员和在组织内具有什么角色。例如,channel首先会验证当前用户Identity是否是有效地身份,然后通过MSP查看其所处的企业和具有的角色,最终确定该用户是否有权执行操作。

可以说,Fabric的访问控制是通过MSP来完成的。在每一个需要访问控制的地方都需要定义一个MSP。  例如,每个channel都定义一个MSP,这个MSP规定了在channel范围内资源的访问权限。 MSP 是Fabric里一个晦涩难懂的概念,也是其赋予企业间安全访问的基础。

前文提到, Fabric 将业务处理和上网分成了三个部分, 背书,排序,验证后加入账本。

其中背书是Fabric执行智能合约的阶段。以太坊中,智能合约是在EVM中执行的,有多种语言支持。 在Fabric,智能合约被称为chaincode: 一个chaincode 可以理解为是智能合约的容器,可以包含一个或多个智能合约, 不用于EVM, chaincode是在 JVM 或NodeJS中执行。

客户应用程序通过智能合约来访问账本,每一个可访问的智能合约都被安装在客户端可以访问的节点上,并被定义在channel里。(有只能合约的节点被称为背书节点,没有只能合约的节点被称未提交节点,提交节点只维护账本)

客户应用提交一个交易请求, 请求到达背书节点, 背书节点首先会验证客户的签名,确保客户的身份有权执行本次交易,接着执行交易提及的智能合约(chaincode),并生成一个背书响应(或者叫做交易提案,tran-proposal)。这个背书响应中通常包含World state 的读集合,写集合, 以及节点对本次交易的签名。这里与以太坊系联盟链最主要的不同是: 背书阶段只模拟交易,并不真正更新交易结果。 而真正更新交易在第三阶段完成。背书节点最后将生成的背书响应fanhui给客户端, 智能合约部分的执行就结束了。

通常一个交易的执行需要多方的签名,所以客户端需要将一个交易发送给多个背书节点,这些背书节点的选择需要满足背书策略的要求。

下图是一个包含有客户、背书节点,提交节点的网络示意图。

根据Fabric官方的参考文档,客户交易的正果过程可使用下图描述。

如上图,从1到3,为背书阶段,4为排序阶段,4.1,4,2, 5为验证提交阶段。 参考 Frabic的节点 概念,可以了解更多在交易细节的概念。  

总的来看, Fabric 更专注于企业间,通过上文,可以让大家对Fabric的基本构成与概念有一个总的了解。  Fabric本身并不神秘,都是使用的现有的企业间的技术。要更好的了解,建议参考阅读分布式消息系统和企业的安全基础设施(CA相关)的支持。与以太坊系联盟链实现比较,  Fabric 的子网更概念对于复杂企业间应用适应更强,但是其复杂的安全考量,使得运营成本很高,另外,Fabric 使用Certificate做为用户身份,有很大的局限性,在新的2.0里,Fabric对于此处将有所改变。

下一篇,我们将来看看Sawtooth , 由Inter 提供的区块链框架。

区块链之联盟链(一) 认识以太坊

区块链之联盟链(二) 认识Quotum

区块链之联盟链(三) 认识Fabric

区块链之联盟链(四) 认识Sawtooth

基于Spring的Fabric区块链Gateway,简化区块链开发

学习Hyperledger Fabric有一阵子了,从网络搭建、SDK调用到基于Spring的Gateway的开发,一路走来,感觉还是有不少的坑。最近,终于有空,将这些东西整理出来,希望能帮到同路的小伙伴们。详细文档地址: 。

前一阵子,曾整理过一篇文章,详细的介绍了Fabirc网络的搭建和部署,小伙伴们请自行查阅:推荐几个开源项目,教你快速搭建Hyperledger Fabric区块链网络

1. Java SDK: GitHub - hyperledger/fabric-sdk-java

2. Gateway: GitHub - hyperledger/fabric-gateway-java

这是我基于官方的Gateway项目,结合Spring MVC做出的一套框架。主要是将Chaincode的函数调用,包装成了Spring的服务。

1. 项目地址: GitHub - ecsoya/spring-fabric-gateway

2. 详细文档:

3. Maven地址:

一个精简版的Fabric区块链浏览器。

1. 项目地址: GitHub - ecsoya/spring-fabric-gateway

2. 详细文档:

3. Maven地址:

以上的项目,包含官方的SDK和Gateway,都离不开 Fabric 网络配置文件的支持。

所谓的配置文件,就是将所有的组织、Peer和其相关的证书,全部配置到一个JSON文件或YAML文件中,方便在项目中读取。

详细文档:

1. 文档:

2. 源码: GitHub - ecsoya/fabric-demo

写到这里,本文关于fabric区块链开发和fabric属于哪种区块链产品的介绍到此为止了,如果能碰巧解决你现在面临的问题,如果你还想更加了解这方面的信息,记得收藏关注本站。

标签: #fabric区块链开发

  • 评论列表

留言评论