【视频】超级账本HyperLedger:Fabric nodejs SDK的使用

作者:李佶澳  更新时间:2018/07/29 11:16:07

目录

说明

这是“网易云课堂IT技术快速入门学院”使用的素材。操作、配置文件和代码讲解视频在网易云课堂《HyperLeger Fabric进阶实战课》第五章中。

当前(2018-04-25 11:16:23)fabric的SDK只有java和node是正式的,他倆的文档也是最丰富的,Hyperledger Fabric SDK for node.js。当前支持的node版本是v8.9.0~v9.0,v9.0以上版本不支持(2018-07-15 14:11:01)。

相关笔记

都是一边学习一边记录的,有疑惑地方以官方文档为准:

视频演示:

【视频】超级账本HyperLedger:Fabric的全手动、多服务器部署教程

【视频】超级账本HyperLedger:使用Ansible进行Fabric多节点分布式部署(实战)

【视频】超级账本HyperLedger:Fabric从1.1.0升级到1.2.0

【视频】超级账本HyperLedger:Fabric使用kafka进行区块排序(共识)

【视频】超级账本HyperLedger:为Fabric的Peer节点配置CouchDB

【视频】超级账本HyperLedger:Fabric-CA的使用演示(两个组织一个Orderer三个Peer)

【视频】超级账本HyperLedger:Fabric的Chaincode(智能合约、链码)开发、使用示

【视频】超级账本HyperLedger:Fabric Go SDK的使用

【视频】超级账本HyperLedger:Fabric nodejs SDK的使用

【视频】超级账本HyperLedger:Fabric进阶,在已有的Channel中添加新的组织

文字介绍:

超级账本HyperLedger:超级账本工作组旗下项目介绍

超级账本HyperLedger:Fabric掰开揉碎,一文解惑

超级账本HyperLedger:Fabric的基本概念与基础用法

超级账本HyperLedger:FabricCA的基本概念与用法讲解

超级账本HyperLedger:FabricCA的级联使用(InterMediateCA)

超级账本HyperLedger:Fabric Chaincode(智能合约、链码)开发方法

超级账本HyperLedger:Fabric Channel配置的读取转换

超级账本HyperLedger:Explorer安装使用

超级账本HyperLedger:Cello部署和使用

问题汇总:

超级账本HyperLedger:Fabric部署过程时遇到的问题汇总

超级账本HyperLedger:Fabric的Chaincode开发过程中遇到的问题

超级账本HyperLedger:Fabric Node.js SDK使用时遇到的问题

超级账本HyperLedger:Fabric Golang SDK使用时遇到的问题

超级账本HyperLedger:Fabric 1.2.0使用时遇到的问题

准备合适的node版本

当前支持的node版本是v8.9.0~v9.0,v9.0以上版本不支持(2018-07-15 14:11:01)。

在mac上可以用brew安装node8:

$ brew install [email protected]
$ echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile
$ node --version
v8.11.3

或者直接下载安装:nodejs download

用npm管理依赖包

创建文件package.json:

$ cat package.json
{
    "dependencies": {
        "fabric-ca-client": "1.1.2",
        "fabric-client": "1.1.2",
        "grpc": "^1.6.0"
    },
    "author": "Anthony O'Dowd",
    "license": "Apache-2.0",
    "keywords": [
        "Hyperledger",
        "Fabric",
        "Car",
        "Sample",
        "Application"
    ]
}

用npm安装依赖包:

npm config set registry https://registry.npm.taobao.org  (设置淘宝提供的镜像源)
npm install

Example

调用mychannel中的mycc合约的query接口,参数为key:

node ./01-query-chaincode.js

代码如下:

/*
 * client.js
 * Copyright (C) 2018 lijiaocn <[email protected]>
 *
 * Distributed under terms of the GPL license.
 */

var fs = require('fs');
var Fabric_Client = require('fabric-client');

//创建一个Client
Fabric_Client.newDefaultKeyValueStore({ path: '/tmp/xx/' }).then((state_store) => {
    client=new Fabric_Client();
    client.setStateStore(state_store)

    //设置用户信息    
    var userOpt = {
        username: '[email protected]',
        mspid: 'peers.member1.example.com',
        cryptoContent: { 
            privateKey: './msp/keystore/09dd09cf530d8f0fa6cb383b5b409ae8e895d32d31f75823f3bdb3c1f3ee180a_sk',
            signedCert: './msp/signcerts/[email protected]'
        }
    }

    return client.createUser(userOpt)

}).then((user)=>{

    //设置要连接的Channel
    var channel = client.newChannel('mychannel');

    //设置要连接的Peer
    var peer = client.newPeer(
        'grpcs://peer0.member1.example.com:7051',
        {
            pem: fs.readFileSync('./tls/ca.crt', { encoding: 'utf8' }),
            clientKey: fs.readFileSync('./tls/client.key', { encoding: 'utf8' }),
            clientCert: fs.readFileSync('./tls/client.crt', { encoding: 'utf8' }),
            'ssl-target-name-override': 'peer0.member1.example.com'
        }
    );

    channel.addPeer(peer);

    //调用chaincode
    const request = {
        chaincodeId: 'mycc',   //chaincode名称
        fcn: 'query',          //调用的函数名
        args: ['key1']         //参数
    };

    // send the query proposal to the peer
    return channel.queryByChaincode(request);

}).then((response)=>{
    console.log('Response is', response.toString());
})

Hyperledger Fabric SDK for node.js中有每个类说明,上面示例的源代码托管在Github上: hyperledger-fabric-sdks-usage

HyperLedger官方源代码中还有更多的例子:fabric node sdk example

使用过程遇到的问题记录在: 《超级账本HyperLedger:Fabric的Node.js SDK使用时遇到的问题》

更多关于超级账本和区块链的文章

参考

  1. Hyperledger Fabric SDK for node.js
  2. Setting up the Application Developer’s Environment
  3. fabric node sdk example
  4. Operation initiated from the Hyperledger Fabric Client SDK for Node.js results in TSI error
  5. 使用Fabric Node SDK进行Invoke和Query
  6. nodejs download
  7. 《超级账本HyperLedger:Fabric的Node.js SDK使用时遇到的问题》
  8. hyperledger-fabric-sdks-usage

站长微信(朋友圈有精华,一般不闲聊)

推荐阅读

Copyright @2011-2019 All rights reserved. 转载请添加原文连接,合作请加微信lijiaocn或者发送邮件: [email protected],备注网站合作

友情链接:  李佶澳的博客  小鸟笔记  软件手册  编程手册  运营手册  爱马影视  网络课程  奇技淫巧  课程文档  精选文章  发现知识星球  百度搜索 谷歌搜索