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…
balance transfer 提供了很多查询接口,包括链码查询,根据区块号查询区块数据,根据交易ID查询交易信息,查询链上的区块数,查询已安装或已实例化的链码,查询通道. 源码解析 1.调用链码查询:调用指定背书节点上部署的普通chaincode对状态数据库进行查询操作,该方法只会发送交易提案到目标节点,并不会产生新的交易发送给排序服务. // 调用指定节点上部署的普通链码进行查询 app.get('/channels/:channelName/chaincodes/:chaincodeNa…
详细解析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…
前言 在Hyperledger Fabric组织的动态添加和删除中,我们已经完成了在运行着的网络中动态添加和删除组织,但目前为止,我们启动 orderer 节点的方式都是通过系统通道的方式,这样自带系统通道的网络很不简洁优雅.好在 Fabric 2.3 以上就开始支持无系统通道创建应用通道的功能,本文将对此功能进行详细解释和介绍,然后通过无系统通道的方式启动联盟链网络并在此基础上完成通道的添加和删除.本实验必要的准备工作和 DNS 配置请参考 准备工作. 背景介绍 实验准备 本文网络结构直接将…
环境: Ubuntu 16.04 go 1.7.4 版本: Fabric v1.0.0-alpha 本文主要目的就是让大家体验以下Fabric网络环境搭建的具体过程,不基于集成化脚本手动搭建. 一.编译 cd $farbric make clean make native make peer-docker 二.环境搭建Before starting, make sure to clear your ledger folder``/var/hyperledger/``. You will want…
在这篇文章中,使用fabric-samples/first-network中的文件进行fabric网络(solo类型的网络)启动全过程的解析.如有错误欢迎批评指正. 至于Fabric网络的搭建这里不再介绍,可以参考这一篇文章Hyperledger Fabric环境搭建过程 fabric网络:单机,solo类型,两个组织,分别有两个节点 首先看一下该文件夹内有哪些文件: base connection-org2.json docker-compose-cli.yaml docker-compose…
前言 在Hyperledger Fabric无系统通道启动及通道的创建和删除中,我们已经完成了以无系统通道的方式启动 Hyperledger Fabric 网络,并将链码安装到指定通道.但目前为止,实验中的 orderer 服务都是通过单独的排序组织来维护且只有一个,那能不能不要排序组织而使用普通组织来运行维护多个 orderer 服务呢?当然是可以的,本文将在之前的实验基础上,启动一个没有 orderer 组织的 Fabric 网络,网络中包含三个组织且每个组织运行维护着一个 Raft 协议的…