Published on: 2020-06-01T08:10:50+00:00
Nadav Ivgi has released a new HD wallet indexer called bwt, which is similar to Electrum Personal Server but offers additional indexes on top of the bitcoind wallet functionality. This indexer is designed to track an xpub and automatically derive new addresses as needed, according to the gap limit. It provides real-time updates via Server-Sent Events or Web Hooks, unlike using bitcoind RPC directly. The aim of bwt is to minimize RPC requests to bitcoind. Support for output script descriptors is one major item on the roadmap for future development.Antoine compares esplora-electrs and bwt in terms of performance. Both APIs are designed by Nadav and have similarities. While esplora-electrs keeps a full index of everything, bwt only tracks wallet addresses. Therefore, if the user is only interested in wallet addresses and doesn't have a large number of them, bwt will perform better. However, if there are many addresses, esplora-electrs will be more suitable. Esplora provides comprehensive information about transactions and blocks, while bwt intentionally reduces this information to the subset useful for app development. Bwt provides wallet-contextual information, such as key origins next to addresses and the net change inflicted on the wallet's balance by transactions. Unlike Esplora, bwt provides real-time updates using two different mechanisms: SSE and Web Hooks.Bwt, implemented in Rust by Nadav, is an HD wallet indexer that utilizes the bitcoind wallet functionality to build additional indexes. These indexes can be queried using the Electrum RPC protocol or a developer-friendly HTTP REST API. The electrum server can also be used as an electrum plugin, integrating the server into the electrum client. The HTTP API is designed for wallet tracking and aimed at app developers, serving as a backend for wallets or deposit tracking for watch-only xpubs.In comparison to using bitcoind RPC directly, bwt offers several conveniences. It allows for tracking an xpub and automatically importing new addresses as needed. It provides real-time updates through Server-Sent Events or Web Hooks. The API offers simplifications and conveniences, along with an easy way to catch up with missed events. To minimize RPC requests, the indexer uses labels to store key origin information. It can index 10k incoming transactions in under a second or a mixture of 5k/5k in under 5 seconds. Although it requires an additional RPC call per outgoing transaction to determine spent prevouts, the index is currently stored entirely in-memory without persistence.Nadav has included useful developer resources and a script for setting up a development environment in the README. This early alpha release of bwt is recommended for use with testnet/regtest.
Updated on: 2023-08-02T02:20:06.234965+00:00