Skip to content

Commit 4ad8614

Browse files
committed
Add extra logs in FederationSupportImpl to follow federation change process
1 parent a35e46b commit 4ad8614

File tree

2 files changed

+39
-23
lines changed

2 files changed

+39
-23
lines changed

rskj-core/src/main/java/co/rsk/peg/federation/FederationSupportImpl.java

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import org.slf4j.LoggerFactory;
2525

2626
public class FederationSupportImpl implements FederationSupport {
27-
2827
private static final Logger logger = LoggerFactory.getLogger(FederationSupportImpl.class);
2928

3029
private enum StorageFederationReference { NONE, NEW, OLD, GENESIS }
@@ -48,15 +47,11 @@ public FederationSupportImpl(
4847

4948
@Override
5049
public Federation getActiveFederation() {
51-
switch (getActiveFederationReference()) {
52-
case NEW:
53-
return provider.getNewFederation(constants, activations);
54-
case OLD:
55-
return provider.getOldFederation(constants, activations);
56-
case GENESIS:
57-
default:
58-
return getGenesisFederation();
59-
}
50+
return switch (getActiveFederationReference()) {
51+
case NEW -> provider.getNewFederation(constants, activations);
52+
case OLD -> provider.getOldFederation(constants, activations);
53+
default -> getGenesisFederation();
54+
};
6055
}
6156

6257
/**
@@ -420,6 +415,7 @@ public Optional<Instant> getProposedFederationCreationTime() {
420415
@Override
421416
public void clearProposedFederation() {
422417
provider.setProposedFederation(null);
418+
logger.info("[clearProposedFederation] Proposed federation cleared");
423419
}
424420

425421
@Override
@@ -538,6 +534,7 @@ private ABICallVoteResult executeVoteFederationChangeFunction(boolean dryRun, AB
538534
case ROLLBACK -> executionResult = rollbackFederation(dryRun);
539535
}
540536

537+
logger.info("[executeVoteFederationChangeFunction] Execution result: {}", executionResult);
541538
boolean executionWasSuccessful = executionResult == 1;
542539
return new ABICallVoteResult(executionWasSuccessful, executionResult);
543540
}
@@ -651,7 +648,7 @@ private Integer addFederatorPublicKeyMultikey(boolean dryRun, BtcECKey btcKey, E
651648
* after checking conditions are met to do so.
652649
* @param dryRun whether to just do a dry run
653650
* @param pendingFederationHash the pending federation's hash. This is checked to match the execution block's pending federation hash.
654-
* @return PENDING_FEDERATION_NON_EXISTENT if there was no pending federation,
651+
* @return FEDERATION_NON_EXISTENT if there was no pending federation,
655652
* INSUFFICIENT_MEMBERS if the pending federation was incomplete,
656653
* PENDING_FEDERATION_MISMATCHED_HASH if the given hash doesn't match the current pending federation's hash.
657654
* SUCCESSFUL upon success.
@@ -715,44 +712,47 @@ public void commitProposedFederation() {
715712
Federation proposedFederation = provider.getProposedFederation(constants, activations)
716713
.orElseThrow(IllegalStateException::new);
717714

718-
logger.info("[commitProposedFederation] Going to handover from old to new federation.");
719715
handoverToNewFederation(proposedFederation);
720-
logger.info("[commitProposedFederation] Going to clear proposed federation.");
721716
clearProposedFederation();
717+
logger.info("[commitProposedFederation] Proposed federation {} committed", proposedFederation.getAddress());
722718
}
723719

724720
private void handoverToNewFederation(Federation newFederation) {
725-
logger.info("[handoverToNewFederation] Moving UTXOs from new to old federation reference.");
726721
moveUTXOsFromNewToOldFederation();
727-
728-
logger.info("[handoverToNewFederation] Setting new and old federation references.");
729722
setOldAndNewFederations(getActiveFederation(), newFederation);
730723

731724
if (activations.isActive(RSKIP186)) {
732-
logger.info("[handoverToNewFederation] Saving last retired federation script.");
733725
saveLastRetiredFederationScript();
734-
logger.info("[handoverToNewFederation] Setting next federation creation block height.");
735-
provider.setNextFederationCreationBlockHeight(newFederation.getCreationBlockNumber());
726+
setNextFederationCreationBlockHeight(newFederation);
736727
}
728+
logger.trace("[handoverToNewFederation] Handover to new federation completed successfully.");
737729
}
738730

739731
private void setOldAndNewFederations(Federation oldFederation, Federation newFederation) {
740732
provider.setOldFederation(oldFederation);
741733
provider.setNewFederation(newFederation);
734+
logger.info(
735+
"[setOldAndNewFederations] Old federation set to {}, new federation set to {}.",
736+
oldFederation,
737+
newFederation
738+
);
742739
}
743740

744741
private void moveUTXOsFromNewToOldFederation() {
745742
// since the current active fed reference will change from being 'new' to 'old',
746743
// we have to change the UTXOs reference to match it
747744
List<UTXO> activeFederationUTXOs = List.copyOf(provider.getNewFederationBtcUTXOs(constants.getBtcParams(), activations));
745+
logger.debug("[moveUTXOsFromNewToOldFederation] Moving {} UTXOs from new to old federation.", activeFederationUTXOs.size());
748746

749747
// Clear new and old federation's UTXOs
750748
provider.getNewFederationBtcUTXOs(constants.getBtcParams(), activations).clear();
751749
List<UTXO> oldFederationUTXOs = provider.getOldFederationBtcUTXOs();
752750
oldFederationUTXOs.clear();
751+
logger.debug("[moveUTXOsFromNewToOldFederation] Cleared new and old federation's UTXOs");
753752

754753
// Move UTXOs reference to the old federation
755754
oldFederationUTXOs.addAll(activeFederationUTXOs);
755+
logger.info("[moveUTXOsFromNewToOldFederation] Moved {} UTXOs from new to old federation.", activeFederationUTXOs.size());
756756
}
757757

758758
/**
@@ -764,9 +764,9 @@ private FederationChangeResponseCode commitPendingFederation(PendingFederation c
764764
// set proposed federation
765765
Federation proposedFederation = buildFederationFromPendingFederation(currentPendingFederation);
766766
provider.setProposedFederation(proposedFederation);
767+
logger.info("[commitPendingFederation] Proposed federation set to {}", proposedFederation.getAddress());
767768

768769
clearPendingFederationVoting();
769-
770770
logCommitmentWithVotedFederation(eventLogger, getActiveFederation(), proposedFederation);
771771

772772
return FederationChangeResponseCode.SUCCESSFUL;
@@ -804,12 +804,28 @@ private void clearPendingFederationVoting() {
804804
// Clear pending federation and votes on election
805805
provider.setPendingFederation(null);
806806
provider.getFederationElection(constants.getFederationChangeAuthorizer()).clear();
807+
logger.trace("[clearPendingFederationVoting] Pending federation and votes on election cleared");
807808
}
808809

809810
private void saveLastRetiredFederationScript() {
810811
Federation activeFederation = getActiveFederation();
811812
Script activeFederationMembersP2SHScript = getFederationMembersP2SHScript(activations, activeFederation);
812813
provider.setLastRetiredFederationP2SHScript(activeFederationMembersP2SHScript);
814+
815+
String lastRetiredFederationP2SHScriptInHex = ByteUtil.toHexString(activeFederationMembersP2SHScript.getProgram());
816+
logger.trace(
817+
"[saveLastRetiredFederationScript] Last retired federation script set to {}.",
818+
lastRetiredFederationP2SHScriptInHex
819+
);
820+
}
821+
822+
private void setNextFederationCreationBlockHeight(Federation nextFederation) {
823+
long nextFederationCreationBlockNumber = nextFederation.getCreationBlockNumber();
824+
provider.setNextFederationCreationBlockHeight(nextFederationCreationBlockNumber);
825+
logger.info(
826+
"[setNextFederationCreationBlockHeight] Next federation creation block height set to {}.",
827+
nextFederationCreationBlockNumber
828+
);
813829
}
814830

815831
private void logCommitmentWithVotedFederation(BridgeEventLogger eventLogger, Federation federationToBeRetired, Federation votedFederation) {

rskj-core/src/main/java/org/ethereum/util/ByteUtil.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,12 @@
3434

3535
public class ByteUtil {
3636

37-
private ByteUtil() {
38-
}
39-
4037
public static final byte[] EMPTY_BYTE_ARRAY = new byte[0];
4138
public static final byte[] ZERO_BYTE_ARRAY = new byte[]{0};
4239

40+
private ByteUtil() {
41+
}
42+
4343
/**
4444
* Creates a copy of bytes and appends b to the end of it
4545
*/

0 commit comments

Comments
 (0)