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;
|
return activePeers;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<RNSPeer> getImmutableLinkedPeers() {
|
// note: we already have a lobok getter for this
|
||||||
return this.immutableLinkedPeers;
|
//public List<RNSPeer> getImmutableLinkedPeers() {
|
||||||
}
|
// return this.immutableLinkedPeers;
|
||||||
|
//}
|
||||||
|
|
||||||
public void addLinkedPeer(RNSPeer peer) {
|
public void addLinkedPeer(RNSPeer peer) {
|
||||||
this.linkedPeers.add(peer);
|
this.linkedPeers.add(peer);
|
||||||
@ -615,16 +616,17 @@ public class RNSNetwork {
|
|||||||
if (nonNull(peer.getPeerLink())) {
|
if (nonNull(peer.getPeerLink())) {
|
||||||
peer.getPeerLink().teardown();
|
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);
|
this.immutableLinkedPeers = List.copyOf(this.linkedPeers);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<RNSPeer> getLinkedPeers() {
|
// note: we already have a lobok getter for this
|
||||||
//synchronized(this.linkedPeers) {
|
//public List<RNSPeer> getLinkedPeers() {
|
||||||
//return new ArrayList<>(this.linkedPeers);
|
// //synchronized(this.linkedPeers) {
|
||||||
return this.linkedPeers;
|
// //return new ArrayList<>(this.linkedPeers);
|
||||||
|
// return this.linkedPeers;
|
||||||
|
// //}
|
||||||
//}
|
//}
|
||||||
}
|
|
||||||
|
|
||||||
public void addIncomingPeer(RNSPeer peer) {
|
public void addIncomingPeer(RNSPeer peer) {
|
||||||
this.incomingPeers.add(peer);
|
this.incomingPeers.add(peer);
|
||||||
@ -635,17 +637,17 @@ public class RNSNetwork {
|
|||||||
if (nonNull(peer.getPeerLink())) {
|
if (nonNull(peer.getPeerLink())) {
|
||||||
peer.getPeerLink().teardown();
|
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);
|
this.immutableIncomingPeers = List.copyOf(this.incomingPeers);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<RNSPeer> getIncomingPeers() {
|
// note: we already have a lobok getter for this
|
||||||
return this.incomingPeers;
|
//public List<RNSPeer> getIncomingPeers() {
|
||||||
}
|
// return this.incomingPeers;
|
||||||
|
//}
|
||||||
public List<RNSPeer> getImmutableIncomingPeers() {
|
//public List<RNSPeer> getImmutableIncomingPeers() {
|
||||||
return this.immutableIncomingPeers;
|
// return this.immutableIncomingPeers;
|
||||||
}
|
//}
|
||||||
|
|
||||||
// TODO, methods for: getAvailablePeer
|
// TODO, methods for: getAvailablePeer
|
||||||
|
|
||||||
@ -813,6 +815,14 @@ public class RNSNetwork {
|
|||||||
return Settings.getInstance().isTestNet() ? TESTNET_MESSAGE_MAGIC : MAINNET_MESSAGE_MAGIC;
|
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
|
// Network methods Reticulum implementation
|
||||||
|
|
||||||
/** Builds either (legacy) HeightV2Message or (newer) BlockSummariesV2Message, depending on peer version.
|
/** Builds either (legacy) HeightV2Message or (newer) BlockSummariesV2Message, depending on peer version.
|
||||||
|
@ -116,6 +116,7 @@ public class RNSPeer {
|
|||||||
private LinkedBlockingQueue<Message> pendingMessages;
|
private LinkedBlockingQueue<Message> pendingMessages;
|
||||||
private boolean syncInProgress = false;
|
private boolean syncInProgress = false;
|
||||||
private RNSPeerData peerData = null;
|
private RNSPeerData peerData = null;
|
||||||
|
private long linkEstablishedTime = -1L; // equivalent of (tcpip) Peer 'handshakeComplete'
|
||||||
// Versioning
|
// Versioning
|
||||||
public static final Pattern VERSION_PATTERN = Pattern.compile(Controller.VERSION_PREFIX
|
public static final Pattern VERSION_PATTERN = Pattern.compile(Controller.VERSION_PREFIX
|
||||||
+ "(\\d{1,3})\\.(\\d{1,5})\\.(\\d{1,5})");
|
+ "(\\d{1,3})\\.(\\d{1,5})\\.(\\d{1,5})");
|
||||||
@ -281,6 +282,7 @@ public class RNSPeer {
|
|||||||
|
|
||||||
/** Link callbacks */
|
/** Link callbacks */
|
||||||
public void linkEstablished(Link link) {
|
public void linkEstablished(Link link) {
|
||||||
|
this.linkEstablishedTime = System.currentTimeMillis();
|
||||||
link.setLinkClosedCallback(this::linkClosed);
|
link.setLinkClosedCallback(this::linkClosed);
|
||||||
log.info("peerLink {} established (link: {}) with peer: hash - {}, link destination hash: {}",
|
log.info("peerLink {} established (link: {}) with peer: hash - {}, link destination hash: {}",
|
||||||
encodeHexString(peerLink.getLinkId()), encodeHexString(link.getLinkId()), encodeHexString(destinationHash),
|
encodeHexString(peerLink.getLinkId()), encodeHexString(link.getLinkId()), encodeHexString(destinationHash),
|
||||||
@ -374,7 +376,7 @@ public class RNSPeer {
|
|||||||
//log.info("***> creating message from {} bytes", data.length);
|
//log.info("***> creating message from {} bytes", data.length);
|
||||||
Message message = Message.fromByteBuffer(bb);
|
Message message = Message.fromByteBuffer(bb);
|
||||||
//log.info("*=> type {} message received ({} bytes): {}", message.getType(), data.length, message);
|
//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
|
// Handle message based on type
|
||||||
switch (message.getType()) {
|
switch (message.getType()) {
|
||||||
@ -565,8 +567,6 @@ public class RNSPeer {
|
|||||||
/** Utility methods */
|
/** Utility methods */
|
||||||
public void pingRemote() {
|
public void pingRemote() {
|
||||||
var link = this.peerLink;
|
var link = this.peerLink;
|
||||||
//if (nonNull(link) & (isFalse(link.isInitiator()))) {
|
|
||||||
//if (nonNull(link) & link.isInitiator()) {
|
|
||||||
if (nonNull(link)) {
|
if (nonNull(link)) {
|
||||||
if (peerLink.getStatus() == ACTIVE) {
|
if (peerLink.getStatus() == ACTIVE) {
|
||||||
log.info("pinging remote (direct, 1 packet): {}", encodeHexString(link.getLinkId()));
|
log.info("pinging remote (direct, 1 packet): {}", encodeHexString(link.getLinkId()));
|
||||||
@ -879,4 +879,16 @@ public class RNSPeer {
|
|||||||
public List<byte[]> getPendingSignatureRequests() {
|
public List<byte[]> getPendingSignatureRequests() {
|
||||||
return this.pendingSignatureRequests;
|
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