Hyperledger fabric 链码篇GO(四)】的更多相关文章

Hyperledger fabric 链码篇GO(四) fabric中的链码也就是我们区块链所认知的智能合约,fabric中可由nodejs,java,go编写,本篇只针对GO语言编写链码.将详细介绍链码编写所必须的函数以及相关功能函数. 1.常识 链码的包名指定 // xxx.go package main 必须要引入的包 import( "github.com/hyperledger/fabric/core/chaincode/shim" pb "github.com/h…
什么是链码(Chaincode)? 我们知道区块链有3个发展阶段:区块链1.0,区块链2.0,区块链3.0.其中区块链2.0就是各种区块链平台百花齐放的阶段,区块链2.0最大的特点就是智能合约,我们接下来要介绍的链码就是智能合约的一种,是Hyperledger子项目Fabric提供的智能合约,叫做chaincode,翻译过来就是链码. 链码是一段程序,目前采用go语言来编写,Java.NodeJs语言也会慢慢支持.链码的编写需要实现Fabric提供的一套接口,之后链码需要运行在一个安全的Dock…
在<Hyperledger Fabric链码之一>和<Hyperledger Fabric链码之二>中我们介绍了链码的定义,并通过dev网络测试了测试了自己编写的链码程序. 本文中我们站在区块链网络管理员的角度来阐述链码,我们集中在链码的声明周期管理,如链码的打包,安装,初始话以及升级. 链码声明周期 超级帐本Fabric提供的接口使得多种类型的节点能够进行交互 - 节点,排序节点以及成员管理服务 - 同时使得在背书节点上可以进行打包.安装.初始化和升级链码. Hyperledge…
上篇文章中我们介绍了链码的概念,本文中我们将介绍Fabric下链码的编写和测试.我们会通过一个简单例子的方式来阐述链码API的使用. 链码API     每一个链码程序都必须实现一个接口Chaincode Interface, 这些方法用来响应接受到的交易.特别的,当链码接收到``Instantiate``和``upgrade``类型的交易时会调用``Init``方法,执行一些需要的初始化,包括应用状态的初始化.当链码接收到``Invoke``类型的交易时候会调用``Invoke``方法来处理交…
详细解析blance transfer示例的安装(install)和实例化(Instantiate)链码(chaincode)的过程.安装chaincode会根据本地的链码文件生成chaincode镜像,实例化chaincode则会启动该镜像,使链码在docker容器中运行. 安装chaincode 1.首先看app.js中的路由函数 app.post('/chaincodes', async function(req, res) { var peers = req.body.peers; //…
智能合约,是一个抽象的概念,智能合约的历史可以追溯到 1990s 年代.它是由尼克萨博(Nick Szabo)提出的理念,几乎与互联网同龄. 我们这里所说的智能合约只狭义的指区块链中.它能够部署和运行在区块链环境中,由一段代码来描述相关的业务逻辑.部署后的智能合约在区块链中无法修改,智能合约的执行完全由代码决定,不受人为因素的干扰.一般来说,参与方通过智能合约规定各自权利和义务.触发合约的条件以及结果,一旦该智能合约在区块链环境中运行就可以得出客观.准确的结果. 什么是ChainCode Cha…
前几章已经分别把三台虚拟机环境和配置文件准备好了,在启动fabric网络之前我们要准备好写好的chaincode.chaincode的开发一般是使用GO或者JAVA,而我选择的是GO语言.先分析一下官方最典型的一个chaincode--fabcar,然后着重介绍一下shim.ChaincodeSubInterface,最后在贴上我自己的chaincode. 一.chaincode主要框架结构 1.1 引入了4个程序库,用于格式化.处理字节.读取和写入JSON,以及字符串操作.2个Hyperled…
4.1.配置说明 首先可以根据官方Fabric自带的e2e_cli列子中的集群方案来生成我们自己的集群,与案例不同的是我们需要把容器都分配到不同的服务器上,彼此之间通过网络来进行通信,网络构建完成后则进行相关的channel和chaincode操作. 笔者目前申请了五台服务器,所有的服务器均是按照上述e2e_cli环境构建与测试步骤配置.计划其中四台服务器运行peer节点,另外一台服务器运行orderer节点,为其它四个节点提供order服务. 虚拟机具体参数如下表所示: 名称 ip 节点标识…
1.Fabric简介 Fabric是超级账本中的一个项目,用以推进区块链技术.和其他区块链类似,它也有一个账本,使用智能合约,且是一个参与者可以分别管理自身交易的系统.它是一个联盟链.Fabric与其他区块链系统最大的不同在于它是隐私的.许可的网络.相对于像其他区块链那样通过“工作量证明”来验证身份(允许任何人加入网络),Fabric的成员通过会员注册服务提供商来加入网络.Fabric提供了多种可插拔的选择,账本数据可以以多种形式存储,共识机制可切换,且支持不同的会员服务.Fabric还提供了创…
一直以来,写完链码进行测试都要先搭建一个Fabric环境,然后安装链码进行测试,实际上Fabric提供了最为简单的方式可以允许我们对编写的应用链码进行功能测试,不需要搭建一个完整的Fabeic环境.而且测试完直接停止网络也不会担心有残余的文件没有删除干净,以至于搭建正式环境的时候出现各种错误. 进入正题好了,Fabric提供了一个开发模式,是专门用来对链码进行测试用的. 其实,这些内容在Fabric官方文档中都是有的,但是一般我们都忽略掉了,所以简单说一下步骤 官方文档地址:点这里 1.先决条件…