元宇宙非小号金色财经交流群社区官网

快速学会Fabric区块链Node.js链码开发

浏览:118|时间:2023-06-16 01:53:36
本文主要介绍了如何使用node.js开发Hyperledger Fabric联盟区块链中的链码。Fabric链码是一个标准的运行在Docker容器中的操作系统进程,可以用任何语言开发。目前官方提供了三种开发语言的Fabric链码开发工具包:Go、Java和Node.js。其中,Fabric官方提供了两种开发node.js链码的途径:fabric-shim和fabric-contract-api。

使用fabric-shim开发Fabric链码时,需要先安装fabric-shim,然后定义一个实现Init(stub)和Invoke(stub)两个方法的类,其中参数stub提供了访问链上账本的方法。例如,以下代码实现了一个最简化的node.js链码:

const shim = require("fabric-shim"); class EzChaincode { async Init(stub) { return shim.success(Buffer.from("init done!")); } async Invoke(stub) { let key = "acc0"; let oldValue = await stub.getState(key); let newValue = oldValue + 100; await stub.putState(key, Buffer.from(newValue)); return shim.success(Buffer.from("update done!")); } };

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

使用fabric-contract-api开发Fabric链码时,需要先安装fabric-contract-api,然后继承开发包提供的Contract类,构造函数中传入链码的名称,然后定义对应的方法,例如以下代码:

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数组,然后需要使用fabric-chaincode-node程序启动链码实例。

以上就是使用node.js开发Fabric链码的简要步骤和代码示例。本文由汇智网原创,转载请注明来源。

fabric 区块 区块链 JS c区块链

本站分享的区块链、Web3.0元宇宙、NFT、数字藏品最新消息等相关数藏知识快讯NFR资讯新闻,与金色财经非小号巴比特星球前线Btc中国官网无关,本站资讯观点不作为投资依据,市场有风险,投资需谨慎!不提供社区论坛BBS微博微信交流群等相关币圈信息发布!
本站内容来源于互联网,如存在侵权及违规内容投诉邮箱( zztaobao@vip.qq.com )