Open jirigrill opened 1 year ago
I had a similar issue when i just upgraded from 0.8 to 0.9.9
for me i had to make sure that bitcoin.conf had bind=0.0.0.0
set since in my TRACE logs of electrs it was failing when trying to send to the P2P endpoint
i get this error when using the netcat example
i get the right response, but netcat doesn't return the command prompt after receiving the data, so i kill it with ^C
(SIGTERM)
after killing netcat, electrs logs a warning [2022-11-03T16:23:55.531Z WARN electrs::server] 39: failed to shutdown TCP receiving Transport endpoint is not connected (os error 107)
$ echo '{"jsonrpc": "2.0", "method": "blockchain.scripthash.listunspent", "params": ["37d930a0d474560e16eb7e40bcd02ec16c3dad3317c10b272e743a024eb37bea"], "id": 9}' | netcat 127.0.0.1 60401
{"id":9,"jsonrpc":"2.0","result":[{"height":525,"tx_hash":"ff864f18956f4abcf550328ca37d5bd74598e9d2ac75e65fd3d3a13048c0abec","tx_pos":0,"value":400000000},{"height":525,"tx_hash":"b4930f0ca5a6f2b1cd4353f3c01ae6d0555b5430ca854a993e36f6c2ff1c1f4b","tx_pos":0,"value":250000000}]}
^C
I also get this bug on my node. More details can be found at the raspiblitz issue I opened
Seems like it it caused when bitcoind p2p connections pool are full.
it was bit tricky to start electrs 3 days ago, but adding whitelist parameter to bitcoin.conf help so electrs did sync.
I need to restart server and after that electrs is not able to connect to bitcoind and I am getting same error.
my server has local ip 192.168.75.10 bitcoind is binding 0.0.0.0 by default and I did forward 8333 on router so I can see that other nodes are connected.
here is part of my bitcoin.conf
maxuploadtarget=512M
maxconnections=14
whitelist=download@127.0.0.1
whitelist=download@192.168.75.10
and here electrs.toml
auth="euser:asfdasfasfasfasfasdf"
network = "bitcoin"
daemon_rpc_addr = "127.0.0.1:8332"
daemon_p2p_addr = "192.168.75.10:8333"
daemon-dir = "/mnt/node_1/blockchain"
electrum_rpc_addr = "192.168.75.10:50001"
db_dir = "/mnt/node_1/electrs"
log_filters = "TRACE"
timestamp = true
yes, bitcoin p2p pool is full but whitelist should take care of that, also if bitcoind did save that peer 192.168.75.10 (local electrs) did download more then maxuploadtarget that should be solved by whitelist too.
what I dont understand why it was working two days ago
where is log from electrs
Jan 23 22:27:59 skriatok electrs[456022]: Starting electrs 0.10.0 on x86_64 linux with Config { network: Bitcoin, db_path: "/mnt/node_1/electrs/bitcoin", daemon_dir: "/mnt/btc_node/.bitcoin", daemon_auth: UserPass("euser", "<sensitive>"), daemon_rpc_addr: 127.0.0.1:8332, daemon_p2p_addr: 192.168.75.10:8333, electrum_rpc_addr: 192.168.75.10:50001, monitoring_addr: 127.0.0.1:4224, wait_duration: 10s, jsonrpc_timeout: 15s, index_batch_size: 10, index_lookup_limit: None, reindex_last_blocks: 0, auto_reindex: true, ignore_mempool: false, sync_once: false, skip_block_download_wait: false, disable_electrum_rpc: false, server_banner: "Welcome to electrs 0.10.0 (Electrum Rust Server)!", signet_magic: f9beb4d9, args: [] }
Jan 23 22:27:59 skriatok electrs[456022]: [2024-01-23T21:27:59.787Z DEBUG tiny_http] Server listening on 127.0.0.1:4224
Jan 23 22:27:59 skriatok electrs[456022]: [2024-01-23T21:27:59.787Z INFO electrs::metrics::metrics_impl] serving Prometheus metrics on 127.0.0.1:4224
Jan 23 22:27:59 skriatok electrs[456022]: [2024-01-23T21:27:59.788Z INFO electrs::server] serving Electrum RPC on 192.168.75.10:50001
Jan 23 22:27:59 skriatok electrs[456022]: [2024-01-23T21:27:59.789Z DEBUG tiny_http] Running accept thread
Jan 23 22:27:59 skriatok electrs[456022]: [2024-01-23T21:27:59.912Z INFO electrs::db] "/mnt/node_1/electrs/bitcoin": 175 SST files, 45.258448579 GB, 5.678357143 Grows
Jan 23 22:27:59 skriatok electrs[456022]: [2024-01-23T21:27:59.913Z DEBUG electrs::db] DB Some(Config { compacted: true, format: 0 })
Jan 23 22:27:59 skriatok electrs[456022]: [2024-01-23T21:27:59.988Z DEBUG electrs::db] auto-compactions enabled
Jan 23 22:28:06 skriatok electrs[456022]: [2024-01-23T21:28:06.646Z INFO electrs::chain] loading 826999 headers, tip=0000000000000000000130df2873283f409788609c674637080b13a7f2719906
Jan 23 22:28:14 skriatok electrs[456022]: [2024-01-23T21:28:14.268Z INFO electrs::chain] chain updated: tip=0000000000000000000130df2873283f409788609c674637080b13a7f2719906, height=826999
Jan 23 22:28:14 skriatok electrs[456022]: [2024-01-23T21:28:14.348Z DEBUG bitcoincore_rpc] JSON-RPC request: getblockchaininfo []
Jan 23 22:28:14 skriatok electrs[456022]: [2024-01-23T21:28:14.350Z TRACE bitcoincore_rpc] JSON-RPC response for getblockchaininfo: {"chain":"main","blocks":827048,"headers":827048,"bestblockhash":"00000000000000000001b7302799c43f9191738aadc160fa87eb04866c11f0a7","difficulty":70343519904866.8,"time":1706044246,"mediantime":1706041347,"verificationprogress":0.9999939506341941,"initialblockdownload":false,"chainwork":"000000000000000000000000000000000000000066d64f3307db0e4fb5b208d4","size_on_disk":616981805120,"pruned":false,"warnings":""}
Jan 23 22:28:14 skriatok electrs[456022]: [2024-01-23T21:28:14.350Z DEBUG bitcoincore_rpc] JSON-RPC request: getnetworkinfo []
Jan 23 22:28:14 skriatok electrs[456022]: [2024-01-23T21:28:14.352Z TRACE bitcoincore_rpc] JSON-RPC response for getnetworkinfo: {"version":260000,"subversion":"/Satoshi:26.0.0/","protocolversion":70016,"localservices":"0000000000000409","localservicesnames":["NETWORK","WITNESS","NETWORK_LIMITED"],"localrelay":true,"timeoffset":0,"networkactive":true,"connections":14,"connections_in":3,"connections_out":11,"networks":[{"name":"ipv4","limited":false,"reachable":true,"proxy":"","proxy_randomize_credentials":false},{"name":"ipv6","limited":true,"reachable":false,"proxy":"","proxy_randomize_credentials":false},{"name":"onion","limited":false,"reachable":true,"proxy":"127.0.0.1:9050","proxy_randomize_credentials":true},{"name":"i2p","limited":true,"reachable":false,"proxy":"","proxy_randomize_credentials":false},{"name":"cjdns","limited":true,"reachable":false,"proxy":"","proxy_randomize_credentials":false}],"relayfee":0.00001000,"incrementalfee":0.00001000,"localaddresses":[{"address":"blablabla.onion","port":8333,"score":4}],"warnings":""}
Jan 23 22:28:14 skriatok electrs[456022]: [2024-01-23T21:28:14.352Z DEBUG bitcoincore_rpc] JSON-RPC request: getnetworkinfo []
Jan 23 22:28:14 skriatok electrs[456022]: [2024-01-23T21:28:14.354Z TRACE bitcoincore_rpc] JSON-RPC response for getnetworkinfo: {"version":260000,"subversion":"/Satoshi:26.0.0/","protocolversion":70016,"localservices":"0000000000000409","localservicesnames":["NETWORK","WITNESS","NETWORK_LIMITED"],"localrelay":true,"timeoffset":0,"networkactive":true,"connections":14,"connections_in":3,"connections_out":11,"networks":[{"name":"ipv4","limited":false,"reachable":true,"proxy":"","proxy_randomize_credentials":false},{"name":"ipv6","limited":true,"reachable":false,"proxy":"","proxy_randomize_credentials":false},{"name":"onion","limited":false,"reachable":true,"proxy":"127.0.0.1:9050","proxy_randomize_credentials":true},{"name":"i2p","limited":true,"reachable":false,"proxy":"","proxy_randomize_credentials":false},{"name":"cjdns","limited":true,"reachable":false,"proxy":"","proxy_randomize_credentials":false}],"relayfee":0.00001000,"incrementalfee":0.00001000,"localaddresses":[{"address":"blabla.onion","port":8333,"score":4}],"warnings":""}
Jan 23 22:28:14 skriatok electrs[456022]: [2024-01-23T21:28:14.354Z DEBUG bitcoincore_rpc] JSON-RPC request: getblockchaininfo []
Jan 23 22:28:14 skriatok electrs[456022]: [2024-01-23T21:28:14.355Z TRACE bitcoincore_rpc] JSON-RPC response for getblockchaininfo: {"chain":"main","blocks":827048,"headers":827048,"bestblockhash":"00000000000000000001b7302799c43f9191738aadc160fa87eb04866c11f0a7","difficulty":70343519904866.8,"time":1706044246,"mediantime":1706041347,"verificationprogress":0.9999939506341941,"initialblockdownload":false,"chainwork":"000000000000000000000000000000000000000066d64f3307db0e4fb5b208d4","size_on_disk":616981805120,"pruned":false,"warnings":""}
Jan 23 22:28:14 skriatok electrs[456022]: [2024-01-23T21:28:14.355Z DEBUG bitcoincore_rpc] JSON-RPC request: getnetworkinfo []
Jan 23 22:28:14 skriatok electrs[456022]: [2024-01-23T21:28:14.356Z TRACE bitcoincore_rpc] JSON-RPC response for getnetworkinfo: {"version":260000,"subversion":"/Satoshi:26.0.0/","protocolversion":70016,"localservices":"0000000000000409","localservicesnames":["NETWORK","WITNESS","NETWORK_LIMITED"],"localrelay":true,"timeoffset":0,"networkactive":true,"connections":14,"connections_in":3,"connections_out":11,"networks":[{"name":"ipv4","limited":false,"reachable":true,"proxy":"","proxy_randomize_credentials":false},{"name":"ipv6","limited":true,"reachable":false,"proxy":"","proxy_randomize_credentials":false},{"name":"onion","limited":false,"reachable":true,"proxy":"127.0.0.1:9050","proxy_randomize_credentials":true},{"name":"i2p","limited":true,"reachable":false,"proxy":"","proxy_randomize_credentials":false},{"name":"cjdns","limited":true,"reachable":false,"proxy":"","proxy_randomize_credentials":false}],"relayfee":0.00001000,"incrementalfee":0.00001000,"localaddresses":[{"address":"blabla.onion","port":8333,"score":4}],"warnings":""}
Jan 23 22:28:14 skriatok electrs[456022]: [2024-01-23T21:28:14.357Z TRACE electrs::p2p] send: Version(VersionMessage { version: 70001, services: ServiceFlags(0), timestamp: 1706045294, receiver: Address {services: ServiceFlags(NONE), address: 0.0.0.0, port: 0}, sender: Address {services: ServiceFlags(NONE), address: 0.0.0.0, port: 0}, nonce: 2823239126432311126, user_agent: "/electrs:0.10.0/", start_height: 0, relay: false })
Jan 23 22:28:14 skriatok electrs[456022]: [2024-01-23T21:28:14.358Z DEBUG electrs::p2p] closing p2p_recv thread: connection closed
Jan 23 22:28:14 skriatok electrs[456022]: [2024-01-23T21:28:14.358Z DEBUG electrs::p2p] closing p2p_loop thread: peer has disconnected
Jan 23 22:28:14 skriatok electrs[456022]: [2024-01-23T21:28:14.359Z DEBUG electrs::p2p] closing p2p_send thread: no more messages to send
Jan 23 22:28:14 skriatok electrs[456022]: [2024-01-23T21:28:14.359Z WARN electrs::p2p] failed to shutdown p2p connection: Transport endpoint is not connected (os error 107)
Jan 23 22:28:14 skriatok electrs[456022]: [2024-01-23T21:28:14.359Z INFO electrs::db] closing DB at /mnt/node_1/electrs/bitcoin
Jan 23 22:28:14 skriatok electrs[456022]: Error: electrs failed
Jan 23 22:28:14 skriatok electrs[456022]: Caused by:
Jan 23 22:28:14 skriatok electrs[456022]: receiving on an empty and disconnected channel
Jan 23 22:28:14 skriatok systemd[1]: electrs.service: Main process exited, code=exited, status=1/FAILURE
Jan 23 22:28:14 skriatok systemd[1]: electrs.service: Failed with result 'exit-code'.
I've been struggling with this all day and can't figure out why bitcoin refuses connection from local electrs, at least that's how I see it. Thanks for help
I did find this discusion helpful.
well, it is quite strange to me. So I decided to increase maxconnections=20 then stop bitcoind and remove peers.dat. I did start bitcoind and wait for few minutes then start electrs.
electrs was able to connect, maybe there was not to many inbound connection.
but I did whitelist local electrs which should not be count. Or is it ?
EDIT:
after while I did see that connection is ok and electrs is communicating with bitcoind so I decided to reduce logging, I did restart electrs and now it is not able to connect. in btc-rpc-explorer I see following counts for peers:
inbound 9
outbound-full-relay 8
block-relay-only 2
Describe the bug I am trying to setup Electrum server, but when I run "electrs --conf .electrs/electrs.conf" I get this error:
WARN electrs::p2p] failed to shutdown p2p connection: Transport endpoint is not connected (os error 107)
Electrs version I am using current master (v0.9.9)
To Reproduce Steps to reproduce the behavior:
Expected behavior Electrs will get synced
Configuration
Error message
System running electrs