forked from Qortal/qortal
Rebroadcast the entire list of hosted signatures each time our external IP address changes.
This commit is contained in:
parent
f007f9a86d
commit
b2c4bf96af
@ -2,6 +2,7 @@ package org.qortal.controller.arbitrary;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
@ -359,6 +360,24 @@ public class ArbitraryDataManager extends Thread {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Broadcast list of hosted signatures
|
||||||
|
|
||||||
|
public void broadcastHostedSignatureList() {
|
||||||
|
try (final Repository repository = RepositoryManager.getRepository()) {
|
||||||
|
List<ArbitraryTransactionData> hostedTransactions = ArbitraryDataStorageManager.getInstance().listAllHostedTransactions(repository);
|
||||||
|
List<byte[]> hostedSignatures = hostedTransactions.stream().map(ArbitraryTransactionData::getSignature).collect(Collectors.toList());
|
||||||
|
|
||||||
|
// Broadcast the list, using null to represent our peer address
|
||||||
|
LOGGER.info("Broadcasting list of hosted signatures...");
|
||||||
|
Message arbitrarySignatureMessage = new ArbitrarySignaturesMessage(null, hostedSignatures);
|
||||||
|
Network.getInstance().broadcast(broadcastPeer -> arbitrarySignatureMessage);
|
||||||
|
|
||||||
|
} catch (DataException e) {
|
||||||
|
LOGGER.error("Repository issue when fetching arbitrary transaction data for broadcast", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Handle incoming arbitrary signatures messages
|
// Handle incoming arbitrary signatures messages
|
||||||
|
|
||||||
public void onNetworkArbitrarySignaturesMessage(Peer peer, Message message) {
|
public void onNetworkArbitrarySignaturesMessage(Peer peer, Message message) {
|
||||||
|
@ -1160,6 +1160,7 @@ public class Network {
|
|||||||
public void onExternalIpUpdate(String ipAddress) {
|
public void onExternalIpUpdate(String ipAddress) {
|
||||||
LOGGER.info("External IP address updated to {}", ipAddress);
|
LOGGER.info("External IP address updated to {}", ipAddress);
|
||||||
|
|
||||||
|
ArbitraryDataManager.getInstance().broadcastHostedSignatureList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user