adamant-iOS
adamant-iOS copied to clipboard
[Enhancement] Health check: Switch from indexer to node endpoints for BTC and DOGE
Summary
It’s preferred to use Node endpoints as much as possible instead of Indexer endpoints
Motivation
Nodes are the primary and most reliable source of blockchain data.
Indexers provide additional convenience but introduce extra layers of complexity, dependencies, and potential points of failure.
By preferring Node endpoints over Indexers:
- We ensure higher reliability and trustworthiness of data
- We reduce dependency on third-party services
- We improve system resilience (transactions and balances should not depend on Indexer availability)
- Separate Health-check
Indexers should only be used where their added value is essential — for example, fetching wallet transaction history efficiently.
Detailed description
ADAMANT has nodes and blockchain services/indexers for ETH, BTC and DOGE.
- Nodes/Core — standard nodes.
- Services/Indexers — third-party projects, also open source. BTC/DOGE: Esplora/Insight. ETH: https://github.com/Adamant-im/ETH-transactions-storage.
Checklist:
- [ ] Perform separate health checks for Nodes and Indexers. Add ETH, BTC, DOGE indexers to Health check & Coin and service node list. Use services.ethIndexer constant from
adamant-wallets. - [ ] Use suffixes (displayName like "eth-indexer") from
adamant-walletsin the nodes/services screens - [ ] Use Nodes whenever possible since they are more reliable (e.g., for sending transactions)
- [ ] Use Indexer endpoints only for fetching wallet transaction history
- [ ] Test sending Taproot BTC tx via Node but not Indexer (Add Issue link here and connect Issues)
DASH, while it's BTC-based, is not affected, as it has built-in indexer in the node itself, no separate indexer software.
Screenshots or videos
Nodes (PWA):
Services (PWA):
Alternatives
Same Issue for PWA: https://github.com/Adamant-im/adamant-im/issues/901
Proposed technical implementation
Endpoints:
- BTC
- Node:
/bitcoindhttps://developer.bitcoin.org/reference/rpc/ - Indexer:
/api/*
- Node:
- Doge
- Node:
/https://developer.bitcoin.org/reference/rpc/ - Indexer:
/api/*
- Node: