This is the old Algorand Developer Portal. Please head over to dev.algorand.co to explore our newly rebuilt documentation site. Please excuse us as we continue to transition content to the new portal

创建文章

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 网络将推出更多强大功能,敬请期待。