mirror of
https://github.com/bitcoinj/bitcoinj.git
synced 2025-02-24 06:47:54 +01:00
Peer: Implement proper toString().
This commit is contained in:
parent
09832a65ee
commit
0c2a9e646c
1 changed files with 31 additions and 11 deletions
|
@ -405,9 +405,36 @@ public class Peer extends PeerSocketHandler {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
PeerAddress addr = getAddress();
|
final MoreObjects.ToStringHelper helper = MoreObjects.toStringHelper(this).omitNullValues();
|
||||||
// if null, it's a user-provided NetworkConnection object
|
helper.addValue(getAddress());
|
||||||
return addr == null ? "Peer()" : addr.toString();
|
helper.add("version", vPeerVersionMessage.clientVersion);
|
||||||
|
helper.add("subVer", vPeerVersionMessage.subVer);
|
||||||
|
String servicesStr = Strings.emptyToNull(toStringServices(vPeerVersionMessage.localServices));
|
||||||
|
helper.add("services",
|
||||||
|
vPeerVersionMessage.localServices + (servicesStr != null ? " (" + servicesStr + ")" : ""));
|
||||||
|
long peerTime = vPeerVersionMessage.time * 1000;
|
||||||
|
helper.add("time", String.format(Locale.US, "%tF %tT", peerTime, peerTime));
|
||||||
|
helper.add("height", vPeerVersionMessage.bestHeight);
|
||||||
|
return helper.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toStringServices(long services) {
|
||||||
|
List<String> a = new LinkedList<String>();
|
||||||
|
if ((services & VersionMessage.NODE_NETWORK) == VersionMessage.NODE_NETWORK) {
|
||||||
|
a.add("NETWORK");
|
||||||
|
services &= ~VersionMessage.NODE_NETWORK;
|
||||||
|
}
|
||||||
|
if ((services & VersionMessage.NODE_GETUTXOS) == VersionMessage.NODE_GETUTXOS) {
|
||||||
|
a.add("GETUTXOS");
|
||||||
|
services &= ~VersionMessage.NODE_GETUTXOS;
|
||||||
|
}
|
||||||
|
if ((services & VersionMessage.NODE_WITNESS) == VersionMessage.NODE_WITNESS) {
|
||||||
|
a.add("WITNESS");
|
||||||
|
services &= ~VersionMessage.NODE_WITNESS;
|
||||||
|
}
|
||||||
|
if (services != 0)
|
||||||
|
a.add("remaining: " + Long.toBinaryString(services));
|
||||||
|
return Joiner.on(", ").join(a);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -549,14 +576,7 @@ public class Peer extends PeerSocketHandler {
|
||||||
throw new ProtocolException("Got two version messages from peer");
|
throw new ProtocolException("Got two version messages from peer");
|
||||||
vPeerVersionMessage = m;
|
vPeerVersionMessage = m;
|
||||||
// Switch to the new protocol version.
|
// Switch to the new protocol version.
|
||||||
long peerTime = vPeerVersionMessage.time * 1000;
|
log.info(toString());
|
||||||
log.info("{}: Got version={}, subVer='{}', services=0x{}, time={}, blocks={}",
|
|
||||||
this,
|
|
||||||
vPeerVersionMessage.clientVersion,
|
|
||||||
vPeerVersionMessage.subVer,
|
|
||||||
vPeerVersionMessage.localServices,
|
|
||||||
String.format(Locale.US, "%tF %tT", peerTime, peerTime),
|
|
||||||
vPeerVersionMessage.bestHeight);
|
|
||||||
// bitcoinj is a client mode implementation. That means there's not much point in us talking to other client
|
// bitcoinj is a client mode implementation. That means there's not much point in us talking to other client
|
||||||
// mode nodes because we can't download the data from them we need to find/verify transactions. Some bogus
|
// mode nodes because we can't download the data from them we need to find/verify transactions. Some bogus
|
||||||
// implementations claim to have a block chain in their services field but then report a height of zero, filter
|
// implementations claim to have a block chain in their services field but then report a height of zero, filter
|
||||||
|
|
Loading…
Add table
Reference in a new issue