npm 包 node-ledger-client 使用教程

介绍

node-ledger-client 是一个用于连接 Hyperledger Fabric 的 Node.js 客户端。它支持用户与 Fabric 网络上的链码进行交互,包括查询和执行事务。

在本教程中,我们将学习如何使用 node-ledger-client 引用 Fabric 网络中的智能合约,并撰写一个简单的应用程序来演示如何使用它。

前提条件

在开始之前,您需要首先满足以下条件:

  • 拥有一个 Hyperledger Fabric 网络
  • 安装 node-ledger-client(您可以通过运行 npm install node-ledger-client --save 来安装它)
  • 实现您的智能合约,并将其部署到您的 Fabric 网络

连接 Fabric 网络

在开始使用 node-ledger-client 之前,您需要使用它来连接您的 Fabric 网络。这可以通过以下步骤完成:

  1. 首先,您需要获取您的 Fabric 网络的连接文件。这包括了您的网络的 IP 地址,TLS 证书以及 CA 证书。

  2. 接下来,您需要使用 createConnectionProfile 函数来创建一个连接文件:

    ----- - ------- - - --------------------------
    ----- - ----------------------- - - ------------------------------
    
    -------- ------------ -
        ----- ------------------- - -- ---- ------ --------- ----
        ----- --------------------- - -- ---- ---------- ------- ----
    
        ----- ------ - ----- -------------------------------------------------
        ----- ----------------- - ------------------------
            ----------------------
            ------------ -- ---- ------- ----
            ---------- -- ---- ----- --- --
            ------
        --
        ------ ------------------
    -

    在上述代码中,您需要将 walletDirectoryPath 替换为您的钱包目录路径,并将 connectionProfilePath 替换为您的 Fabric 网络的连接文件路径。如果您的网络配置文件位于文件系统中,则可以使用 createFileBasedConnectionProfile 函数,以避免使用 fs 模块来读取文件。

  3. 通过使用 Gateway 类,您可以打开一个 Fabric 网络的通道,以便与网络进行交互。下面是一个使用 Gateway 类连接 Fabric 网络的示例:

    ----- - ------- - - --------------------------
    
    ----- -------- ------------ -
        ----- ----------------- - ----- -------------
    
        ----- ------- - --- ----------
        ----- ---------------------------------- -
            ------- ------------------------------
            --------- -- ---- --------
        ---
        ------ --------
    -

    在上述代码中,您需要将 identity 参数替换为您作为 Fabric 网络的一员的身份信息。

  4. 现在,您已经连接到 Fabric 网络以及一个通道(在上述示例中为 mychannel),您可以通过使用 getNetwork 函数从通道中获得网络对象:

    ----- -------- ------------ -
        ----- ------- - ----- -------------
    
        ----- ------- - ----- --------------------------------
        ------ --------
    -

交互与链码

一旦您已经连上 Fabric 网络,您可以使用 getContract 函数从网络中获取一个链码对象,以便与其进行交互。

在本例子中,我们使用了名为 basic 的链码,其中定义了一个名为 put 的函数,用于向账本中写入键值对。我们将会向账本中添加一个键为 “foo”、值为 “bar” 的键值对。

下面是一个使用 getContract 函数获取链码对象的示例:

----- -------- ------------- -
    ----- ------- - ----- -------------

    ----- -------- - -----------------------------
    ------ ---------
-

使用 getContract 函数,您可以调用链码中的函数。在本例子中,我们可以通过以下步骤调用 put 函数:

  1. 首先,您需要使用 JSON 格式制定该函数的参数:

    ----- ---- - ------- -------
  2. 使用 submitTransaction 函数将函数的请求发送至链码:

    ----- -------- ------ -
        ----- -------- - ----- --------------
    
        ----- --------------------------------- ---------
    -

    在上述示例中,我们使用 submitTransaction 函数将函数的请求发送至链码。您还可以使用 evaluateTransaction 函数查询链码,该函数返回一个只读的事务,因此它不会在账本上提交任何更改。

完整实例

下面是一个使用 node-ledger-client 连接 Fabric 网络并向账本中添加键值对的完整示例:

----- - ------- - - --------------------------
----- - ----------------------- - - ------------------------------
----- - ------- - - --------------------------

----- -------- ------------ -
    ----- ------------------- - -- ---- ------ --------- ----
    ----- --------------------- - -- ---- ---------- ------- ----

    ----- ------ - ----- -------------------------------------------------
    ----- ----------------- - ------------------------
        ----------------------
        ------------ -- ---- ------- ----
        ---------- -- ---- ----- --- --
        ------
    --
    ------ ------------------
-

----- -------- ------------ -
    ----- ----------------- - ----- -------------

    ----- ------- - --- ----------
    ----- ---------------------------------- -
        ------- ------------------------------
        --------- -- ---- --------
    ---
    ------ --------
-

----- -------- ------------ -
    ----- ------- - ----- -------------

    ----- ------- - ----- --------------------------------
    ------ --------
-

----- -------- ------------- -
    ----- ------- - ----- -------------

    ----- -------- - -----------------------------
    ------ ---------
-

----- -------- ------ -
    ----- ---- - ------- -------
    ----- -------- - ----- --------------

    ----- --------------------------------- ---------

    ------------------------- ----- -- --- ----------
-

-------

运行以上代码,您将向账本中添加键为 “foo”、值为 “bar” 的键值对。

结论

通过使用 node-ledger-client 客户端,您可以轻松地与 Fabric 网络进行交互。在本教程中,我们学习了如何连接 Fabric 网络,从中获得链码对象,并向账本中添加一个键值对。然而,这些仅仅是 node-ledger-client 所能实现的事情的一小部分。您可以使用它来查询、修改账本,以及查询区块链上的交易记录。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600668f8d9381d61a3540f6c


猜你喜欢

  • npm 包 @blinkmobile/canvas-manipulation 使用教程

    介绍 在现代 Web 应用中,Canvas API 是用来绘制和操作图形的一种强大的 HTML5 标准。许多前端开发者使用 Canvas API 来存储和操作图像。

    3 年前
  • npm 包 @jewella/hsl-to-hex 使用教程

    简介 在 Web 开发中,有时我们需要将 HSL(Hue, Saturation, Lightness)颜色格式转换为 HEX(Hexadecimal)格式。npm 上有许多现成的包可以实现这一功能,...

    3 年前
  • npm 包 antfin-sofa-node-antvip 使用教程

    在前端的开发过程中,我们经常需要使用 npm 包来提高我们的开发效率和代码质量。在这篇文章中,我们将会详细介绍 antfin-sofa-node-antvip 这个 npm 包的使用教程,帮助大家更好...

    3 年前
  • npm 包 mysql-mongodb-migrate 使用教程

    随着互联网技术的不断发展,前后端分离架构已成为主流。其中,前端负责 UI 界面、交互逻辑等,后端主要负责数据存储、业务逻辑等。数据存储是许多后端开发者必备的技能,而 mysql-mongodb-mig...

    3 年前
  • npm包 escape-unicode 使用教程

    前置知识 在学习本文之前,需要具备以下知识: Node.js 和 npm 的使用 基本的 JavaScript 知识 背景介绍 在前端开发中,我们经常需要处理 Unicode 字符串。

    3 年前
  • npm 包 nrpl 使用教程

    简介 nrpl 是一个基于 Node.js 实现的简单的日志处理工具,可以将日志输出到标准输出流或者文件流中,同时支持自定义日志级别和输出格式等功能。 其中,nrpl 对于前端开发者来说,是一个非常实...

    3 年前
  • NPM 包 create-accessor 使用教程

    在前端开发中,经常需要对于对象的属性进行读写。直接对属性进行访问虽然方便,但不具备数据合法性检查和副作用控制。而手写 getter 和 setter 又很容易造成代码重复和操作过于繁琐。

    3 年前
  • npm 包 like-to-regexp 使用教程

    在前端开发中,匹配字符串非常重要。而使用正则表达式是一种高效且强大的方式。然而,正则表达式看起来很复杂,学习曲线陡峭,因此,许多开发者在编写正则表达式时遇到了困难。

    3 年前
  • npm 包 @gfi-centre-ouest/docker-compose-spec-typescript 使用教程

    前言 随着时代的发展,前端技术也在不断地发展和进步。其中,npm 包作为前端技术开发的重要组成部分,具有非常重要的作用。而在众多的 npm 包中,@gfi-centre-ouest/docker-co...

    3 年前
  • npm 包 @up24/guid 使用教程

    简介 npm 是 Node.js 的包管理工具,可以通过 npm 快速查找并安装第三方包。@up24/guid 是一个可以生成唯一标识符的 npm 包。在前端开发中,唯一标识符经常被用于指定 DOM ...

    3 年前
  • npm 包 consent-swarm 使用教程

    简介 consent-swarm 是一款基于 P2P 网络的用户数据共享工具。它可以在不泄露用户信息的情况下实现跨平台、跨应用的数据共享和交换,并为用户提供更加个性化的服务。

    3 年前
  • npm 包 angular-whenscrolled 使用教程

    前言 在前端开发中,无限滚动是经常遇到的需求。为了更加高效和方便地实现无限滚动,我们可以使用一些现成的工具包。本文介绍了一个常用的 npm 包:angular-whenscrolled。

    3 年前
  • NPM 包 Gatsby-plugin-freshchat 使用教程

    在 Web 开发中,与用户之间的交互非常重要。而 Freshchat 是一款无缝集成于网站或应用程序的实时聊天软件,为用户提供即时支持。Gatsby-plugin-freshchat 是一个 Gats...

    3 年前
  • npm 包 ember-is-visible 使用教程

    1. 什么是 ember-is-visible? ember-is-visible 是一个轻量级的 Ember.js 库,用于检测 HTML 元素是否在用户的浏览器视窗内可见。

    3 年前
  • npm 包 empty-standby-list 使用教程

    当我们的电脑长时间运行时,可能会出现内存占用过高的情况。这时候,如果我们不愿意重启电脑,就需要使用 empty-standby-list 这个 npm 工具包来清空系统内存。

    3 年前
  • npm 包 jsttd-uniq 使用教程

    前言 在前端开发中,我们常常需要去重数组或者对象数组,以便后续的业务操作。JavaScript 中提供了 Set 数据结构,可以方便地对基本类型数组去重,但对于对象数组需要进行一些处理才能去重。

    3 年前
  • npm 包 class-loop 使用教程

    在前端开发中,经常需要在 DOM 元素上应用某种样式或操作。如果 DOM 元素较多,手动为每一个元素添加样式或操作会变得非常麻烦和繁琐。为了简化这个过程,我们可以使用 npm 包 class-loop...

    3 年前
  • npm 包 personal-number-generator 使用教程

    personal-number-generator 是一款 npm 包,它可以生成个人身份证号码。在前端开发中,有时候需要使用到身份证号码来进行数据验证或者其他操作,使用这个包可以方便地生成测试数据。

    3 年前
  • npm 包 ww-vue2-editor 使用教程

    在前端开发中,我们经常需要使用一些富文本编辑器来实现文章编辑、留言等功能。ww-vue2-editor 是一个基于 Vue.js 2.x 的富文本编辑器组件,它支持文章编辑、图片上传等功能。

    3 年前
  • npm 包 dynamodb-mongodb-migrate 使用教程

    在现代 Web 开发中,许多前端项目需要与后端数据库进行交互。而在这些数据库中,DynamoDB 和 MongoDB 是非常受欢迎的两种 NoSQL 数据库。在许多情况下,我们需要在这两种数据库之间进...

    3 年前

相关推荐

    暂无文章