Skip to content
This repository has been archived by the owner on Jun 17, 2020. It is now read-only.

Fix backward compatibility issues #152

Merged
merged 4 commits into from Aug 16, 2018
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
10 changes: 6 additions & 4 deletions src/main/java/bisq/core/app/BisqSetup.java
Expand Up @@ -606,10 +606,12 @@ public void onBalanceChanged(Coin balance, Transaction tx) {

feeService.onAllServicesInitialized();

daoSetup.onAllServicesInitialized(errorMessage -> {
if (daoSetupErrorHandler != null)
daoSetupErrorHandler.accept(errorMessage);
});
if (DevEnv.isDaoActivated()) {
daoSetup.onAllServicesInitialized(errorMessage -> {
if (daoSetupErrorHandler != null)
daoSetupErrorHandler.accept(errorMessage);
});
}

tradeStatisticsManager.onAllServicesInitialized();

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/bisq/core/dao/node/full/FullNode.java
Expand Up @@ -149,7 +149,7 @@ private void addBlockHandler() {
private void onNewBlock(Block block) {
jsonBlockChainExporter.maybeExport();

if (p2pNetworkReady)
if (p2pNetworkReady && parseBlockchainComplete)
fullNodeNetworkService.publishNewBlock(block);
}

Expand Down
Expand Up @@ -98,7 +98,7 @@ public void shutDown() {
public void publishNewBlock(Block block) {
log.info("Publish new block at height={} and block hash={}", block.getHeight(), block.getHash());
RawBlock rawBlock = RawBlock.fromBlock(block);
final NewBlockBroadcastMessage newBlockBroadcastMessage = new NewBlockBroadcastMessage(rawBlock);
NewBlockBroadcastMessage newBlockBroadcastMessage = new NewBlockBroadcastMessage(rawBlock);
broadcaster.broadcast(newBlockBroadcastMessage, networkNode.getNodeAddress(), null, true);
}

Expand Down
Expand Up @@ -20,20 +20,26 @@
import bisq.core.dao.state.blockchain.RawBlock;

import bisq.network.p2p.storage.messages.BroadcastMessage;
import bisq.network.p2p.storage.payload.CapabilityRequiringPayload;

import bisq.common.app.Capabilities;
import bisq.common.app.Version;
import bisq.common.proto.network.NetworkEnvelope;

import io.bisq.generated.protobuffer.PB;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import lombok.EqualsAndHashCode;
import lombok.Getter;

// TODO CapabilityRequiringPayload does only cover add data messages. We need a tool to avoid disconnections to old
// nodes when they receive the NewBlockBroadcastMessage!
@EqualsAndHashCode(callSuper = true)
@Getter
public final class NewBlockBroadcastMessage extends BroadcastMessage {
public final class NewBlockBroadcastMessage extends BroadcastMessage implements CapabilityRequiringPayload {
private final RawBlock block;

public NewBlockBroadcastMessage(RawBlock block) {
Expand Down Expand Up @@ -62,4 +68,11 @@ public static NetworkEnvelope fromProto(PB.NewBlockBroadcastMessage proto, int m
return new NewBlockBroadcastMessage(RawBlock.fromProto(proto.getRawBlock()),
messageVersion);
}

@Override
public List<Integer> getRequiredCapabilities() {
return new ArrayList<>(Collections.singletonList(
Capabilities.Capability.BSQ_BLOCK.ordinal()
));
}
}
1 change: 1 addition & 0 deletions src/main/java/bisq/core/setup/CoreNetworkCapabilities.java
Expand Up @@ -37,6 +37,7 @@ public static void setSupportedCapabilities(BisqEnvironment bisqEnvironment) {
if (bisqEnvironment.getProperty(DaoOptionKeys.DAO_ACTIVATED, Boolean.class, false)) {
supportedCapabilities.add(Capabilities.Capability.PROPOSAL.ordinal());
supportedCapabilities.add(Capabilities.Capability.BLIND_VOTE.ordinal());
supportedCapabilities.add(Capabilities.Capability.BSQ_BLOCK.ordinal());

if (bisqEnvironment.getProperty(DaoOptionKeys.FULL_DAO_NODE, Boolean.class, false))
supportedCapabilities.add(Capabilities.Capability.DAO_FULL_NODE.ordinal());
Expand Down