检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
返回结果 状态码 请求发送以后,您会收到响应,包含状态码、响应消息头和消息体。 状态码是一组从1xx到5xx的数字代码,状态码表示了请求响应的状态,完整的状态码列表请参考状态码。 对于获取用户Token接口,如果调用后返回状态码为“201”,则表示请求成功。 响应消息头 对应请求
返回结果 状态码 请求发送以后,您会收到响应,包含状态码、响应消息头和消息体。 状态码是一组从1xx到5xx的数字代码,状态码表示了请求响应的状态,完整的状态码列表请参见状态码。 对于获取IAM用户Token(使用密码)接口,如果调用后返回状态码为“201”,则表示请求成功。 响应消息头
error) 参数说明 参数 类型 说明 chainID string 链ID。 txHash []byte 交易Hash。 返回值 类型 说明 *common.RawMessage 查询交易执行结果需发送的消息。 error 构建成功返回类型为nil,反之返回error。 消息发送。
error) 参数说明 参数 类型 说明 rawMsg *common.RawMessage 上述查询请求需发送的消息。 返回值 类型 说明 *common.RawMessage 查询请求返回的消息。 error 发送成功返回类型为nil,反之返回error。 父主题: Go SDK介绍
error) 参数说明 参数 类型 说明 chainID string 链ID。 txHash []byte 交易哈希。 返回值 类型 说明 *common.RawMessage 根据交易ID查询交易详情需发送的消息。 error 构建成功返回类型为nil,反之返回error。 消息发送。
参数说明 参数 类型 说明 rawMessages []*common.RawMessage 背书请求返回结果集合。 返回值 类型 说明 *TxRawMsg 包含交易hash的交易请求信息,该消息使用transaction接口发送。 error 构建成功返回类型为nil,反之返回error。
为避免出现panic异常时链代码容器异常重启,找不到日志,导致问题无法及时定位,可在Invoke函数入口处添加defer语句时,出现panic异常时返回错误给客户端。 // 定义命名返回值,发生panic在defer里面赋值,确保客户端可以收到返回值 // 使用debug.PrintStack()将错误的堆栈信息打印到标准输出,方便问题定位
参数说明 参数 类型 说明 fileName string 查询的链上文件名。 返回值 类型 说明 []*FileHistory 文件历史版本信息列表,每条历史版本信息包含版本号、文件哈希值、首次上链时间、更新时间、上传者数据。 error 查询成功返回类型为nil,反之返回error。
链代码相关的API Fabric源码包中的shim包提供了如下几种类型的接口,您可以参考使用: 参数解析API:调用链代码时需要给被调用的目标函数/方法传递参数,该API提供解析这些参数的方法。 账本状态数据操作API:该API提供了对账本数据状态进行操作的方法,包括对状态数据的查询及事务处理等。
链代码相关的API Fabric源码包中的shim包提供了如下几种类型的接口,您可以参考使用: 参数解析API:调用链代码时需要给被调用的目标函数/方法传递参数,该API提供解析这些参数的方法。 账本状态数据操作API:该API提供了对账本数据状态进行操作的方法,包括对状态数据的查询及事务处理等。
Go语言合约由合约文件及依赖包构成,包含包声明、依赖包导入、智能合约的结构体定义和方法定义。 合约文件中,用户可自定义结构体以及合约函数。以下内容不可更改: package名:package usercontract 函数的签名:NewSmartContract()、Init(stub contractapi.Con
RawMessage, error) 参数说明 参数 类型 说明 chainID string 链ID。 返回值 类型 说明 *common.RawMessage 查询链状态需要发送的消息 error 查询成功返回类型为nil,反之返回error。 消息发送。 接口方法 QueryAction
入参:stub是智能合约SDK为本次合约执行交易准备的上下文对象,可以通过stub提供的API函数,获取交易请求相关信息、读写状态数据库、写日志等 // 返回值:需要返回给合约调用者(区块链客户端)的信息,没有信息需要返回时,返回值可以为null // 抛出异常:初始化过程的异常信息,可由合约编写者自行设定异常逻辑
获取用户传递给调用链代码的函数名称及参数 function, args := stub.GetFunctionAndParameters() // 对获取到的函数名称进行判断 if function == "invoke" { // 调用 invoke 函数实现转账操作 return
性校验,确保没有非法操作。示例中实现了余额初始化,余额查询,转账交易三个功能函数,具体功能实现参考如下。 Init初始化余额 当用户注册成功后,需要初始化该用户的余额,默认为0。 输入说明 参数名 类型 描述 是否必须 PubKey string 公钥 是 Balance string
error) 参数说明 参数 类型 说明 chainID string 链ID。 blockNum uint64 区块高度。 返回值 类型 说明 *common.RawMessage 根据块高查询区块详情需发送的消息。 error 查询成功返回类型为nil,反之返回error。 消息发送。
Fabric架构版本的区块链实例: 链代码启动必须通过1.4风格(调用shim包)中的Start函数,入参为shim包中定义的Chaincode接口类型。实际开发中, 您需要自行定义一个结构体,实现Chaincode接口。 type Chaincode interface {
是否必选 参数类型 描述 project_id 是 String 项目ID instance_id 是 String 实例ID 表2 Query参数 参数 是否必选 参数类型 描述 name 是 String 合约名称 language 否 String 扫描报告语言类型:中文(zh-cn)、英文(en-us),默认英文
链代码结构 本章以Java语言为例来介绍。链代码即一个Java项目,创建好文件后进行函数开发等操作。 约束与限制 Java链代码仅支持Fabric 2.2及以上版本。 Java链代码仅适用于Fabric架构版本的区块链实例。 链代码接口 链代码启动必须通过调用shim包中的start方法。实际开发中,
ContractStub合约信息&状态数据库访问接口 接口 说明 String funcName() 功能:获取智能合约请求中指定的智能合约函数名称 入参:无 返回值:智能合约函数名称 byte[][] parameters() 功能: 获取请求参数 入参:无 返回值:用户执行智能合约逻辑时