Skip to content

Commit

Permalink
Append counts to list subcommand
Browse files Browse the repository at this point in the history
Signed-off-by: Simon Dudley <[email protected]>
  • Loading branch information
siladu committed Oct 11, 2023
1 parent dfdf0f1 commit 7212761
Showing 1 changed file with 35 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -267,32 +267,48 @@ public void run() {
rangeFilter = blockHashRange::contains;
}

final AtomicInteger count = new AtomicInteger();
final AtomicInteger canonicalCount = new AtomicInteger();
final AtomicInteger forkCount = new AtomicInteger();
final AtomicInteger orphanCount = new AtomicInteger();
trieLogStorage
.streamKeys()
.map(Bytes32::wrap)
.map(Bytes::toHexString)
.map(Hash::fromHexString)
.filter(rangeFilter)
.forEach(
hash ->
out.printf(
"%s | %s\n",
hash,
blockchain
.getBlockHeader(hash)
.map(
(header) -> {
long number = header.getNumber();
final Optional<BlockHeader> headerByNumber =
blockchain.getBlockHeader(number);
if (headerByNumber.isPresent()
&& headerByNumber.get().getHash().equals(hash)) {
return String.valueOf(number);
} else {
return "fork of " + number;
}
})
.orElse("not in blockchain")));
hash -> {
count.getAndIncrement();
out.printf(
"%s | %s\n",
hash,
blockchain
.getBlockHeader(hash)
.map(
(header) -> {
long number = header.getNumber();
final Optional<BlockHeader> headerByNumber =
blockchain.getBlockHeader(number);
if (headerByNumber.isPresent()
&& headerByNumber.get().getHash().equals(hash)) {
canonicalCount.getAndIncrement();
return String.valueOf(number);
} else {
forkCount.getAndIncrement();
return "fork of " + number;
}
})
.orElseGet(
() -> {
orphanCount.getAndIncrement();
return "not in blockchain";
}));
});

out.printf(
"trieLog count: %s\n - canonical count: %s\n - fork count: %s\n - orphaned count: %s\n",
count, canonicalCount, forkCount, orphanCount);
} else {
out.println("Subcommand only works with Bonsai");
}
Expand Down

0 comments on commit 7212761

Please sign in to comment.