balance transfer 提供了很多查询接口,包括链码查询,根据区块号查询区块数据,根据交易ID查询交易信息,查询链上的区块数,查询已安装或已实例化的链码,查询通道. 源码解析 1.调用链码查询:调用指定背书节点上部署的普通chaincode对状态数据库进行查询操作,该方法只会发送交易提案到目标节点,并不会产生新的交易发送给排序服务. // 调用指定节点上部署的普通链码进行查询 app.get('/channels/:channelName/chaincodes/:chaincodeNa…
Blacne transfer是Hyperledger fabric Node SDK的一个示例应用,主要使用了SDK中fabric-client 和 fabric-ca-client 模块中的API,实现了与Fabric网络交互的各种操作. 先决条件 Docker - v1.12 or higher Docker Compose - v1.8 or higher Git - needed for clone commands Node.js - v8.4.0 or higher Docker…
详细解析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; //…
详细解析blance transfer示例的创建通道(Channel)和加入节点到通道的过程. 创建Channel 1.首先看app.js的路由函数 var createChannel = require('./app/create-channel.js'); app.post('/channels', async function(req, res) { // 接收参数channel名称和配置文件的路径 // 通道配置交易路径: ./artifacts/channel/mychannel.tx…
详细分析blance transfer示例的用户注册(register)与登录(enroll)功能. 源码分析 1.首先分析项目根目录的app.js文件中关于用户注册和登录的路由函数.注意这里的token很重要,在之后的请求中,只要在请求头中附上token,js的路由函数就能直接获取其中的参数:req.username,req.orgName // 注册和登录用户 app.post('/users', async function(req, res) { // 获取并检验参数 var usern…
链码安装和实例化之后就可以调用chaincode执行交易,下面分析简单的账户转账操作是如何完成的. 源码分析 1.首先看app.js的路由函数 app.post('/channels/:channelName/chaincodes/:chaincodeName', async function(req, res) { var peers = req.body.peers; var chaincodeName = req.params.chaincodeName; var channelName…
接下来我要做的是用fabric sdk来做出应用程序,代替CLI与整个区块链网络交互.并且实现一个http API,向社区提供一个简单的接口,使社区轻松的与区块链交互. 官方虽然提供了Node.JS,Java,Go(最近刚出了python)等多种语言的SDK,但是很多SDK还不成熟和完善,有的甚至文档都没有.我使用Node.js的原因有三.1.官方例子使用的是Node.js SDK 2.以前我做以太坊智能合约开发的时候也用过Node.js 3.最后是因为Node.js实现一个http服务器是非常…
4:创建Fabric多节点集群 4.1.配置说明 首先可以根据官方Fabric自带的e2e_cli列子中的集群方案来生成我们自己的集群,与案例不同的是我们需要把容器都分配到不同的服务器上,彼此之间通过网络来进行通信,网络构建完成后则进行相关的channel和chaincode操作. 笔者目前申请了五台服务器,所有的服务器均是按照上述e2e_cli环境构建与测试步骤配置.计划其中四台服务器运行peer节点,另外一台服务器运行orderer节点,为其它四个节点提供order服务. 虚拟机具体参数如下…
如何在相同的peer 节点上创建多个 channel 作者在hyperledger fabric 1.0.5 分布式部署 (五)已经向读者们介绍了一个简单的fabric 的部署流程,那么根据上一篇博客的内容,大家实际上可以推断出,创建channel ,实际上需要涉及到 generateArtifacts.sh 脚本和 scritp.sh 脚本 在一个启动了order 节点.peer 节点和cli 节点的fabric 环境里,实际创建一个channel 的操作步骤应该是怎样的呢? 首先应该利用 g…
一.说明 为了持续地进行信息的更新,以及对账本进行管理(写入交易,进行查询等),区块链网络引入了智能合约来实现对账本的访问和控制:智能合约在 Fabric 中称之为 链码,是区块链应用的业务逻辑. 本文分享如何使用 Java 语言开发智能合约,以及合约的安装与使用. 二.环境准备 1.部署好 Fabric 的测试网络,按照上一篇文章<Hyperledger Fabric 2.x 环境搭建>的内容执行第1至5步 - 启动好两个 peer 节点和一个 orderer 节点 - 创建好 mychan…