okx

区块链应用智能合约开发:BSN与Node.js完美结合

时间:2023-06-16|浏览:178

智能合约是用计算机语言描述合约条款、交易条件以及交易业务逻辑等,通过调用智能合约实现交易自动执行和对账本数据的操作。在BSN应用中,可以部署多个链码,每个链码包含多个方法。

链码支持多种语言编写,包括Nodejs、golang和java。每个链码程序都必须实现Chaincode接口,包含Init、Invoke和Query三个基本操作:

- Init方法:链码初始化的方法,在链码实例化或升级时调用,以便链码可以执行必要的初始化,包括应用程序状态的初始化。 - Invoke方法:接收和处理链下业务系统的调用事务处理提案,其参数包含调用的链码程序中函数的名称和具体业务处理数据参数。在Invoke中根据不同的方法参数调用其他分支处理响应的业务。Invoke可以简单理解为链码方法的入口。 - Query方法:提供查询链码数据的方法,该方法只用于查询,不提供对链上数据的操作。可在Query操作时调用,也可在Invoke方法中以及在BSN中对智能合约开发的规范和建议。

如何开发智能合约:

编写链码关键是实现Init和Invoke两个方法。

- Init方法:在链码实例化或升级时调用一次,完成初始化数据的工作。建议处理一些简单的处理,禁止使用该方法去初始化大量基础数据,如果需要初始化数据,建议在Invoke中处理。 - Invoke方法:更新或查询提案事务中的账本数据状态时,Invoke方法被调用。因此响应调用或查询的业务逻辑都需要在此方法中编写实现。

在实际开发中,开发人员可以自定义一个结构体,然后重写Chaincode接口的Init和Invoke方法,并将这两个方法指定为自定义结构体的成员方法。这两个方法被调用时都会传入一个存根对象(stub),链码可以利用该对象来获取请求的相关信息,例如调用者身份、目标通道、参数等等。下面具体说一下如何开发智能合约。

目录说明:

- main.js:程序入口; - bsnchaincode:链码文件夹; - models:数据转换包; - utils:通用工具包。

chaincode.js代码示例,依赖包包括:

- "fabric-shim":"~1.4.0":fabric-shim包提供了链码访问/操作数据状态、事务上下文以及调用其他链代码的API。

链码方法介绍:

- getFunctionAndParameters:返回一个方法调用描述对象,第一个值是调用的链码方法名,第二个值是要传入目标方法的参数对象。 - getArgs:从链码调用请求中返回参数字符串数组,等价于getStringArgs方法。 - getStringArgs:返回链码调用请求中的参数字符串数组。 - getTxID:返回当前链码调用

热点:区块链 区块链应用 智能合约 计算机

欧易

欧易(OKX)

用戶喜愛的交易所

币安

币安(Binance)

已有账号登陆后会弹出下载

« 上一条| 下一条 »
区块链交流群
数藏交流群

合作伙伴

非小号交易所排名-专业的交易行情资讯门户网站,提供区块链比特币行情查询、比特币价格、比特币钱包、比特币智能合约、比特币量化交易策略分析,狗狗币以太坊以太币玩客币雷达币波场环保币柚子币莱特币瑞波币公信宝等虚拟加密电子数字货币价格查询汇率换算,币看比特儿火币网币安网欧易虎符抹茶XMEX合约交易所APP,比特币挖矿金色财经巴比特范非小号资讯平台。
非小号行情 yonghaoka.cn 飞鸟用好卡 ©2020-2024版权所有 桂ICP备18005582号-1