From 93e6d86e9507ce33c1f6b8c941d38ea8dff5bd7a Mon Sep 17 00:00:00 2001 From: chimp1984 Date: Fri, 6 Sep 2019 11:33:34 +0200 Subject: [PATCH 1/5] Remove CapabilityRequiringPayload from AckMessage We do not have any old versions anymore which might not support AckMessages, so we can remove it. It might also fix issues that AckMessages are not sent as the capabilities are not known yet. --- p2p/src/main/java/bisq/network/p2p/AckMessage.java | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/p2p/src/main/java/bisq/network/p2p/AckMessage.java b/p2p/src/main/java/bisq/network/p2p/AckMessage.java index 97339c0d117..af1815e1031 100644 --- a/p2p/src/main/java/bisq/network/p2p/AckMessage.java +++ b/p2p/src/main/java/bisq/network/p2p/AckMessage.java @@ -17,11 +17,8 @@ package bisq.network.p2p; -import bisq.network.p2p.storage.payload.CapabilityRequiringPayload; import bisq.network.p2p.storage.payload.ExpirablePayload; -import bisq.common.app.Capabilities; -import bisq.common.app.Capability; import bisq.common.app.Version; import bisq.common.proto.ProtoUtil; import bisq.common.proto.network.NetworkEnvelope; @@ -42,7 +39,7 @@ @Value @Slf4j public final class AckMessage extends NetworkEnvelope implements MailboxMessage, PersistablePayload, - ExpirablePayload, CapabilityRequiringPayload { + ExpirablePayload { private final String uid; private final NodeAddress senderNodeAddress; @@ -148,11 +145,6 @@ public static AckMessage fromProto(protobuf.AckMessage proto, int messageVersion // API /////////////////////////////////////////////////////////////////////////////////////////// - @Override - public Capabilities getRequiredCapabilities() { - return new Capabilities(Capability.ACK_MSG); - } - @Override public long getTTL() { return TimeUnit.DAYS.toMillis(10); From 206c4bc6e19c38f5e80c627808f360b670d5c10e Mon Sep 17 00:00:00 2001 From: chimp1984 Date: Fri, 6 Sep 2019 11:49:07 +0200 Subject: [PATCH 2/5] Remove CapabilityRequiringPayload from AccountAgeWitness We do not have any old versions anymore which might not support AccountAgeWitness, so we can remove it. --- .../bisq/core/account/witness/AccountAgeWitness.java | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/core/src/main/java/bisq/core/account/witness/AccountAgeWitness.java b/core/src/main/java/bisq/core/account/witness/AccountAgeWitness.java index d3a29a03680..76afa35807a 100644 --- a/core/src/main/java/bisq/core/account/witness/AccountAgeWitness.java +++ b/core/src/main/java/bisq/core/account/witness/AccountAgeWitness.java @@ -18,13 +18,10 @@ package bisq.core.account.witness; import bisq.network.p2p.storage.P2PDataStorage; -import bisq.network.p2p.storage.payload.CapabilityRequiringPayload; import bisq.network.p2p.storage.payload.DateTolerantPayload; import bisq.network.p2p.storage.payload.LazyProcessedPayload; import bisq.network.p2p.storage.payload.PersistableNetworkPayload; -import bisq.common.app.Capabilities; -import bisq.common.app.Capability; import bisq.common.proto.persistable.PersistableEnvelope; import bisq.common.util.Utilities; @@ -43,7 +40,7 @@ // so only the newly added objects since the last release will be retrieved over the P2P network. @Slf4j @Value -public class AccountAgeWitness implements LazyProcessedPayload, PersistableNetworkPayload, PersistableEnvelope, DateTolerantPayload, CapabilityRequiringPayload { +public class AccountAgeWitness implements LazyProcessedPayload, PersistableNetworkPayload, PersistableEnvelope, DateTolerantPayload { private static final long TOLERANCE = TimeUnit.DAYS.toMillis(1); private final byte[] hash; // Ripemd160(Sha256(concatenated accountHash, signature and sigPubKey)); 20 bytes @@ -100,12 +97,6 @@ public boolean verifyHashSize() { return hash.length == 20; } - // Pre 0.6 version don't know the new message type and throw an error which leads to disconnecting the peer. - @Override - public Capabilities getRequiredCapabilities() { - return new Capabilities(Capability.ACCOUNT_AGE_WITNESS); - } - @Override public byte[] getHash() { return hash; From 7856722fa5437fbe1018bebd0bf1bd546708761b Mon Sep 17 00:00:00 2001 From: chimp1984 Date: Fri, 6 Sep 2019 11:49:21 +0200 Subject: [PATCH 3/5] Remove CapabilityRequiringPayload from TradeStatistics2 We do not have any old versions anymore which might not support TradeStatistics2, so we can remove it. --- .../bisq/core/trade/statistics/TradeStatistics2.java | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/core/src/main/java/bisq/core/trade/statistics/TradeStatistics2.java b/core/src/main/java/bisq/core/trade/statistics/TradeStatistics2.java index 10d143a0667..569b76cbf39 100644 --- a/core/src/main/java/bisq/core/trade/statistics/TradeStatistics2.java +++ b/core/src/main/java/bisq/core/trade/statistics/TradeStatistics2.java @@ -24,12 +24,9 @@ import bisq.core.offer.OfferPayload; import bisq.core.offer.OfferUtil; -import bisq.network.p2p.storage.payload.CapabilityRequiringPayload; import bisq.network.p2p.storage.payload.LazyProcessedPayload; import bisq.network.p2p.storage.payload.PersistableNetworkPayload; -import bisq.common.app.Capabilities; -import bisq.common.app.Capability; import bisq.common.crypto.Hash; import bisq.common.proto.persistable.PersistableEnvelope; import bisq.common.util.ExtraDataMapValidator; @@ -63,7 +60,7 @@ @Slf4j @Value -public final class TradeStatistics2 implements LazyProcessedPayload, PersistableNetworkPayload, PersistableEnvelope, CapabilityRequiringPayload { +public final class TradeStatistics2 implements LazyProcessedPayload, PersistableNetworkPayload, PersistableEnvelope { public static final String ARBITRATOR_ADDRESS = "arbAddr"; private final OfferPayload.Direction direction; @@ -213,11 +210,6 @@ public static TradeStatistics2 fromProto(protobuf.TradeStatistics2 proto) { // API /////////////////////////////////////////////////////////////////////////////////////////// - @Override - public Capabilities getRequiredCapabilities() { - return new Capabilities(Capability.TRADE_STATISTICS_2); - } - @Override public byte[] getHash() { return hash; From 9be4b7108846f528267d0106a2a8e0a5a88892c1 Mon Sep 17 00:00:00 2001 From: chimp1984 Date: Fri, 6 Sep 2019 11:49:33 +0200 Subject: [PATCH 4/5] Add comments --- .../network/messages/RepublishGovernanceDataRequest.java | 2 ++ .../main/java/bisq/core/dao/node/messages/GetBlocksRequest.java | 1 + .../bisq/core/dao/node/messages/NewBlockBroadcastMessage.java | 1 + 3 files changed, 4 insertions(+) diff --git a/core/src/main/java/bisq/core/dao/governance/blindvote/network/messages/RepublishGovernanceDataRequest.java b/core/src/main/java/bisq/core/dao/governance/blindvote/network/messages/RepublishGovernanceDataRequest.java index 78074faa8e4..258149a5fc5 100644 --- a/core/src/main/java/bisq/core/dao/governance/blindvote/network/messages/RepublishGovernanceDataRequest.java +++ b/core/src/main/java/bisq/core/dao/governance/blindvote/network/messages/RepublishGovernanceDataRequest.java @@ -28,6 +28,8 @@ import lombok.EqualsAndHashCode; import lombok.Getter; + +// This message is sent only to full DAO nodes @EqualsAndHashCode(callSuper = true) @Getter public final class RepublishGovernanceDataRequest extends NetworkEnvelope implements DirectMessage, CapabilityRequiringPayload { diff --git a/core/src/main/java/bisq/core/dao/node/messages/GetBlocksRequest.java b/core/src/main/java/bisq/core/dao/node/messages/GetBlocksRequest.java index c38de3a4490..081514982a9 100644 --- a/core/src/main/java/bisq/core/dao/node/messages/GetBlocksRequest.java +++ b/core/src/main/java/bisq/core/dao/node/messages/GetBlocksRequest.java @@ -36,6 +36,7 @@ import javax.annotation.Nullable; +// This message is sent only to full DAO nodes @EqualsAndHashCode(callSuper = true) @Getter @Slf4j diff --git a/core/src/main/java/bisq/core/dao/node/messages/NewBlockBroadcastMessage.java b/core/src/main/java/bisq/core/dao/node/messages/NewBlockBroadcastMessage.java index e5dbfefc900..b7b50c5fe33 100644 --- a/core/src/main/java/bisq/core/dao/node/messages/NewBlockBroadcastMessage.java +++ b/core/src/main/java/bisq/core/dao/node/messages/NewBlockBroadcastMessage.java @@ -30,6 +30,7 @@ import lombok.EqualsAndHashCode; import lombok.Getter; +// This message is sent only to lite DAO nodes (full nodes get block from their local bitcoind) @EqualsAndHashCode(callSuper = true) @Getter public final class NewBlockBroadcastMessage extends BroadcastMessage implements CapabilityRequiringPayload { From 3df57ad943eff37db9badc5cb70480093ae53b04 Mon Sep 17 00:00:00 2001 From: chimp1984 Date: Fri, 6 Sep 2019 12:22:13 +0200 Subject: [PATCH 5/5] Add Deprecated annotation to old Capabilities --- common/src/main/java/bisq/common/app/Capability.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/bisq/common/app/Capability.java b/common/src/main/java/bisq/common/app/Capability.java index 31ce6bd822f..bc2200796d0 100644 --- a/common/src/main/java/bisq/common/app/Capability.java +++ b/common/src/main/java/bisq/common/app/Capability.java @@ -23,14 +23,14 @@ // We don't use the Enum in any serialized data, as changes in the enum would break backwards compatibility. We use the ordinal integer instead. // Sequence in the enum must not be changed (append only). public enum Capability { - TRADE_STATISTICS, - TRADE_STATISTICS_2, - ACCOUNT_AGE_WITNESS, + @Deprecated TRADE_STATISTICS, // Not required anymore as no old clients out there not having that support + @Deprecated TRADE_STATISTICS_2, // Not required anymore as no old clients out there not having that support + @Deprecated ACCOUNT_AGE_WITNESS, // Not required anymore as no old clients out there not having that support SEED_NODE, DAO_FULL_NODE, PROPOSAL, BLIND_VOTE, - ACK_MSG, + @Deprecated ACK_MSG, // Not required anymore as no old clients out there not having that support RECEIVE_BSQ_BLOCK, DAO_STATE, BUNDLE_OF_ENVELOPES,