BRC20铭文索引器ordhook
ordhook 是一个索引器(indexer),旨在帮助开发人员在序数理论之上构建新的抗重组应用程序。 该索引器将使协议开发人员和这些协议的用户能够轻松追踪和发现 Ordinal 铭文的所有权,以及有关每个铭文的大量信息。
一键发币: SOL | BNB | ETH | BASE | Blast | ARB | OP | POLYGON | AVAX | FTM | OK
序数理论(ordinals theory)是一个旨在为铸造的聪(sats)分配唯一标识符的协议。 通过其编号方案,聪可以刻上任意内容(铭文:inscriptions),创建比特币原生的数字工件,通常被称为 NFT。 铭文不需要侧链或单独的代币,这对于新进入者采用、扩展和使用具有吸引力。 这些记入的 sat 可以使用比特币交易进行转移,发送到比特币地址,并保存在比特币 UTXO 中。 从所有方面来看,这些交易、地址和 UTXO 都是正常的比特币交易、地址和 UTXO,除了要发送单个 sat,交易必须根据序数理论控制输入和输出的顺序和值。
现在我们讨论了序数理论,让我们深入了解 ordhook 试图为开发人员解决什么问题。
ordhook 是一个索引器(indexer),旨在帮助开发人员在序数理论之上构建新的抗重组应用程序。 该索引器将使协议开发人员和这些协议的用户能够轻松追踪和发现 Ordinal 铭文的所有权,以及有关每个铭文的大量信息。
ordhook 使用 Chainhook 项目中的 Chainhook SDK,这是一个适用于 Stacks 和比特币的重组感知交易索引引擎。 该SDK采用一流的事件驱动原理设计,因此可以帮助开发人员高效地从区块中提取交易,并保持链状态的一致视图。
借助 ordhook,比特币开发人员可以利用近乎实时的序数铭文和传输事件可靠地实现功能丰富的协议和业务模型。
1、安装 ordhook
使用如下命令从源代码安装ordhook:
$ git clone https://github.com/hirosystems/ordhook.git
$ cd ordhook
$ cargo ordhook-install
2、探索 Ordinal 活动
安装 ordhook 后,可以使用以下命令简单地执行 Ordinals 活动扫描:
$ ordhook scan blocks --interval 767430:767753 --mainnet
Inscription 6fb976ab49dcec017f1e201e84395983204ae1a7c2abf7ced0a85d692e442799i0 revealed at block #767430 (ordinal_number 1252201400444387, inscription_number 0)
Inscription 26482871f33f1051f450f2da9af275794c0b5f1c61ebf35e4467fb42c2813403i0 revealed at block #767753 (ordinal_number 727624168684699, inscription_number 1)
在此命令中,提供了要扫描的块间隔(从块 767430 开始,到块 767753 结束)。 ordhook 将显示指定区块范围内发生的铭文和转移活动。
可以使用以下命令检索给定铭文的活动:
$ ordhook scan inscription 6fb976ab49dcec017f1e201e84395983204ae1a7c2abf7ced0a85d692e442799i0 --mainnet
Inscription 6fb976ab49dcec017f1e201e84395983204ae1a7c2abf7ced0a85d692e442799i0 revealed at block #767430 (ordinal_number 1252201400444387, inscription_number 0)
Transferred in transaction bc4c30829a9564c0d58e6287195622b53ced54a25711d1b86be7cd3a70ef61ed at block 785396
3、将 Ordinal 活动流式传送到索引器
ordhook 旨在帮助开发人员从比特币链中提取序数活动(铭文和转账),并将这些活动流式传输到他们的索引器/Web 应用程序。
为了开始,必须运行一个可以访问 RPC 方法 getblockhash
和 getblock
的 bitcoind 实例。 RPC 调用延迟将直接影响扫描速度。
注意:bitcoind 实例的配置超出了本指南的范围。
假设:
- 正确配置的bitcoind节点
- 在端口 3000 上运行的本地 HTTP 服务器公开
POST /api/events
端点,
可以使用以下命令生成配置文件 Ordhook.toml
:
$ ordhook config new --mainnet
✔ Generated config file Ordhook.toml
调整 Ordhook.toml 设置以使它们与 bitcoind 配置匹配后,可以运行以下命令:
$ ordhook scan blocks --interval 767430:767753 --post-to=http://localhost:3000/api/events --config-path=./Ordhook.toml
ordhook 将检索完整的 Ordinals 活动(包括铭文内容)并将所有这些信息发送到 http://localhost:3000/api/events
HTTP POST 端点。
4、将 ordhook 作为块流送服务运行
ordhook 可以作为一项服务运行,用于流式传输和处理附加到比特币区块链的新块。
$ ordhook service start --post-to=http://localhost:3000/api/events --config-path=./Ordhook.toml
还可以通过在 Ordhook.toml
配置文件中添加以下部分来动态添加新的 http-post 端点:
[http_api]
http_port = 20456
使用命令运行 ordhook:
$ ordhook service start --config-path=./Ordhook.toml
将启动一个 HTTP API 来管理事件目的地。
可以在此处找到解释如何与此 HTTP REST API 交互的全面 OpenAPI 规范。
5、故障排除:性能和系统要求
序数理论协议是资源密集型协议,需要大量的 CPU、内存和磁盘功能。 在我们不断完善和优化的过程中,请记住以下系统要求和建议,以确保最佳性能:
- CPU:ordhook 工具在运行时检测到时有效地利用多个核心,并行化任务以提高性能。
- 内存:建议至少使用 16GB RAM。
- 磁盘:为了增强I/O性能,建议使用SSD或NVMe存储。
- 操作系统要求:确保系统允许至少 4096 个打开的文件描述符。 配置可能会因你的操作系统而异。 在某些系统上,可以使用
ulimit
命令或launchctl limit
命令进行调整。
原文链接: Ordinals and BRC-20 Inscriptions Indexer
DefiPlot翻译整理,转载请标明出处