轉讓價值
如 Kaia 設計部分所述,服務鏈支持父鏈和子鏈之間的價值(KAIA、ERC-20 和 ERC-721)轉移。本頁說明如何在 SCN 中啟用數值傳遞功能。
設置 EN 和 SCN 後,需要執行以下步驟才能在鏈之間進行價值轉移。
- 檢查網橋操作員賬戶的地址,並將 KAIA 添加到網橋操作員賬戶。
- 將橋接合約部署到父鏈/子鏈上。
- 向父/子鏈部署代幣(ERC-20 或 721)合約。(如果您只需要 KAIA 轉機,則可跳過步驟 3 和 4)。
- 在父鏈/子鏈上將代幣合約與橋接合約進行註冊。
- 訂閱父鏈/子鏈上的橋接合約。
在按步驟操作之前,讓我們先來看看高層系統架構,以瞭解該機制的背後。
系統架構
圖 1 顯示了帶有橋樑/令牌合約和橋樑節點的服務鏈系統架構。
下面的合約通過主橋/子橋相互通信,處理用戶的價值轉移請求。
- 橋牌合約
- ERC-20 合同(如需要)
- ERC-721合同(如需要)

橋樑操作員賬戶
對於 ServiceChain,有兩個操作員賬戶:父鏈橋操作員賬戶和服務鏈橋操作員賬戶。每個操作員賬戶都用於簽署交易。如果 交易將值轉移到父鏈,則父鏈橋接操作員賬戶會簽署該交易。對子鏈而言,使用的是子鏈橋操作員賬戶。如果用戶提交了 "請求價值轉移 "交易,子橋就會創建一個由橋操作員賬戶簽署的 "處理價值轉移 "交易。因此,母鏈橋接運營商的餘額中需要有足夠的 KAIA 來向母鏈支付交易費。如果服務鏈的Gas 價格設置為非零,則服務鏈橋運營商的餘額中也應包含 KAIA。
密鑰存儲和密碼文件
啟動 SCN 時,如果父/子操作符的密鑰不存在,則會自動生成其密鑰存儲文件和密碼文件。如果要使用特定賬戶作為操作員,可以提供密鑰。啟動 SCN 前,將以下文件放到指定路徑。密碼文件應包含密鑰存儲文件的密碼字符串。密碼文件名應為相應密鑰存儲文件的賬戶地址。
文件
- keystore file :
UTC--2019-10-21T04-05-41.493850000Z--2ed72a9d7fe5da7672fd21567e07302431649b0b - 密碼文件 :
0x2eD72a9D7fe5da7672fD21567e07302431649B0B
文件路徑
- 父鏈橋操作員 : $datadir/parent_bridge_account
- 子鏈橋操作員 : $datadir/child_bridge_account
> pwd/$dataDIR/child_bridge_account> ls0x2eD72a9D7fe5da7672fD21567e07302431649B0BUTC--2019-10-21T04-05-41.493850000Z--2ed72a9d7fe5da7672fd21567e07302431649b0b> cat 0x2eD72a9D7fe5da7672fD21567e07302431649B0B%S~f5qqM38cB47jL%> cat UTC--2019-10-21T04-05-41.493850000Z--2ed72a9d7fe5da7672fd21567e07302431649b0b{"address":"2ed72a9d7fe5da7672fd21567e07302431649b0b","crypto":{"cipher":"aes-128-ctr","ciphertext":"6486509e8158bf4984608cbc5562cf2c9a27cd988a98e543731b39251144e633","cipherparams":{"iv":"96d7e5b6a936278c0797faae6cb3d903"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"8928ba41b8228af19390ec881c51452fa3ea973ad2c253ca0f5bc9197a8b24c4"},"mac":"9c8ec63694c20a473e0ea33840e7d16e9f1a20afc52b3244b703a3ac0a66cfa3"},"id":"9ae10527-7fd3-4aae-a4eb-316af211494e","version":3}
檢查橋接運營商地址
如果成功運行 SCN,則可以使用 RPC API 檢查父/子鏈橋操作符地址,如下所示。
$ kscn attach --datadir ~/kscnd_home歡迎來到 Kaia JavaScript 控制檯!instance:Kaia/vvX.X.X/XXXX-XXXX/goX.X.X datadir: ~/kscnd_home modules: admin:1.0 subbridge:1.0 debug:1.0 governance:1.0 istanbul:1.0 klay:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 servicechain:1.0 txpool:1.0> subbridge.parentOperator"0xA057995175B93Ee0D1bdfA54f078Ad0F0116130b"> subbridge.childOperator"0x5C1C757a6Cb6c6FcEFE398674D8209FDA2A74Df4"
您可以參考子橋 API (#1、#2) 以瞭解更多詳細資訊。
向橋樑運營商發送 KAIA
與錨定一樣,母鏈橋運營商需要 KAIA 進行價值轉移交易。如果服務鏈的Gas 價格設置為非零,則服務鏈橋運營商的餘額中也應包含 KAIA。
給運營商賬戶充值後,您可以像下面這樣查看賬戶餘額。
家長鏈橋操作員
$ kscn attach --datadir ~/kscnd_home歡迎來到 Kaia JavaScript 控制檯! instance:Kaia/vvX.X.X/XXXX-XXXX/goX.X.X datadir: ~/kscnd_home modules: admin:1.0 subbridge:1.0 debug:1.0 klay:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0> subbridge.parentOperatorBalance1e+50
兒童鏈橋操作員
$ kscn attach --datadir ~/kscnd_home歡迎來到 Kaia JavaScript 控制檯! instance:Kaia/vvX.X.X/XXXX-XXXX/goX.X.X datadir: ~/kscnd_home modules: admin:1.0 subbridge:1.0 debug:1.0 klay:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0> subbridge.childOperatorBalance1e+50
橋牌合約
為實現跨鏈價值轉移,應在父鏈/子鏈上部署橋樑合同。用戶可以向橋接合約申請 KAIA 轉移,將其 KAIA 發送到另一條鏈上。此外,如果在橋接合約中註冊了代幣合約,橋接合約可以處理父鏈和子鏈之間的代幣轉移。