- Fix JSONRPC errors' handling (#398, #390)
- Optimize Dockerfile (#387, #388, #392)
- Fix signet default port (https://github.com/romanz/electrs/b53178c140e575b0527a70ead566d50c7fe6cb1f)
- Use non-batched RPC to reduce bitcoind memory usage (#373)
- Fix inverted logic of deprecation (#379)
- Ignore individual mempool transaction fetch fails (#381)
- Increase default wait_duration_secs to 10s (#384)
- Deprecate
--cookie
configuration (@Kixunil) - Update dependencies (@Kixunil)
- Improve documentation (@Kixunil)
- Support signet (#239)
- Fix Electrum fee histogram duplicates
- Fix Electrum protocol negotiation
- Update multiple crates (@kixunil): lru, prometheus, dirs-next
- Support Rust 1.41.1 (for Debian stable)
- Update bitcoin crate (@dr-orlovsky)
- Fix a deadlock when shutting down (@kixunil)
- Add a 'blocks_dir' option (@darosior)
- Return fee for unconfirmed transactions history (for Electrum 4.0)
- Handle SIGUSR1 for external notifications
- Update to latest rust-bitcoin (@dr-orlovsky)
- Fix deadlock and refactor RPC threading (@Kixunil)
- Fix memory leak (@champo)
- Downgrade rust-rocksdb to 0.12.2 (romanz#193)
- Allow setting
--cookie-file
path via configuration (@Kixunil) - Bump rust-rocksdb to 0.13.0, using RockDB 6.2.4
- Use
configure_me
instead ofclap
to support config files, environment variables and man pages (@Kixunil) - Don't accept
--cookie
via CLI arguments (@Kixunil) - Define cache size in MB instead of number of elements (@dagurval)
- Support Rust >=1.34 (for Debian)
- Bump rust-rocksdb to 0.12.3, using RockDB 6.1.2
- Bump bitcoin crate to 0.21 (@MichelKansou)
- Allow stopping bulk indexing via SIGINT/SIGTERM
- Cache list of transaction IDs for blocks (@dagurval)
- Support Bitcoin Core 0.18
- Build with LTO
- Allow building with latest Rust (via feature flag)
- Use iterators instead of returning vectors (@Kixunil)
- Use atomics instead of
Mutex<u64>
(@Kixunil) - Better handling invalid blocks (@azuchi)
- Support Rust 1.32 (for Debian)
- Fix crash during initial sync
- Switch to
signal-hook
crate
- Update to Rust 1.34
- Prefix Prometheus metrics with 'electrs_'
- Update RocksDB crate to 0.12.1
- Update Bitcoin crate to 0.18
- Support latest bitcoind mempool entry vsize field name
- Fix "chain-trimming" reorgs
- Serve by default on IPv4 localhost
- Limit query results, to prevent RPC server to get stuck (see
--txid-limit
flag) - Update RocksDB crate to 0.11
- Update Bitcoin crate to 0.17
- Support Rust 2018 edition (1.31)
- Upgrade to Electrum protocol 1.4 (from 1.2)
- Let server banner be configurable via command-line flag
- Improve query.get_merkle_proof() performance
- Update to rust-bitcoin 0.15.1
- Use bounded LRU cache for transaction retrieval
- Support 'server.ping' and partially 'blockchain.block.header' Electrum RPC
- Don't run full compaction after initial import is over (when using JSONRPC)
- Optimize for low-memory systems by using different RocksDB settings
- Rename
--skip_bulk_import
flag to--jsonrpc-import
- Optimize block headers processing during startup
- Handle TCP disconnections during long RPCs
- Use # of CPUs for bulk indexing threads
- Update rust-bitcoin to 0.14
- Optimize block headers processing during startup
- Reconnect to bitcoind only on transient errors
- Poll mempool after transaction broadcasting
- Optimize for low-memory systems
- Improve compaction performance
- Handle disconnections from bitcoind by retrying
- Make
blk*.dat
ingestion more robust - Support regtest network
- Support more Electrum RPC methods
- Export more Prometheus metrics (CPU, RAM, file descriptors)
- Add
scripts/run.sh
for building and runningelectrs
- Add some Python tools (as API usage examples)
- Change default Prometheus monitoring ports
- Allow specifying custom bitcoind data directory
- Allow specifying JSONRPC cookie from commandline
- Improve initial bulk indexing performance
- Support 32-bit systems
- Announcement: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-July/016190.html
- Published to https://crates.io/electrs and https://docs.rs/electrs