云服务器内容精选

  • 示例Demo 合约开发需要使用go mod,因此请确保GO111MODULE为on、镜像源配置。请确保可正常访问华为云镜像网站,环境设置命令如下 go env -w GO111MODULE=ongo env -w GOPROXY=https://repo.huaweicloud.com/repository/goproxy/go env -w GONOSUMDB=* 合约开发和调测可参考合约示例Demo进行,单击链接获取contractDemo。 工程目录分为三部分: internal目录提供一些接口以及接口的mock,用于帮助实现合约的接口使用。 simplevalue目录提供用于简单value的合约文件和测试文件。 structvalue目录提供用于结构体value的合约文件和测试文件。 父主题: Go合约开发
  • 查询区块块高 消息构建。 接口方法 func (msg *QueryRawMessage) BuildLatestChainStateRawMessage(chainID string) (*common.RawMessage, error) 参数说明 参数 类型 说明 chainID string 链名称。 返回值 类型 说明 *common.RawMessage 查询链状态需发送的消息 error 查询成功返回类型为nil,反之返回error。 消息发送。 接口方法 QueryAction.class func (action *QueryAction) GetLatestChainState(rawMsg *common.RawMessage) (*common.RawMessage, error) 参数说明 参数 类型 说明 rawMsg *common.RawMessage 上述查询链状态消息。 返回值 类型 说明 *common.RawMessage 用于获取包含发送结果的消息。 error 发送成功返回类型为nil,反之返回error。 父主题: 其他查询
  • 文件下载 接口方法 func (bc *BsClient) DownloadFile(filePath, fileName string, versionId int) error 参数说明 参数 类型 说明 filePath string 文件下载到本地的路径。 fileName string 待下载文件在链上的名称。 versionId int 待下载文件的版本号。 返回值 类型 说明 error 下载成功返回类型为nil,反之返回error。 父主题: Go SDK介绍
  • 初始化SDK 文件存储客户端 基于已初始化的SDK Gateway客户端模板初始化富媒体存储客户端。 调用方法 func NewBsClient(gatewayClient *client.GatewayClient, chainID string, consenterName string)(*BsClient, error) 参数说明 参数 类型 说明 gatewayClient *client.GatewayClient 必填参数,已初始化过的Gateway客户端。 chainID string 链名称。 consenterName string 共识节点名称,如“node-0.organization”。
  • 初始化SDK客户端 基于标准配置文件模板初始化Gateway SDK。 调用方法 func NewGatewayClient(configPath string, decrypts ...func(bytes []byte) ([]byte, error)) (*GatewayClient, error) 参数说明 参数 类型 说明 configPath String 必填参数,客户端SDK配置文件的绝对路径。 decrypts func(bytes []byte) ([]byte, error) 非必填参数,指定证书密文解密算法,默认为明文,无须解密(可变参数)。
  • 获取节点对象 根据节点名称,获取需要发送交易的节点对象。所有消息发送前,都必须调用该方法,获取发送节点对象,然后再获取对应的消息发送接口对象。 调用方法 public WienerChainNode getWienerChainNode(String name) throws InvalidParameterException 参数说明 参数 类型 说明 name String 节点名称。 返回值 类型 说明 WienerChainNode WienerChainNode对象。
  • 示例Demo 本节提供一个基于Java SDK的Demo,帮助开发自己的Java客户端应用程序。 可单击链接下载获取Java应用程序Demo,项目结构如下: 其中App文件即业务端调用的示例,Contract文件实现了通过合约对业务数据交互。对数据有修改的操作如插入和删除,需要调用其中的send方法。对数据的查询操作如查询某个键的历史,需要调用其中的query方法。 util文件夹提供了两个工具类,BlockUtil用于从区块上获取数据,TxUtil用于从交易上获取数据。 父主题: Java应用程序开发
  • 文件上链 接口方法 func (bc *BsClient) UploadFile(filePath, fileName string) (*UploadFileResponse, error) 参数说明 参数 类型 说明 filePath string 待上链文件在本地的路径。当前支持不大于100MB的任意格式文件。 fileName string 文件在链上的名称。 返回值 类型 说明 *UploadFileResponse 文件上链返回信息。 error 上链成功返回类型为nil,反之返回error。 父主题: Go SDK介绍
  • 查询文件操作记录 接口方法 func (bc *BsClient) GetFileOperation(fileName, startTime, endTime string) ([]*bstore.StorageEvent, error) 参数说明 参数 类型 说明 fileName string 查询的链上文件名。 startTime string 查询记录的起始时间(秒时间戳)。 endTime string 查询记录的结束时间(秒时间戳) 返回值 类型 说明 []*StorageEvent 文件操作记录列表,每条操作记录包含操作者、操作类型、时间数据。 error 查询成功返回类型为nil,反之返回error。 父主题: 其他查询
  • 示例Demo 应用程序开发需要使用go mod,因此请确保GO111MODULE为on、镜像源配置。请确保可正常访问华为云镜像网站,环境设置命令如下 go env -w GO111MODULE=ongo env -w GOPROXY=https://repo.huaweicloud.com/repository/goproxy/go env -w GONOSUMDB=* 示例Demo基于Go SDK开发,主要用于帮助开发人员理解并开发Go客户端应用程序,示例Demo下载链接。 Demo目录主要分为: main.go文件,为Go语言客户端主程序。 huaweichain文件夹,Go语言客户端SDK,相关介绍请参考Go SDK介绍。 utils文件夹,主要包含常见的SDK调用示例,详细内容可参照readme.md文件(其中utils/config.go为客户端配置文件,需要根据实际情况进行修改)。 父主题: Go应用程序开发
  • 查询文件历史版本 接口方法 func (bc *BsClient) GetFileHistory(fileName string) ([]*bstore.FileHistory, error) 参数说明 参数 类型 说明 fileName string 查询的链上文件名。 返回值 类型 说明 []*FileHistory 文件历史版本信息列表,每条历史版本信息包含版本号、文件哈希值、首次上链时间、更新时间、上传者数据。 error 查询成功返回类型为nil,反之返回error。 父主题: 其他查询
  • 合约结构 go语言合约即一个Go文件,包含包声明、依赖包导入、智能合约的结构体定义和方法定义。创建好合约文件后就可以进行函数开发等操作。 合约结构中,仅合约结构体可以更改,package名和方法签名不可更改。 合约的结构如下: package usercontract// 引入必要的包 import ( "git.huawei.com/poissonsearch/wienerchain/contract/docker-container/contract-go/contractapi") // 声明合约的结构体 type example01 struct {}// 创建合约func NewSmartContract() contractapi.Contract { return &example01{}}// 合约的初始化(Init)接口。将合约启动时,需要首先执行且只需要执行一次的逻辑放到此方法中。func (e *example01) Init(stub contractapi.ContractStub) ([]byte, error) { // 编写时可灵活使用stub中的API } // 合约被调用(invoke)接口。将主要的合约执行逻辑,放到此方法内,供合约使用者调用。func (e *example01) Invoke(stub contractapi.ContractStub) ([]byte, error) { // 编写时可灵活使用stub中的API } 父主题: Go合约开发
  • SDK客户端配置 客户端配置如下: SDK配置请参考SDK配置。 华为链实例创建完成后,下载配置文件,具体请参考下载配置文件。 使用解压后的配置文件初始化SDK客户端,初始化方法请参考SDK介绍中的通用方法,配置示例可参考示例Demo。 配置文件主要包含证书文件和yaml配置,实例中每个组织对应一个yaml文件,可通过读取不同的yaml生成不同的SDK客户端对象。 客户端初始化需确保yaml文件中证书文件等路径为证书的实际存放路径。 父主题: Go应用程序开发
  • 利用合约发送交易 背书消息构建 接口函数 func (msg *ContractRawMessage) BuildInvokeMessage(chainID string, name string, function string, args []string) (*common.RawMessage, error) 参数说明 参数 类型 说明 chainID string 链名称。 name string 合约名称。 function string 调用合约中的方法名。 args []string 合约方法参数。 返回值 类型 说明 *common.RawMessage 背书请求需发送的消息。 error 发送成功返回类型为nil,反之返回error。 背书请求消息发送。 接口函数 func (action *ContractAction) Invoke(rawMsg *common.RawMessage) (*common.RawMessage, error) 参数说明 参数 类型 说明 rawMsg *common.RawMessage 上述背书请求需发送的消息。 返回值 类型 说明 *common.RawMessage 背书请求需发送的消息。 error 发送成功返回类型为nil,反之返回error。 交易消息构建。 接口方法 func (msg *ContractRawMessage) BuildTxRawMsg(rawMessages []*common.RawMessage) (*TxRawMsg, error) 参数说明 参数 类型 说明 rawMessages []*common.RawMessage 背书请求返回结果集合。 返回值 类型 说明 *TxRawMsg 包含交易hash的交易请求信息,该消息使用transaction接口发送。 error 构建成功返回类型为nil,反之返回error。 交易消息发送。 接口方法 func (action *ContractAction) Transaction(rawMsg *common.RawMessage) (*common.RawMessage, error) 参数说明 参数 类型 说明 rawMsg *common.RawMessage 上述生成的交易消息。 返回值 类型 说明 *common.RawMessage 用于获取包含发送结果的消息。 error 发送成功返回类型为nil,反之返回error。 父主题: Go SDK介绍
  • SDK客户端配置 客户端配置如下: SDK配置请参考SDK配置。 华为链实例创建完成后,下载配置文件,具体请参考下载配置文件。 使用解压后的配置文件初始化SDK客户端,初始化方法请参考SDK介绍中的通用方法,配置示例可参考示例Demo。 配置文件主要包含证书文件和yaml配置,实例中每个组织对应一个yaml文件,可通过读取不同的yaml生成不同的SDK客户端对象。 客户端初始化需确保yaml文件中证书文件等路径为证书的实际存放路径。 父主题: Java应用程序开发