检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
若您的跨链业务不涉及跨链资产交换,则无需定制编写跨链智能合约,否则需设置跨链资产数据锁与跨链智能合约方法。 下面用一个完整的跨链资产交换智能合约为样例说明跨链智能合约开发流程,该样例可完成链A上的A账户与链B上的B账户之间的资产转账。
跨链智能合约方法示例 介绍跨链智能合约方法示例。
跨链智能合约方法定义 下表为涉及跨链资产交换的跨链智能合约必须实现的方法,且必须保证方法名相同,否则可能出现跨链资产交换接口调用超时或调用失败的情况: 表1 方法说明 方法名 说明 preCommitSend 在跨链资产交换发起方所属区块链上执行的预提交操作 preCommitRecv
修改跨链资产数值(putStateWithLock) 在跨链资产交换涉及的智能合约方法中,所有对跨链资产的修改都必须与资产上锁同时进行。
因此,可在智能合约中定义该后缀常量,便于后续在其他智能合约中使用: const ( lockSuffix = "_Lock" ) 父主题: 开发跨链智能合约
该方法为必选方法,需在智能合约中以相同命名定义该方法,否则将导致跨链资产交换失败。
= nil { return fmt.Errorf("failed to delete state: %v", err) } } return nil } 父主题: 跨链智能合约方法示例
该方法为必选方法,需在智能合约中以相同命名定义该方法,否则将导致跨链资产交换失败。
该方法为必选方法,需在智能合约中以相同命名定义该方法,否则将导致跨链资产交换失败。
该方法为必选方法,需在智能合约中以相同命名定义该方法,否则将导致跨链资产交换失败。
该方法为必选方法,需在智能合约中以相同命名定义该方法,否则将导致跨链资产交换失败。
该方法为必选方法,需在智能合约中以相同命名定义该方法,否则将导致跨链资产交换失败。
= nil { return fmt.Errorf("failed to unlock in rollbackRev: %v", err) } return nil } 父主题: 跨链智能合约方法示例
跨链链代码开发(Hyperledger Fabric) 开发前准备 开发跨链智能合约
支持区域: 华北-北京四 开发跨链智能合约 跨链交易演示 可信跨链服务是基于一系列制定的可信区块链标准跨链协议,保证跨链交易全栈可追溯、可扩展性及可靠性等,助力不同区块链可信互联,促进区块链产业生态可信融合。
可选择使用1.x或2.x风格开发跨链智能合约: 版本 链接 1.x https://github.com/hyperledger/fabric/tree/release-1.4 2.x https://github.com/hyperledger/fabric-contract-api-go
开发前准备 链代码(Chaincode)又称智能合约,在Hyperledger Fabric中是用Go、Java或Node.js语言编写的程序,主要用于操作账本上的数据。链代码是运行在区块链上的、特定条件下自动执行的代码逻辑,是用户利用区块链实现业务逻辑的重要途径。
配置权限 基于不同链上的不同合约,主要有三种权限:跨链读,跨链写,查询账本。不同类型的跨链交易需要不同的权限,例如:发起一次跨链交易需要“跨链写”权限,查询跨链交易结果需要“跨链读”权限,因此需要在进行跨链交易之前设置对应权限。 跨链读:访问链任意合约可以执行被访问链指定合约的读操作
跨链链代码开发 如您的跨链业务不涉及跨链资产交换,则无需定制编写跨链智能合约,否则需按可信跨链服务要求编写跨链智能合约,具体请参考跨链链代码开发(Hyperledger Fabric)。
配置跨链通道 支持配置跨链通道的跨链读、跨链写、跨链查询账本等授权操作。新创建的跨链通道默认无任何权限,若跨链通道未授权,则无法进行跨链操作。 操作步骤 登录可信跨链服务管理控制台,进入“总览”页面。 在“总览”页面的配置跨链通道,单击“查看跨链通道”。 在“跨链通道”页面,单击跨链通道名称