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量子鏈也將會在區塊鏈隱私技術和跨鏈領域不斷深入探索,透過技術的力量連線更多的區塊鏈網路,幫助區塊鏈行業實現長遠、可持續性發展。