mirror of
https://github.com/Qortal/qortal.git
synced 2025-07-04 04:11:23 +00:00
add some methods used by api
This commit is contained in:
parent
952764d908
commit
9706ed166a
@ -599,9 +599,10 @@ public class RNSNetwork {
|
||||
return activePeers;
|
||||
}
|
||||
|
||||
public List<RNSPeer> getImmutableLinkedPeers() {
|
||||
return this.immutableLinkedPeers;
|
||||
}
|
||||
// note: we already have a lobok getter for this
|
||||
//public List<RNSPeer> getImmutableLinkedPeers() {
|
||||
// return this.immutableLinkedPeers;
|
||||
//}
|
||||
|
||||
public void addLinkedPeer(RNSPeer peer) {
|
||||
this.linkedPeers.add(peer);
|
||||
@ -615,16 +616,17 @@ public class RNSNetwork {
|
||||
if (nonNull(peer.getPeerLink())) {
|
||||
peer.getPeerLink().teardown();
|
||||
}
|
||||
this.linkedPeers.remove(this.linkedPeers.indexOf(peer)); // thread safe
|
||||
var p = this.linkedPeers.remove(this.linkedPeers.indexOf(peer)); // thread safe
|
||||
this.immutableLinkedPeers = List.copyOf(this.linkedPeers);
|
||||
}
|
||||
|
||||
public List<RNSPeer> getLinkedPeers() {
|
||||
//synchronized(this.linkedPeers) {
|
||||
//return new ArrayList<>(this.linkedPeers);
|
||||
return this.linkedPeers;
|
||||
//}
|
||||
}
|
||||
// note: we already have a lobok getter for this
|
||||
//public List<RNSPeer> getLinkedPeers() {
|
||||
// //synchronized(this.linkedPeers) {
|
||||
// //return new ArrayList<>(this.linkedPeers);
|
||||
// return this.linkedPeers;
|
||||
// //}
|
||||
//}
|
||||
|
||||
public void addIncomingPeer(RNSPeer peer) {
|
||||
this.incomingPeers.add(peer);
|
||||
@ -635,17 +637,17 @@ public class RNSNetwork {
|
||||
if (nonNull(peer.getPeerLink())) {
|
||||
peer.getPeerLink().teardown();
|
||||
}
|
||||
this.incomingPeers.remove(this.incomingPeers.indexOf(peer));
|
||||
var p = this.incomingPeers.remove(this.incomingPeers.indexOf(peer));
|
||||
this.immutableIncomingPeers = List.copyOf(this.incomingPeers);
|
||||
}
|
||||
|
||||
public List<RNSPeer> getIncomingPeers() {
|
||||
return this.incomingPeers;
|
||||
}
|
||||
|
||||
public List<RNSPeer> getImmutableIncomingPeers() {
|
||||
return this.immutableIncomingPeers;
|
||||
}
|
||||
// note: we already have a lobok getter for this
|
||||
//public List<RNSPeer> getIncomingPeers() {
|
||||
// return this.incomingPeers;
|
||||
//}
|
||||
//public List<RNSPeer> getImmutableIncomingPeers() {
|
||||
// return this.immutableIncomingPeers;
|
||||
//}
|
||||
|
||||
// TODO, methods for: getAvailablePeer
|
||||
|
||||
@ -813,6 +815,14 @@ public class RNSNetwork {
|
||||
return Settings.getInstance().isTestNet() ? TESTNET_MESSAGE_MAGIC : MAINNET_MESSAGE_MAGIC;
|
||||
}
|
||||
|
||||
public String getOurNodeId() {
|
||||
return this.serverIdentity.toString();
|
||||
}
|
||||
|
||||
protected byte[] getOurPublicKey() {
|
||||
return this.serverIdentity.getPublicKey();
|
||||
}
|
||||
|
||||
// Network methods Reticulum implementation
|
||||
|
||||
/** Builds either (legacy) HeightV2Message or (newer) BlockSummariesV2Message, depending on peer version.
|
||||
|
@ -116,6 +116,7 @@ public class RNSPeer {
|
||||
private LinkedBlockingQueue<Message> pendingMessages;
|
||||
private boolean syncInProgress = false;
|
||||
private RNSPeerData peerData = null;
|
||||
private long linkEstablishedTime = -1L; // equivalent of (tcpip) Peer 'handshakeComplete'
|
||||
// Versioning
|
||||
public static final Pattern VERSION_PATTERN = Pattern.compile(Controller.VERSION_PREFIX
|
||||
+ "(\\d{1,3})\\.(\\d{1,5})\\.(\\d{1,5})");
|
||||
@ -281,6 +282,7 @@ public class RNSPeer {
|
||||
|
||||
/** Link callbacks */
|
||||
public void linkEstablished(Link link) {
|
||||
this.linkEstablishedTime = System.currentTimeMillis();
|
||||
link.setLinkClosedCallback(this::linkClosed);
|
||||
log.info("peerLink {} established (link: {}) with peer: hash - {}, link destination hash: {}",
|
||||
encodeHexString(peerLink.getLinkId()), encodeHexString(link.getLinkId()), encodeHexString(destinationHash),
|
||||
@ -374,7 +376,7 @@ public class RNSPeer {
|
||||
//log.info("***> creating message from {} bytes", data.length);
|
||||
Message message = Message.fromByteBuffer(bb);
|
||||
//log.info("*=> type {} message received ({} bytes): {}", message.getType(), data.length, message);
|
||||
log.info("*=> type {} message received ({} bytes, id: {}", message.getType(), data.length, message.getId());
|
||||
log.info("*=> type {} message received ({} bytes, id: {})", message.getType(), data.length, message.getId());
|
||||
|
||||
// Handle message based on type
|
||||
switch (message.getType()) {
|
||||
@ -565,8 +567,6 @@ public class RNSPeer {
|
||||
/** Utility methods */
|
||||
public void pingRemote() {
|
||||
var link = this.peerLink;
|
||||
//if (nonNull(link) & (isFalse(link.isInitiator()))) {
|
||||
//if (nonNull(link) & link.isInitiator()) {
|
||||
if (nonNull(link)) {
|
||||
if (peerLink.getStatus() == ACTIVE) {
|
||||
log.info("pinging remote (direct, 1 packet): {}", encodeHexString(link.getLinkId()));
|
||||
@ -879,4 +879,16 @@ public class RNSPeer {
|
||||
public List<byte[]> getPendingSignatureRequests() {
|
||||
return this.pendingSignatureRequests;
|
||||
}
|
||||
|
||||
// Details used by API
|
||||
public long getConnectionEstablishedTime() {
|
||||
return linkEstablishedTime;
|
||||
}
|
||||
|
||||
public long getConnectionAge() {
|
||||
if (linkEstablishedTime > 0L) {
|
||||
return System.currentTimeMillis() - linkEstablishedTime;
|
||||
}
|
||||
return linkEstablishedTime;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user