Skip to content

Commit 3eeff09

Browse files
committed
docs(toolkit): cross-reference account-trace key layout
1 parent 53324d7 commit 3eeff09

2 files changed

Lines changed: 4 additions & 0 deletions

File tree

chainbase/src/main/java/org/tron/core/store/AccountTraceStore.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ private long xor(long l) {
2929
return l ^ Long.MAX_VALUE;
3030
}
3131

32+
// NOTE: the composite key layout (address || Longs.toByteArray(
33+
// number ^ Long.MAX_VALUE)) is also reconstructed in plugins
34+
// DbLite#trimExtraHistory. Keep them in sync.
3235
public void recordBalanceWithBlock(byte[] address, long number, long balance) {
3336
// Pair<Long, Long> pair = getPrevBalance(address, number);
3437
// logger.info("recordBalanceWithBlock===== address:{} number:{} balance:{}", StringUtil.encode58Check(address), number, balance);

plugins/src/main/java/common/org/tron/plugins/DbLite.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,7 @@ private void trimExtraHistory(String liteDir, BlockNumInfo blockNumInfo)
558558
.map(BalanceContract.TransactionBalanceTrace.Operation::getAddress)
559559
.distinct()
560560
.map(ByteString::toByteArray)
561+
// Must match AccountTraceStore#recordBalanceWithBlock key layout.
561562
.map(address -> Bytes.concat(address, Longs.toByteArray(
562563
blockNum ^ Long.MAX_VALUE)))
563564
.forEach(accountTraceDb::delete);

0 commit comments

Comments
 (0)