区块链域名服务(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跨链。

星火链网(BIF)BCDNS

目前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

Embedded BCDNS是内嵌在服务内部的BCDNS,提供中心化的权威服务,会使用一把私钥为跨链网络提供认证、准入等功能,按照服务端要求可以通过简单配置接入BCDNS,具体内容可以参考这里

⚠️ **GitHub.com Fallback** ⚠️