Roman Zeyde
a3f43643f3
Support 'blockchain.address.subscribe' Electrum API
7 years ago
Roman Zeyde
7e7f62111a
Implement "verbose" `blockchain.transaction.get` Electrum RPC
Also, change Daemon::load_txn() to be a private method.
7 years ago
Roman Zeyde
2f48be7d0b
Support "blockchain.address.get_balance" Electrum API
7 years ago
Roman Zeyde
001f7a7ba5
Update stable Rust to 1.28
Fix formatting warnings.
7 years ago
Roman Zeyde
b8e07f153a
Correct RPC shutdown logging
7 years ago
Roman Zeyde
3f9f6e6330
Exit RPC server during its d-tor
7 years ago
Roman Zeyde
b83b0718dd
Support 'blockchain.address.listunspent' Electrum RPC
7 years ago
Roman Zeyde
321d655d7a
Support 'blockchain.scripthash.listunspent' Electrum RPC
7 years ago
Roman Zeyde
16ee6f4dd1
Log more information when RPC requests' UTF8 parsing fails
Also don't panic in case of RPC errors
7 years ago
Roman Zeyde
ea65239141
Trace received Electrum RPC requests
7 years ago
Roman Zeyde
f9ad0938fc
Rename histogram() -> histogram_vec()
7 years ago
Roman Zeyde
48f26a5309
Use `spawn_thread` in metrics and rpc modules
7 years ago
Roman Zeyde
7908877000
Rename a variable for readability
7 years ago
Roman Zeyde
284275e2d1
Stop and join all Electrum client threads on SIGINT
7 years ago
Roman Zeyde
165b48ccce
Gracefully close Electrum RPC server from after SIGINT
7 years ago
Roman Zeyde
c2af5bc01a
Split accepting clients into a separate thread
7 years ago
Roman Zeyde
9b23b4324b
Remove unneeded debug log statement
7 years ago
Roman Zeyde
4d783a3898
Replace RPC timing with Prometheus monitoring
7 years ago
Roman Zeyde
4b0773e55b
Shorten RPC sender/receiver to tx/rx
7 years ago
Roman Zeyde
3fff933923
Log periodic status updates' timing
7 years ago
Roman Zeyde
f787a897bf
No need for keeping acceptor thread handle (for now)
7 years ago
Roman Zeyde
fbcb3855c8
Schedule periodic RPC updates from main thread polling
7 years ago
Roman Zeyde
1d5d75c2ac
Support new `blockchain.block.headers` API
7 years ago
Roman Zeyde
46e2d84024
Fix RPC to return raw headers
(following Electrum 1.2 protocol spec)
7 years ago
Roman Zeyde
4189931020
Handle multiple RPC clients in parallel
7 years ago
Roman Zeyde
3cc7625608
Allow specifying blockheader during transaction lookup via daemon
This would allow to work without daemon's txindex.
Note that seeking inside a block (on a HDD) doesn't take
too much time when compare to reading the whole block and
finding the transaction (even without client-side cache).
Next commit should add support for looking up confirmation
height for a given transaction ID (currently assumes txindex).
7 years ago
Roman Zeyde
e8c358c961
Fix 'use' statements ordering
7 years ago
Roman Zeyde
ddb38e7d4a
Small refactoring of RPC internals
7 years ago
Roman Zeyde
ca21ba837d
Rewrite query and RPC functionality using new index API
7 years ago
Roman Zeyde
421e1877bb
Fix vec![] usage
7 years ago
Roman Zeyde
1786fa69ed
Refactor Connection::send_value()
7 years ago
Roman Zeyde
ae438b554f
Format rpc.rs
7 years ago
Roman Zeyde
c80c836852
Simplify error handling for Query::get_best_header()
7 years ago
Roman Zeyde
bf92ceeb16
Return errors back to RPC clients
and fix error handling in more places.
7 years ago
Roman Zeyde
2355dbd0ed
Add proper error handling (instead of unwrapping) to query.rs
7 years ago
Roman Zeyde
0d56b2ecc6
Use one error_chain definition
7 years ago
Roman Zeyde
fd03723842
Use std::thread instead of crossbeam
7 years ago
Roman Zeyde
b69219a550
Pass application state and query via Arc
(consider Tokio futures)
7 years ago
Roman Zeyde
8fdc244b0a
Pre-compute configuration settings before starting
7 years ago
Roman Zeyde
d50f4746d8
Move TODOs to a separate file and reorg it a bit
7 years ago
Roman Zeyde
cbbb298b5c
Show confirmed and unconfirmed balances separately
7 years ago
Roman Zeyde
a681334074
Support (older) ETA-based fee estimation
7 years ago
Roman Zeyde
24eddc5881
Notify once on each block header
7 years ago
Roman Zeyde
cc3b1ddccc
Periodically poll subscription status (w/ mempool)
7 years ago
Roman Zeyde
5941edbbc6
Remove itertools dependency
7 years ago
Roman Zeyde
935c3cfb7b
Make query-related structs and members private
7 years ago
Roman Zeyde
04b2568954
Move Status-related functions to `query` module
7 years ago
Roman Zeyde
33f68509f8
Move HeaderList stuff to 'util' module
7 years ago
Roman Zeyde
0c4e500fb8
Add TODO regarding JSONRPC errors
7 years ago
Roman Zeyde
f3ac83a376
Rename Handler -> Connection and refactor a bit
7 years ago