= Electrum Update height to -1 for txns with any unconfirmed input (https://electrumx.readthedocs.io/en/latest/protocol-basics.html#status) Snapshot DB after successful indexing - and run queries on this snapshot Handle multiple RPC client in parallel Figure out graceful shutting down and error logging for RPC server = Bitcoind Handle bitcoind connection failures - instead of crashing Use p2p protocol for querying blocks - similar to `bitcoincore-indexd` Lookup confirmed transactions only at their blocks (using `blockhash` parameter of `getrawtransaction` RPC), so -txindex won't be needed Add getrawtransactions() API (for RPC batching) = Performance Add timing/profiler helpers (for indexing/DB/RPC operations) Measure first-time query latency = Rust Use Bytes instead of Vec[u8] when possible Handle SIGINT gracefully (https://www.reddit.com/r/rust/comments/6swidb/how_to_properly_catch_sigint_in_a_threaded_program/) Return errors instead of panics Use generators instead of vectors