# 链管理模块

# 为什么要有《链管理》模块

在NULS 1.0中,只有一条链(NULS主网),因此不需要链管理模块。

在NULS 2.0中,NULS主网上可以注册其他友链信息,包括:

  • NULS生态圈中的链:与NULS主网使用同一套代码衍生出来。
  • 其他链:比特币、以太坊等

《链管理》模块用来管理所有加入NULS主网的友链的信息

名词解释:

  • NULS主网:不同于NULS 1.0,是独立运行的另一条链,也称之为NULS 2.0。 《链管理》是NULS主网的其中一个模块
  • 友链:在NULS主网上注册的其他链

假设1:友链A,其拥有资产A

假设2:友链B,其拥有资产B

  • 跨链交易:
    • 友链A把资产A转到友链B
    • 友链B内部转移资产A
    • 友链B把资产A转回到友链A
    • 友链B把资产A转到其他友链(C,D等)
  • 非跨链交易:
    • 友链A内部转移资产A
    • 友链B内部转移资产B

备注:不论链内资产,还是链外资产,只要资产跨链进行交易,就需要主网进行确认。

# 《链管理》要做什么

《链管理》模块用来管理加入NULS主网的链的基本信息,包括:

  • 注册一条新的友链
  • 销毁已经存在的友链
  • 查询友链信息
  • 特定友链增加资产类型
  • 特定友链销毁资产类型
  • 跨链资产校验

# 《链管理》在系统中的定位

《链管理》强依赖的模块:

  • 核心模块
  • 网络模块
  • 交易管理模块
  • 账本模块

《链管理》弱依赖的模块:

  • 事件总线模块

# 接口列表

# cm_chainReg

链注册-用于平行链的跨链注册

# scope:public

# version:1.0

# 参数列表

参数名 参数类型 参数描述 是否非空
chainId int 资产链Id,取值区间[3-65535]
chainName string 链名称
addressType int 1 使用NULS框架构建的链 生态内,2生态外
addressPrefix string 链地址前缀,1-5字符
magicNumber long 网络魔法参数
minAvailableNodeNum int 最小连接数
assetId int 资产Id,取值区间[1-65535]
symbol string 资产符号
assetName string 资产名称
initNumber string 资产初始值
decimalPlaces short 资产小数点位数
address string 创建交易的账户地址
password string 账户密码
verifierList list<string> 验证者名单列表
signatureBFTRatio integer 拜占庭比例,大于等于该值为有效确认
maxSignatureCount integer 最大签名数量,限制验证者签名列表的最大数

# 返回值

字段名 字段类型 参数描述
txHash string 交易hash值
mainNetVerifierList string 主网验证人列表,逗号分隔
mainNetCrossSeedList string 主网验种子节点列表,逗号分隔

# cm_chainActive

链更新激活-用于平行链的跨链更新激活(激活之前注销的链)

# scope:public

# version:1.0

# 参数列表

参数名 参数类型 参数描述 是否非空
chainId int 资产链Id,取值区间[1-65535]
chainName string 链名称
addressType int 1 使用NULS框架构建的链 生态内,2生态外
addressPrefix string 链地址前缀,1-5字符
magicNumber long 网络魔法参数
minAvailableNodeNum int 最小连接数
assetId int 资产Id,取值区间[1-65535]
symbol string 资产符号
assetName string 资产名称
initNumber string 资产初始值
decimalPlaces short 资产小数点位数
address string 创建交易的账户地址
password string 账户密码
verifierList list<string> 验证者名单列表
signatureBFTRatio integer 拜占庭比例,大于等于该值为有效确认
maxSignatureCount integer 最大签名数量,限制验证者签名列表的最大数

# 返回值

字段名 字段类型 参数描述
txHash string 交易hash值
mainNetVerifierSeeds string 主网验证人种子列表,逗号分隔
mainNetCrossConnectSeeds string 主网验种子节点列表,逗号分隔

# cm_getChainsSimpleInfo

获取跨链已注册链列表

# scope:public

# version:1.0

# 参数列表

无参数

# 返回值

字段名 字段类型 参数描述
chainInfos list<map> 返回链及资产的简要信息列表

# getCrossChainInfos

获取跨链注册资产信息

# scope:public

# version:1.0

# 参数列表

无参数

# 返回值

字段名 字段类型 参数描述
chainInfos list<object> 已注册的链与资产信息列表
        chainId int 链id
        chainName string 链名称
        minAvailableNodeNum int 最小连接数
        assetInfoList list 资产信息列表

# cm_chain

查看链信息

# scope:public

# version:1.0

# 参数列表

参数名 参数类型 参数描述 是否非空
chainId int 资产链Id,取值区间[1-65535]

# 返回值

字段名 字段类型 参数描述
chainId int 链id
chainName string 链名称
addressType string 地址类型(1:Nuls生态,2:其他)
addressPrefix string 地址前缀
magicNumber long 魔法参数
minAvailableNodeNum int 最小可用节点数
txConfirmedBlockNum int 交易确认区块数
isDelete boolean 是否已注销
createTime long 创建时间
regAddress string 注册链时使用的地址
regTxHash string 注册链时的交易哈希
regAssetId int 注册链时添加的资产序号
selfAssetKeyList list 本链创建的所有资产,Key=chaiId_assetId
totalAssetKeyList list 链上流通的所有资产,Key=chaiId_assetId
verifierList list 验证人列表
signatureByzantineRatio int 拜占庭比例
maxSignatureCount int 最大签名数量
mainNetVerifierSeeds string 主网验证人列表,逗号分隔
mainNetCrossConnectSeeds string 跨链提供的主网连接种子,逗号分隔
enable boolean 是否可用

# cm_getCirculateChainAsset

查询资产信息

# scope:public

# version:1.0

# 参数列表

参数名 参数类型 参数描述 是否非空
circulateChainId string 运行的链ID,取值区间[1-65535]
assetChainId string 资产链Id,取值区间[1-65535]
assetId string 资产Id,取值区间[1-65535]

# 返回值

字段名 字段类型 参数描述
circulateChainId integer 运行的链ID
assetChainId integer 资产链ID
assetId integer 资产ID
initNumber biginteger 初始资产数量
chainAssetAmount biginteger 现有资产数量

# cm_assetCirculateCommit

查询资产信息

# scope:public

# version:1.0

# 参数列表

参数名 参数类型 参数描述 是否非空
chainId int 运行的链ID,取值区间[1-65535]
txList list<string> 交易Hex值列表
blockHeader string 区块头Hex值

# 返回值

字段名 字段类型 参数描述
N/A void 无特定返回值,没有错误即提交成功

# cm_assetCirculateRollBack

查询资产信息

# scope:public

# version:1.0

# 参数列表

参数名 参数类型 参数描述 是否非空
chainId int 运行的链ID,取值区间[1-65535]
txList list<string> 交易Hex值列表
blockHeader string 区块头Hex值

# 返回值

字段名 字段类型 参数描述
N/A void 无特定返回值,没有错误即验证成功

# updateChainAsset

查询资产信息

# scope:public

# version:1.0

# 参数列表

参数名 参数类型 参数描述 是否非空
chainId int 资产链ID,取值区间[1-65535]
assets list<int> 资产id列表

# 返回值

字段名 字段类型 参数描述
N/A void 无特定返回值,没有错误即验证成功

# cm_assetCirculateValidator

查询资产信息

# scope:public

# version:1.0

# 参数列表

参数名 参数类型 参数描述 是否非空
chainId string 运行的链ID,取值区间[1-65535]
tx string 交易Hex值

# 返回值

字段名 字段类型 参数描述
N/A void 无特定返回值,没有错误即验证成功

# cm_assetReg

资产注册

# scope:public

# version:1.0

# 参数列表

参数名 参数类型 参数描述 是否非空
chainId int 资产链Id,取值区间[1-65535]
assetId int 资产Id,取值区间[1-65535]
symbol string 资产符号
assetName string 资产名称
initNumber biginteger 资产初始值
decimalPlaces short 资产小数点位数
address string 创建交易的账户地址
password string 账户密码

# 返回值

字段名 字段类型 参数描述
txHash string 交易hash值

# cm_assetDisable

资产注销

# scope:public

# version:1.0

# 参数列表

参数名 参数类型 参数描述 是否非空
chainId int 资产链Id,取值区间[1-65535]
assetId int 资产Id,取值区间[1-65535]
address string 创建交易的账户地址
password string 账户密码

# 返回值

字段名 字段类型 参数描述
txHash string 交易hash值

# cm_asset

资产注册信息查询

# scope:public

# version:1.0

# 参数列表

参数名 参数类型 参数描述 是否非空
chainId int 资产链Id,取值区间[1-65535]
assetId int 资产Id,取值区间[1-65535]

# 返回值

字段名 字段类型 参数描述
regassetdto 返回链信息

# cm_getChainAsset

资产查看

# scope:public

# version:1.0

# 参数列表

参数名 参数类型 参数描述 是否非空
chainId int 运行链Id,取值区间[1-65535]
assetChainId int 资产链Id,取值区间[1-65535]
assetId int 资产Id,取值区间[1-65535]

# 返回值

字段名 字段类型 参数描述
chainId integer 运行链Id
assetChainId integer 资产链id
assetId integer 资产id
asset biginteger 资产值
Last Updated: 2019/9/3 下午4:38:35