检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
链代码结构 本章以Go语言为例来介绍。链代码即一个Go文件,创建好文件后进行函数开发等操作。 当前支持两种方式编写链码:1.4风格(使用shim包)和2.2风格(使用fabric-contract-api-go包)。 区块链服务BCS支持使用两种风格编写的链代码。 链代码接口 Fabric
根据链代码开发语言的不同,实例化后的容器占用内存量并不相同。对于单个peer节点,单个Go语言链代码容器占用运行内存约10MB,单个Java语言链代码容器占用约110MB。例如需要实例化100个Java语言链代码,建议CCE节点规格为16核32GB。
停止计费 当在区块链服务中,删除Hyperledger Fabric增强版实例,且删除时,勾选删除容器集群(CCE),区块链服务将停止计费。详细介绍请参见停止计费。 成本管理 使用区块链服务时,成本主要分为拥有成本和运维成本。
华为云区块链引擎支持自定义策略授权项如下所示 表1 华为云区块链引擎常用操作与系统权限关系 接口 对应的API接口 授权项 依赖授权项 IAM项目 (Project) 企业项目 (Enterprise Project) 查询服务信息 GET /v2/{project_id}/huaweicloudchain/service-info
通过对生成的智能合约选择背书策略、安装合约的组织等配置,完成合约的安装和实例化,智能合约最终运行在背书节点中的一个Docker容器内。
SDK的使用 安装SDK 如何获取GO、JAVA压缩包、Jar文件请参考概述。 GO:将下载的压缩包解压到用户的$GOPATH目录下。 Java:将下载的压缩包中的Jar文件添加到项目的依赖中,可按以下方式添加: 将下载的SDK Jar包注册至Maven本地仓库,可参考以下命令:
表3 华为云区块链引擎对应接口的权限依赖关系 接口 对应的API接口 授权项 依赖授权项 IAM项目 (Project) 企业项目 (Enterprise Project) 查询服务信息 GET /v2/{project_id}/huaweicloudchain/service-info
图1 分布式身份实现架构图 实现流程 各个角色可通过企业身份注册(带有service)和注册DID生成完全由自己控制的分布式身份,并将身份文档发布到区块链上完成身份的注册。企业用户的DID身份中可以包含其所能提供的服务信息,以支持多样的应用场景。
调用链代码 前提条件 已安装Java JDK开发环境。JDK需要安装1.8版本64位,如果本地已安装JDK,可以通过命令java -version来查看JDK版本。 登录区块链服务管理控制台,进入“应用案例”,下载“快速入门”中的Java应用示例。Windows操作系统下载并解压到
示例Demo 应用程序开发需要使用go mod,因此请确保GO111MODULE为on、镜像源配置。请确保可正常访问华为云镜像网站,环境设置命令如下 go env -w GO111MODULE=on go env -w GOPROXY=https://repo.huaweicloud.com
响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 applyer String 申请者的身份标识 applyerName String 申请者的名称 provider String 授权者的身份标识 providerName String 授权者的名称 service
ABstore) Init(ctx contractapi.TransactionContextInterface, A string, Aval int, B string, Bval int) error { // 使用println函数输出的信息会记录在链码容器日志中
表1 配置SDK参数 参数名称 参数值 链代码名称 fabbank 证书存放路径 /opt/bank/src/bank/conf/crypto 说明: “/opt/bank/src/bank/conf/crypto”为容器内部路径,此路径挂载在弹性云服务器的“/root/bankuniondemo
成长地图 | 华为云 区块链服务 区块链服务(Blockchain Service)是面向企业及开发者的高性能、高可用和高安全的区块链技术平台服务,可以帮助企业和开发人员在华为云上快速、低成本的创建、部署和管理区块链应用。
应用示例 为了说明同态加密库的具体使用方法,提供一个应用示例代码和对应的链码示例代码。该应用的主要功能是实现用户间相互转账,同时使用同态加密库保护用户的转账交易信息。 该应用的使用包括三个步骤:注册用户(同时会初始化用户余额),用户间转账,查询用户余额。 应用使用命令行的方式进行业务操作
具体获取方法如下: 在已购买区块链实例卡片中,单击“容器集群”名称,进入云容器引擎CCE页面。 单击实例所在集群名称,进入集群信息页面。在左侧导航栏,单击“工作负载”。
若当前区块链服务部署在CCE集群上,该名称为各节点对应的负载(pod)名称;若当前区块链服务部署在IEF集群上,可进入“智能边缘平台”服务,进入“边缘应用”->“容器应用”,查询负载名称。
struct { } // 初始化数据状态,实例化/升级链代码时被自动调用 func (t *SimpleChaincode) Init(stub shim.ChaincodeStubInterface) pb.Response { // println函数的输出信息会出现在链代码容器的日志中
} } 响应示例 状态码: 200 Ok { "blockchain_id" : "12691561-a50d-5207-6041-7346c90d4499", "blockchain_name" : "bcs-api", "operation_id" : "BCSSVC01
商用 安装轻节点插件 2 支持选择1.15版本的容器集群。 支持选择容器集群版本为1.15。 商用 基于CCE集群部署区块链 3 支持基于社区Hyperledeger Fabric 1.4版本到 2.0版本的升级能力。