首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Hyperledger Fabric:升级链码时,现有事务会发生什么情况?

Hyperledger Fabric是一个开源的区块链平台,用于构建企业级的分布式应用程序。在Hyperledger Fabric中,链码是智能合约的实现,用于定义业务逻辑和状态转换规则。

当升级链码时,现有事务会发生以下情况:

  1. 链码版本升级:链码的升级是通过部署新版本的链码来实现的。新版本的链码可以包含修复bug、增加功能或改进性能等改动。升级链码时,现有事务将继续按照旧版本的链码逻辑进行处理,不会受到影响。
  2. 新事务的处理:升级链码后,新的事务将使用新版本的链码进行处理。这意味着新的事务将按照新版本链码的规则执行,可以享受到新版本链码带来的改进和优化。
  3. 旧事务的查询:升级链码后,旧版本的事务仍然存在于区块链中,可以通过查询操作获取旧事务的信息。但是,旧版本的链码逻辑将不再被执行,因此查询结果可能与升级后的链码逻辑有所不同。

总结起来,升级链码时,现有事务将继续按照旧版本的链码逻辑进行处理,不会受到影响。新的事务将使用新版本的链码进行处理,可以享受到新版本链码带来的改进和优化。旧版本的事务仍然存在于区块链中,可以通过查询操作获取旧事务的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Hyperledger Fabric基础知识

Hyperledger Fabric基础知识 本文我们介绍Hyperledger Fabric的基础知识,并了解如何充分利用这个多功能的区块框架。 区块技术为创新提供了丰富的机会。...当应用程序需要与共享账本交互,将调用Chaincode。可以用Golang或Node.js编写。 Peer nodes。Peer是网络的基本元素,因为它们托管共享账本和智能合约。...SDK提供了一种执行用户,在网络中执行事务,监视事件等的方法。 要编写区块应用程序,您需要: 用受支持的编程语言(例如Go)编写chaincode。...在Hyperledger Fabric网络上部署。 使用SDK开发客户端应用程序。...所有peers都提交并应用相同的事务序列并更新其状态。 总结 Hyperledger Fabric是一个区块框架实现。

2K10

Fabric的6大特性

什么是Hyperledger Fabric 为了满足现代业务需求,IBM与其他公司合作,共同开发了一个开放源代码,可立即投入生产的业务区块框架,称为Hyperledger Fabric™,这是由LinuxFoundation...成员准入 Hyperledger Fabric是用于准入网络的框架,其中所有参与者都具有已知身份。在考虑准入的网络,您应该考虑您的区块用例是否需要遵守数据保护法规。...性能,可伸缩性和信任级别 Hyperledger Fabric建立在模块化架构之上,该架构将事务处理分为三个阶段:分布式逻辑处理和协议(“”),事务排序以及事务验证和承诺。...6)当提交peer节点收到一批事务 7)验证是否符合背书策略,并检查读/写集以检测冲突的事务。如果两项检查均通过,则该块将提交到账本,并且每个事务的状态更新都将反映在状态数据库中。...增加的事务需要改进的可伸缩性和性能,Hyperledger Fabric v1.X提供了此功能,部分原因是拆分了代码执行。 拆分执行还可以使网络动态增长。

1.2K20
  • hyperledger fabric 读写集冲突

    Hyperledger Fabric中,读写集冲突(Read-Write Set Conflict) 是指在多个事务试图同时修改或读取相同的账本状态,由于版本号不一致导致的事务提交失败。...读写集冲突的产生背景Fabric采用的是一种乐观并发控制机制,即允许多个事务并行地执行,但在事务最终提交账本,必须通过一致性检查。这个检查的主要依据就是读写集。...流程如下:事务执行与读写集生成:当客户端发起提案请求,Peer节点执行,生成一个读写集。读写集中包括该事务读取的键和对应的版本号(读集),以及要修改的键和值(写集)。...在一致性验证过程中,Peer节点检查交易的读集,确认所有读取的键自执行以来版本号是否发生变化。...理解并合理应对读写集冲突,对设计高效的Fabric和应用系统至关重要。

    12710

    Hyperledger Fabric 2.0 Alpha新特性

    Hyperledger Fabric v2.0 Alpha引入两大新功能,新的Fabric生命周期和FabToken....(2) 更安全的升级流程 老版本的升级由单独一个组织发起,存在一些风险,例如通道的成员升级可能未安装好最新的。新的模型需要足够多的组织成员同意后才能升级。​ ​...(4) 可审查的Fabric生命周期打包为tar文件,这样更易于检查代码,也方便协调多组织的安装。...使用新的生命周期 官方提供了新的操作手册和例子: Chaincode for operator https://hyperledger-fabric.readthedocs.io/en/latest...Alpine镜像 2.0以后联系使用alpine这个linux发行版本,docker镜像更小,启动更快,占用主机硬盘空间更小,同时更安全。

    76710

    联盟智能合约安全浅析

    智能合约 Fabric的智能合约称为(chaincode),分为系统和用户。系统用来实现系统层面的功能,用户实现用户的应用功能。...和以太坊相比,Fabric和底层账本是分开的,升级并不需要迁移账本数据到新当中,真正实现了逻辑与数据的分离,同时,采用Go、Java、Nodejs语言编写。...试图通过空指针对数据进行访问,导致运行时错误。当程序试图解引用一个期望非空但是实际为空的指针,会发生空指针解引用错误。对空指针的解引用导致未定义的行为。...•访问外部资源 合约访问外部资源,如第三方库,这些第三方库代码本身可能存在一些安全隐患。引入第三方库代码可能暴露合约未预期的安全隐患,影响业务逻辑。...REF [1] Hyperledger Fabric https://blog.51cto.com/clovemfong/2149953 [2] fabric-samples https://github.com

    2.2K10

    Hyperledger Fabric 系统架构详解

    最近在上 HKU 的课程,教授对Hyperledger Fabric的工作原理、网络搭建及相关的知识做了很详细的讲解...企业的应用场景较为复杂,往往 Hyperledger 只是在其中参与了某个或某些环节,因此与其他现有系统的交互必不可少,因此 Hyperledger 在设计上注重配备完整的 API 以供其他系统调用与交互...企业应用的安全性是重中之重,尤其是许多应用场景牵扯到高价值交易或敏感数据,因此提供了很多机制来保障安全性(如Fabric的通道机制等) 除了与现有的系统交互外,企业未来的区块应用中还可能和很多不同的区块网络进行交互...Hyperledger Fabric 我们着重来讲讲其中应用最广泛的Fabric项目,它是由 Linux 基金维护的一个模块化、可拓展的区块联盟项目,不依赖任何加密货币,它对有着共同目标(业务需求...共识机制 Fabric中广义的共识机制包括背书、排序和验证三个环节,狭义的共识是指排序, Fabric区块网络中,不同参与者之间交易必须按照发生的顺序写到分布式账本中,依赖共识机制,主要有三种: SOLO

    1.9K10

    Hyperledger Fabric 2.0 Alpha发布了!

    Fabric chaincode lifecycle Fabric 2.0 Alpha介绍了分布式治理的特性,包括在你的节点上安装以及在一个通道中启动的新流程。...新的Fabric生命周期允许多组织对的参数达成共识,例如在开始和账本进行交互前的背书策略。...更安全的升级过程:在之前的生命周期中,升级可以由单个组织进行发布,从而尚未安装新的通道成员将可能产生风险。新的模型要求只有足够数量的组织批准后才能允许升级。...更轻松的背书策略升级Fabric生命周期允许你在没有重新打包或者安装的情况下,变更背书策略。用户可以体验到默认的要求通道内大多数成员同意的策略的好处。...Raft遵循“领导者和追随者”模型,其中每个通道都会选举一个leader,而且它的决策复制给追随者。

    1.2K30

    Hyperledger Fabric 2.0 Alpha发布了!

    Fabric chaincode lifecycle Fabric 2.0 Alpha介绍了分布式治理的特性,包括在你的节点上安装以及在一个通道中启动的新流程。...新的Fabric生命周期允许多组织对的参数达成共识,例如在开始和账本进行交互前的背书策略。...更安全的升级过程:在之前的生命周期中,升级可以由单个组织进行发布,从而尚未安装新的通道成员将可能产生风险。新的模型要求只有足够数量的组织批准后才能允许升级。...更轻松的背书策略升级Fabric生命周期允许你在没有重新打包或者安装的情况下,变更背书策略。用户可以体验到默认的要求通道内大多数成员同意的策略的好处。...Raft遵循“领导者和追随者”模型,其中每个通道都会选举一个leader,而且它的决策复制给追随者。

    82720

    深入解析fabric的peer命令(一)

    title: 深入解析fabric的peer命令(一) date: 2023/5/30 10:24 tags: fabric区块 categories: 区块 深入解析fabric的peer命令(一...在 Hyperledger Fabric 中,chaincode.Cmd 函数用于创建与相关的命令。它接受两个参数:chaincodeID 和 cryptoProvider。...chaincodeID 参数是一个表示标识的字符串。在这里,传递的是 nil,表示没有指定特定的标识,即执行与相关的命令不需要指定特定的。...因此,mainCmd.AddCommand(chaincode.Cmd(nil, cryptoProvider)) 的作用是将与相关的命令添加到 mainCmd 中,其中使用了默认的加密提供程序,并且不指定特定的标识...通过添加这个命令,可以在运行程序时使用 peer chaincode 命令执行与相关的操作,例如安装、实例化、升级、查询等。

    570150

    Hyperledger Fabric之模型

    执行可操作记账本当前的状态数据库,通过交易计划初始化,的写操作执行后,提交交易记录到网络记账本的其它节点达到一致性。...Hyperledger Fabric当前主要使用Go语言和Nodejs开发, 使用Go兼容好些快些, 在BYFN官方例子中安装Nodejs时间较长,时不时timeout(不排除环境配置差异或有误...隐私 Hyperledger Fabric以通道为基础提供了不可篡改的记账本和用于修改资产状态的。...,超级记账本一再升级隐私的设计是必须的。...这些检查和平衡在交易的周期发生,包括背书策略的使用以指定哪些特定成员必须背书特定交易类型,系统的保证这些策略被执行和维持。在提交之前,节点将会使用这些系统保证有足够的背书,且来源于适当的实体。

    1K20

    深入解析fabric的peer命令(一)

    /hyperledger/fabric/internal/peer/channel" "github.com/hyperledger/fabric/internal/peer/common...在 Hyperledger Fabric 中,chaincode.Cmd 函数用于创建与相关的命令。它接受两个参数:chaincodeID 和 cryptoProvider。...chaincodeID 参数是一个表示标识的字符串。在这里,传递的是 nil,表示没有指定特定的标识,即执行与相关的命令不需要指定特定的。...因此,mainCmd.AddCommand(chaincode.Cmd(nil, cryptoProvider)) 的作用是将与相关的命令添加到 mainCmd 中,其中使用了默认的加密提供程序,并且不指定特定的标识...通过添加这个命令,可以在运行程序时使用 peer chaincode 命令执行与相关的操作,例如安装、实例化、升级、查询等。

    30920

    区块的起源、发展与繁荣

    Hyperledger Fabric 是 IBM 贡献给 Linux 基金的商用分布式账本系统,自项目创立伊始就吸引了金融、银行、互联网、传统行业领域的巨头们的眼光。...Hyperledger Fabric 是基于 Golang 实现的可插拔的区块系统,它主要面向企业之间或者企业多个部门之间提供服务。...主开发数字货币交易所白皮书区块浏览器跨境支付场内场外宠物挖矿游戏基金牌照 181-4069-6008 微信电话同号 微信图片_20180725144600.jpg 上图是 Hyperledger...在 Fabric 中每个通讯组件都必须提供身份证明,每个事务的发起者会被永久记录在区块上,审核人员可以追溯事务。...Chaincode Services 即服务,智能合约在 Fabric 中称为是操作状态数据库的唯一方法,大部分事务都是通过完成的。该部分提供的部署和运行环境。

    1.1K40

    Hyperledger Fabric 网络与安全体系浅析

    现有的系统成员需要制定加入新成员的规则,比如进行多数投票等;现有成员也需要决定网络和智能合约的更新和改变,这样能够很大程度上防止恶意节点破坏系统安全性;现有节点不能自行升级权限;除此之外,还需要决定系统的通用数据模型等设置...公系统中,所有节点都有区块账本的副本,并且执行智能合约;而在Fabric系统中,业务相关节点形成节点组,存储与其交易(业务)相关的账本,而通过对账本的更新也会被限制在节点组的范围内,从而保障整个系统的稳定性...Fabric可以用多种通用型的编程语言撰写,例如Go、Java等,这让系统有了更强的拓展性,也更容易接入现有系统和工具,但因为其执行结果是不缺性的,编程语言的一些特性(如随机数、系统时间戳、指针等...)可能造成不同背书节点执行结果不同,造成系统不一致性;此外,因为可以访问一些外部的 Web 服务、系统命令、文件系统和第三方库等,也造成一些潜在的风险。...总结 以上就是对Hyperledger Fabric网络搭建和安全体系分析了,接下来将会开始学习Go和的开发,通过项目实战来对其进行深入了解学习!

    83610

    深入解析fabric的peer命令(一)

    /hyperledger/fabric/internal/peer/channel" "github.com/hyperledger/fabric/internal/peer/common...在 Hyperledger Fabric 中,chaincode.Cmd 函数用于创建与相关的命令。它接受两个参数:chaincodeID 和 cryptoProvider。...chaincodeID 参数是一个表示标识的字符串。在这里,传递的是 nil,表示没有指定特定的标识,即执行与相关的命令不需要指定特定的。...因此,mainCmd.AddCommand(chaincode.Cmd(nil, cryptoProvider)) 的作用是将与相关的命令添加到 mainCmd 中,其中使用了默认的加密提供程序,并且不指定特定的标识...通过添加这个命令,可以在运行程序时使用 peer chaincode 命令执行与相关的操作,例如安装、实例化、升级、查询等。

    37640

    hyperledger fabric读写集简介

    Hyperledger Fabric中,读写集(Read-Write Set, R/W Set) 是智能合约()执行期间生成的一个关键数据结构,包含了事务执行过程中对账本状态的读取和写入操作。...读写集的生成过程读写集是在执行阶段生成的,具体流程如下:执行:客户端向Fabric网络提交一个包含输入参数的提案交易。Peer节点根据这个提案来执行执行的结果包括一个读写集。...读操作:执行过程中,如果需要读取账本中的某个状态,Peer会将这个读取操作记录到读集中。每次读取,系统会将当前读取的键及其版本号记录下来。...总结Hyperledger Fabric中的读写集是用于事务执行期间记录账本状态变更的关键数据结构。...它不仅记录了对账本状态的读写操作,还在事务一致性验证中起到了核心作用,确保Fabric网络中的数据一致性和并发安全。理解读写集对深入了解Fabric事务处理机制至关重要。

    12010

    ——HyperLeger Fabric智能合约(

    实例化时可指定背书策略,当记账节点接收到交易获知相关信息,然后检查的背书策略,判断交易是否满足背书策略,若满足则标注交易为合法。...Hyperledger Fabric系统实现了一系列系统功能,以便系统集成人员能够根据需求对其进行修改与替换。 常见系统如下: 生命周期系统(LSCC ):处理生命周期管理。...CLI可以直接访问Hyperledger Fabric API。...Hyperledger Fabric SDK抽象了Hyperledger Fabric API的细节,以辅助应用程序开发,当然也能用于管理生命周期。...升级与实例化transaction有一点不同的是:通过现有的chaincode实例化策略检查升级transaction,而不是用新的策略检查。

    2.3K00

    Hyperledger Fabric 和企业级以太坊,谁才是企业首选?

    在基于EVM的网络上,我们有Hyperledger Besu和Quorum。另一方面,Hyperledger Fabric只有一个实现。它没有类似于基于EVM的客户端。...当我们指的是Hyperledger Fabric客户端,我们将指的是Linux 基金组织的唯一实现。...1)Hyperledger Besu 为了更清楚地说明问题,Hyperledger本身是Linux基金的一个大型项目。Hyperledger有一套开源的区块项目和开发工具。...而在过去的两三年中,这些公司的主要重点是生产概念验证(PoC)并弄清楚区块如何在其工作流程或过程中提供帮助。 许可区块网络发生了变化,它为每个组成的联盟成员部署区块网络似乎并不高效。...但是,为你的业务选择合适的企业级区块平台并不简单,或许适合你的解决方案或者和现有的解决方案不一样。 组成大型联盟的公司倾向于使用 Hyperledger Fabric 网络。

    91520

    企业应该选择哪种区块

    它是一个基础设施,通常采用Hyperledger进行联盟或私有开发的相关项目,都是无币的、产业级的应用。 HyperLedger Fabric是什么?...HyperLedger FabricHyperLedger上的区块项目之一,就如同其它区块技术一样,它有一个账本,使用智能合约,并且是一个由参与者管理他们的交易的系统。...共享帐本 HyperLedger Fabric底下有分出两大子系统,包括:世界状态(world state)和事务日志(transaction log)。...智能合约 HyperLedger Fabric的智能契约是用Chaincode编写的,并且当应用进程需要与帐本进行交互,被应用进程外部的应用进程调用。...HyperLedger Fabric支持需要将隐私(使用信道)作为关键操作需求的网络,同时也是相对开放的网络。 共识 事务必须按照它们发生的顺序写在帐本上,即使它们可能是网络中不同的参与者生成的。

    1.6K00

    fabric进阶—Fabric新特性

    Hyperledger Fabric 2.5和2.4新特性 一,2.5新特性: Hyperledger Fabric v2.5中的新增功能 1.清除私有数据的历史记录 虽然一直以来都可以从当前状态中删除私人数据...二,2.4新特性: Hyperledger Fabric v2.4 中的新增功能 1.结构网关 结构网关是在对等节点上运行的一项新服务,用于管理客户端应用程序的事务提交和处理,具有以下优点: 简化客户端应用程序和...Fabric Gateway 具有智能功能,可以确定给定交易需要哪些背书,即使您的解决方案利用级背书策略、私有数据收集背书策略和基于状态的背书策略的组合。...3.计算打包的包 ID 您可以使用新的对等节点生命周期 calculatepackageid 命令从打包的计算包 ID 计算打包,而无需在节点上安装。...例如,在以下情况下,此命令将很有用: 当安装了多个具有相同标签名称的,可以在以后识别哪个 ID 对应于哪个包。 在不安装特定包的情况下检查是否安装了该包。

    31420

    FastFabric:提升Hyperledger Fabric性能到20000TPS

    但是,为了在实践中可行,区块必须支持与现有数据库管理系统支持的交易率相当的交易率,这可以提供一些相同的交易保证。...在本文中,我们批判性地研究了Hyperledger Fabric 1.2的设计,因为据报道它是最快的开源许可区块[5]。...Fabric架构 作为由Linux Foundation托管的开源Hyperledger项目的一个项目,Fabric是最活跃开发的许可区块系统之一[8]。...所有Peer都将块提交到区块的本地副本,并将相应的更改应用于维护当前世界状态快照的状态数据库。允许背书者节点根据Fabric的智能合约版本中捕获的业务规则来证明交易有效。...Baliga等人[19]表明,应用程序级参数(如交易的读写集大小、和事件负载大小)显著影响交易延迟。

    1.6K10
    领券