Skip to content

Commit

Permalink
add link to persisted worldstate storage
Browse files Browse the repository at this point in the history
Signed-off-by: Karim TAAM <[email protected]>
  • Loading branch information
matkt committed Feb 10, 2023
1 parent 924a496 commit d862160
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ public abstract class AbstractTrieLogManager<T extends MutableWorldState>
@Override
public synchronized void saveTrieLog(
final BonsaiWorldStateArchive worldStateArchive,
final BonsaiWorldStateKeyValueStorage worldStateKeyValueStorage,
final BonsaiWorldStateUpdater localUpdater,
final Hash forWorldStateRootHash,
final BlockHeader forBlockHeader,
Expand All @@ -66,7 +67,7 @@ public synchronized void saveTrieLog(
// if it's only in memory we need to save it
// for example, in case of reorg we don't replace a trielog layer
if (rootWorldStateStorage.getTrieLog(forBlockHeader.getHash()).isEmpty()) {
final BonsaiUpdater stateUpdater = forWorldState.getWorldStateStorage().updater();
final BonsaiUpdater stateUpdater = worldStateKeyValueStorage.updater();
boolean success = false;
try {
final TrieLogLayer trieLog =
Expand Down Expand Up @@ -105,9 +106,7 @@ TrieLogLayer prepareTrieLog(
debugLambda(LOG, "Adding layered world state for {}", blockHeader::toLogString);
final TrieLogLayer trieLog = localUpdater.generateTrieLog(blockHeader.getBlockHash());
trieLog.freeze();
BonsaiPersistedWorldState copy = (BonsaiPersistedWorldState) forWorldState.copy();
copy.updater = forWorldState.updater.copy();
addCachedLayer(blockHeader, worldStateRootHash, trieLog, worldStateArchive, copy);
addCachedLayer(blockHeader, worldStateRootHash, trieLog, worldStateArchive, forWorldState);
scrubCachedLayers(blockHeader.getNumber());
return trieLog;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,13 @@ public void persist(final BlockHeader blockHeader) {
final Hash newWorldStateRootHash = rootHash(localUpdater);
archive
.getTrieLogManager()
.saveTrieLog(archive, localUpdater, newWorldStateRootHash, blockHeader, this);
.saveTrieLog(
archive,
worldStateStorage,
localUpdater,
newWorldStateRootHash,
blockHeader,
(BonsaiPersistedWorldState) this.copy());
worldStateRootHash = newWorldStateRootHash;
worldStateBlockHash = blockHeader.getBlockHash();
isPersisted = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public class BonsaiPersistedWorldState implements MutableWorldState, BonsaiWorld
protected final BonsaiWorldStateKeyValueStorage worldStateStorage;

protected final BonsaiWorldStateArchive archive;
protected BonsaiWorldStateUpdater updater;
protected final BonsaiWorldStateUpdater updater;

protected Hash worldStateRootHash;
protected Hash worldStateBlockHash;
Expand Down Expand Up @@ -319,11 +319,18 @@ public void persist(final BlockHeader blockHeader) {
+ " calculated "
+ newWorldStateRootHash.toHexString());
}

saveTrieLog =
() ->
archive
.getTrieLogManager()
.saveTrieLog(archive, localUpdater, newWorldStateRootHash, blockHeader, this);
.saveTrieLog(
archive,
worldStateStorage,
localUpdater,
newWorldStateRootHash,
blockHeader,
this);

stateUpdater
.getTrieBranchStorageTransaction()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ public interface TrieLogManager {

void saveTrieLog(
final BonsaiWorldStateArchive worldStateArchive,
final BonsaiWorldStateKeyValueStorage worldStateKeyValueStorage,
final BonsaiWorldStateUpdater localUpdater,
final Hash forWorldStateRootHash,
final BlockHeader forBlockHeader,
Expand Down

0 comments on commit d862160

Please sign in to comment.