检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
// 功能:合约被调用(invoke)接口,需要合约开发者在智能合约中实现此接口,将主要的合约执行逻辑,放到此接口内,供合约使用者调用。 // 入参:stub是智能合约合约SDK为本次合约执行交易准备的上下文对象,可以通过stub提供的API函数,获取交易请求相关信息、读写状态数据库、写日志等
invoke(ChaincodeStub stub) { } } init方法:在链代码实例化或升级时被调用,完成初始化数据的工作。 Invoke方法:更新或查询账本数据状态时被调用, 需要在此方法中实现响应调用或查询的业务逻辑。 链代码结构 Java语言的链代码结构如下: package main
e) pb.Response { // 在该方法中实现链代码运行中被调用或查询时的处理逻辑 // 编写时可灵活使用stub中的API } //主函数,需要调用shim.Start()方法 func main() { err := shim
注册用户 注册用户时可以调用密钥生成函数为用户生成公私钥。 初始化余额 初始化余额时可以调用初始余额准备函数生成具有隐私保护的初始余额信息。 发起交易 交易时可以调用交易准备函数生成具有隐私保护的交易数据。 链代码端对应的逻辑过程是: 保存用户公钥与地址的映射关系。 验证初始余额的有效性并生成初始交易。
合约SDK(index.ts)提供如下API接口,可以在合约文件中进行调用。这些API按照功能可以划分为: 表1 辅助功能 接口 说明 FuncName(txid :string ) :string 获取智能合约请求中指定的智能合约函数名称。 Parameters(txid: string):Array<ArrayBuffer>
对获取到的函数名称进行判断 if function == "invoke" { // 调用 invoke 函数实现转账操作 return t.invoke(stub, args) } else if function == "delete" { // 调用 delete
查询,转账交易三个功能函数,具体功能实现参考如下。 Init初始化余额 当用户注册成功后,需要初始化该用户的余额,默认为0。 输入说明 参数名 类型 描述 是否必须 PubKey string 公钥 是 Balance string 初始金额 是 处理 调用ValidateIni
SDK接口 合约SDK提供如下API接口,可以在合约文件中进行调用。这些API按照功能可以划分为: 表1 stub接口 接口 说明 FuncName() string 获取智能合约请求中指定的智能合约函数名称。 Parameters() [][]byte 获取请求参数。 ChainID()
该内容仅适用于Fabric架构版本的区块链实例的Go语言链代码开发。 为避免出现panic异常时链代码容器异常重启,找不到日志,导致问题无法及时定位,可在Invoke函数入口处添加defer语句时,出现panic异常时返回错误给客户端。 // 定义命名返回值,发生panic在defer里面赋值,确保客户端可以收到返回值
接口服务。 目前支持业务应用通过项目生成的JAVA SDK调用智能合约,后续为了方便用户快速接入区块链系统,将提供快速构建Restful API的方式接入,用户可以在SDK和 Restful API之间选择适合的方式调用智能合约接入区块链系统。 父主题: 区块链应用低代码开发功能
n、Node.js等。应用程序和链代码开发语言无强对应关系,只要应用程序能通过SDK来调用链代码即可。 Hyperledger Fabric增强版对应用程序开放的接口均为gRPC协议,与开源版本保持一致,通常使用SDK进行调用,详情可参考Hyperledger Fabric增强版SDK接口定义。
如果用户需要对私钥文件进行加密,并在demo中解密后传入FabricSDK。 对于TLS私钥 在main.go文件的initializeSdk函数中,按如下方式调用函数: encryptedtlsKey,err := GetTlsCryptoKey(org) //从配置文件指定路径下读取加密过的TLS私钥
广泛,如Golang、Solidity、Java、C++、Python、Node.js等。应用程序和链代码开发语言无强对应关系,只要应用程序能通过SDK来调用链代码即可。 您需要购买区块链实例。 Fabric架构版本的区块链实例支持在CCE集群和边缘集群上部署,具体可参见基于CCE集群。
BCS除了提供web界面管理运维资源之外,还提供了API调用方式,便于用户集成自有管理系统,实现定制化管理入口。可以使用本文档提供API对区块链服务进行相关操作,如创建、查询、删除等。具体API请参见API(Hyperledger Fabric增强版)。 在调用区块链服务API之前,请确保已经充分了解区块链服务基本概念与知识。
错误码 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 状态码 错误码 错误信息 描述 处理措施 100 BCS.4006012 Invalid channel name. channel 名称不合法 请提供合法的channel 名称 400
错误码 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 状态码 错误码 错误信息 描述 处理措施 100 BCS.4006012 Invalid channel name. channel 名称不合法 请提供合法的channel 名称 400
如果用户需要对私钥文件进行加密,并在demo中解密后传入FabricSDK。 对于MSP私钥:在FabricHelper文件的genFabricUser函数中,按如下方式调用函数: //从配置文件指定路径下读取加密过的MSP私钥 String adminPrivateKeyString = extractPemString(msp
权限相关类 问题现象 配置huaweicloudchainReadonly只读策略权限后,调用Hyperledger Fabric增强版接口报错,页面出现如下报错信息,提示权限不足,不影响用户使用华为云区块链引擎。 华为云区块链引擎操作权限不足,分为以下情况: “Policy doesn't
local "}]" Opmethod 区块链链码调用类型,目前只有两类:invoke和query。 "invoke" Args 链码调用参数。 '["invoke","a","b","100"]' (第一个参数为invoke的调用函数,可以是其他值如:move,query等等) 配
获取项目ID 调用API获取项目ID 项目ID还用通过调用查询指定条件下的项目信息API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects/”,其中{Endpoint}为IAM的终端节点。接口的认证鉴权请参见认证鉴权。 响应示例如下