联盟链严格意义上并不是真正的“去中心化”,它通过引入了权限管理机制(结合企业在现实业务中的角色)来弱化对节点作恶的预防机制,从而能提高效率、应对复杂的业务逻辑。...Hyperledger的框架结构是模块化、可拓展,企业可以根据具体的业务需求选择不同的模块,避免复杂的业务逻辑和臃肿的系统。...Fabric 区块链核心角色 首先要提的是Fabric网络中的角色都是逻辑角色,比如 Peer 节点 A 可能既是排序节点,也可能在某些业务中是背书节点,而一个角色也不仅仅由单一节点担任。...将共识机制、权限管理、加密机制、账本等模块都设置为可插拔,且不同的链码可以设置不同的背书策略,信任机制更加灵活,这样可以根据业务需要设置自己的高效系统。...对于一个链码交易来说,背书策略是在链码实例化的时候指定的,一笔有效交易必须是背书策略相关组织签名才能生效,本质上Fabric区块链中的交易验证是基于对背书节点的信任,这也是称Fabric并不是严格意义上的去中心化的原因之一
链码(Chaincode) 链码用于定义资产,或定义修改资产的交易逻辑,链码定义了读取或修改资产键值对的规则。...我们常说的智能合同是通过链码是实现的,链码定义了资源和交易的业务逻辑,编写链码是开发者很重要的任务。...(6) 交易被排序保存在区块中,并从ordering(有序)服务中交付到通道的其它节点。 (7) 节点通过背书策略验证交易,并且执行对应策略。...为了消除全面的透明和隐私的差距的问题,链码只能被安装在需要读写资产状态的节点上,换而言之,如果链码不能在一个节点上安装,它将不能采访账本。...当区块交易的顺序和结果经过明确的策略标准检查通过,共识最终达成。这些检查和平衡在交易的周期发生,包括背书策略的使用以指定哪些特定成员必须背书特定交易类型,系统的链码保证这些策略被执行和维持。
Hyperledger Fabric基于模块化设计,各个模块实现特定的功能。企业之间可以组建Fabric联盟链,将相关业务数据通过智能合约方式写入链上,通过背书策略来保证各个企业数据的一致性。...,相关组织选择peer安装智能合约 6.其中一个组织,实例化智能合约,主要是在特定的通道创建特定业务的命名空间并且写入此命名空间的初始化数据,在实例化智能合约的过程中,指定智能合约的背书策略 7.相关组织通过调用智能合约和链上数据进行交互...,包括查询,更新等 四、Hyperledger Fabric的交易流程图 1.Client sdk生成交易请求,并发送到足够多的背书节点。...这里的主要目标是满足背书策略。...2.背书节点根据用户的请求,按照智能合约模拟执行,返回背书交易 3.Client sdk收集满足背书策略的背书交易后发送到orderer排序 4.Orderer对交易排序完成后,生成对应的区块,并下发到对应的
它提供了一种新的交易方式,从而可以从根本上改变业务的实现。 那么,在众多的区块链框架中,开发人员应该首先掌握哪个框架呢?...Hyperledger Fabric智能合约称为chaincode。Chaincode是定义资产和相关交易的软件;换句话说,它包含系统的业务逻辑。...每个链码都可以指定背书策略,该政策定义了有效交易背书的必要条件和充分条件。 Channel。通道是由peers集合形成的逻辑结构。此功能允许一组peers创建单独的交易共享账本。...MSP管理用户ID并验证网络上的所有参与者,从而使Hyperledger Fabric成为一个私有的和准入的网络。 Ordering service。...客户端使用SDK API,创建一个事务并将其发送给背书peer。 endorsing peer会验证客户的签名,模拟交易并发送背书签名。
前言 上一篇文章《Hyperledger Fabric 架构详解》对Fabric的架构和工作原理进行了详细的解读与分析,那作为一个企业级的区块链系统,它是如何根据复杂的业务需求搭建网络,在运行过程中存在哪些安全问题...Hyperledger Fabric 网络 Hyperledger Fabric 应用场景实例 业务角色 假设有一个采用Fabric系统的应用场景里。...Fabric的智能合约是链码,把链码存储在节点的文件系统上称为安装智能合约,安装后还需要在特定的通道上启动和实例化链码,至此,应用可以发送交易 proposal 至背书节点了(需要遵守链码设置的背书策略...网络搭建完成 Fabric采用权限管理、通道等机制,并通过对不同节点功能分工,提升了系统的运行效率,并保障了复杂业务场景中的安全和隐私;强大的链码和可自定义的背书策略等也保障了系统的拓展性,可以处理复杂的业务逻辑...这些配置和规则共同决定了系统的安全性,需要在业务需求、效率和安全性上作权衡。
背书验证指的是背书策略,背书策略有很多种,例如我指定策略为大多数节点同意,意思就是一笔交易必需超过半数的节点都认证通过了,才能完成,这样就能有效的防御一些恶意的交易。...五、账本 账本是 Hyperledger Fabric 中的一个重要概念,它存储了有关业务对象的重要事实信息,其中既包括对象属性的当前值,也包括产生这些当前值的交易的历史。...六、智能合约 智能合约 是一个运行在账本上的应用程序,它可以对资产进行编码,其中的交易指令(或者叫业务逻辑)也可以用来修改资产。...一次打包可以多次安装,然后接着使用 install 命令在指定的 peer 节点上安装合约。 安装成功后,接着使用 approveformyorg 命令代表所在机构审批合约,并且指定背书策略。...关于 Java 智能合约的开发可以看我之前的文章《Hyperledger Fabric 2.x 自定义智能合约》 七、交易流程 file 首先区块链应用发起一笔交易; 然后 背书节点 对交易进行签名验证
什么是Hyperledger Fabric 为了满足现代业务需求,IBM与其他公司合作,共同开发了一个开放源代码,可立即投入生产的业务区块链框架,称为Hyperledger Fabric™,这是由LinuxFoundation...Hyperledger Fabric是被广泛使用的,支持准入网络上的分布式账本解决方案。它的模块化架构最大程度地提高了区块链解决方案的机密性,弹性和灵活性。 1....性能,可伸缩性和信任级别 Hyperledger Fabric建立在模块化架构之上,该架构将事务处理分为三个阶段:分布式逻辑处理和协议(“链码”),事务排序以及事务验证和承诺。...image 从图的左侧开始: 1)交易建议由应用程序提交给背书的peer节点。 2)背书政策概述了签署提案需要多少个背书人和/或哪些背书人组合。...6)当提交peer节点收到一批事务时 7)验证是否符合背书策略,并检查读/写集以检测冲突的事务。如果两项检查均通过,则该块将提交到账本,并且每个事务的状态更新都将反映在状态数据库中。
比如一个既有通道、既有联盟增加新的企业成员,应该由通道/联盟中的组织一起进行签名审批,并且将签名审批结果提交到链上,与链上策略模块提前在线上协商制定好的背书策略签名一致才可以通过。...这就意味着,首先链上的逻辑可以更灵活的被修改甚至可以在不需要在有可能引起分叉的代码升级的前提下进行运行时修改;再就是链上逻辑的修改可以像智能合约一样,被共识。...Fabric将节点代码中的部分逻辑,如背书过程、交易验证过程、智能合约生命周期管理、配置管理(对应escc、vscc、cscc、lscc系统链码)都作为链上合约来设计,称之为系统合约。...这些过程是可以被链的共识机制所覆盖的,所以才有了fabric可以通过定义各种策略,来实现非中心化地干预这些内置处理流程,如可以定义背书策略、智能合约初始化策略等。...不过现在fabric1.3的版本并没有做到链上的逻辑可以被灵活修改甚至是运行时修改,到现在只是开放了开发者可以通过代码替换来自定义修改escc、vscc。
Chaincode应用编码了在channel上执行特定类型交易的逻辑。...Chaincode Chaincode 是定义资产和修改资产的交易指令的软件。也就是说,它就是业务逻辑。chaincode执行读取和修改键值对和其它状态数据库信息的规则。...共识)进区块,从ordering服务发布到channel的peer节点中 peer节点根据背书策略验证交易并执行策略 在添加新块之前,将执行版本检查来保证资产的状态从chaincode执行时刻开始没有被改变...然后,共识不仅是简单的同意交易的顺序,它是贯穿了整个交易流程中的基本角色,从提案、背书、到确认顺序、验证和承诺,Hyperledger Fabric中强调这样差异。...这些检查和平衡发生在一个交易的生命周期内,包括的背书策略使用,指定特定成员必须对特定交易等级背书;同时系统chaincode保证这些策略被执行和坚持。
链码可通过客户端提交的交易对账本状态初始化并进行管理。 链码通常处理由网络中的成员一致认可的业务逻辑。链码创建的(账本)状态是与其它链码互相隔离的,因而不能被其它链码直接访问。...Hyperledger Fabric API允许与区块链网络中的各个节点(Peer,Order,MSP)进行交互,同时也允许在背书节点上package、install、instantiate以及upgrade...Hyperledger Fabric SDK抽象了Hyperledger Fabric API的细节,以辅助应用程序开发,当然也能用于管理链码生命周期。...链码应该仅仅被安装在链码所有者成员的背书节点上,用于实现链码对于网络中其它成员在逻辑上是隔离的。...SignedCDS另外的部分,如所有者及实例化策略都是可选的。然而,链码的名称必须是一致的,否则会被当做另外一个新的链码。 在升级前,必须将新版本的链码安装到有需求的背书节点上。
Privacy Hyperledger在每个channel上采用了不可变的账本,chaincode用于维护、修改当前的资产状态。...,使用隐私数据集来在私有数据库中分离它们的数据,在channel账本上进行逻辑分离,仅有被授权的子组织可以访问这些隐私数据 因此:在隐私的实现中,使用了两种概念:channel, privacy collection...但是,共识不仅简单是对交易的排序,在Hyperledger中,通过其在整个交易流程中(提案、背书、排序、验证、提交)的基础作用,这种差别越加明显。...检查和余额发生在交易的生命周期中,且包含使用背书策略去指定特定成员必须对特定的交易类型进行背书,以及系统chaincode去保证这些策略被强制执行。...最后的检查可以防止双花和其他可能破坏数据完整性的操作,而且可以允许在非静态数据上执行一些功能(不懂)。 除了多节点背书、合法性、版本检查外,在交易流程的各个方向上,也会进行身份验证。
,这满足了大多数业务的需求。...可扩展性 Hyperledger Fabric 1.0在0.6版本的基础上,对Peer节点的角色进行了拆分,有背书节点(Endorser)、排序服务节点(Orderer)、记账节点(Committer)...节点可以加入到不同的通道(Channel)中,链码可以运行在不同的节点上,这样可以更好地提升并行执行的效率和吞吐量。...多链和多通道的设计容易实现数据隔离,也提供了应用程序和链码之间的安全通道,实现了隐私保护。 系统逻辑架构 下图是 Hyperledger Fabric 1.0设计的系统逻辑架构图: ?...4.智能合约 实现“可编程的交易账本”(Programmable Ledger),通过链码执行提交的交易,实现基于区块链的智能合约业务逻辑。
新的链码生命周期 2.0支持链码的去中心化的治理,引入新的流程在节点上安装链码,在通道上启动实例。新的链码生命周期允许多个组织对链码的参数协同达成一致,例如链码的背书策略。...新的模型的改进点如下: (1) 多个组织必须确认同意链码的参数 1.x版本里,一个组织拥有修改链码参数的能力,例如修改背书策略,通道的其它成员也被同步而更改。...新的链码生命周期更灵活一些,它兼容支持老版本的中心化信任模型,同时也支持去中心化的模型,只要有足够多的组织同意背书策略即可。...(3) 更简单的更新背书策略 新的链码生命周期无需重新打包安装链码,可直接修改背书策略,用户也可以使用新的默认的策略,从通道的主要成员获得背书。这个默认策略在组织加入或退出通道时会自动更新。...排序服务是可插拔的,华为等大厂都有自己实现的XFT排序服务。 小结 总体上还是继续稳定优化,让开发更好编写和部署链码,让运维更方便管理系统。
➤Chaincode(链码)源自智能合约的思想,并进行了进一步扩展,支持Java、Go等高级编程语言。运行时靠容器和状态机实现处理逻辑。...确认节点(Committer)对区块(Block)、交易读写集、背书策略等进行校验,写入Blockchain并更新World State DB。...Fabric 1.0版本共识过程包括背书、排序、和验证三个环节的保障。 ➤背书 Chaincode在实例化的时候,需要指定背书策略。...06 特征 除了以上提到的具有数据隔离、模块化、支持高级语言的Chaincode等外,它和Bitcoin和Ethereum等公有链相比还有更多的不一样: ➤代币 Fabric上没有代币机制,仅提供了一张类似白纸一样的平台...,共识结果被推翻的概率越来越小,成为事实上的最终结果。
节点是区块链的通信主体,是一个逻辑概念。多个不同类型的节点可以运行在同一物理服务器上。有多种类型的节点:客户端、Peer节点、排序服务节点和CA节点。下图为网络节点架构图2-1: ?...背书节点是动态的角色,是与具体链码绑定的。每个链码在实例化的时候都会设置背书策略,指定哪些节点对交易背书后才是有效的。...排序服务提供的是原子广播(Atomic Broadcast),保证同一个链上的节点接收到相同的消息,并且有相同的逻辑顺序。...现在是通过Kafka/ Zookeeper实现的CFT,未来将提供基于 etcd/Raft 的Raft共识订购服务以及完全分散的BFT订购服务 ##CA节点 CA节点是Hyperledger Fabric1.0...参考资料 《深度探索区块链:Hyperledger Fabric技术与应用》 Pluggable Consensus
当时我们考虑到的细节包括: 区块链的智能合约语言如何安全、简单地表达出复杂的业务逻辑? 如何保证公钥签名的有效性?...从这几个细节入手分析,我认为 IBM 的 Hyperledger Fabric 从根本上缺乏区块链的必要元素,其性能指标充满了误导性,在长期业务上的可行性也不禁让人打一个大大的问号。...所有的节点都会收到订购服务发来的区块信息,但它们需要验证区块中的交易信息来保证区块链中数据的安全性,步骤如下: 1、验证背书节点的执行策略; 2、验证当前状态数据库中读写集的版本; 3、向区块链中提交区块信息...需要注意的是,智能合约不仅仅是一段代码,它是公司业务逻辑的体现。智能合约可以执行区块链上的产权登记,数字身份的验证,甚至可以用来执行二手车买方和卖方之间的托管交易。...最重要的是,智能合约是可靠的,它始终会按照你给它的规定行事。 在区块链上构建业务逻辑时,你需要将自己想要进行的操作(买入、卖出、打包数据等等)用智能合约表示出来。
Java的基本只能看TestCase代码, 所以说Hyperledger Fabric也属于成长完善阶段。...前三步更新的区别是, 因为涉及到共识和数据一致性,实际上应用需要发送更新提议到其它背书(endorsing)节点, 背书节点会模拟执行但不修改各自的账本,背书完成后返回响应给应用。...节点与通道 我们可以认为通道是逻辑上的一个结构,用于隔离一组物理上的peer节点和应用,通道的概念很关键,主要用于管理和隔离节点。 ?...官方的FAQ回答是背书策略是由链码部署的时候声明, BYFN例子 peer chaincode instantiate -o orderer.example.com:7050 --tls --cafile...阶段3 - 验证 节点收到orderer分发的新区块,会去验证交易是否根据对应链码的背书策略被所需的组织背书签发。
并行执行 执行一个交易并检查其正确性,从而给它背书, 通过(可插拔的)共识协议将交易排序, 提交交易到账本前先根据特定应用程序的背书策略验证交易 (四)待补充 fabric: 背书策略:通道背书策略和链码背书策略...四、fabric是否有类似EVM的合约虚拟机 Hyperledger Fabric是一个开放源代码的企业级区块链平台,与以太坊的EVM相比,它在智能合约的执行方面有一些不同的设计。...在Fabric中,智能合约被称为链码(Chaincode),它是用来定义业务逻辑和状态转换规则的一段代码。...与EVM的合约虚拟机不同,Fabric中的链码并不依赖于虚拟机来执行,而是直接在背书节点(Endorser)上以本地代码方式执行。...尽管Fabric没有像以太坊的EVM那样提供虚拟机级别的指令集执行,但通过链码的容器化执行和底层的状态数据库访问,Fabric能够提供类似的智能合约功能,支持灵活的业务逻辑和状态转换规则的定义。
新的Fabric生命周期允许多组织对链码的参数达成共识,例如链码在开始和账本进行交互前的背书策略。...新的模型在之前的生命周期上进行了改进: 多个组织必须同意链码的参数:在Fabric 1.x版本中,一个组织能够为所有其他通道成员设置链码参数(例如背书策略)。...更轻松的背书策略升级:Fabric生命周期允许你在没有重新打包或者安装链码的情况下,变更背书策略。用户可以体验到默认的要求通道内大多数成员同意的策略的好处。...Endorsement policies:了解使用新的链码生命周期如何使用通道配置中的策略作为背书策略。 限制 Fabric v2.0 Alpha版本中链码生命周期尚未完成。...这意味着Docker镜像现在将会小很多,提供更快的下载和启动时间,以及在主机系统上占用更少的磁盘空间。
领取专属 10元无门槛券
手把手带您无忧上云