fabric和以太坊 以太坊和fil

发布时间:2025-11-26 11:40:02 浏览:5 分类:比特币资讯
大小:509.7 MB 版本:v6.141.0
欧易官网正版APP,返佣推荐码:61662149

一、Hyperledger Fabric如何通过虚拟机部署以太坊智能合约

EVM作为用户链代码安装到Fabric中,通过它部署智能合约。单个EVM链代码能在通道上运行多个以太坊智能合约。链码不采用以太坊的共识方法。所有事务遵循Fabric事务流中的执行、订单、验证步骤。在不同组织中确保足够的对等方安装链代码,并设置一个确保一定程度分散的认可政策。与已部署的智能合约交互需要fab3,它通过以太坊JSON RPC API实现一组有限的API,用作web3提供者。

为了安装EVM链代码,链代码位于evmcc下的repo fabric-chaincode-evm。安装链码通常遵循常规步骤,基于fabric-samples中first-network教程的1.3版。

挂载EVM链代码需要更新docker-compose-cli.yaml,包含fabric-chaincode-evm。

通过运行启动网络,执行docker exec-it cli bash命令。如果成功,应显示提示信息。

更改目标对等方,使用环境变量如CORE_PEER_MSPCONFIGPATH、CORE_PEER_ADDRESS、CORE_PEER_LOCALMSPID和CORE_PEER_TLS_ROOTCERT_FILE。

在所有对等设备上安装EVM链代码,执行peer chaincode install和peer chaincode instantiate命令。

与EVM Chaincode交互,有通用方法:通常的Fabric工具和Web3。

使用Peer CLI,部署合约时,to字段设为零地址,input包含合约编译后的evm字节码。与合约交互,设置值,如使用set(x)函数,将值设置为10,然后使用get()函数验证值是否正确。

使用Web3.js库可以改善部署和管理EVM智能合约的用户体验。它期望实现以太坊JSON RPC API的接口。通过设置Fab代理,实现与Fabric网络的交互。

部署合约时,需要evm字节码和合约的ABI。使用web3部署合约后,设置web3.eth.defaultAccount,与合约进行交互,如设置值或验证值。

综上所述,Hyperledger Fabric通过虚拟机部署以太坊智能合约的方法涉及链代码安装、交互和与合约的部署。在部署和管理过程中,利用Fabric工具和Web3.js库可以有效实现智能合约的管理与交互。

二、浅谈Hyperledger Fabric架构原理

浅谈Hyperledger Fabric架构原理

Hyperledger Fabric是由IBM公司主导开发的面向企业级客户的开源项目,旨在提供一个高效、安全且灵活的区块链开发框架。以下是对Hyperledger Fabric架构原理的浅谈。

一、Hyperledger Fabric概述

Hyperledger Fabric是一个私有链/联盟链的开发框架,其网络中的节点必须经过授权认证后才能加入,从而避免了像比特币和以太坊这类公有链中的POW(工作量证明)资源开销,大幅提高了交易处理效率,满足企业级应用对处理性能的诉求。为了满足灵活多变的应用场景,Hyperledger Fabric采用了高度模块化的系统设计理念,将各个功能模块进行分离部署,实现了模块的插件式管理。

二、基本概念

Ledger:账本,节点维护的区块链和状态数据库。World state:世界状态,经过数次交易后最新的键值对,表示当前区块链网络中的状态。Channel:通道,私有的子网络。通道中的节点共同维护账本,实现数据的隔离和保密。每个channel对应一个账本,由加入该channel的peer维护,一个peer可以加入多个channel,维护多个账本。Org:Orginazation,管理一系列成员的组织。一个channel内可以有多个组织。Chaincode:链码,运行在节点内的程序,提供业务逻辑接口,对账本进行查询或更新。Endorse:背书,指一个节点执行了一个交易并对结果进行签名后返回响应的过程。背书是交易有效性的重要保证。Ordering Service:排序服务,将交易排序后放入区块中,并广播给网络各节点。排序服务是Hyperledger Fabric中实现共识的关键组件。PKI:Public Key Infrastructure,一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范。PKI在Hyperledger Fabric中用于身份认证和加密通信。MSP:Membership Service Provider,成员管理服务。基于PKI实现,为网络成员生成证书,并管理身份。MSP是Hyperledger Fabric中实现身份认证和权限管理的基础。

三、Hyperledger Fabric的共识算法

在所有peers中,交易信息必须按照一致的顺序写入账本(区块链的基本原则)。Hyperledger Fabric采用了更加灵活、高效的共识算法,以适应企业场景下对高TPS(每秒交易数)的要求。目前,Hyperledger Fabric有三种交易排序算法可以选择:

SOLO:只有一个order服务节点负责接收交易信息并排序,这是最简单的一种排序算法,一般用在实验室测试环境中。SOLO属于中心化的处理方式。Kafka:Apache的一个开源项目,主要提供分布式的消息处理/分发服务。Hyperledger Fabric利用Kafka对交易信息进行排序处理,提供高吞吐、低延时的处理能力,并且在集群内部支持节点故障容错。SBFT:简单拜占庭算法,相比于Kafka,提供更加可靠的排序算法,包括容忍节点故障以及一定数量的恶意节点。目前,Hyperledger Fabric社区正在开发该算法。

四、交易流程

Hyperledger Fabric的经典交易流程包括以下几个步骤:

发送交易提案:客户端发送交易提案(Proposal)到背书节点,提案中包含交易所需参数。模拟执行交易提案:背书节点会调用链码模拟执行交易提案,这些执行不会更新账本。每个执行都会产生读写集(RWsets),即交易中记录的主要内容。返回提案响应:背书节点会对读写集进行背书签名,生成提案响应(Proposal response)并返回给应用程序。交易排序:应用程序根据接收到的提案响应生成交易,并发送给排序服务节点。排序服务打包一组交易到一个区块后,分发给各记账节点。交易验证并提交:每个节点会对区块中的所有交易进行验证,包括验证背书策略以及版本冲突验证(防止双花)。验证不通过的交易会被标记为无效。验证通过后,节点将读写集更新到状态数据库,将区块提交到区块链上。通知交易结果给客户端:各记账节点通知应用程序交易的成功与否,交易完成。

以下是Hyperledger Fabric交易流程的图示:

五、总结

Hyperledger Fabric作为一个面向企业级客户的开源区块链项目,通过高度模块化的系统设计、灵活的共识算法以及高效的交易流程,为企业级应用提供了强大的支持。其架构原理体现了区块链技术在企业级应用中的独特优势和潜力,为区块链技术的广泛应用奠定了坚实的基础。