Hyperledger Fabric联盟区块链 Node.js链码开发【秒懂】

联盟链初识以及Fabric环境搭建流程 这篇文章首先简单介绍了联盟链是什么,再详细的介绍了Fabric环境搭建的整个流程。 区块链分类: 以参与方式分类,区块链可以分为:公有链、联盟链和私有链。 定义: 我们知道区块链就是一个分布式的,去中心化的公共数据库(或称公共账本)。而联盟链是区块链的一个分支,所以它本身也是一个分布式的,去中心化的公共数据库,跟其他链的区别就是它是针对特定群体的成员和有限的第三方,其内部指定多个预选节点为记账人... 阅读详情

Hyperledger Fabric是一种联盟区块链,Fabric区块链也支持智能合约,被称为链码(Chaincode)。Fabric链码就是一个标准的(运行在docker容器中的)操作系统进程,通过gRPC协议与Fabric节点通信。因此理论上可以使用任何语言开发Fabric链码。目前官方提供了三种开发语言的Fabric链码开发工具包:Go、Java和Node.js,本文将介绍如何使用node.js开发Fabric链码。

上汇智网,用互动方式学习以太坊、比特币、EOS、tendermint等更多区块链开发教程。

Fabric官方提供了两种开发node.js链码的途径:fabric-shim和fabric-contract-api。

使用fabric-shim开发Fabric链码

fabric-shim是较底层的链码开发包,它封装了与节点通信的grpc协议。安装方法如下:

~/fabric-shim-chaincode-demo$ npm install fabric-shim

fabric-shim要求链码开发者定义一个实现两个预定义方法的类。

  • Init(stub):初始化链码时节点将调用该方法
  • Invoke(stub):节点将应用对链码的调用转化为对该方法的调用

参数stub由节点传入,它提供了访问链上账本的方法,以便读取或更新账本状态。

例如,下面的代码实现了一个最小化的node.js链码,每次调用链码都会更新acc0的状态(例如:可以使用这个状态代表账户余额):

const shim = require('fabric-shim');

class EzChaincode {
    async Init(stub) {       
        return shim.success(Buffer.from('init done!'));//返回success对象
    }

    async Invoke(stub) {
        let key = 'acc0';
        let oldValue = await stub.getState(key); //读取账本中acc0的状态

        let newValue = oldValue + 100; 
        await stub.putState(key, Buffer.from(newValue)); //更新acc0的状态

        return shim.success(Buffer.from('update done!'));//返回success对象
    }
};

一旦定义好链码,就可以使用shim.start()方法启动链码实例了。例如:

const shim = require('fabric-shim');
class EzChainCode {...}
shim.start(new EzChaincode());

这就是一个完整的Fabric链码了!将上面代码保存为demo.js,可以直接用node.js启动:

~/fabric-shim-chaincode-demo$ node demo.js

使用fabric-contract-api开发Fabric链码

fabric-shim是一种相对底层的fabric grpc协议封装,它直接把链码接口暴露给开发者,虽然简单直白,但如果要实现相对复杂一点的链码,开发者需要自己在Invoke实现中进行方法路由。

fabric-contract-api则是更高层级的封装,开发者直接继承开发包提供的Contract类,就不用费心合约方法路由的问题了。fabric-contrac-api开发方法如下:

~/fabric-contract-api-demo$ npm install fabric-contract-api

使用fabric-contract-api的链码示例代码如下,除了构造函数之外的每个方法都自动称为链码的方法,可供外部应用调用 :

//demo.js
const { Contract } = require('fabric-contract-api');

class EzContract extends Contract

    constructor(){
        super('EzContract'); 
    }

    async update(ctx, newValue) {
        await ctx.stub.putState('acc0', Buffer.from(newValue));
        return Buffer.from('update done!');
    }

    async remove(ctx) {
        //.....
    }

};
module.exports.contracts = ['EzContract'];

与fabric-shim不同,fabric-contract-api只需要链码导出contracts数组,因此不能直接使用node.js启动链码,而需要使用fabric-chaincode-node程序。例如:

~/fabric-contract-api-demo$ fabric-chaincode-node demo.js

汇智网原创,转载请标明出处。

希望尽快学习课程的请访问Fabric区块链开发详解,本课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、通道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、nodejs链码与应用开发的操作实践,是Nodejs工程师学习Fabric区块链开发的最佳选择。

Hyperledger Fabric:企业级区块链开发的首选平台 Hyperledger Fabric是企业级联盟链的首选平台,具有模块化架构、高性能和隐私控制等特性。其核心优势包括:专为企业可信协作设计,支持许可加入和细粒度权限管理;采用可插拔共识机制,支持通道隔离数据;交易吞吐量可达数千TPS。开发流程涵盖网络搭建、Chaincode智能合约开发(支持Go/Node.js等)和SDK集成,适用于金融、政务、供应链等可信协作场景。相比公有链,Fabric更注重企业合规需求,是构建联盟链应用的理想选择。 阅读详情

相关推荐

Hyperledger Fabric 实战教程:企业级区块链应用开发指南

本文从环境搭建、链码开发、网络部署到客户端应用开发,全面介绍了 Hyperledger Fabric 的开发流程。通过实践,您可以深入理解 Fabric 的架构和工作机制,为构建企业级区块链应用打下坚实基础。

CiaoAI做市机器人,让您的代币更具流动性和活跃性 907

node环境下安装Fabric.js

fabrucjs教程http://fabricjs.com/fabric-in... 在node环境下安装fabrucjs,需要安装依赖node-canvas,jsdom 安装jsdom: npm install jsdom --save-dev 安装node-canvas 先要安装依赖项MAC系统使用brew安装:brew instal...

weixin_34273481的博客 1419

Hyperledger Fabric和Composer实现区块链应用程序

目前无法绕过技术领域的是区块链话题。但除了加密货币之外,还有更多有趣的应用程序可以带来许多激动人心的软件生态系统。这也适用于Hyperledger项目,该项目提供了一个非常模块化的区块链框架。让我们看看使用Hyperledger Fabric和Composer实现区块链应用程序是多么容易。 关于项目Hyperledger Hyperledger是一个umbrella项目的名称,在该项目下开源区块链...

mongo_node的专栏 905

fabric.js 中文教程第四部分

fabri.jc中文教程第四部分,介绍了自由绘制,自定义,在Node上使用fabric.js等功能

sj_wl的博客 5227

Hyperledger Fabric 开发——Node.js SDK与fabric链码交互1

Hyperledger Fabric Writing Your First Applicationcd fabric-samples/fabcar && lse

Hyperledger Fabric 链码开发——shim包API详解1

type SimpleAsset struct {args := stub.GetStringArgs()return shim.Error("Incorrec

区块链——Hyperledger Fabric2.2单点搭建网络

文章目录一、搭建基础环境二、生成证书文件1、准备证书配置文件模板2、修改模板3、生成证书文件三、生成通道文件1、编写创世快文件2、生成创世块文件和通道文件三、配置各个节点1、编写docker-compose文件2、运行docker-compose文件四、通道操作1、创建通道2、加入通道1、peer0节点加入通道2、更新锚节点五、安装调用智能合约1、复制官方实例链码2、安装go依赖并打包链码3、将打包好的链码复制到cli24、安装链码5、批准链码6、查看链码是否就绪7、提交链码8、链码初始化9、查询数据

生发真人的博客 1万+

红外图像和可见光图像异源图像配准问题研究

本文旨在研究一种具有高准确率和鲁棒性的融合图像障碍物检测技术,通过把红外和可见光图像进行图像配准和融合,获取高质量的异源融合图像,根据融合图像的特点采用有效的障碍物检测算法,将图像中的障碍物准确检出。......

G_redsky的博客 1万+

实战fabric.js教程及API

先看效果: 项目介绍: 整个页面是一个vue项目中的组件,使用的主要库是fabricjs 官网为http://fabricjs.com/是一个操作canva和svg的库 文档为英文的. 后台系统是nodejs+express 涉及到上传图片 session mongodb 用户表 图库表 设计表, 前端上传组件时ivew的 Upload 后端使用的是 multer ...

知无涯 2万+

汽车级智能栅极驱动器深度解析 | 连载01:DRV871x-Q1系列产品架构与核心特性

集成度:单芯片集成多通道驱动器、电源管理、电流检测智能化:自适应控制算法,减少外部元件可靠性:多重保护机制,满足汽车级要求灵活性:SPI和硬件两种接口,适应不同应用需求。

VehSwHwDeveloper的博客 1149

LAMMPS实操系列(一): 大量FCC-CoCrCuFeNi高熵合金建模与最稳定结构筛选

高熵合金(High-entropy alloys,HEA),是由五种或五种以上等量或大约等量金属形成的合金。由于高熵合金可能具有许多优秀的物理化学性质,因此在材料科学领域受到广泛关注

Ceshigo_CD的博客 3257

Hyperledger Fabric 联盟链部署:网络搭建与链码开发

部署 Hyperledger Fabric 联盟链需先搭建安全网络(证书、通道、节点),再开发链码实现业务逻辑。网络搭建:确保所有组件协同工作,使用工具自动化配置。链码开发:编写高效、安全的合约,并集成测试。建议参考官方文档(如 Hyperledger Fabric Docs)进行详细实践。部署成功后,可扩展为多组织联盟,支持隐私通道等高级特性。如有具体问题,欢迎进一步咨询!

grgredssd的博客 775

静止无功补偿SVG的基本控制原理

上图是自励单变量控制框图,基本控制方式为,采集计算得到负载无功电流和SVG输出的无功电流的差值,经过PI调节作为功率角δ和固定的调制深度λ和调制波,经过PWM调制形成开关信号驱动SVG的功率电路。该控制方式使保持调制深度λ(即SVG电压的幅度)不变,通过调整δ来调整直流电压和无功,跟踪输出无功功率,直流电压就会大幅度随动,无功相应速度较慢。SVG通常有他励方式和自励方式,他励方式需要提供外部的直流电源,自励方式通过电网输出有功功率至SVG建立SVG的直流电压。δ为Us和Uc之间的相角差。

weixin_42668920的博客 1987

WDK_基于Fabric的区块链系统开发

文章目录摘要一、pandas是什么?二、使用步骤总结 摘要 一、pandas是什么? progma solidity ^0.4.0 #要求源文件版本不低于0.4.0 import "filename" #导入所有felename文件中的全局符号到当前全局作用域中 import *as symbolName from "filename" #将filename中的全局符号,导入到symbolName中 import {symbol1 as alias, symbol2} feom "filename" #

sunningzhzh的博客 1万+

目前最新NIST随机数测试软件下载、安装、及使用教程

最近由于科研需要,在搞一些随机数的测试的事情,众所周知 随机数测试我们可以使用NIST的软件进行多大15项的随机测试,我也在网上查找了很多大牛的博客,但是都是年代久远,很多的链接现在都是物是人非,都是不能直接使用了,今天顺便抽点时间更新一下这个NIST软件的下载及使用。我们首先讲一下该软件的下载:1.我们直接取NIST的官网(https://csrc.nist.gov/)下载即可 ;链接如下:下载...

Miracle.Zhao的博客 3万+

异步FIFO的隐形陷阱:复位信号同步化实战解析

本文深入解析异步FIFO设计中复位信号同步化的隐形陷阱,重点分析赛灵思xpm_fifo_async原语在FPGA应用中的常见问题。通过实战代码和系统集成方案,提供复位同步化的最佳实践,帮助工程师避免跨时钟域通信故障,提升系统可靠性。

keras9composer的博客 244

Hyperledger Fabric基础知识笔记

地址 https://github.com/togettoyou/fabric-realty https://mp.weixin.qq.com/s/yDmGwfRjXxDJfgv1d0p3Ig 笔记 区块链基础知识 1.Block 每个区块记录上一区块hash值、本区块中的交易集合、本区块hash值等基础数据。区块串联形成链。 2.Blockchain 多方共享的分布式账本技术,记录交易。 去中心化:多参与者协作维护,无中心管理者。 不可修改:信息以附加形式记录到账本,使用加密技术。 3.Transacti

wohoo~ 8503

EtherCAT主站教程3--适配伺服驱动器(模式配置)

目前通用的伺服驱动器的位置模式、速度模式以及其他模式是伺服系统中常见的控制模式,切换这些模式通常需要根据具体的伺服驱动器型号和控制协议(如EtherCAT、CANopen、Modbus等)进行配置。以下是这些模式的概述及切换方法的一般性指导:协议规范中,一共有以下几种模式:其中模式1、3、6对于比较常用,也更容易上手。

weixin_52626887的博客 793

Hyperledger Fabric基础知识

文章目录什么是Hyperledger Fabric?Hyperledger架构是怎么工作的?Hyperledger交易如何执行总结 Hyperledger Fabric基础知识 本文我们会介绍Hyperledger Fabric的基础知识,并了解如何充分利用这个多功能的区块链框架。 区块链技术为创新提供了丰富的机会。它提供了一种新的交易方式,从而可以从根本上改变业务的实现。 那么,在众多的区块链框...

程序那些事 1万+

人像美肤 人体美型 CVPR 2022 ABPN

人像美肤 CVPR 2022 ABPN

jacke121的专栏 841

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【Hyperledger Fabric】学习笔记2——超级账本介绍

2. 超级账本介绍 2.1 超级账本简介 超级账本是推动区块链跨行业应用的开源项目的总称,组织成员可以发起新的区块链项目,加 入超级账本项目中,但需要遵循超级账本的生命周期。 超级账本的生命周期分为5个阶段,分别为Proposal(提案)、lncubation(孵化)、Active (活跃)、Deprecated(过时)、End of Life(结束)。 超级整本的整个生命周期的过程:成员发起新项目时,1)首先发起者撰写草案,草案内容包括 实现的目标、开发过程、代码维护等信

zqq_2016的博客 2万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

区块链开源框架Hyperledger Fabric介绍

Hyperledger Fabric作为区块链3.0的代表,通过模块化架构实现了企业级区块链解决方案。其核心包括身份管理、智能合约和分布式账本三大组件,采用许可制成员管理保障安全性。Fabric支持多通道数据隔离、可插拔共识机制,提供Go/Java/Node.js等多种开发语言支持。交易流程分为提案、背书、排序和验证四个阶段,实现高性能与可扩展性。相比公有链,Fabric具有完备权限控制、丰富查询功能和灵活部署等优势,特别适合需要数据隐私保护的商业应用场景。

varyall的专栏 5598

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Hyperledger Fabric 应用开发基础

Hyperledger Fabric是由Linux基金会开发的开源企业级区块链框架,专为构建联盟链和私有链设计。其核心特点包括模块化架构、可插拔共识机制、细粒度权限控制和隐私保护功能。文章详细介绍了Fabric的核心组件(Peer节点、Orderer节点、通道机制等)、开发环境搭建(Docker、Go语言等工具)、链码开发流程(编写、打包、安装与批准)、客户端应用开发(Node.js接口)以及安全机制(MSP权限控制、数据加密等)。最后列举了供应链金融、物流追溯和数字版权保护等典型应用场景,展示了Fabri

boyedu的博客 1076

Hyperledger Fabric有那些核心技术,和其他区块链对比Hyperledger Fabric有那些优势

Hyperledger Fabric是一个模块化、权限化的企业级区块链平台,与比特币、以太坊等公有链相比,Fabric主要为私有链或联盟链设计,适用于企业应用。它包含多项核心技术,使其在企业级区块链应用中具有独特优势。

ALONG的博客 2084

Hyperledger Fabric 1.0架构及原理

Hyperledger Fabric 1.0架构及原理   如果说以比特币为代表的货币区块链技术为 1.0,以以太坊为代表的合同区块链技术为 2.0,那么实现了完备的权限控制和安全保障的 Hyperledger 项目毫无疑问代表着区块链技术 3.0 时代的到来。 Hyperledger 项目目前主要包括Fabric,Sawtooth Lake,Iroha,Blockchain-expl

xcjing的博客 2万+

区块链技术开发终极指南:10个步骤从零掌握以太坊与Hyperledger Fabric核心技术

区块链技术作为分布式系统的革命性创新,正深刻改变着各行各业的信任机制与数据管理方式。本指南将通过10个系统化步骤,帮助你从零开始掌握两大主流区块链平台——以太坊(公链代表)与Hyperledger Fabric(联盟链代表)的核心开发技能,成为区块链技术领域的实战型人才。 ## 一、区块链技术基础入门(2周掌握核心概念) 区块链本质上是一种去中心化的分布式账本技术,其核心特性包括不可篡改、透明

gitblog_01121的博客 1169
上一篇: EOS开发DAPP前需要了解的五件事
下一篇: 如何理解eos区块链中的eosio.token合约
落叶无声9
博客等级 码龄12年 443粉丝 343原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值