检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
示例Demo Java语言示例Demo基于Java SDK开发,主要用于帮助开发人员理解并开发Java客户端应用程序,使用步骤如下: 单击链接获取Java客户端示例[链接]。 完成客户端初始化参数配置(App.java),进行使用(配置可参考SDK客户端配置)。 示例Demo项目结构如下:
示例Demo 应用程序开发需要使用go mod,因此请确保GO111MODULE为on、镜像源配置。请确保可正常访问华为云镜像网站,环境设置命令如下 go env -w GO111MODULE=on go env -w GOPROXY=https://repo.huaweicloud
合约结构 Go语言合约由合约文件及依赖包构成,包含包声明、依赖包导入、智能合约的结构体定义和方法定义。 合约文件中,用户可自定义结构体以及合约函数。以下内容不可更改: package名:package usercontract 函数的签名:NewSmartContract()、Init(stub
合约示例 进入在线编译器 https://remix.ethereum.org 创建solidity合约文件,并粘贴示例合约。 pragma solidity ^0.4.26; contract SimpleStorage { uint storedData; function
合约编译 下载Node.js软件并安装,安装成功后,执行如下命令查看对应版本(软件对应版本无强制要求)。 node -v npm -v 设置新目录assembly,在该目录下执行 npm init 命令,其中package name输入为assembly(目录名、package
SDK接口 表1 合约接口 接口 说明 Account account分为contract account和user account,该account接口为获取user account address的接口。 Bytecode 通过contract address 可以获取到实际运行时执行的字节码(runtime
SDK配置 引用SDK的步骤如下: 打开项目中的pom.xml文件。 粘贴如下代码引入镜像仓。 <repositories> <repository> <id>maven-proxy</id> <url>https://repo.huaweicloud
Demo工程目录 合约开发和调测可参考合约示例Demo,单击链接获取AssemblyScript语言合约工程Demo。 build目录下optimized.wasm为合约编译后对应的wasm字节码文件(最终合约类型文件为optimized.wasm压缩成的*.zip包,合约示例Demo)。
链代码相关的API Fabric源码包中的shim包提供了如下几种类型的接口,您可以参考使用: 参数解析API:调用链代码时需要给被调用的目标函数/方法传递参数,该API提供解析这些参数的方法。 账本状态数据操作API:该API提供了对账本数据状态进行操作的方法,包括对状态数据的查询及事务处理等。
链代码示例(1.4风格) Fabric架构版本的区块链实例: 如下是一个账户转账的链代码示例(1.4风格)仅供安装实例化,若您需要调测请参考Fabric官方示例中的链代码。 package main import ( "fmt" "strconv" "github
合约示例 Java语言合约开发和调测可参考合约示例,使用步骤如下: 合约开发Demo。 编写Java合约。 Java合约示例。 父主题: JAVA合约开发
合约安装 Java语言合约安装步骤如下: 部署合约时,执行mvn package,可在target目录下获取可安装的合约Jar包,文件名为contract.jar。 合约安装,可参考用户指南 >区块链管理 > 合约管理。 合约压缩文件格式:需确保格式为*.zip,且合约文件位于压缩包文件中的一级目录。
SDK配置 表1 Go类型的合约SDK 合约类型 SDK下载 备注 Go 链接 具体使用可参考合约示例和合约安装。 父主题: Go合约开发
链代码结构 本章以Java语言为例来介绍。链代码即一个Java项目,创建好文件后进行函数开发等操作。 约束与限制 Java链代码仅支持Fabric 2.2及以上版本。 Java链代码仅适用于Fabric架构版本的区块链实例。 链代码接口 链代码启动必须通过调用shim包中的start方法。实际开发中,
链代码示例 如下是一个读写数据的链代码示例,您也可以参考Fabric官方示例中其他链代码。 新建Java项目时,您可以选择新建maven或者gradle项目,以导入依赖包。本示例以gradle项目为例。 /* 导入此段代码到项目的build.gradle前,请删除或注释build
链代码调测 对链代码进行调测,可以使用CloudIDE进行单元测试,具体请参见以下操作。 操作步骤 进入CloudIDE首页。 创建链代码工程,具体请参见创建并启动IDE实例。 图1 创建链代码工程 链代码调测。 以下截图对1.4风格(使用shim包)的链代码进行调测。 父主题:
合约相关的API 合约SDK(index.ts)提供如下API接口,可以在合约文件中进行调用。这些API按照功能可以划分为: 表1 辅助功能 接口 说明 FuncName(txid :string ) :string 获取智能合约请求中指定的智能合约函数名称。 Parameters(txid:
合约结构 AssemblyScript语言合约主要包括index.ts和contract.ts两个文件,其中index.ts为开发智能合约文件(contract.ts)依赖的合约SDK,合约涉及的业务相关开发仅在contract.ts文件,智能合约文件contract.ts需要根据实际业务进行开发。
SDK客户端配置 SDK客户端配置如下: SDK配置,可参考SDK配置章节。 下载示例对应的配置文件,可参考用户指南->下载配置文件。 客户端初始化,配置内容如下表,配置示例可参考应用程序的示例Demo。 表1 客户端初始化配置介绍 参数 值 ConfigFilePath 链配置文件中yaml文件所在路径
SDK客户端调用 SDK客户端配置后,即可调用SDK进行区块链相关的业务逻辑开发。 表1 SDK接口调用 类型 备注 合约接口 提供通过合约进行交易的发送与查询接口,详情可参考利用合约发送交易、利用合约查询数据。 查询接口 提供查询块高、区块详情以及交易查询等常见接口,详情可参考其他查询。