PlatONE是由萬向區塊鏈和矩陣元共同打造的以隱私計算爲特色的新一代聯盟區塊鏈平臺,支持企業級應用,已在2019年9月正式開源並在實際產品中投入使用。目前,PlatONE的單鏈TPS已超過5萬,已獲得國家工業及信息化部認可並通過了中國電子技術標準化研究院的功能認證和測試認證。
我們將通過一系列科普文章,帶領大家走進PlatONE,從入門到精通。上週我們已經介紹過通過鏈交互工具platonecil進行用戶和角色權限操作的方法,今天我們一起來了解如何通過platonecil進行鍼對合約命名系統服務的相關操作。
cns解析 cns resolve
描述: 通過合約名稱以及版本號(默認爲”latest”)解析出對應的賬戶地址。一個合約名可以對應多個(在註冊的)合約地址,通過版本號解析出對應的合約地址,但在cns平臺中已註銷的合約名對應的版本號無法解析出相應的賬戶地址。
參數:
-
必選參數:
<name>: 合約在cns中註冊的合約名稱
-
可選參數:
--ver string: 合約在cns中註冊的版本號,默認爲"latest"
操作:
# 查詢最新版本 ./platonecli cns resolve "test" --keyfile ../conf/keyfile.json # 查詢指定版本 ./platonecli cns resolve "test" --version "1.0.0.0" --keyfile ../conf/keyfile.json
輸出結果:
result: <address> # 對應合約名稱的版本已註銷 result: <null>
cns註冊 cns register
描述: 將合約註冊到cns平臺中,註冊後的合約不僅可以通過合約賬戶地址進行調用執行,還可以通過其對應的合約名稱進行執行。
參數:
-
必選參數:
<name>: 在cns中註冊的合約名稱 <version>: 在cns中註冊的版本號,(補充)。格式:"X.X.X.X" <address>: 進行註冊的合約的賬戶地址
操作:
./platonecli cns register "test" "1.0.0.0" "0x2ee8d0545ebd20f9a992ff54cb0f21a153539206" --keyfile ../conf/keyfile.json
輸出結果:
{ "status": "Operation Succeeded", "logs": [ "Event [CNS] Notify: 0 [CNS] cns register succeed " ], "blockNumber": 190, "GasUsed": 105856, "From": "0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18", "To": "0x0000000000000000000000000000000000000011", "TxHash": "" }
cns重定向 cns redirect
描述: 制定cns名稱對應的合約版本。
參數:
-
必選參數:
<name>: 在cns中註冊的合約名稱 <version>: 在cns中註冊的版本號。格式:"X.X.X.X" <address>: 進行註冊的合約的賬戶地址
操作:
./platonecli cns register "test" "1.1.0.0" "0x2ee8d0545ebd20f9a992ff54cb0f21a153539206" --keyfile ../conf/keyfile.json
輸出結果:
{ "status": "Operation Succeeded", "logs": [ "Event [CNS] Notify: 0 [CNS] cns redirect succeed " ], "blockNumber": 191, "GasUsed": 102864, "From": "0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18", "To": "0x0000000000000000000000000000000000000011", "TxHash": "" }
cns信息查詢 cns query
描述: 根據查詢鍵值以及輔助選項進行cns註冊信息的篩選查詢,返回所有匹配成功的數據對象。
參數:
-
可選參數:
--contract <address>: 查詢鍵,通過合約賬戶地址或者合約名稱進行查詢 --user <address>: 查詢鍵,通過用戶賬戶地址進行查詢,查詢該用戶註冊在cns的合約 --all: 查詢鍵,顯示所有cns中所有註冊的對象(不顯示已註銷的信息) --pageNum: 展示頁面頁碼 --pageSize: 展示頁面大小
操作:
# 1 查詢已註冊的合約 ./platonecli cns query --all --keyfile ../conf/keyfile.json # 2 通過合約名稱進行查詢 - 查詢該名稱註冊歷史 ./platonecli cns query --contract "test" --keyfile ../conf/keyfile.json # 3 通過註冊者進行查詢 ./platonecli cns query "0x01a369998e4a141c5e2b40dbcbaf4a601d57cfa5" --pageNum "10" --pageSize "0" --keyfile ../conf/keyfile.json # 4 通過合約地址進行查詢 ## 目前接口爲通過地址查詢未被註銷的合約 ./platonecli cns query --contract "0x01a369998e4a141c5e2b40dbcbaf4a601d57cfa5" --keyfile ../conf/keyfile.json
輸出結果:
{ "code":0, "msg":"success", "data":[{ "name":"eeeee", "version":"0.0.0.1", "address":"0x12a0de8326d814e1569d6a0e111be02b19741694", "origin":"0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18", "create_time":1600758772 }, { "name":"tofu", "version":"0.0.0.1", "address":"0x9185686d2a1fc1bbadaba646d7323f597fae0073", "origin":"0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18", "create_time":1600761759 }, { "name":"test", "version":"0.0.0.2", "address":"0x12a0de8326d814e1569d6a0e111be02b19741694", "origin":"0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18", "create_time":1600918255 }, { "name":"test", "version":"0.0.0.3", "address":"0xdb907806b906cfaa9049e5774e03263c6ff203e8", "origin":"0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18", "create_time":1601350402 }, { "name":"damn", "version":"0.0.0.1", "address":"0xe3471eace6b0eca6150d3a41051d8c7212c35da7", "origin":"0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18", "create_time":1601364209 }, { "name":"ljj", "version":"1.0.0.0", "address":"0x388d05bad3aab0fdd4a5256d4732c2129037cf19", "origin":"0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18", "create_time":1602234874 }] }
cns狀態查詢 cns state
描述: 通過查詢鍵查詢一個合約在cns平臺中的註冊狀態,註冊狀態分爲:註冊中(返回true)或者已經註銷(返回false)。
參數:
-
必選參數:
<contract>: 查詢鍵,根據合約賬戶地址或合約賬戶名稱進行查詢
操作:
# 查詢合約地址是否註冊 ./platonecli cns state "0x2ee8d0545ebd20f9a992ff54cb0f21a153539206" --keyfile ../conf/keyfile.json # 查詢合約名稱是否被註冊 ./platonecli cns state "test" --keyfile ../conf/keyfile.json
輸出結果:
# 已註冊 result: the contract is registered in CNS # 未註冊 result: the contract is not registered in CNS