Hyperledger项目是是linux基金会旗下的项目,成立的目的是为通用行业,通用业务场景提供企业级区块链解决方案,该项目旗下有多个项目并行。Fabric是Hyperledger项目里最早应用最广泛的区块链项目,最初由IBM开发,后捐给基金会。
hyperledger项目源代码:
https://github.com/hyperledger
智能合约
类似于合约协议的数字化代码表达。智能合约的概览是以太坊创始人提出的。将约定写成代码的形式上链执行,智能合约会被放在一个隔离的环境中去执行,保证它不会收到第三方的干扰。以太坊采用EVM虚拟机作为智能合约的执行环境,而Fabric使用Docker作为智能合约执行环境。
Hyperledger Fabric
概念特点
1. 它的设计目标是提供一个企业级联盟链基础设施
2. 它提供了可插拔的共识机制(solo,kafka...)
solo模式中整个区块链网络中只有一个排序节点,这个节点收到交易的顺序就是整个网络中的交易顺序。
kafka是一种流行的消息队列系统,能够很好的保证消息的一致性。
3. 多链多通道隔离
Fabric建立的区块链网络中,所有的参与主体虽然同属于同一个网络,但并不意味着所有的业务所有的主体都会参与进来,某一业务的参与方可能只是整个网络主体中的子集,所以需要做隔离,保证未参与业务的主体不会保存该业务的相关数据。
链码(chaincode)
链码是Fabric应用层的基石(中间件),是应用层用来和区块链底层交互的媒介,如果要基于Fabric写一个关于区块链的项目,那么就要写一个链码,并将链码部署在Fabric上,再根据Fabric提供的SDK写一个应用程序,与部署在Fabric上的链码进行交互。
链码的编程接口:
Init()
Init方法使用在链码初始化时,来进行一些初始化的操作,在链码的整个生命周期内这个方法只会执行一次。
Invoke()
Invoke方法是应用程序与链码交互的一个入口
两个方法接收的参数都是链码的sdk接口。