forked from Qortal-Forker/qortal
		
	add some methods used by api
This commit is contained in:
		@@ -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;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user