后端集成 .bit

das-account-indexeropen in new window

如果开发者需要在后端接入 .bit,那 das-account-indexeropen in new window 将是您的不二选择。

它通过 CKB 节点持续从 CKB 链上读取数据,解析之后存储在本地数据库(RocksDB)中,并提供了高性能的 JSON-RPC 服务,供业务读取 .bit 的解析数据。

同时它也是 dotbit.js 所依赖的后端服务。

部署 Indexer 需要依赖 CKB 节点,见 CKB 节点和 CKB Indexer

das-account-indexer API 文档open in new window

使用举例

下面以获取用户基本信息为例,说明一下 .bit Indexer 的用法。

请求

curl -X POST https://indexer-basic.did.id -d'{"jsonrpc": "2.0","id": 1,"method": "das_accountInfo","params": [{"account":"phone.bit"}]}'

响应

{
  "errno": 0,
  "errmsg": "",
  "data": {
    "out_point": {
      "tx_hash": "0xabb6b2f502e9d992d00737a260e6cde53ad3f402894b078f60a52e0392a17ec8",
      "index": 0
    },
    "account_info": {
      "account": "phone.bit",
      "account_id_hex": "0x5f560ec1edc638d7dab7c7a1ca8c3b0f6ed1848b",
      "next_account_id_hex": "0x5f5c20  f6cd95388378771ca957ce665f084fe23b",
      "create_at_unix": 1626955542,
      "expired_at_unix": 1658491542,
      "status": 1,
      "das_lock_arg_hex": "0x0559724739940777947c56c4f2f2c9211cd5130fef0559724739940777947c56c4f2f2c9211cd5130fef",
      "owner_algorithm_id": 5, // 3: eth personal sign, 4: tron sign, 5: eip-712
      "owner_key": "0x59724739940777947c56c4f2f2c9211cd5130fef",
      "manager_algorithm_id": 5,
      "manager_key": "0x59724739940777947c56c4f2f2c9211cd5130fef"
    }
  }
}

官方 Indexer 服务

考虑到服务的稳定性和业务个性化需求,我们建议自建 indexer 服务并跟进 .bit 官方的迭代更新。(是的!去中心化!)。

但同时,.bit 团队提供了有限功能的公开 Indexer 供开发者在早期阶段进行开发、调试。

全功能 Indexer

https://indexer-v1.did.id

这个服务可以查询所有数据。但是一如既往,我们推荐开发者自建 Indexer。

https://indexer-not-use-in-production-env.did.id

这个服务可以查询所有数据,但如其域名所描述的,不推荐开发者在生产环境中使用该 Indexer

基本 Indexer

https://indexer-basic.did.id

这个服务仅可查询账户信息和反向解析记录。具体接口如下:

  • das_serverInfo
  • das_reverseRecord
  • das_accountInfo
  • das_accountList
  • das_accountRecords

频率限制

目前两个公开 Indexer 都没有进行频率限制,请按需使用。但如果频率超出服务承载能力,调用方会面临封禁 ip 的可能。

Unifra Indexer 服务

Unifraopen in new window 是一个专业的 Web3 基建服务商。

Unifra 为 .bit 社区提供了高性能、高可靠性的 .bit indexer 服务。如果开发者不想自己搭建 .bit Indexer,我们推荐使用 Unifra 的服务,可以节省您大量的开发时间。

Unifra .bit Indexer 文档open in new window

CKB 节点和 CKB Indexer

.bit 的数据存储于 Nervos CKBopen in new window 链上,因此自建 .bit Indexer 的开发者需要部署相应的 CKB 节点和 CKB Indexer。

部署方式

具体部署方式请查看 CKB 官方指南:

CKB 节点运行指引open in new window
CKB 节点 JSON-RPC 协议open in new window
CKB Indexer 运行指引open in new window
CKB Indexer JSON-RPC 协议open in new window

使用示例

CKB 节点

请求

curl -X POST https://mainnet.ckb.dev/rpc -H 'content-type:application/json' -d'{"id":42,"jsonrpc":"2.0","method":"get_tip_header","params":[]}'

响应

{"jsonrpc":"2.0","result":{"compact_target":"0x190a0088","dao":"0xac8ffb215ff346419e9af198c38b26000e53d3ad69969403002bdb8b29d71a07","epoch":"0x41c03f40014bb","extra_hash":"0x0000000000000000000000000000000000000000000000000000000000000000","hash":"0x13251222fc73918701aafc8edbb08057dde7ca95d9709990616fb8802b73af9d","nonce":"0x990fa3bc251b0000000000086019030c","number":"0x6a37e1","parent_hash":"0x4ea3a7a40877471c9a6b98306fbe453007a5306887ff8a05ab5393166f7d0f86","proposals_hash":"0x91cea8c15a4b9b0324561f629ff13aff4522f8a925671dfb8650256f7e68692d","timestamp":"0x180509c0e87","transactions_root":"0xf908c0afd0650812557edf3c346ad0f5ae9a44c24cc6cd58db4e6171631f7bbb","version":"0x0"},"id":42}
CKB Indexer

请求

curl -X POST https://mainnet.ckb.dev/indexer 7 -H 'content-type:application/json' -d'{"id":42,"jsonrpc":"2.0","method":"get_tip"}'

响应

{"jsonrpc":"2.0","result":{"block_hash":"0xc1d86e3986679d32090240f3e6abb641fe9d898976f8adb204b77d34ce11f3ec","block_number":"0x6a37db"},"id":42}

社区节点

如果不想自己部署 CKB 节点或者处于测试阶段,可以使用社区提供的公开节点(不推荐长期使用):

免费 CKB 节点open in new window

下一步