如何在BEAM主网进行QTUM-BEAM原子交换?

目前,QTUM-BEAM原子交换代码被合入了BEAM的主分支,BEAM主网正式支持QTUM-BEAM原子交换。与之前测试网络的实验不同,本次Qtum开发团队将基于Qtum主网与BEAM主网版本进行交换,展示QTUM-BEAM原子交换细节。接下来有请区块链著名虚拟人物 Bob 和 Alice ,带来完整的 QTUM-BEAM 原子交换过程。

QTUM-BEAM主网原子交换

交换细节

1、首先配置Qtum的Mainnet环境,编辑用户主目录下的.zshrc,添加环境变量,q1-dae和q2-dae分别是Bob和Alice的Qtum节点服务,q1-cli和q2-cli分别是Bob和Alice的Qtum客户端命令。使用客户端命令可以与区块链进行交互。

2 、使用./beam-wallet info命令查看两个用户账户下的BEAM余额,使用qtum-cli getbalance命令查看用户的QTUM余额。 可见,Bob拥有0个BEAM和20个QTUM。Alice拥有40个BEAM和0个QTUM。

3 、Alice和Bob进行原子交换,Alice希望用20个BEAM换取Bob的10个QTUM。首先Bob需要开启原子交换监听的模式,通过在用户目录下运行

./beam-wallet swap_listen --swap_coin=qtum -n us-nodes.mainnet.beam.mw:8100 --amount=20 --swap_amount=1000000000 --swap_feerate=865000 --qtum_node_addr=127.0.0.1:13300 --qtum_user=Bob --qtum_pass=123 --log_level=info

进行原子交换监听。节点首先会进行区块数据的同步,当同步完成之后,如果有节点发起了对自己地址的swap_init交易,便会开始原子交换交易。按照上述交易流程的顺序进行各个步骤的交易。

4 、同时Alice运行

./beam-wallet swap_init -n us-nodes.mainnet.beam.mw:8100 --amount=20 --fee=300 -r 2128f6021b3847a8612b4d3597a82e598d8f51aa8a2eb4e765ec6da40b92403e137 --swap_coin=qtum  --swap_amount=1000000000 --swap_feerate=865000 --swap_beam_side --qtum_node_addr=127.0.0.1:13400 --qtum_user=Alice --qtum_pass=123 --log_level=info

命令,通过指定BEAM接受方的地址来初始化一笔原子交易。Alice节点首先也会开始同步区块数据,当完成之后会按照上述交易流程的顺序开展和Bob的原子交换。

5 、双方等待BEAM和QTUM的两个区块链网络对各自的交易进行多次确认后(QTUM默认是10次),原子交换过程完成。

Bob的客户端界面显示如下:

Alice的客户端界面显示如下:

6、 通过查看Alice的账户,可以看到她已经接受到了来自Bob的10个QTUM并发送了20个BEAM给Bob。

7 、通过查看Bob的账户,可以看到他已经接受到了来自Alice的20个BEAM并发送了10个QTUM给Alice。

8、 Qtum官网的浏览器上,可以看到关于QTUM原子交换的交易记录。

通过命令q2-cli listunspent查询Alice拥有的UTXO的详细信息,得到一笔金额(amount)为10的UTXO的交易id是

7c8c7068678b678d6e7d7375fc4e8244e30b9c67fce4106240471736a306bbc8

在Qtum区块链浏览器进行查询,可以看到这笔通过原子交换生成的交易确实已经写入区块链中。

Qtum浏览器:(点击阅读原文即可查询)

https://qtum.info/tx/7c8c7068678b678d6e7d7375fc4e8244e30b9c67fce4106240471736a306bbc8

总结

跨链原子交换技术给持有不兼容网络资产的用户,带来了一个去中心化、简单快捷的交换途径,提供了一种消除交易协调成本的免信任服务。未来,Qtum量子链也将会在区块链隐私技术和跨链领域不断深入探索,通过技术的力量连接更多的区块链网络,帮助区块链行业实现长远、可持续性发展。

分享到:

相关文章