检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
跨链智能合约方法定义 下表为涉及跨链资产交换的跨链智能合约必须实现的方法,且必须保证方法名相同,否则可能出现跨链资产交换接口调用超时或调用失败的情况: 表1 方法说明 方法名 说明 preCommitSend 在跨链资产交换发起方所属区块链上执行的预提交操作 preCommitRecv
可信跨链服务基于分布式事务两阶段提交的思想设计了一套能确保全局事务保持一致性的跨链资产交换流程。若您的跨链业务不涉及跨链资产交换,则无需定制编写跨链智能合约,否则需设置跨链资产数据锁与跨链智能合约方法。 下面用一个完整的跨链资产交换智能合约为样例说明跨链智能合约开发流程,该样例可完成链A上的A账户与链B
修改跨链资产数值(putStateWithLock) 在跨链资产交换涉及的智能合约方法中,所有对跨链资产的修改都必须与资产上锁同时进行。可将上述逻辑封装至一个方法中,便于后续在其他智能合约方法(主要是preCommitSend与preCommitRecv)中调用: /* *
跨链智能合约方法示例 介绍跨链智能合约方法示例。 交易发起方预提交(preCommitSend) 交易接收方预提交(preCommitRecv) 交易发起方提交(commitSend) 交易接收方提交(commitRecv) 交易发起方回滚(rollbackSend) 交易接收方回滚(rollbackRecv)
回滚跨链资产(rollback) 在跨链资产交换的过程中如遇到异常情况,需要读取跨链资产对应数据锁中的PreValue,并根据该值回滚跨链资产交换中涉及资产已发生的变化。可将上述逻辑封装至一个方法中,便于后续在其他智能合约方法(主要是rollbackSend与rollbackRecv)中调用:
解锁跨链资产(unlockAccount) 在跨链资产交换即将完成时,需要解锁跨链资产交换中涉及的资产。可将上述逻辑封装至一个方法中,便于后续在其他智能合约方法(主要是commitSend、commitRecv、rollbackSend与rollbackRecv)中调用: /*
本例中,该方法将删除接收方所属区块链上args[0]对应的数据锁,代表该笔跨链资产交换操作在接收方已端到端完成。unlockAccount方法的实现请参考解锁跨链资产(unlockAccount)。 该方法为必选方法,需在智能合约中以相同命名定义该方法,否则将导致跨链资产交换失败。
至跨链资产交换开始前的状态,并解锁该资产,使得其可以继续处理下一笔跨链操作。 本例中,该方法将根据接收方所属区块链上args[1]对应数据锁中的PreValue进行资产回滚,并删除该数据锁,使接收方所属区块链上args[1]对应的资产回滚至跨链资产交换开始前的状态。 该方法为必选
记录跨链交易开始前被锁定资产的数值,回滚时使用。 CrossTXID 记录跨链资产数据锁所属的交易ID,回滚时使用 另外,一般在智能合约中以资产Key拼接数据锁后缀作为资产数据锁的Key,如Key为A的资产数据锁的Key为A_Lock。因此,可在智能合约中定义该后缀常量,便于后续在其他智能合约中使用:
改接收方所属区块链上对应资产的值,并对该资产上锁。 本例中,该方法将修改接收方所属区块链上args[1]对应账户的余额为跨链资产交换完成后的数值,同时对该账户上锁,并在数据锁中保存跨链资产交换发生前该账户的余额。putStateWithLock方法的实现请参考修改跨链资产数值(putStateWithLock)。
本例中,该方法将删除发起方所属区块链上args[0]对应的数据锁,代表该笔跨链资产交换操作在发起方已端到端完成。unlockAccount方法的实现请参考解锁跨链资产(unlockAccount)。 该方法为必选方法,需在智能合约中以相同命名定义该方法,否则将导致跨链资产交换失败。
改发起方所属区块链上对应资产的值,并对该资产上锁。 本例中,该方法将修改发起方所属区块链上args[0]对应账户的余额为跨链资产交换完成后的数值,同时对该账户上锁,并在数据锁中保存跨链资产交换发生前该账户的余额。putStateWithLock方法的实现请参考修改跨链资产数值(putStateWithLock)。
至跨链资产交换开始前的状态,并解锁该资产,使得其可以继续处理下一笔跨链操作。 本例中,该方法将根据发起方所属区块链上args[0]对应数据锁中的PreValue进行资产回滚,并删除该数据锁,使发起方所属区块链上args[0]对应的资产回滚至跨链资产交换开始前的状态。 该方法为必选
下载源码包 下载Fabric源码包作为三方库。可选择使用1.x或2.x风格开发跨链智能合约: 版本 链接 1.x https://github.com/hyperledger/fabric/tree/release-1.4 2.x https://github.com/hyper
链代码(Chaincode)又称智能合约,在Hyperledger Fabric中是用Go、Java或Node.js语言编写的程序,主要用于操作账本上的数据。链代码是运行在区块链上的、特定条件下自动执行的代码逻辑,是用户利用区块链实现业务逻辑的重要途径。基于区块链特点,智能合约的运行结果是可信的,其结果是无法被伪造和篡改的。
可信跨链服务将为您提供一系列跨链互操作涉及的API接口,您需要自行开发应用组织这些接口的调用逻辑。您也可使用接口调试功能调用上述接口,具体请参考触发跨链交易。 如果您对业务链代码和客户端APP的设计和开发有需求,可以联系华为云区块链合作伙伴提供进一步服务,我们会结合您的业务以及华为云的优势和特点为您提供完善的解决方
注册区块链 购买跨链通道 配置跨链通道 触发跨链交易 浏览交易信息 智能客服 您好!我是有问必答知识渊博的的智能问答机器人,有问题欢迎随时求助哦! 社区求助 华为云社区是华为云用户的聚集地。这里有来自容器服务的技术牛人,为您解决技术难题。
跨链链代码开发(Hyperledger Fabric) 开发前准备 开发跨链智能合约
Fabric使用可信数据链接服务时,用户需要结合Hyperledger Fabric链代码开发规范、可信跨链服务的要求与自身业务需求开发自己的跨链链代码。 支持区域: 华北-北京四 开发跨链智能合约 跨链交易演示 可信跨链服务是基于一系列制定的可信区块链标准跨链协议,保证跨链交易全栈可追溯、可扩展性及可靠性等,助力不
选择通道中的任意1个节点组织下的所有peer节点。这里的组织和“Peer节点证书”的组织需要保持一致。 选择成员(区块链类型为联盟链) 选择通道中的任意1个节点组织。这里的组织和“Peer节点证书”的组织保持一致。 共识节点证书 与区块链系统交互时,需要使用共识节点证书。请妥善保管对应证书的私钥,建议您进行加密保存。