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

如何将自定义业务逻辑应用于Hyperledger上的背书策略?

在Hyperledger Fabric中,背书策略是用于确定交易是否有效的关键机制。背书策略定义了交易必须得到多少个组织的背书才能被提交到区块链上。要将自定义业务逻辑应用于背书策略,可以通过以下步骤实现:

基础概念

  • 背书策略:定义了交易在被网络接受之前必须满足的条件。
  • 智能合约:Hyperledger Fabric中的智能合约称为链码(Chaincode),它包含了业务逻辑。
  • 组织:网络中的参与者,每个组织可以有自己的背书策略。

相关优势

  • 灵活性:可以根据业务需求定制背书策略。
  • 安全性:通过控制背书策略,可以确保只有经过验证的交易被记录到区块链上。
  • 可扩展性:随着业务逻辑的变化,可以更新背书策略以适应新的需求。

类型

  • 基于数量的策略:指定必须有多少个背书。
  • 基于组织的策略:指定哪些组织必须提供背书。
  • 基于数据的策略:根据交易数据的内容来决定是否需要背书。

应用场景

  • 供应链管理:确保所有参与方对交易的有效性达成一致。
  • 金融交易:确保交易符合特定的合规性和审计要求。
  • 医疗记录:确保敏感数据的修改得到适当的授权和验证。

实现步骤

  1. 定义链码:编写包含业务逻辑的链码。
  2. 设置背书策略:在链码部署时或之后,通过配置文件或命令行工具设置背书策略。
  3. 部署链码:将链码部署到网络中,并指定背书策略。
  4. 测试验证:通过模拟交易来验证背书策略是否按预期工作。

示例代码

以下是一个简单的链码示例,以及如何设置背书策略:

代码语言:txt
复制
// 示例链码
package main

import (
    "fmt"
    "github.com/hyperledger/fabric/core/chaincode/shim"
    "github.com/hyperledger/fabric/protos/peer"
)

type SimpleChaincode struct {
}

func (t *SimpleChaincode) Init(stub shim.ChaincodeStubInterface) peer.Response {
    return shim.Success(nil)
}

func (t *SimpleChaincode) Invoke(stub shim.ChaincodeStubInterface) peer.Response {
    function, args := stub.GetFunctionAndParameters()
    if function == "invoke" {
        // 业务逻辑处理
        return shim.Success([]byte("Invoke successful"))
    }
    return shim.Error("Invalid function name")
}

func main() {
    err := shim.Start(new(SimpleChaincode))
    if err != nil {
        fmt.Printf("Error starting SimpleChaincode: %s", err)
    }
}

设置背书策略

在部署链码时,可以通过以下命令设置背书策略:

代码语言:txt
复制
peer chaincode deploy -p path/to/chaincode -c '{"function":"init","args":["arg1","arg2"]}' -P "AND('Org1MSP.member','Org2MSP.member')"

遇到的问题及解决方法

  • 策略不生效:检查链码部署时的背书策略配置是否正确。
  • 背书不足:确保参与交易的组织数量满足背书策略要求。
  • 链码逻辑错误:调试链码中的业务逻辑,确保其按预期执行。

参考链接

通过以上步骤,可以将自定义业务逻辑应用于Hyperledger Fabric的背书策略中,确保交易的安全性和有效性。

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

相关·内容

Hyperledger Fabric 系统架构详解

联盟链严格意义并不是真正“去中心化”,它通过引入了权限管理机制(结合企业在现实业务角色)来弱化对节点作恶预防机制,从而能提高效率、应对复杂业务逻辑。...Hyperledger框架结构是模块化、可拓展,企业可以根据具体业务需求选择不同模块,避免复杂业务逻辑和臃肿系统。...Fabric 区块链核心角色 首先要提是Fabric网络中角色都是逻辑角色,比如 Peer 节点 A 可能既是排序节点,也可能在某些业务中是背书节点,而一个角色也不仅仅由单一节点担任。...将共识机制、权限管理、加密机制、账本等模块都设置为可插拔,且不同链码可以设置不同背书策略,信任机制更加灵活,这样可以根据业务需要设置自己高效系统。...对于一个链码交易来说,背书策略是在链码实例化时候指定,一笔有效交易必须是背书策略相关组织签名才能生效,本质Fabric区块链中交易验证是基于对背书节点信任,这也是称Fabric并不是严格意义去中心化原因之一

2K10

Fabric简介

Hyperledger Fabric基于模块化设计,各个模块实现特定功能。企业之间可以组建Fabric联盟链,将相关业务数据通过智能合约方式写入链,通过背书策略来保证各个企业数据一致性。...,相关组织选择peer安装智能合约 6.其中一个组织,实例化智能合约,主要是在特定通道创建特定业务命名空间并且写入此命名空间初始化数据,在实例化智能合约过程中,指定智能合约背书策略 7.相关组织通过调用智能合约和链数据进行交互...,包括查询,更新等 四、Hyperledger Fabric交易流程图 1.Client sdk生成交易请求,并发送到足够多背书节点。...这里主要目标是满足背书策略。...2.背书节点根据用户请求,按照智能合约模拟执行,返回背书交易 3.Client sdk收集满足背书策略背书交易后发送到orderer排序 4.Orderer对交易排序完成后,生成对应区块,并下发到对应

2.5K30
  • Hyperledger Fabric之模型

    链码(Chaincode) 链码用于定义资产,或定义修改资产交易逻辑,链码定义了读取或修改资产键值对规则。...我们常说智能合同是通过链码是实现,链码定义了资源和交易业务逻辑,编写链码是开发者很重要任务。...(6) 交易被排序保存在区块中,并从ordering(有序)服务中交付到通道其它节点。 (7) 节点通过背书策略验证交易,并且执行对应策略。...为了消除全面的透明和隐私差距问题,链码只能被安装在需要读写资产状态节点,换而言之,如果链码不能在一个节点安装,它将不能采访账本。...当区块交易顺序和结果经过明确策略标准检查通过,共识最终达成。这些检查和平衡在交易周期发生,包括背书策略使用以指定哪些特定成员必须背书特定交易类型,系统链码保证这些策略被执行和维持。

    1.1K20

    Hyperledger Fabric基础知识

    它提供了一种新交易方式,从而可以从根本改变业务实现。 那么,在众多区块链框架中,开发人员应该首先掌握哪个框架呢?...Hyperledger Fabric智能合约称为chaincode。Chaincode是定义资产和相关交易软件;换句话说,它包含系统业务逻辑。...每个链码都可以指定背书策略,该政策定义了有效交易背书必要条件和充分条件。 Channel。通道是由peers集合形成逻辑结构。此功能允许一组peers创建单独交易共享账本。...MSP管理用户ID并验证网络所有参与者,从而使Hyperledger Fabric成为一个私有的和准入网络。 Ordering service。...客户端使用SDK API,创建一个事务并将其发送给背书peer。 endorsing peer会验证客户签名,模拟交易并发送背书签名。

    2.1K10

    Hyperledger Fabric 网络与安全体系浅析

    前言 一篇文章《Hyperledger Fabric 架构详解》对Fabric架构和工作原理进行了详细解读与分析,那作为一个企业级区块链系统,它是如何根据复杂业务需求搭建网络,在运行过程中存在哪些安全问题...Hyperledger Fabric 网络 Hyperledger Fabric 应用场景实例 业务角色 假设有一个采用Fabric系统应用场景里。...Fabric智能合约是链码,把链码存储在节点文件系统称为安装智能合约,安装后还需要在特定通道上启动和实例化链码,至此,应用可以发送交易 proposal 至背书节点了(需要遵守链码设置背书策略...网络搭建完成 Fabric采用权限管理、通道等机制,并通过对不同节点功能分工,提升了系统运行效率,并保障了复杂业务场景中安全和隐私;强大链码和可自定义背书策略等也保障了系统拓展性,可以处理复杂业务逻辑...这些配置和规则共同决定了系统安全性,需要在业务需求、效率和安全性作权衡。

    84310

    Hyperledger Fabric 核心概念

    背书验证指的是背书策略背书策略有很多种,例如我指定策略为大多数节点同意,意思就是一笔交易必需超过半数节点都认证通过了,才能完成,这样就能有效防御一些恶意交易。...五、账本 账本是 Hyperledger Fabric 中一个重要概念,它存储了有关业务对象重要事实信息,其中既包括对象属性的当前值,也包括产生这些当前值交易历史。...六、智能合约 智能合约 是一个运行在账本应用程序,它可以对资产进行编码,其中交易指令(或者叫业务逻辑)也可以用来修改资产。...一次打包可以多次安装,然后接着使用 install 命令在指定 peer 节点安装合约。 安装成功后,接着使用 approveformyorg 命令代表所在机构审批合约,并且指定背书策略。...关于 Java 智能合约开发可以看我之前文章《Hyperledger Fabric 2.x 自定义智能合约》 七、交易流程 file 首先区块链应用发起一笔交易; 然后 背书节点 对交易进行签名验证

    71030

    Fabric6大特性

    什么是Hyperledger Fabric 为了满足现代业务需求,IBM与其他公司合作,共同开发了一个开放源代码,可立即投入生产业务区块链框架,称为Hyperledger Fabric™,这是由LinuxFoundation...Hyperledger Fabric是被广泛使用,支持准入网络分布式账本解决方案。它模块化架构最大程度地提高了区块链解决方案机密性,弹性和灵活性。 1....性能,可伸缩性和信任级别 Hyperledger Fabric建立在模块化架构之上,该架构将事务处理分为三个阶段:分布式逻辑处理和协议(“链码”),事务排序以及事务验证和承诺。...image 从图左侧开始: 1)交易建议由应用程序提交给背书peer节点。 2)背书政策概述了签署提案需要多少个背书人和/或哪些背书人组合。...6)当提交peer节点收到一批事务时 7)验证是否符合背书策略,并检查读/写集以检测冲突事务。如果两项检查均通过,则该块将提交到账本,并且每个事务状态更新都将反映在状态数据库中。

    1.2K20

    干货 | HyperLedger Fabric在携程区块链服务平台应用实战

    比如一个既有通道、既有联盟增加新企业成员,应该由通道/联盟中组织一起进行签名审批,并且将签名审批结果提交到链,与链上策略模块提前在线上协商制定好背书策略签名一致才可以通过。...这就意味着,首先链逻辑可以更灵活被修改甚至可以在不需要在有可能引起分叉代码升级前提下进行运行时修改;再就是链逻辑修改可以像智能合约一样,被共识。...Fabric将节点代码中部分逻辑,如背书过程、交易验证过程、智能合约生命周期管理、配置管理(对应escc、vscc、cscc、lscc系统链码)都作为链合约来设计,称之为系统合约。...这些过程是可以被链共识机制所覆盖,所以才有了fabric可以通过定义各种策略,来实现非中心化地干预这些内置处理流程,如可以定义背书策略、智能合约初始化策略等。...不过现在fabric1.3版本并没有做到链逻辑可以被灵活修改甚至是运行时修改,到现在只是开放了开发者可以通过代码替换来自定义修改escc、vscc。

    1.7K20

    区块链技术面试常被问到Hyberledger Fabric关键概念

    Chaincode应用编码了在channel执行特定类型交易逻辑。...Chaincode Chaincode 是定义资产和修改资产交易指令软件。也就是说,它就是业务逻辑。chaincode执行读取和修改键值对和其它状态数据库信息规则。...共识)进区块,从ordering服务发布到channelpeer节点中 peer节点根据背书策略验证交易并执行策略 在添加新块之前,将执行版本检查来保证资产状态从chaincode执行时刻开始没有被改变...然后,共识不仅是简单同意交易顺序,它是贯穿了整个交易流程中基本角色,从提案、背书、到确认顺序、验证和承诺,Hyperledger Fabric中强调这样差异。...这些检查和平衡发生在一个交易生命周期内,包括背书策略使用,指定特定成员必须对特定交易等级背书;同时系统chaincode保证这些策略被执行和坚持。

    1.8K10

    ——HyperLeger Fabric智能合约(链码)

    链码可通过客户端提交交易对账本状态初始化并进行管理。 链码通常处理由网络中成员一致认可业务逻辑。链码创建(账本)状态是与其它链码互相隔离,因而不能被其它链码直接访问。...Hyperledger Fabric API允许与区块链网络中各个节点(Peer,Order,MSP)进行交互,同时也允许在背书节点package、install、instantiate以及upgrade...Hyperledger Fabric SDK抽象了Hyperledger Fabric API细节,以辅助应用程序开发,当然也能用于管理链码生命周期。...链码应该仅仅被安装在链码所有者成员背书节点,用于实现链码对于网络中其它成员在逻辑是隔离。...SignedCDS另外部分,如所有者及实例化策略都是可选。然而,链码名称必须是一致,否则会被当做另外一个新链码。 在升级前,必须将新版本链码安装到有需求背书节点

    2.3K00

    Fabric概览

    Privacy Hyperledger在每个channel采用了不可变账本,chaincode用于维护、修改当前资产状态。...,使用隐私数据集来在私有数据库中分离它们数据,在channel账本上进行逻辑分离,仅有被授权子组织可以访问这些隐私数据 因此:在隐私实现中,使用了两种概念:channel, privacy collection...但是,共识不仅简单是对交易排序,在Hyperledger中,通过其在整个交易流程中(提案、背书、排序、验证、提交)基础作用,这种差别越加明显。...检查和余额发生在交易生命周期中,且包含使用背书策略去指定特定成员必须对特定交易类型进行背书,以及系统chaincode去保证这些策略被强制执行。...最后检查可以防止双花和其他可能破坏数据完整性操作,而且可以允许在非静态数据执行一些功能(不懂)。 除了多节点背书、合法性、版本检查外,在交易流程各个方向上,也会进行身份验证。

    45520

    Hyperledger Fabric学习笔记01-系统逻辑架构

    ,这满足了大多数业务需求。...可扩展性 Hyperledger Fabric 1.0在0.6版本基础,对Peer节点角色进行了拆分,有背书节点(Endorser)、排序服务节点(Orderer)、记账节点(Committer)...节点可以加入到不同通道(Channel)中,链码可以运行在不同节点,这样可以更好地提升并行执行效率和吞吐量。...多链和多通道设计容易实现数据隔离,也提供了应用程序和链码之间安全通道,实现了隐私保护。 系统逻辑架构 下图是 Hyperledger Fabric 1.0设计系统逻辑架构图: ?...4.智能合约 实现“可编程交易账本”(Programmable Ledger),通过链码执行提交交易,实现基于区块链智能合约业务逻辑

    1.3K30

    Hyperledger Fabric 2.0 Alpha新特性

    链码生命周期 2.0支持链码去中心化治理,引入新流程在节点安装链码,在通道上启动实例。新链码生命周期允许多个组织对链码参数协同达成一致,例如链码背书策略。...新模型改进点如下: (1) 多个组织必须确认同意链码参数 1.x版本里,一个组织拥有修改链码参数能力,例如修改背书策略,通道其它成员也被同步而更改。...新链码生命周期更灵活一些,它兼容支持老版本中心化信任模型,同时也支持去中心化模型,只要有足够多组织同意背书策略即可。​...(3) 更简单更新背书策略链码生命周期无需重新打包安装链码,可直接修改背书策略,用户也可以使用新默认策略,从通道主要成员获得背书。这个默认策略在组织加入或退出通道时会自动更新。...排序服务是可插拔,华为等大厂都有自己实现XFT排序服务。 小结 总体还是继续稳定优化,让开发更好编写和部署链码,让运维更方便管理系统。

    77110

    链课堂01 | 解密超级账本-Fabric运行机制

    ➤Chaincode(链码)源自智能合约思想,并进行了进一步扩展,支持Java、Go等高级编程语言。运行时靠容器和状态机实现处理逻辑。...确认节点(Committer)对区块(Block)、交易读写集、背书策略等进行校验,写入Blockchain并更新World State DB。...Fabric 1.0版本共识过程包括背书、排序、和验证三个环节保障。 ➤背书 Chaincode在实例化时候,需要指定背书策略。...06 特征 除了以上提到具有数据隔离、模块化、支持高级语言Chaincode等外,它和Bitcoin和Ethereum等公有链相比还有更多不一样: ➤代币 Fabric没有代币机制,仅提供了一张类似白纸一样平台...,共识结果被推翻概率越来越小,成为事实最终结果。

    1.4K20

    Hyperledger Fabric学习笔记02-网络节点架构

    节点是区块链通信主体,是一个逻辑概念。多个不同类型节点可以运行在同一物理服务器。有多种类型节点:客户端、Peer节点、排序服务节点和CA节点。下图为网络节点架构图2-1: ?...背书节点是动态角色,是与具体链码绑定。每个链码在实例化时候都会设置背书策略,指定哪些节点对交易背书后才是有效。...排序服务提供是原子广播(Atomic Broadcast),保证同一个链节点接收到相同消息,并且有相同逻辑顺序。...现在是通过Kafka/ Zookeeper实现CFT,未来将提供基于 etcd/Raft Raft共识订购服务以及完全分散BFT订购服务 ##CA节点 CA节点是Hyperledger Fabric1.0...参考资料 《深度探索区块链:Hyperledger Fabric技术与应用》 Pluggable Consensus

    80030

    Hyperledger Fabric 是假区块链!”

    当时我们考虑到细节包括: 区块链智能合约语言如何安全、简单地表达出复杂业务逻辑? 如何保证公钥签名有效性?...从这几个细节入手分析,我认为 IBM Hyperledger Fabric 从根本缺乏区块链必要元素,其性能指标充满了误导性,在长期业务可行性也不禁让人打一个大大问号。...所有的节点都会收到订购服务发来区块信息,但它们需要验证区块中交易信息来保证区块链中数据安全性,步骤如下: 1、验证背书节点执行策略; 2、验证当前状态数据库中读写集版本; 3、向区块链中提交区块信息...需要注意是,智能合约不仅仅是一段代码,它是公司业务逻辑体现。智能合约可以执行区块链产权登记,数字身份验证,甚至可以用来执行二手车买方和卖方之间托管交易。...最重要是,智能合约是可靠,它始终会按照你给它规定行事。 在区块链构建业务逻辑时,你需要将自己想要进行操作(买入、卖出、打包数据等等)用智能合约表示出来。

    2K20

    Hyperledger Fabric基础之Peer节点

    Java基本只能看TestCase代码, 所以说Hyperledger Fabric也属于成长完善阶段。...前三步更新区别是, 因为涉及到共识和数据一致性,实际应用需要发送更新提议到其它背书(endorsing)节点, 背书节点会模拟执行但不修改各自账本,背书完成后返回响应给应用。...节点与通道 我们可以认为通道是逻辑一个结构,用于隔离一组物理上peer节点和应用,通道概念很关键,主要用于管理和隔离节点。 ?...官方FAQ回答是背书策略是由链码部署时候声明, BYFN例子 peer chaincode instantiate -o orderer.example.com:7050 --tls --cafile...阶段3 - 验证 节点收到orderer分发新区块,会去验证交易是否根据对应链码背书策略被所需组织背书签发。

    1.4K10

    概念复习二——EVM

    并行执行 执行一个交易并检查其正确性,从而给它背书, 通过(可插拔)共识协议将交易排序, 提交交易到账本前先根据特定应用程序背书策略验证交易 (四)待补充 fabric: 背书策略:通道背书策略和链码背书策略...四、fabric是否有类似EVM合约虚拟机 Hyperledger Fabric是一个开放源代码企业级区块链平台,与以太坊EVM相比,它在智能合约执行方面有一些不同设计。...在Fabric中,智能合约被称为链码(Chaincode),它是用来定义业务逻辑和状态转换规则一段代码。...与EVM合约虚拟机不同,Fabric中链码并不依赖于虚拟机来执行,而是直接在背书节点(Endorser)以本地代码方式执行。...尽管Fabric没有像以太坊EVM那样提供虚拟机级别的指令集执行,但通过链码容器化执行和底层状态数据库访问,Fabric能够提供类似的智能合约功能,支持灵活业务逻辑和状态转换规则定义。

    23420

    Hyperledger Fabric 2.0 Alpha发布了!

    Fabric生命周期允许多组织对链码参数达成共识,例如链码在开始和账本进行交互前背书策略。...新模型在之前生命周期上进行了改进: 多个组织必须同意链码参数:在Fabric 1.x版本中,一个组织能够为所有其他通道成员设置链码参数(例如背书策略)。...更轻松背书策略升级:Fabric生命周期允许你在没有重新打包或者安装链码情况下,变更背书策略。用户可以体验到默认要求通道内大多数成员同意策略好处。...Endorsement policies:了解使用新链码生命周期如何使用通道配置中策略作为背书策略。 限制 Fabric v2.0 Alpha版本中链码生命周期尚未完成。...这意味着Docker镜像现在将会小很多,提供更快下载和启动时间,以及在主机系统占用更少磁盘空间。

    82820

    Hyperledger Fabric 2.0 Alpha发布了!

    Fabric生命周期允许多组织对链码参数达成共识,例如链码在开始和账本进行交互前背书策略。...新模型在之前生命周期上进行了改进: 多个组织必须同意链码参数:在Fabric 1.x版本中,一个组织能够为所有其他通道成员设置链码参数(例如背书策略)。...更轻松背书策略升级:Fabric生命周期允许你在没有重新打包或者安装链码情况下,变更背书策略。用户可以体验到默认要求通道内大多数成员同意策略好处。...Endorsement policies:了解使用新链码生命周期如何使用通道配置中策略作为背书策略。 限制 Fabric v2.0 Alpha版本中链码生命周期尚未完成。...这意味着Docker镜像现在将会小很多,提供更快下载和启动时间,以及在主机系统占用更少磁盘空间。

    1.2K30
    领券