Reputation: 61
I have a basic Java app using the BitcoinJ library. On startup, I launch WalletAppKit and later attempt to send funds (using bitcoinj-core version 0.17-beta1). Currently, I don’t run my own node, so I connect to available nodes in the network. Here’s how I initialize WalletAppKit (I use an existing wallet or recover it from a seed if needed):
WalletAppKit kit;
MAX_CONNECTIONS = 4;
try {
kit = WalletAppKit.launch(network, new File("."), "test-102", MAX_CONNECTIONS);
} catch (Exception e) {
if (e instanceof IllegalStateException) {
kitFileName = UUID.randomUUID().toString();
WalletAppKit tempKit = WalletAppKit.launch(network, new File("."), kitFileName, MAX_CONNECTIONS);
tempKit.restoreWalletFromSeed(DeterministicSeed.ofMnemonic("my_16_words_code_here", ""));
tempKit.stopAsync();
tempKit.close();
kit = WalletAppKit.launch(network, new File("."), "test-102", MAX_CONNECTIONS);
}
}
The issue I’m experiencing is that, after startup, my logs repeatedly produce:
2024-10-23 21:36:50,474 512462146 INFO org.bitcoinj.core.PeerGroup - [3.21.200.4]:18333: Peer died (5 connected, 0 pending, 5 max)
2024-10-23 21:36:50,474 512462146 WARN org.bitcoinj.net.NioClientManager - Failed to connect with exception: java.nio.channels.ClosedChannelException: null
java.nio.channels.ClosedChannelException: null
at java.base/sun.nio.ch.SocketChannelImpl.ensureOpen(SocketChannelImpl.java:160)
at java.base/sun.nio.ch.SocketChannelImpl.beginFinishConnect(SocketChannelImpl.java:724)
at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:770)
at org.bitcoinj.net.NioClientManager.handleKey(NioClientManager.java:75)
at org.bitcoinj.net.NioClientManager.run(NioClientManager.java:133)
at com.google.common.util.concurrent.AbstractExecutionThreadService$1.lambda$doStart$1(AbstractExecutionThreadService.java:56)
at com.google.common.util.concurrent.Callables.lambda$threadRenaming$3(Callables.java:105)
at org.bitcoinj.utils.ContextPropagatingThreadFactory.lambda$newThread$0(ContextPropagatingThreadFactory.java:49)
at java.base/java.lang.Thread.run(Thread.java:829)
2024-10-23 21:37:04,299 512475971 INFO org.bitcoinj.core.PeerGroup - [34.76.93.187]:18333: Peer died (5 connected, 0 pending, 5 max)
2024-10-23 21:37:04,301 512475973 WARN org.bitcoinj.net.NioClientManager - Failed to connect with exception: java.nio.channels.ClosedChannelException: null
java.nio.channels.ClosedChannelException: null
at java.base/sun.nio.ch.SocketChannelImpl.ensureOpen(SocketChannelImpl.java:160)
at java.base/sun.nio.ch.SocketChannelImpl.beginFinishConnect(SocketChannelImpl.java:724)
at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:770)
at org.bitcoinj.net.NioClientManager.handleKey(NioClientManager.java:75)
at org.bitcoinj.net.NioClientManager.run(NioClientManager.java:133)
at com.google.common.util.concurrent.AbstractExecutionThreadService$1.lambda$doStart$1(AbstractExecutionThreadService.java:56)
at com.google.common.util.concurrent.Callables.lambda$threadRenaming$3(Callables.java:105)
at org.bitcoinj.utils.ContextPropagatingThreadFactory.lambda$newThread$0(ContextPropagatingThreadFactory.java:49)
at java.base/java.lang.Thread.run(Thread.java:829)
2024-10-23 21:37:16,839 512488511 INFO org.bitcoinj.core.PeerGroup - [142.251.208.99]:65227: Peer died (5 connected, 0 pending, 5 max)
2024-10-23 21:37:16,839 512488511 WARN org.bitcoinj.net.NioClientManager - Failed to connect with exception: java.nio.channels.ClosedChannelException: null
java.nio.channels.ClosedChannelException: null
at java.base/sun.nio.ch.SocketChannelImpl.ensureOpen(SocketChannelImpl.java:160)
at java.base/sun.nio.ch.SocketChannelImpl.beginFinishConnect(SocketChannelImpl.java:724)
at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:770)
at org.bitcoinj.net.NioClientManager.handleKey(NioClientManager.java:75)
at org.bitcoinj.net.NioClientManager.run(NioClientManager.java:133)
at com.google.common.util.concurrent.AbstractExecutionThreadService$1.lambda$doStart$1(AbstractExecutionThreadService.java:56)
at com.google.common.util.concurrent.Callables.lambda$threadRenaming$3(Callables.java:105)
at org.bitcoinj.utils.ContextPropagatingThreadFactory.lambda$newThread$0(ContextPropagatingThreadFactory.java:49)
at java.base/java.lang.Thread.run(Thread.java:829)
Sometimes the connection remains stable for a while, while other times it drops almost immediately:
2024-10-23 21:34:43,154 512334826 INFO org.bitcoinj.core.PeerGroup - Attempting connection to [52.74.194.175]:12112 (4 connected, 3 pending, 5 max)
2024-10-23 21:34:43,155 512334827 INFO org.bitcoinj.core.PeerGroup - Attempting connection to [138.199.6.199]:8333 (4 connected, 4 pending, 5 max)
2024-10-23 21:34:43,226 512334898 INFO org.bitcoinj.net.NioClientManager - Connected to seed.testnet.bitcoin.sprovoost.nl/44.226.91.66:18333
2024-10-23 21:34:43,226 512334898 INFO org.bitcoinj.core.Peer - Announcing to seed.testnet.bitcoin.sprovoost.nl/44.226.91.66:18333 as: /bitcoinj:0.17-beta1/
2024-10-23 21:34:43,298 512334970 INFO org.bitcoinj.core.Peer - Peer{[44.226.91.66]:18333, version=70016, subVer=/Satoshi:25.0.0/, services=NETWORK, WITNESS, NETWORK_LIMITED, time=2024-10-24T01:34:43Z, height=3194890}
2024-10-23 21:34:43,300 512334972 INFO org.bitcoinj.core.PeerGroup - Peer{[44.226.91.66]:18333, version=70016, subVer=/Satoshi:25.0.0/, services=NETWORK, WITNESS, NETWORK_LIMITED, time=2024-10-24T01:34:43Z, height=3194890}: New peer (5 connected, 3 pending, 5 max)
2024-10-23 21:34:43,300 512334972 INFO org.bitcoinj.core.Peer - Peer{[44.226.91.66]:18333, version=70016, subVer=/Satoshi:25.0.0/, services=NETWORK, WITNESS, NETWORK_LIMITED, time=2024-10-24T01:34:43Z, height=3194890}: Peer does not support bloom filtering.
2024-10-23 21:34:43,301 512334973 INFO org.bitcoinj.core.PeerGroup - [44.226.91.66]:18333: Peer died (4 connected, 3 pending, 5 max)
2024-10-23 21:34:43,301 512334973 INFO org.bitcoinj.core.PeerGroup - Not yet setting download peer because there is no clear candidate.
2024-10-23 21:34:43,301 512334973 WARN org.bitcoinj.net.ConnectionHandler - Error writing message to connection, closing connection
java.nio.channels.CancelledKeyException: null
at java.base/sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:71)
at java.base/sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:90)
at org.bitcoinj.net.ConnectionHandler.setWriteOps(ConnectionHandler.java:119)
at org.bitcoinj.net.ConnectionHandler.writeBytes(ConnectionHandler.java:167)
at org.bitcoinj.core.PeerSocketHandler.sendMessage(PeerSocketHandler.java:107)
at org.bitcoinj.core.PeerGroup.handleNewPeer(PeerGroup.java:1696)
at org.bitcoinj.core.PeerGroup$PeerStartupListener.onPeerConnected(PeerGroup.java:341)
at org.bitcoinj.core.Peer.lambda$versionHandshakeComplete$3(Peer.java:576)
at org.bitcoinj.core.Peer.versionHandshakeComplete(Peer.java:576)
at java.base/java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:783)
at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
at java.base/java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:568)
at java.base/java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:780)
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2079)
at org.bitcoinj.core.Peer.processVersionAck(Peer.java:568)
at org.bitcoinj.core.Peer.processMessage(Peer.java:490)
at org.bitcoinj.core.PeerSocketHandler.receiveBytes(PeerSocketHandler.java:199)
at org.bitcoinj.net.ConnectionHandler.handleKey(ConnectionHandler.java:239)
at org.bitcoinj.net.NioClientManager.handleKey(NioClientManager.java:97)
at org.bitcoinj.net.NioClientManager.run(NioClientManager.java:133)
at com.google.common.util.concurrent.AbstractExecutionThreadService$1.lambda$doStart$1(AbstractExecutionThreadService.java:56)
at com.google.common.util.concurrent.Callables.lambda$threadRenaming$3(Callables.java:105)
at org.bitcoinj.utils.ContextPropagatingThreadFactory.lambda$newThread$0(ContextPropagatingThreadFactory.java:49)
at java.base/java.lang.Thread.run(Thread.java:829)
2024-10-23 21:34:43,302 512334974 INFO org.bitcoinj.core.PeerSocketHandler - [44.226.91.66]:18333 - java.nio.channels.CancelledKeyException
2024-10-23 21:34:43,302 512334974 WARN org.bitcoinj.net.ConnectionHandler - Error handling SelectionKey: java.nio.channels.CancelledKeyException
java.nio.channels.CancelledKeyException: null
at java.base/sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:71)
at java.base/sun.nio.ch.SelectionKeyImpl.readyOps(SelectionKeyImpl.java:130)
at java.base/java.nio.channels.SelectionKey.isWritable(SelectionKey.java:377)
at org.bitcoinj.net.ConnectionHandler.handleKey(ConnectionHandler.java:245)
at org.bitcoinj.net.NioClientManager.handleKey(NioClientManager.java:97)
at org.bitcoinj.net.NioClientManager.run(NioClientManager.java:133)
at com.google.common.util.concurrent.AbstractExecutionThreadService$1.lambda$doStart$1(AbstractExecutionThreadService.java:56)
at com.google.common.util.concurrent.Callables.lambda$threadRenaming$3(Callables.java:105)
at org.bitcoinj.utils.ContextPropagatingThreadFactory.lambda$newThread$0(ContextPropagatingThreadFactory.java:49)
at java.base/java.lang.Thread.run(Thread.java:829)
2024-10-23 21:34:48,155 512339827 INFO org.bitcoinj.core.PeerSocketHandler - [3.21.200.4]:18333: Timed out
2024-10-23 21:34:48,155 512339827 INFO org.bitcoinj.core.PeerGroup - [3.21.200.4]:18333: Peer died (4 connected, 2 pending, 5 max)
2024-10-23 21:34:48,155 512339827 INFO org.bitcoinj.core.PeerSocketHandler - [52.74.194.175]:12112: Timed out
2024-10-23 21:34:48,156 512339828 INFO org.bitcoinj.core.PeerGroup - [52.74.194.175]:12112: Peer died (4 connected, 1 pending, 5 max)
2024-10-23 21:34:48,156 512339828 INFO org.bitcoinj.core.PeerSocketHandler - [138.199.6.199]:8333: Timed out
2024-10-23 21:34:48,156 512339828 INFO org.bitcoinj.core.PeerGroup - [138.199.6.199]:8333: Peer died (4 connected, 0 pending, 5 max)
2024-10-23 21:34:48,156 512339828 INFO org.bitcoinj.core.PeerGroup - Waiting 3374 ms before next connect attempt to [144.24.243.138]:18333
2024-10-23 21:34:51,530 512343202 INFO org.bitcoinj.core.PeerGroup - Waiting 0 ms before next connect attempt to [144.24.243.138]:18333
2024-10-23 21:34:51,531 512343203 INFO org.bitcoinj.core.PeerGroup - Waiting 0 ms before next connect attempt to [144.24.243.138]:18333
2024-10-23 21:34:51,531 512343203 INFO org.bitcoinj.core.PeerGroup - Attempting connection to [144.24.243.138]:18333 (4 connected, 1 pending, 5 max)
2024-10-23 21:34:51,636 512343308 INFO org.bitcoinj.net.NioClientManager - Connected to testnet-seed.bitcoin.jonasschnelli.ch/144.24.243.138:18333
2024-10-23 21:34:51,636 512343308 INFO org.bitcoinj.core.Peer - Announcing to testnet-seed.bitcoin.jonasschnelli.ch/144.24.243.138:18333 as: /bitcoinj:0.17-beta1/
2024-10-23 21:34:51,744 512343416 INFO org.bitcoinj.core.Peer - Peer{[144.24.243.138]:18333, version=70016, subVer=/Satoshi:28.0.0/, services=NETWORK, WITNESS, NETWORK_LIMITED, P2P_V2, time=2024-10-24T01:34:51Z, height=3194890}
2024-10-23 21:34:51,745 512343417 INFO org.bitcoinj.core.PeerGroup - Peer{[144.24.243.138]:18333, version=70016, subVer=/Satoshi:28.0.0/, services=NETWORK, WITNESS, NETWORK_LIMITED, P2P_V2, time=2024-10-24T01:34:51Z, height=3194890}: New peer (5 connected, 0 pending, 5 max)
2024-10-23 21:34:51,745 512343417 INFO org.bitcoinj.core.Peer - Peer{[144.24.243.138]:18333, version=70016, subVer=/Satoshi:28.0.0/, services=NETWORK, WITNESS, NETWORK_LIMITED, P2P_V2, time=2024-10-24T01:34:51Z, height=3194890}: Peer does not support bloom filtering.
2024-10-23 21:34:51,746 512343418 INFO org.bitcoinj.core.PeerGroup - [144.24.243.138]:18333: Peer died (4 connected, 0 pending, 5 max)
2024-10-23 21:34:51,746 512343418 INFO org.bitcoinj.core.PeerGroup - Not yet setting download peer because there is no clear candidate.
On one occasion, I used a friend’s node, but he informed me that my IP was banned for misbehavior, with this log entry from his node:
tbtcd-1 | 2024-10-18 03:02:54.003 [INF] SYNC: New valid peer my_ip_here:56154 (inbound) (/bitcoinj:0.17-beta1/)
tbtcd-1 | 2024-10-18 03:03:02.547 [WRN] PEER: Misbehaving peer my_ip_here:56154 (inbound): mempool -- ban score increased to 63
tbtcd-1 | 2024-10-18 03:03:03.809 [WRN] PEER: Misbehaving peer my_ip_here:56154 (inbound): mempool -- ban score increased to 95
tbtcd-1 | 2024-10-18 03:03:12.376 [WRN] PEER: Misbehaving peer my_ip_here:56154 (inbound): mempool -- ban score increased to 118
tbtcd-1 | 2024-10-18 03:03:12.376 [WRN] PEER: Misbehaving peer my_ip_here:56154 (inbound) -- banning and disconnecting
Can someone help me with:
Any additional advice or guidance would be greatly appreciated.
I’ve tried different BitcoinJ versions (from 0.13 to the latest), but the issue persists.
Upvotes: 1
Views: 35