区块链Fabric,区块链Fabric的节点类型区块链fabricc

zhousys 区块链知识 2023-10-29 06:28 550

摘要:区块链fabriccHyperledgerFabric是一个开源的分布式账本框架,它可以用于构建可定制的解决方案,以满足企业级应用程序的需求。智能合约是fab...

区块链fabricc

Hyperledger Fabric是一个开源的分布式账本框架,它可以用于构建可定制的解决方案,以满足企业级应用程序的需求。智能合约是fabric框架中的一个重要组成部分,它用于定义和管理交易的规则,以确保交易的安全性和一致性。

此外,区块链网络是fabric框架的另一个重要组成部分,它提供了一种高度可靠的数据共享机制,可以跨组织和边界安全地实现数据的交换和共享。

最后,身份验证是fabric框架中另一个重要的组成部分,它提供了一种可靠的身份验证机制,可以确保参与者的身份和访问权限,以保护网络的安全性。

Ⅰ 区块链正式进入3.0时代,房地产、供应链等将成应用重点领域

随着区块链的不断发展,区块链的应用覆盖的范围越来越广,伴随可扩展性和效率的提高,区块链应用范围将超越金融范畴,拓展到物流、地产和物联网等领域,成为未来 社会 的一种最底层的协议,这也就意味着区块链将进入3.0时代。


区块链1.0时代是以BTC(去中心化概念)为代表,更多的是起到一种分布式记账的作用如BTC、Ripple、BCH、莱特币、狗狗币等。更多的是充当数字货币记账用的。当然第一个阶段发展的也并不完美,比特币还有很多问题需要解决,比如扩容,闪电支付,硬分叉等。

随着进一步完成,区块链来到了2.0时代,以ETH(智能合约)代表,进入合约阶段。


ETH为代表的区块链2.0是一大进步,但仍然存在着很多问题,比如通道拥堵,交易速度慢,分叉风险,高额手续费等等。举例来说,风靡一时的加密猫( CryptoKitties)在以太坊平台上线后,最高时占据了约25%的以太坊网络,造成了整个以太坊网络的拥堵,严重地影响了其他以太坊用户的体验。目前的发展就是处于第一个阶段到第二个阶段的过度过程。


在告别了1.0和2.0时代之后,得益于技术的不断发展,区块链变得更加实用。这也意味着区块链将彻底脱离去初创时期的金融属性,凭借其去中心化等特性,进入到各行各业的实际应用场景中去。

这也意味着区块链正式开启其3.0时代——全面应用的时代。而3.0时代的区块链产业结构,也更加复杂,今天就为大家简单分析一下。


3.0时代区块链产业分为基础层、服务层、应用层三个层次。


(1)、基础层

对应的产业链上中下游包括:上游底层技术及基础设施(核心技术、设备、底层平台部署方式),中游服务层主要是面向开发者提供基于区块链技术的应用;下游应用层包括金融、供应链管理、智能制造、政府企业、服务、 社会 应用等。

硬件、技术及基础设施厂商主要提供区块链应用所必备的芯片、矿机、矿池、硬盘、路由器等基础设施。

底层平台部署方式可以分为公有链、联盟链、私有链。

底层技术包括核心基础组件、协议和算法。基于底层核心技术组件,针对不同应用场景提供不同功能,包括智能合约、可编程资产、激励机制、成员管理等。


基础层提供底层区块链或分布式账本技术框架,主要包括以太坊、Hyperledger Fabric、R3 Corda、FISCO BCOS等。


(2)、服务层

服务层是指BaaS(Blockchain as a Service)平台,国内主要的BaaS平台有蚂蚁区块链BaaS平台、腾讯云TBaaS、平安壹账链BaaS平台等。


主要是面向开发者提供基于区块链技术的应用,是在底层技术的基础上提供智能合约、信息安全、数据服务等产品化服务,提高开发者在平台层开发应用的便捷性和可拓展性。


应用及服务厂商负责区块链通用技术及技术扩展平台研发、数字货币教育与存储平台搭建等工作,为行业应用层提供技术支持。

(3)、应用层

应用层表现为核心应用组件,包括智能合约、可编程资产、激励机制、成员管理等。


是指区块链的终端使用者或服务供应商,现在区块链的主要应用场景有跨境支付、防伪溯源、供应链金融、贸易融资、电子票据、ABS等。


服务对象分为两大类:B端(起步阶段):区块链+(金融、供应链管理、版权保护、教育);C端(率先落地):区块链+(共享经济、泛 娱乐 )。



下游区块链应用领域为区块链技术与现有行业的结合运作,现在,多个行业已经开启了区块链3.0的应用时代。


(1)、区块链+供应链

区块链+供应链实现商品信息全流程追溯。传统供应链的溯源防伪系统存在信息不透明、数据容易篡改、安全性差和相对封闭等弊端,而利用区块链技术和物联网技术,可将商品的原材料采买过程,生产过程和流通过程的信息进行整合和追溯,真正实现跨越品牌商、渠道商、零售商、消费者,精细到一物一码的全流程正品追溯,显著提升用户信任体验。


(2)、区块链+物联网

搭建万物互联时代的信息交流网络。随着物联网中设备数量的增长,区块链的分布式特性为物联网自我治理提供了途径,可以帮助物联网中的设备理解彼此,并了解不同设备间的关联,从而实现对物联网的分布式控制。


(3)、区块链+医疗

保障医疗数据安全共享。运用区块链技术对医疗数据进行数学加密,可有效防止医疗数据被恶意修改等风险。应用区块链技术开发的医疗数据共享和交换系统,将加密后的医疗数据上传,可以实现数据在患者、各医疗机构之间快速、高效、安全地进行共享和流通,有效简化了医疗数据的调用流程,为精确诊断病情提供数据保障。


(4)、区块链+房地产

区块链在房地产行业的潜在应用场景非常多,常见的如房产交易。买卖产权的过程中的痛点在于:交易过程中和交易后缺乏透明,大量的文书工作,潜在的欺诈行为,公共记录中的错误等等,而这些还仅仅只是一部分。区块链提供了一个途径去实现无纸化和快速交易的需求。此外,房地地产区块链应用可以帮助记录、追溯和转移地契、房契、留置权等等,还给金融公司、产权公司和抵押公司提供了一个平台。区块链技术致力于安全保存文件,同时增强透明性,降低成本。此外,区块链还应用建筑工程领域,在当前大火的城市更新也有很多企业在应用这一技术。例如深圳的兰房链就基于区块链提出了区块链+城市更新/建筑工程/房地产开发等一揽子解决方案,全面服务于房地产行业诸多领域,目前其官网、移动应用均已上线。


此外,区块链在供应链金融、股票交易、银行业等已经有了很多的应用,此处不再一一赘述。



作为我国十四五规划的重要内容之一,官方早已提出要加快推动 区块链技术和产业创新发展 ,积极推进 区块链和经济 社会 融合发展


而要实现上述两个发展,其关键在于以下两点:


1、区块链技术核心技术突破。

区块链技术是目前我国和欧美差距最小的技术,官方特别强调在这个新兴领域我国要走在理论最前沿、占据创新制高点、取得产业新优势。要推动协同攻关,加快推进核心技术突破,为区块链应用发展提供安全可控的技术支撑。


目前区块链技术大多数依然停留在概念炒作阶段,很多业务场景单纯为了区块链而区块链。目前为止我国还没有人能在全球范围内解决三元悖论等核心技术困境,因此我们必须回归基础理论和核心技术,通过长期潜心研究,才能取得重大突破。


事实上,官方对区块链技术理论技术和后续的应用发展提出了非常高的要求,做好区块链基础理论研究,着力攻克一批关键核心技术,真正把技术研发的担子挑起来,是当前区块链发展的关键。


2、提升国际话语权和规则制定权。

不同于以往的信息技术,区块链技术具有很强的扩张性,或者叫侵略性,它的规则或者话语权决定了它的影响范围,因为每一个上链开展业务的个体或机构必须服从区块链所定的规则,无论中外均是如此。举个例子,大家使用windows系统时必须要服从windows的规则,但是windows只是为用户规定了信息交互的规则,这对我们来说是可以接受的,而区块链则规定了产业治理规则,区块链的治理规则凭借其分布式特征,其影响力可迅速超越国界和地域限制。


为了实现上述两点,我们要加强人才队伍建设,建立完善人才培养体系,打造多种形式的高层次人才培养平台,培育一批领军人物和高水平创新团队。

区块链作为架构性创新技术,对复合型人才需求巨大,要求从事者掌握涉及密码学、信息科学、基础数学等多种专业技术知识。发展区块链,必须加强学科深度交叉融合的人才队伍建设,从基础研究、应用研发、产业融合等方面前瞻和系统性地建立人才培育体系。


区块链技术是未来数字经济的重要组成部分,对于各行各业,它都有着丰富的优势。尽管已经进入3.0时代,但区块链在各行各业的垂直落地应用,才刚刚开始。


对于区块链的未来,你怎么看?

Ⅱ 各区块链架构的横向比较

各区块链架构的横向比较
时常听人们谈起区块链,从 2009 年比特币诞生至今,各式各样的区块链系统或基于区块链的应用不断被开发出来,并被应用到大量的场景中,而区块链技术本身也在不停地变化和改进。
区块链又被称为分布式账本,与之对应的则是中心化账本,比如银行。与中心化账本不同的是,分布式账本依靠的是将账本数据冗余存储在所有参与节点中,来保证账本的安全性。简单地说,区块链会用到三种底层技术:点对点网络技术、密码学技术和分布式一致性算法。而通常,区块链系统还会“免费附赠”一种被称为智能合约的功能。智能合约虽然不是区块链系统的必要组成部分,但由于区块链天生所具备的去中心化特点,使它可以很好地为智能合约提供可信的计算环境。
为了适应不同场景的需求,区块链系统在实际应用的过程中往往会需要进行各种改造,以满足特定业务的要求,比如身份认证、共识机制、密钥管理、交易频次、响应时间、隐私保护、监管要求等。而实际应用区块链系统的公司往往没有进行这种改造的能力,于是市场上慢慢出现了一些用于定制专用区块链系统的框架,采用这些框架就可以很方便地定制出适用于企业自身业务的区块链系统。
本文将对目前市场上几个典型的区块链框架进行横向对比,看看它们都有哪些特点,以及它们之间到底有哪些区别。为了保持对比的公正性,本文将只针对开源的区块链框架进行讨论。
各区块链架构的简单介绍
1、比特币
比特币(bitcoin)源自一名叫做中本聪(Satoshi Nakamoto)的人在 2008 年发表的一篇名为《比特币:一种点对点的电子现金系统》(Bitcoin: A Peer-to-PeerElectronic Cash System)的论文,文中描述了一种被他称为“比特币”的电子货币及其算法。在之后的几年里,比特币不断成长和成熟,而它的底层技术也逐渐被人们认识并抽象出来,这就是区块链技术。比特币作为区块链的鼻祖,在区块链的大家族中具有举足轻重的地位,基于比特币技术开发出的山寨币(altcoins)的数量有如天上繁星,数不胜数。
从论文中可以得知,中本聪设计比特币的目的,就是希望能够实现一种完全基于点对点网络的电子现金系统,使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的中介机构。总结来说,他希望比特币的设计能够实现以下这些目标:
● 不需要中央机构就可以发行货币
● 不需要中介机构就可以支付
● 保持使用者的匿名性
● 交易无法被撤销
从电子现金系统的角度来看,以上这些目标在比特币中基本都得到了实现,但是依然有一些技术问题有待解决,比如延展性攻击、区块容量限制、区块分叉、扩展性等。
在应用场景方面,目前大量的数字货币项目都是基于比特币架构来设计的,此外还有一些比较实际的应用案例,比如彩色币、t? 等。
彩色币(coloredcoin),通过仔细跟踪一些特定比特币的来龙去脉,可以将它们与其他的比特币区分开来,这些特定的比特币就叫作彩色币。它们具有一些特殊的属性,从而具有与比特币面值无关的价值,利用彩色币的这种特性,使得开发者可以在比特币网络上创建其它的数字资产。彩色币本身就是比特币,存储和转移不需要第三方,可以利用已经存在的比特币的基础。
t? 是比特币区块链在金融领域的应用,是美国在线零售商 Overstock 推出的基于区块链的私有和公有股权交易平台。
2、以太坊
以太坊(ethereum) 的目标是提供一个带有图灵完备语言的区块链,用这种语言可以创建合约来编写任意状态转换功能,用户只要简单地用几行代码来实现逻辑,就能够创建一个基于区块链的应用程序,并应用于货币以外的场景。
以太坊的设计思想是不直接“支持”任何应用,但图灵完备的编程语言意味着理论上任意的合约逻辑和任何类型的应用都可以被创建出来。总结来说,以太坊在比特币的设计目标之外,还需要实现以下几个目标:
● 图灵完备的合约语言
● 内置的持久化状态存储
目前基于以太坊的合约项目已达到数百个,比较有名的有 Augur、TheDAO、Digix、FirstBlood 等。
Augur 是一个去中心化的预测市场平台,基于以太坊区块链技术。用户可以用数字货币进行预测和下注,依靠群众的智慧来预判事件的发展结果,可以有效地消除对手方风险和服务器的中心化风险。
限于篇幅,基于以太坊智能合约平台的项目就不多介绍了。基于以太坊的代码进行改造的区块链项目也有不少,但几乎都是闭源项目,只能依靠一些公开的特性来推断,所以就不在本文展开讨论了。
3、Fabric
Fabric 是由 IBM 和 DAH 主导开发的一个区块链框架,是超级帐本的项目成员之一。它的功能与以太坊类似,也是一个分布式的智能合约平台。但与以太坊和比特币不同的是,它从一开始就是一个框架,而不是一个公有链,也没有内置的代币(token)。
超级账本(hyperledger)是 Linux 基金会于 2015 年发起的推进区块链技术和标准的开源项目,加入成员包括:荷兰银行(ABN AMRO)、埃森哲(Accenture)等十几个不同利益体,目标是让成员共同合作,共建开放平台,满足来自多个不同行业各种用户案例,并简化业务流程。
作为一个区块链框架,Fabric 采用了松耦合的设计,将共识机制、身份验证等组件模块化,使之在应用过程中可以方便地替换成自定义的模块。除此之外,Fabric 还采用了容器技术,将智能合约代码(chaincode)放在 docker 中运行,从而使得智能合约可以用几乎任意的高级语言来编写。
以下是 Fabric 的一些设计目标:
● 模块化设计,组件可替换
● 运行于 docker 的智能合约
目前已经有不少采用 Fabric 架构进行开发的概念验证(POC)项目在实施过程中,其中不乏一些金融机构做出的尝试,不过由于项目刚刚起步,还没有比较成熟的落地应用。
4、DNA
DNA(Distributed Networks Architecture,分布式网络架构),是由总部位于上海的区块链创业公司“分布科技”开发的区块链架构,可以同时支持公有链、联盟链、私有链等不同应用类型和场景,并快速与业务系统集成。
与以太坊、Fabric不同的是,DNA 在系统底层实现了对多种数字资产的支持,用户可以直接在链上创建自己的资产类型,并用智能合约来控制它的发行逻辑。对于绝大部分的区块链应用场景,数字资产是必不可少的,而为每一种数字资产都开发一套基于智能合约的转账、发行逻辑是非常浪费且低效的。因此,由区块链底层提供直接的数字资产功能是十分必要的。而对于那些完全不需要数字资产的应用场景,同样可以基于 DNA 提供的智能合约架构来编写任意的自定义逻辑来实现。
DNA 的设计目标主要有以下几点:
● 多种数字资产的底层支持
● 图灵完备的智能合约和状态持久化
● 跨链互操作性
● 交易的最终性
目前已有不少金融机构采用 DNA 架构来进行区块链概念验证产品的开发。除此之外,还有一些已经落地的区块链项目,如小蚁区块链、法链等。
小蚁(antshares)是一个定位于资产数字化的公有链,将实体世界的资产和权益进行数字化,通过点对点网络进行登记发行、转让交易、清算交割等金融业务的去中心化网络协议。它采用社区化开发的模式,在架构上与 DNA 保持一致,从而可以与任何基于DNA 的区块链系统发生跨链互操作。
法链是全球第一个大规模商用的法律存证区块链,一个底层基于 DNA区块链技术,并由多个机构参与建立和运营的证据记录和保存系统。该系统没有中心控制点,且数据一旦录入,单个机构或节点无法篡改,从而满足司法存证的要求。
5、Corda
Corda 是由一家总部位于纽约的区块链创业公司 R3CEV 开发的,由其发起的 R3区块链联盟,至今已吸引了数十家巨头银行的参与,其中包括富国银行、美国银行、纽约梅隆银行、花旗银行、德国商业银行、德意志银行、汇丰银行、三菱 UFJ 金融集团、摩根士丹利、澳大利亚国民银行、加拿大皇家银行、瑞典北欧斯安银行(SEB)、法国兴业银行等。
从 R3 成员的组成上也可以看出,Corda 是一款专门用于银行与银行间业务的区块链架构。尽管 R3 自己声称 Corda 不是区块链,但从各项特征来看,它具备区块链的一些特性。
技术对比
1、数字资产
接下来,将对前文中提到的这些区块链框架进行一系列的技术对比,并从多个维度展开介绍它们的区别与相似之处。

区块链的内置代币通常是一种经济激励模型和防止垃圾交易的手段。比特币天生就有且只有一种内置代币,所以在比特币系统中所有的“交易”本质上都是转账行为,除非通过外部的协议层来给比特币增加额外的数字资产。
以太坊和 DNA 具有内置代币,它们的作用除了以上提到的经济激励和防止垃圾交易之外,还具有为系统内置功能提供一个收费的渠道。比如以太坊的智能合约运行需要消耗 GAS,而 DNA 的数字资产创建也需要消耗一定的代币。
以太坊和 Fabric 没有内置的多种数字资产支持,而是通过智能合约来实现相应的功能。这种方式的好处在于,系统设计可以做到非常简洁,而且资产的行为可以任意指定,自由度极高。然而这样的设计也会带来一系列的负面影响,比如所有的资产创建者不得不自己编写重复的业务逻辑,而用户也没有办法通过统一的方式去操作自己的资产。
相比之下,DNA 和 Corda 采用了在底层支持多种数字资产的方式,让资产创建者可以方便地创建自己的资产类型,而用户也可以在同一个客户端中管理所有的资产。对于逻辑更加复杂一点的业务场景来说,他们同样可以利用智能合约来强化资产的功能,或者创建一种与资产无关的业务逻辑。
2、账户系统

UTXO(Unspent Transaction Output)是这样一种机制:每一枚数字货币都会被登记在一个账户的所有权之下,一枚数字货币有两种状态,即要么还没有被花费,要么已经被花费。当需要使用一枚数字货币的时候,就将它的状态标记为已经花费,并创造一枚新的与之等额的数字货币,将它的所有权登记到新的账户之下。在这个过程中,被标记为已花费的数字货币就被称为交易的输入,而创造出来的新的数字货币被称为交易的输出,在一笔交易中,可以包含多个输入和多个输出,但是输入之和与输出之和必须相等。要计算一个账户的余额时,只要将所有登记在该账户下的数字货币的面额相加即可得出。
比特币和 Corda 就采用了 UTXO 这样一种账户机制,而以太坊则采用了更加直观的余额机制:每个账户有一个状态,状态中直接记录了账户当前的余额,转账的逻辑就是从一个账户中减去一部分余额,并在另一个账户中加上相应的余额,减去的部分和加上的部分必须相等。DNA 在账户机制上同时兼容这两种模式。
那么 UTXO 模式和余额模式,究竟有什么优缺点呢?UTXO 最大的好处就是,基于 UTXO 的交易可以并行验证且任意排序,因为所有的 UTXO 之间都是没有关联的,这对区块链未来的伸缩性是有很大帮助的,而基于余额的设计就没有这个优势了;反过来,余额设计的优点是设计思想非常简洁和直觉化,便于程序实现,特别是在智能合约中,要处理 UTXO 的状态是非常困难的。这也是为什么以智能合约为主要功能的以太坊选择余额设计的原因,而比特币、OnchainDNA、Corda 这些以数字资产为核心的架构则更倾向于 UTXO 设计。
关于身份认证,比特币和以太坊基本没有身份认证的设计,原因很简单,因为这两者的设计思想都是强调隐私和匿名,而反对监管和中心化,而身份认证就势必要引入一些中心或者弱化的中心机构。Fabric、DNA 和 Corda 不约而同地选择了采用数字证书来对用户身份进行认证,原因在于这三者都有应用于现有金融系统的设计目标,而金融系统必然要考虑合规化并接受监管,此外现有的金融系统已经大范围地采用数字证书方案,这样便可以和区块链系统快速集成。

Ⅲ 区块链和HyperLedger Fabric(五)共享账本

peer ledger:存储在背书节点和记账节点
orderer ledger:存储在order service node

Chaincode是无状态的。Chaincode存储在节点上,账本只会存储hash值

账本的隔离和隐私性用多通道(Multiple Channels)技术来保护

Query System Chaincode(QSCC)
背书节点需提前设定,也作为记账节点

transaction事务处理流1.X
• client应用(向一个或多个Peer节点(背书节点))发送交易请求(对事务的背书请求);
• 背书节点模拟执行ChainCode,但并不将结果提交到本地账本(World state,不会修改底层账本),只是将结果(读写集)加密签名返回给client应用;
• 应用收集所有背书节点的结果后,验证背书策略是否满足和模拟执行结果是否一致(去除不确定无效的交易,1.0未实现)将结果广播给Orderers;
• Orderers执行共识过程,并生成Block,通过消息通道批量的将Block发布给Peer节点(记账节点);
• 各个Peer节点验证交易,并提交到本地账本中.通知client端处理结果

记账节点Committing Peer:维护账本和状态
合约部署都需要指定背书策略。AND,OR,OutOf
背书策略在chaincode实例化时指定
ESCC
VSCC
账本保存Blockchain和World state(维护当前状态,方便应用快速查询)
Block(s):Block header(Block number,当前区块hash,前区块hash),Block data,Block Metadata(写入时间,写入人,签名)
transactions:header(名字,version),签名,proposal(input参数),Pesponse(执行结果前后的数据),Endorsements(背书节点返回的结果list)
World State:kv形式。维护账本当前信息
Smart Contract:业务角度。定义组织的业务规则,创建交易,记录到账本,打包进chaincode。操作World state DB:get,put,delete(put和delete会增加新的记录,block。只会删除world state的数据,在账本里新增记录)
chaincode可以包含多个合约,实现打包的角度

Chaincode Lifecycle
打包(签名,)--安装(peer)--实例化--运行
更新--运行
一个peer可以安装多个chaincode

System Chaincode
运行在peer上,LSCC(Lifecycle),CSCC(配置),QSCC(查询)

Peer
Leader Peer:连接order推送新的区块,随机传播其它记账节点。选举方式(静态指定,动态生成)。一个分区一个leader。
Anchor Peer:(Gossip协议,降低order负担)节点相互认识。
共识:读写集

网络搭建:
1.配置启动order Service
2.配置启动peer
3.安装chaincode
4.创建channel
5.加入channel
6.实例化chaincode

Ⅳ 区块链之联盟链(三) 认识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

Ⅳ 区块链底层技术PK

常见的区块链底层技术:Ethereum(以太坊),EOS,Fabirc,Fisco Bcos,CITA

平台简介

1.Ethereum

以太坊( Ethereum )是由Vitalik Buterin和Gavin Wood领导开发的支持智能合约的 去中心化应用 平台。以太坊提供图灵完备的脚本语言,极大拓展了区块链技术的应用。项目于2013年末发布 白皮书 启动,2015年7月产生创世区块。近期即将进行扩容升级。

2.EOS

EOS 是由BM(Daniel Larimer)领导开发的区块链应用平台,已于2018年6月正式上线。其slogan是“去中心化一切”,旨在为区块链提供更高的性能。

3.Fabric

Fabric是由开源超级账本( Hyper ledger)区块链联盟发布的可用于构建应用的产品级解决方案,并且已有上百个概念证明项目会进行过构建。于2017年7月发布正式版。

4.CITA

CITA是由EEA(企业以太坊联盟)创始成员之一的 Crypt ape秘猿科技自主研发的企业级区块链产品原型。CITA以高可靠性、高性能、高扩展性以及未来适应性为设计目标,于2017年7月发布开源版本。

5.BCOS

BCOS是微众银行、万向区块链、矩阵元联合创建的企业级应用服务的区块链技术平台,为分布式商业提供完备的区块链技术基础设施及服务。2017年7月BCOS第一阶段正式开源。

* Fabric在隐私保护方面做得最出色,有CA机制

国际难题: 跨链技术

为了解决传统互联网世界的信息孤岛问题,区块链使用去中心化网络的结构,试图实现信息共享来解决数据孤岛的问题。然而,众多区块链应用的出现,区块链的链与链之间并不互通,使区块链也面临这一种“孤链”的窘境。不符合区块链的初衷。

如何根据业务功能、隐私保护、数据隔离、性能容量扩展的需求等,在同一个区块链平台实施多链共存。如何在身份准入机制、信息标准、业务形态都不一致的区块链平台之间实施信息和业务交互。有望将成为开发的重要方向。

转自【链世界】: https://www.7234.cn/news/2316

Ⅵ 区块链的模型架构是什么

目前市场上区块链培训课程跨度很大,课程内容和授课形式也是五花八门。

区块链

1、编程基础入门

计算机软硬件基础、字符集及字符编码、HTMLCSS(含HTML5CSS3)、ECMABOMDOM、jQuery、node.js、Ajax及Express

2、Go编程语言

Go基本语法、流程控制、函数及数据、错误处理、Go面向对象编程、Go并发编程、Go网络编程、Go安全编程、Go进阶编程(goroutine、channel)、数据库MySQL、LevelDB

3、区块链1.0——比特币Bitcoin

比特币原理、比特币系统架构、密码算法(Go语言实现)、共识算法(Go语言实现)、比特币交易原理及交易脚本、比特币RPC编程(node.js实现)、比特敏贺腊币源码解析

4、区块链2.0——以太坊Ethereum

以太坊工作原理及基础架构、以太坊基本概念(账户、交易、Gas)、以太坊钱包Mist及Metamask、以太坊交易、ERC20标准Token开发部署、以桥滑太坊开发IDE——remix-ide、智能合约与Solidity、Solidity部署、备份及调用、框架技术:truffle及web3、DApp开发实战、Geth

5、区块链3.0——超级账本之Fabric

超级账本项目介绍、Fabric部署和使用拍绝、Fabric配置管理、Fabric架构设计、Fabric CA应用与配置、应用开发实战。

Ⅶ 超级账本之——Fabric

目前超级账本下面有5个并行的项目,Fabric属于其中较为成熟的一个。这个项目由,来自28个不同组织的159名工程师参与开发。

在Fabric的区块链网络中,有四类节点:MSP,Ordering Node,Endorsing Peer,Commtting Peer

MSP(Membership Service Provider), 这类节点主管区块链网络中其他的节点的授权,准入,踢除。通过给不同节点颁发证书的方式,授予不同类型的节点相应的权限。

中文可以称作排序节点。通常在一个网络中至少有一个或多个排序节点,这类节点负责 按照指定的算法,将交易进行排序,并返回给Committing Peer。其并不关心具体的交易细节。

这类节点的主要负责接收交易请求,验证这笔交易之后,并做一些预处理之后,并将签名后的数据传回给客户端。

这类节点做是区块链网络中的全节点,它们需要记录完整的区块信息,并且验证每笔交易的正确性,是最终将交易打包进区块链的节点。

结合下面这种图,看看一笔交易的上链过程:

1,首先从客户端发起一笔交易提交到Endorsing Peer,进行预处理。

2,预处理通过之后,将签名数据,传回给客户端。

3,客户端发起请求,将收到的签名数据传给Ordering Node。

4,Ordering Node对交易进行排序,然后传给Committing Peer。

5,Committing Peer这里将排序好的交易进行验证,并打包,通过指定的共识算法达成一致,形成新的区块。

6,最后将交易结果返回给客户端。

6,中间过程的每一步,都伴随着权限的验证。会根据MSP颁发的证书,进行判断。

Ⅷ 主流区块链技术有哪些

本文试图对区块链有关技术流派和主流平台进行一个概览,作为学习区块链技术体系的导览,意在抛砖引玉,促进区块链开发社区的讨论与共识。区块链技术的流派未战先谋局,你想投入区块链开发这个领域,至少先要搞清楚现在有哪些玩家,各自的主张和实力如何。划分区块链技术流派并无一定之规,据我所见,或可有以下四种方式:第一是按照节点准入规则,划分为公有链、私有链和联盟链。公有链的代表自然是比特币和以太坊,私有链则以R3 Corda声名最盛,联盟链的代表作品是Hyperledger名下的Fabric。公有链注重匿名性与去中心化,而私有链及联盟链注重高效率,而且还往往设置了准入门槛。公有链、私有链与联盟链之间的这些不同都在技术中有所体现,比如私有链和联盟链假设节点数目不大,可以采用PBFT算法来形成共识。而公有链假设有大量且不断动态变化的节点网络,用PBFT效率太低,只能采用类似抽彩票的算法来确定意见领袖。这就意味着,私有链与联盟链很难变成公有链,而用公有链来作联盟链或私有链虽然容易,却也并非即插即用。此种差异,学者不可不察。第二是按照共享目标,划分为共享账本和共享状态机两派。比特币是典型的共享账本,而Chain和BigchainDB也应属此类,这几个区块链系统在各个节点之间共享一本总账,因此对接金融应用比较方便。另一大类区块链系统中,各个节点所共享的是可完成图灵完备计算的状态机,如以太坊、Fabric,它们都通过执行智能合约而改变共享状态机状态,进而达成种种复杂功能。第三是按照梅兰妮· 斯旺所描述的代际演进,将区块链系统分为1.0、2.0和3.0三代。其中1.0支撑去中心化交易和支付系统,2.0通过智能合约支撑行业应用,3.0支撑去中心化的社会体系。比特币和Chain应属于区块链1.0系统,而以太坊和Fabric是区块链2.0系统,目前尚无成功的区块链3.0系统出现,不成功的尝试倒是有那么一个,就是著名的The DAO。第四是按照核心数据结构,分为区块链和分布式总账两派。区块链这一派在系统中真的实现了一个区块的链作为核心数据结构,而分布式总账这一派,只是吸取了区块链的精神,并没有真用一条区块链作为核心数据结构,或者虽然暂时用了,但声明说吾项庄舞区块链,意在分布式总账耳,若假以时日,因缘际会,未尝不可取而代之也。主流区块链技术平台了解流派划分,仍是只能用来指点江山,吹牛论道,要动手,总要有个切入点。区块链货币据说已经有上千个了,但值得关注的技术平台大概只有数十个,而如果要进入区块链开发领域,打下一个好基础,练出一身好功夫,捞到几个好offer,则值得深入研究学习的平台,屈指可数。首先当然是比特币。比特币作为区块链的第一个也是目前为止最成功、最重要的样板工程,已经上线运行了八年多,本身没有发生任何严重的安全和运维事故,其稳定与强悍堪称当代软件系统典范。比特币Bitcoin Core是一个代码质量高、文档良好的开源软件,从学习区块链原理、掌握核心技术的角度来说,Bitcoin Core是最佳切入点,能够学到原汁原味的区块链技术。当然,Bitcoin Core是用C++写的,而且用了一些C++11和Boost库的机制,对学习者的C++水平提出了较高的要求。学习比特币平台开发还有一个优势,就是可以对接繁荣的比特币技术社区。目前围绕比特币进行改进和提升的人很多,人多力量就大,诸如隔离验证、闪电网络、侧链等比较新的想法和技术,都率先在比特币社区里落地。比如侧链技术的主要领导者Blockstream是由密码学货币元老Adam Back领衔的,而Blockstream是Bitcoin Core最大的贡献者之一,所以一些有关侧链的技术在比特币社区里讨论最充分。但比特币作为一个典型的区块链1.0系统,是不是支撑其他类型区块链应用的最佳技术平台,存在很大的争议。另外,也不是所有人都有能力和必要精通区块链底层技术。所以对那些急于冲到区块链领域里做(quān)事(qián)的人来说,可能更直截了当的学习目标是以太坊和Hyperledger Fabric。在以太坊上面用Solidity进行的智能合约开发是切入区块链开发最简单的方式,没有之一。以太坊的理想非常宏大,由于配备了强大的图灵完备的智能合约虚拟机,因此可以成为一切区块链项目的母平台,是驮住整个区块链世界的大乌龟。在以太坊上开发一个类似比特币的加密货币,是一个不折不扣的小目标。一般有经验的开发者在文档指导下,半天到一天即可入门。问题在于,入门以后又如何?靠写Solidity是否就可以包打天下?这是大大存疑的。我们也可以反过来说,如果以太坊+Solidity是区块链的终极解决方案,那么怎么还会出现那么多区块链技术门派呢?特别是,以太坊似乎并没有给现实世界中巨型的中心化组织们留下一条活路,这种彻底不妥协的革命态度有可能也成为以太坊推广的障碍。当前以太坊项目的开发进展并不顺利。一个比较突出的问题是项目过多,力量分散,导致项目质量参差不齐。但尽管如此,跟其他区块链2.0平台相比,以太坊提供的开发环境是最简单最完善的。初学区块链的人绝对有必要学习以太坊,从而对区块链和智能合约建立起一个最“正宗”的认识。主流区块链技术平台的第三支就是Fabric,它是Hyperledger的第一个也是最知名的孵化项目。 Fabric最早来自IBM的Open Blockchain项目,到2015年11月,IBM将当时已经开发完成的44,000行Go语言代码交给Linux基金会,并入Hyperledger项目之中。在2016年3月一次黑客马拉松中,Blockstream和DAH两家公司将各自的代码并入Open Blockchain,随后改名为Fabric。到目前为止,Fabric与Intel提供的Sawtooth Lake并列为Hyperledger的一级孵化项目,但前者得到的关注远超后者。从技术角度来说,Fabric思路不错,重点是满足企业商用的需求,比如解决交易量问题。众所周知,比特币最大的短板是它每秒钟7个交易的上限,完全无法满足现实需要。而Fabric目标是实现每秒钟10万交易,这个量接近刚刚过去的双十一交易量瞬时峰值,完全可以满足正常条件下的行业级应用。Fabric用Go语言开发,也提供多种语言的API。特别值得一提的是,Fabric比较充分地运用了容器技术,比如其智能合约就运行在容器当中。这也是Go语言带给Fabric的一项福利,因为Go语言静态编译部署的特征很适合开发容器中的程序。Fabric还有一些特点,比如其membership服务可以设置节点准入审查,这是典型的联盟链特征。再比如其共识算法是可定制的。Fabric的短板是体系较为复杂,虽有文档,但缺少经验的开发者学习起来障碍比较大。然而由于其定位清楚,迎合了不少企业的心态,所以已经有多家机构在基于Fabric秘密研发行业内的联盟链项目。

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

这个是需要借助平台进行创建。
IBM中国研究院开发的超能云(SuperVessel)平台提供了给区块链爱好者、开发者的区块链开发测试环境。通过该平台,用户能够免费、超快速创建基于Hyperledger Fabric的多节点区块链、并在自己的链上花式玩转智能合约。
当然,国外的去中心化内容分享平台DECENT也是可以创建的。

相关推荐

评论列表
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~
关闭

用微信“扫一扫”