区块链域名服务(BCDNS) - AntChainOpenLabs/AntChainBridge GitHub Wiki
区块链域名服务(BlockChain Domain Name Service, BCDNS)为AntChain Bridge跨链网络提供身份、路由、信任管理等服务,在v0.2.0版本之后,加入了BCDNS模块以及其他数据结构,比如区块链域名证书等类型和工具,并在antchain-bridge-bcdns
中增加了基于星火链网的BCDNS服务的客户端实现,该BCDNS服务由中国信息通信研究院开发支持,详情请见。Embedded BCDNS作为AntChain Bridge定义并提供的一种BCDNS实现,提供了BCDNS的所有功能,支持中继、PTC等的跨链身份证书签发与查询,支持区块链域名证书认证,支持跨链路由的注册和查询。Embedded BCDNS可以简单地在普通的Java程序中拉起服务端,以及初始化客户端,这样方便在特定的测试或者商业化场景中使用AntChain Bridge跨链。
目前SDK支持星火链网的BCDNS服务客户端,这里介绍其配置项和如何实例化该客户端。
首先介绍配置,代码可见,主要分为两部分,一部分certificationServiceConfig
是用于和颁证服务通信、鉴权,另一部分chainConfig
用于和星火链网交互。
{
"certificationServiceConfig":{
"authorizedKeyPem":"-----BEGIN PRIVATE KEY-----\nMFECAQEwB...WnSkTM4=\n-----END PRIVATE KEY-----\n",
"authorizedPublicKeyPem":"-----BEGIN PUBLIC KEY-----\nMCowBQYDK2Vw...KDyWnSkTM4=\n-----END PUBLIC KEY-----\n",
"authorizedSigAlgo":"Ed25519",
"clientCrossChainCertPem":"-----BEGIN RELAYER CERTIFICATE-----\nAAAIA...DyLBh2ITiTQ4IVYlXkYjSBw==\n-----END RELAYER CERTIFICATE-----\n",
"clientPrivateKeyPem":"-----BEGIN PRIVATE KEY-----\nMFECAQE...V+RqJKDyWnSkTM4=\n-----END PRIVATE KEY-----\n",
"sigAlgo":"Ed25519",
"url":"http://localhost:8112"
},
"chainConfig":{
"bifAddress":"did:bid:efbThy5sb...5oQGX6LUGwg",
"bifChainRpcUrl":"http://test.bifcore.bitfactory.cn",
"bifPrivateKey":"priSPKgnr1a...JNaackZJUo",
"domainGovernContract":"did:bid:efjQKy4HEshTueHGKzrJPATKoFeNgHKo",
"ptcGovernContract":"did:bid:efgTq9DtP2zHAhmKp7M4BhN6AVYMVWV2",
"relayerGovernContract":"did:bid:efSnvCFJSnpWiQiVhnh8Eimgyi4RoNpA"
}
}
下面对各个配置项给出解释:
首先是颁证服务的配置:
- authorizedKeyPem:有权限申请跨链身份(Relayer、PTC)的私钥,填入PEM格式的PKCS#8的私钥,目前仅支持Ed25519算法。
- authorizedPublicKeyPem:
authorizedKeyPem
对应的公钥,填入PEM格式的PKCS#8的公钥,目前仅支持Ed25519算法。 - authorizedSigAlgo:
authorizedKeyPem
私钥的签名算法,目前仅支持Ed25519算法。 - clientCrossChainCertPem:Relayer的跨链证书,需要提前从BCDNS处获取。
- clientPrivateKeyPem:Relayer跨链证书持有者的私钥,填入PEM格式的PKCS#8的私钥,目前仅支持Ed25519算法。
- sigAlgo:
clientPrivateKeyPem
私钥的签名算法,目前仅支持Ed25519算法。 - url:颁证服务的URL。
然后是星火链网的配置:
- bifAddress:星火链网的账户地址,这里需要使用Relayer的公钥来生成该地址,可以参考代码。
- bifChainRpcUrl:星火链网节点的RPC地址。
- bifChainRpcPort:星火链网节点的PRC端口,如果不需要则可以不填。
- clientPrivateKeyPem:星火链网账户的私钥,这里需要使用Relayer的私钥
clientPrivateKeyPem
来生成该地址,可以参考代码。 - domainGovernContract:域名管理合约,参考星火链网BCDNS,依赖的星火链网BCDNS应当有唯一一本域名管理合约。
- ptcGovernContract:PTC身份管理合约,依赖的星火链网BCDNS应当有唯一一本PTC身份管理合约。
- relayerGovernContract:Relayer身份管理合约,依赖的星火链网BCDNS应当有唯一一本Relayer身份管理合约。
准备完配置之后,可以根据这里创建一个BCDNS实例。
Embedded BCDNS是内嵌在服务内部的BCDNS,提供中心化的权威服务,会使用一把私钥为跨链网络提供认证、准入等功能,按照服务端要求可以通过简单配置接入BCDNS,具体内容可以参考这里。