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

Commit

Permalink
some TransactionValidator fixes regarding solidity (#913)
Browse files Browse the repository at this point in the history
Set transactions in TipsViewModel solid accordingly
  • Loading branch information
gjeee authored and GalRogozinski committed Aug 14, 2018
1 parent 7ebad49 commit 55c62ba
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 2 deletions.
5 changes: 4 additions & 1 deletion src/main/java/com/iota/iri/TransactionValidator.java
Expand Up @@ -202,7 +202,8 @@ void propagateSolidTransactions() {
for(Hash h: approvers) {
TransactionViewModel tx = TransactionViewModel.fromHash(tangle, h);
if(quietQuickSetSolid(tx)) {
tx.update(tangle, "solid");
tx.update(tangle, "solid|height");
tipsViewModel.setSolid(h);
addSolidTransaction(h);
}
}
Expand All @@ -221,6 +222,8 @@ public void updateStatus(TransactionViewModel transactionViewModel) throws Excep
tipsViewModel.removeTipHash(transactionViewModel.getBranchTransactionHash());

if(quickSetSolid(transactionViewModel)) {
transactionViewModel.update(tangle, "solid|height");
tipsViewModel.setSolid(transactionViewModel.getHash());
addSolidTransaction(transactionViewModel.getHash());
}
}
Expand Down
8 changes: 7 additions & 1 deletion src/main/java/com/iota/iri/controllers/TipsViewModel.java
Expand Up @@ -98,6 +98,12 @@ public int nonSolidSize() {
return tips.size();
}
}

public int solidSize() {
synchronized (sync) {
return solidTips.size();
}
}

public int size() {
synchronized (sync) {
Expand Down Expand Up @@ -140,4 +146,4 @@ public Iterator<K> iterator() {
}
}

}
}
8 changes: 8 additions & 0 deletions src/main/java/com/iota/iri/service/TipsSolidifier.java
Expand Up @@ -30,9 +30,17 @@ public TipsSolidifier(final Tangle tangle,
public void init() {
solidityRescanHandle = new Thread(() -> {

long lastTime = 0;
while (!shuttingDown) {
try {
scanTipsForSolidity();
if (log.isDebugEnabled()) {
long now = System.currentTimeMillis();
if ((now - lastTime) > 10000L) {
lastTime = now;
log.debug("#Solid/NonSolid: {}/{}", tipsViewModel.solidSize(), tipsViewModel.nonSolidSize());
}
}
} catch (Exception e) {
log.error("Error during solidity scan : {}", e);
}
Expand Down

0 comments on commit 55c62ba

Please sign in to comment.