检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
交易链码是用户实现其业务逻辑的链码,这里给出的示例代码Transaction Chaincode完成用户间的转账操作。在转账数据的验证过程中使用同态加密库对密文交易数据进行合法性校验,确保没有非法操作。示例中实现了余额初始化,余额查询,转账交易三个功能函数,具体功能实现参考如下。
Go语言合约由合约文件及依赖包构成,包含包声明、依赖包导入、智能合约的结构体定义和方法定义。 合约文件中,用户可自定义结构体以及合约函数。以下内容不可更改: package名:package usercontract 函数的签名:NewSmartContract()、Init(stub contractapi.Con
例如App客户端和链代码端的逻辑过程参考如下: App客户端的典型逻辑过程是: 注册用户 注册用户时可以调用密钥生成函数为用户生成公私钥。 初始化余额 初始化余额时可以调用初始余额准备函数生成具有隐私保护的初始余额信息。 发起交易 交易时可以调用交易准备函数生成具有隐私保护的交易数据。
在启动合约之后调用。注意,一般将合约启动时,首先需要执行且只需要执行一次的逻辑放到此方法中 // 入参:stub是智能合约SDK为本次合约执行交易准备的上下文对象,可以通过stub提供的API函数,获取交易请求相关信息、读写状态数据库、写日志等 // 返回值:需要
概述 合约主要用于操作账本上的数据。作为运行在区块链上的、特定条件下自动执行的代码逻辑,合约是用户利用区块链实现业务逻辑的重要途径,基于区块链特点,合约的运行结果是可信的,其结果是无法被伪造和篡改的。 智能合约由用户自行编写上传并保证安全,请务必注意命令注入等相关安全问题。 为了
stub) { // 在该方法中实现链代码运行中被调用或查询时的处理逻辑 // 编写时可灵活使用stub中的API } //主函数,需要调用shim.Start()方法 public static void main(String[]
pb.Response { // 在该方法中实现链代码运行中被调用或查询时的处理逻辑 // 编写时可灵活使用stub中的API } //主函数,需要调用shim.Start()方法 func main() { err := shim
SDK客户端调用 SDK客户端配置后,即可调用SDK进行区块链相关的业务逻辑开发。 表1 SDK接口调用 类型 备注 合约接口 提供通过合约进行交易的发送与查询接口,详情可参考利用合约发送交易、利用合约查询数据。 查询接口 提供查询块高、区块详情以及交易查询等常见接口,详情可参考其他查询。
SDK客户端调用 SDK客户端配置后,即可调用SDK进行区块链相关的业务逻辑开发,调用示例可参考应用程序的示例Demo。 表1 SDK接口调用 类型 备注 合约接口 提供通过合约进行交易的发送与查询接口,详情可参考利用合约发送交易、利用合约查询数据 查询接口 提供查询块高、区块详
Go、Java或Node.js语言编写的程序,主要用于操作账本上的数据。链代码是运行在区块链上的、特定条件下自动执行的代码逻辑,是用户利用区块链实现业务逻辑的重要途径。基于区块链特点,智能合约的运行结果是可信的,其结果是无法被伪造和篡改的。 在使用区块链服务BCS时,用户需要开发
利用合约发送交易 背书消息构建 接口函数 func (msg *ContractRawMessage) BuildInvokeMessage(chainID string, name string, function string, args []string) (*common
利用合约查询数据 查询请求消息构建 接口函数 func (msg *ContractRawMessage) BuildInvokeMessage(chainID string, name string, function string, args []string) (*common
基本操作 提供Hyperledger Fabric增强版实例管理功能,可实时查看Hyperledger Fabric增强版实例运行状况,并对Hyperledger Fabric增强版实例做相应的操作。 操作步骤 登录区块链服务管理控制台。 单击左侧导航栏中的“实例管理”,可查看区
包含Go合约SDK文件(interfaces.go)、SDK接口的mock,用于实现合约逻辑的接口。 example.go 用户自定义合约文件。示例文件以合约结构为基础,提供简单场景、复杂场景(弹珠游戏)两类合约操作函数。 父主题: Go合约开发
区块浏览器 提供区块链相关信息的查询功能,包括区块数量、交易数量、区块详细信息、交易详细信息、性能数据及节点状态等,帮助您了解整个区块链的状态,对区块链基本的维护提供数据支撑。 建议使用集群内部地址作为区块链网络访问地址,用户网络需要和集群内部网络互通才可正常访问区块链浏览器。不
该内容仅适用于Fabric架构版本的区块链实例的Go语言链代码开发。 为避免出现panic异常时链代码容器异常重启,找不到日志,导致问题无法及时定位,可在Invoke函数入口处添加defer语句时,出现panic异常时返回错误给客户端。 // 定义命名返回值,发生panic在defer里面赋值,确保客户端可以收到返回值
haincode.go的下载请参见资源下载。 IDChaincode.go由华为云BCS服务提供,不建议用户修改,若进行修改将与链代码示例逻辑不一致。 注册Register 账户地址是通过公钥hash计算转16进制字符串得到。 查询Query 使用账户地址查询公钥。 父主题: 同态加密
应用程序开发 您需要自行开发应用程序业务逻辑代码。针对Fabric架构版本的区块链实例,应用开发过程中可使用BCS提供的国密加密SDK,也可使用Fabric官方社区提供的和您自身的实例版本匹配的SDK。 另外,Fabric架构版本的区块链实例提供同态加密库供您使用,相关资料及资源请参见同态加密。
BPMN业务图绘制 BCS提供的BPMN绘制页面简单易用,用户通过拖拽方式将开始事件、活动、网关、连接对象、结束事件、泳道等组合起来,通过实际业务逻辑绘制定制化BPMN业务图。其中,用户仅需编写少量业务需要的代码和查询功能代码即可完成智能合约的制作。通过绘制页面可实时验证BPMN的有效性,验证无误后单击构建,生成智能合约。
合约仓库 合约模板是已经实现某些基本功能的智能合约,您可以使用模板提供的基础功能代码,直接使用或二次开发符合自己业务逻辑的智能合约。 合约管理可以管理合约模板,您可以在合约模板市场查看各行业场景的合约模板,并下载模板使用。 下载合约模板 登录区块链服务管理控制台。 在页面左侧选择“合约仓库”。