创建文章

We are looking for publications that demonstrate building dApps or smart contracts!
See the full list of Gitcoin bounties that are eligible for rewards.

Article Thumbnail

Algorand 的新索引器V2

至少可以这么说,搜索交易和其他区块链数据点很难。搜索操作不仅相当耗时,区块链还常常限制一次操作可以搜索的信息量。尽管这样有助于区块链节点更加高效地运行,但要创建利用账本数据的应用就很头疼了。为解决这个问题,Algorand 为 Algorand 节点提供了索引器属性。启用此属性,就可随账本数据存储额外的元数据用于搜索目的。此方法虽然好用,但搜索的数量和类型有限。为克服这些限制,Algorand 重新设计了 Indexer,使其以独立的进程运行,完全独立于节点。Indexer V2 现已推出!

可在设置指南中查阅新版 Indexer 的安装方法。想要了解所有可用 REST API 端点,请参阅 Indexer 功能指南。Indexer 的源代码同样可从 Github 下载。

新版 Indexer 支持搜索交易、账户、资产和区块。另外,可以运用各种参数细化搜索,执行基于交易和余额的搜索、基于时间的搜索、基于轮次的搜索、交易类型搜索以及签名搜索。

举个例子,如果我想找出 DevDocsCoin 等特定 Algorand 资产的相关信息,我可以按名称搜索。

 curl "localhost:8980/v2/assets?name=DevDocsCoin" | json_pp
{
  "assets" : [
     {
        "params" : {
           "reserve" : "SWOUICD7Y5PQBWWEYC4XZAQZI7FJRZLD5O3CP4GU2Y7FP3QFKA7RHN2WJU",
           "name" : "DevDocsCoin",
           "creator" : "SWOUICD7Y5PQBWWEYC4XZAQZI7FJRZLD5O3CP4GU2Y7FP3QFKA7RHN2WJU",
           "clawback" : "SWOUICD7Y5PQBWWEYC4XZAQZI7FJRZLD5O3CP4GU2Y7FP3QFKA7RHN2WJU",
           "decimals" : 0,
           "default-frozen" : false,
           "total" : 1000000,
           "manager" : "SWOUICD7Y5PQBWWEYC4XZAQZI7FJRZLD5O3CP4GU2Y7FP3QFKA7RHN2WJU",
           "url" : "https://bit.ly/374zKN2",
           "freeze" : "SWOUICD7Y5PQBWWEYC4XZAQZI7FJRZLD5O3CP4GU2Y7FP3QFKA7RHN2WJU",
           "unit-name" : "HiWorld"
        },
        "index" : 2044572
     }
  ],
  "current-round" : 7167266
}

使用本次调用中的索引,我现在可以利用下列 REST 端点搜索账本中拥有此通证的任意账户。

$ curl "localhost:8980/v2/assets/2044572/balances" | json_pp
{
   "balances" : [
      {
         "amount" : 999900,
         "address" : "SWOUICD7Y5PQBWWEYC4XZAQZI7FJRZLD5O3CP4GU2Y7FP3QFKA7RHN2WJU",
         "is-frozen" : false
      },
      {
         "address" : "UF7ATOM6PBLWMQMPUQ5QLA5DZ5E35PXQ2IENWGZQLEJJAAPAPGEGC3ZYNI",
         "is-frozen" : false,
         "amount" : 100
      }
   ],
   "current-round" : 7167317
}

可以添加很多额外的条件,细化新版 Indexer 的搜索范围。其中就包括支持基于历史的搜索的很多调用,比如,您可以搜索过去特定轮次的资产或 Algo 币余额。

Indexer 还提供结果分页机制,可以将搜索高效分成多个 REST 调用而不增加服务器负载。用户可以使用该功能设置分页结果的大小,通过用户的应用来控制搜索结果的处理时机和方式。

Algorand 网络上的每个交易都允许添加最多 1kb 的注释。这个功能在构建第 2 层应用时很有用,可以存储额外的元数据。索引器现在的搜索机制支持搜索这些注释中的特定字节前缀。应用可利用这一机制很方便地标记特定交易,快速返回此类交易列表。

全部 Algorand SDK 均已更新,完全支持新版 Indexer,所以请务必更新您的 SDK,欢迎向我们反馈关于新功能的看法。未来几周,Algorand 网络将推出更多强大功能,敬请期待。