云服务器内容精选

  • 安装AI原生应用引擎SDK 执行如下命令,快速安装。 pip install huawei_wiseagent_dev_sdk_python-{version}-py3-none-any.whl 若已经安装过最新版本SDK,可以忽略此步骤。 将${version}替换成实际所使用的SDK版本。 如果采用本地依赖的方式引入SDK,即手动将本地下载的SDK包引入到工程,还需要添加间接依赖:httpx、pydantic、jinja2。
  • SDK逻辑结构 SDK主要提供消息封装、发送模块及相应的配套组件。配套组件主要包含异常处理、配置文件解析、节点获取等功能接口。 消息封装 由于消息类型较多,因此按类型进行了分类封装。消息封装相关接口均在build这个包下面,包含了ContractRawMessage、QueryRawMessage这几种消息构造的封装类。 ContractRawMessage:包含交易背书、落盘两阶段消息的构建。 QueryRawMessage:包含所有查询相关接口的消息构建,目前支持交易详情查询、链状态查询、区块查询、合约信息查询等接口。 消息发送 同消息封装类接口,按类型进行了分类封装。消息发送相关接口均包含在action这个包下面,包含了ContractAction、QueryAction、EventAction这几种消息发送的封装类。 ContractAction:对应ContractRawMessage封装的消息的发送。 QueryAction:对应QueryRawMessage中封装的消息的发送。 EventAction:主要用于监听消息的最终状态,因为参数仅包含交易ID,消息封装的方法直接内置。同时所有的消息发送接口均提供同步和异步两种接口。 同步接口入参均为需要发送的消息,返回值为一个ListenableFuture对象,用于监听消息发送结果。 异步接口则传入需要发送消息的同时,还需要传入一个StreamObserver对象,用于异步获取消息发送结果。
  • 基于SDK开发流程 初始化:创建SDK实例对象,然后进行初始化。可以通过以下两种方式进行初始化: 使用标准模板配置文件,调用 init 接口。 调用接口自定义设置属性,包括:msp设置、TLS设置、节点信息设置。 构造消息:由于消息类型较多,所以根据消息类型进行了消息类型进行封装,在构造消息之前,必须先获取消息类型对象,然后再基于获取对象中对应的方法封装消息。 获取节点:获取消息发送节点对象。 发送消息:所有的发送接口都封装在节点类中,发送消息时,先获取节点,再调用节点的消息发送对象获取方法。不同的消息对应不同的构建接口,同理,消息发送接口也根据接口类型进行了分装,在发送消息前,必须先获取接口类型对象,然后再基于获取对象中对应的方法发送消息。 结果解析:服务端返回的消息中,均包含交易最后执行结果的标志位,以此判断交易是否执行成功。若结果为不成功,则info字段还包含了错误原因,用于分析定位。 结果监听:对于业务交易和投票类型等需要落盘的交易,即使消息发送成功,后续落盘时还可能产生各种校验失败,导致交易无效。因此还需要监听交易是否最终落盘成功。
  • SDK说明 华为云 区块链 引擎目前提供Java、Golang两种语言SDK,区块链服务启动时会启动一系列grpc接口,监听客户端发送的消息,与客户端交互完成各种请求。在开发客户端时,如果从底层grpc接口开始,进行各种消息封装、消息发送、返回值解析等工作,不仅会导致开发量过大,并且造成重复劳动。 SDK则是将区块链服务提供的各种grpc接口进行封装,同时封装各接口所需类型的消息。在开发客户端时,只需要关注自己的业务逻辑,调用相应接口封装并发送消息即可,不需要关注底层消息发送接收的具体过程。 SDK中相关方法的使用示例,可参考应用程序开发对应语言的示例Demo。 SDK在不同环境下支持的实例安全机制如下: windows环境:ECDSA linux环境:国密算法、ECDSA
  • 组织加密 接口方法 func (client *GatewayClient) EncryptDataWithE2EE(consensusOrgID, encOrgID string, decOrgIDs []string, data string, options ...interface{}) (txID string, err error) 参数说明 参数 类型 说明 consensusOrgID string 共识组织ID encOrgID string 执行加密操作的组织ID。 decOrgIDs []string 除了执行加密操作的组织ID以外,可以解密该消息的组织ID列表。 data string 需要加密的数据明文。 options interface{} 其他选项,目前支持输入一个bool类型,用于指定加密后,是否更新群组密钥。 返回值 参数 类型 说明 txID string 加密后返回密文对应的交易ID,解密时输入交易ID可以获得对应明文。 err error 加密成功返回nil,否则返回error。 父主题: Go SDK介绍
  • 获取节点对象 根据节点名称,获取需要发送交易的节点对象。所有消息发送前,都必须调用该方法,获取发送节点对象,然后再获取对应的消息发送接口对象。 调用方法 public WienerChainNode getWienerChainNode(String name) throws InvalidParameterException 参数说明 参数 类型 说明 name String 节点名称。 返回值 类型 说明 WienerChainNode WienerChainNode对象。
  • 获取节点对象 根据节点名称,获取需要发送交易的节点对象。所有消息发送前,都必须调用该方法,获取发送节点对象,然后再获取对应的消息发送接口对象。 调用方法 public WienerChainNode getWienerChainNode(String name) throws InvalidParameterException 参数说明 参数 类型 说明 name String 节点名称。 返回值 类型 说明 WienerChainNode WienerChainNode对象。
  • SDK逻辑结构 SDK主要提供消息封装、发送模块及相应的配套组件。配套组件主要包含异常处理、配置文件解析、节点获取等功能接口。 消息封装 由于消息类型较多,因此按类型进行了分类封装。消息封装相关接口均在build这个包下面,包含了ContractRawMessage、QueryRawMessage这几种消息构造的封装类。 ContractRawMessage:包含交易背书、落盘两阶段消息的构建。 QueryRawMessage:包含所有查询相关接口的消息构建,目前支持交易详情查询、链状态查询、区块查询、合约信息查询等接口。 消息发送 同消息封装类接口,按类型进行了分类封装。消息发送相关接口均包含在action这个包下面,包含了ContractAction、QueryAction、EventAction这几种消息发送的封装类。 ContractAction:对应ContractRawMessage封装的消息的发送。 QueryAction:对应QueryRawMessage中封装的消息的发送。 EventAction:主要用于监听消息的最终状态,因为参数仅包含交易ID,消息封装的方法直接内置。同时所有的消息发送接口均提供同步和异步两种接口。 同步接口入参均为需要发送的消息,返回值为一个ListenableFuture对象,用于监听消息发送结果。 异步接口则传入需要发送消息的同时,还需要传入一个StreamObserver对象,用于异步获取消息发送结果。
  • SDK说明 华为云区块链引擎目前提供Java、Golang两种语言SDK,区块链服务启动时会启动一系列grpc接口,监听客户端发送的消息,与客户端交互完成各种请求。在开发客户端时,如果从底层grpc接口开始,进行各种消息封装、消息发送、返回值解析等工作,不仅会导致开发量过大,并且造成重复劳动。 SDK则是将区块链服务提供的各种grpc接口进行封装,同时封装各接口所需类型的消息。在开发客户端时,只需要关注自己的业务逻辑,调用相应接口封装并发送消息即可,不需要关注底层消息发送接收的具体过程。 SDK中相关方法的使用示例,可参考应用程序开发对应语言的示例Demo。 SDK在不同环境下支持的实例安全机制如下: windows环境:ECDSA linux环境:国密算法、ECDSA
  • 基于SDK开发流程 初始化:创建SDK实例对象,然后进行初始化。可以通过以下两种方式进行初始化: 使用标准模板配置文件,调用 init 接口。 调用接口自定义设置属性,包括:msp设置、TLS设置、节点信息设置。 构造消息:由于消息类型较多,所以根据消息类型进行了消息类型进行封装,在构造消息之前,必须先获取消息类型对象,然后再基于获取对象中对应的方法封装消息。 获取节点:获取消息发送节点对象。 发送消息:所有的发送接口都封装在节点类中,发送消息时,先获取节点,再调用节点的消息发送对象获取方法。不同的消息对应不同的构建接口,同理,消息发送接口也根据接口类型进行了分装,在发送消息前,必须先获取接口类型对象,然后再基于获取对象中对应的方法发送消息。 结果解析:服务端返回的消息中,均包含交易最后执行结果的标志位,以此判断交易是否执行成功。若结果为不成功,则info字段还包含了错误原因,用于分析定位。 结果监听:对于业务交易和投票类型等需要落盘的交易,即使消息发送成功,后续落盘时还可能产生各种校验失败,导致交易无效。因此还需要监听交易是否最终落盘成功。
  • 利用合约发送交易 背书消息构建 接口函数 func (msg *ContractRawMessage) BuildInvokeMessage(chainID string, name string, function string, args []string) (*common.RawMessage, error) 参数说明 参数 类型 说明 chainID string 链ID。 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介绍