【PlatONE联盟链使用指南】如何经过链交互工具platonecli使用合约命名系统 cns?

2021年11月22日 阅读数:3
这篇文章主要向大家介绍【PlatONE联盟链使用指南】如何经过链交互工具platonecli使用合约命名系统 cns?,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

PlatONE是由万向区块链和矩阵元共同打造的以隐私计算为特点的新一代联盟区块链平台,支持企业级应用,已在2019年9月正式开源并在实际产品中投入使用。目前,PlatONE的单链TPS已超过5万,已得到国家工业及信息化部承认并经过了中国电子技术标准化研究院的功能认证和测试认证。json

咱们将经过一系列科普文章,带领你们走进PlatONE,从入门到精通。上周咱们已经介绍过经过链交互工具platonecil进行用户和角色权限操做的方法,今天咱们一块儿来了解如何经过platonecil进行针对合约命名系统服务的相关操做。
 工具

cns解析 cns resolve

描述: 经过合约名称以及版本号(默认为”latest”)解析出对应的帐户地址。一个合约名能够对应多个(在注册的)合约地址,经过版本号解析出对应的合约地址,但在cns平台中已注销的合约名对应的版本号没法解析出相应的帐户地址。区块链

参数:测试

  • 必选参数:spa

<name>:     合约在cns中注册的合约名称
  • 可选参数:.net

--ver string:     合约在cns中注册的版本号,默认为"latest"

操做:code

# 查询最新版本
./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平台中,注册后的合约不只能够经过合约帐户地址进行调用执行,还能够经过其对应的合约名称进行执行。blog

参数:接口

  • 必选参数:

<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