Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions src/Nethermind/Nethermind.State/SnapServer/SnapServer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ public class SnapServer : ISnapServer
private readonly IReadOnlyTrieStore _store;
private readonly TrieStoreWithReadFlags _storeWithReadFlag;
private readonly IReadOnlyKeyValueStore _codeDb;
private readonly IStateReader _stateReader;
private readonly ILogManager _logManager;
private readonly ILogger _logger;

Expand All @@ -51,11 +50,10 @@ public class SnapServer : ISnapServer
private const long HardResponseByteLimit = 2000000;
private const int HardResponseNodeLimit = 100000;

public SnapServer(IReadOnlyTrieStore trieStore, IReadOnlyKeyValueStore codeDb, IStateReader stateReader, ILogManager logManager, ILastNStateRootTracker? lastNStateRootTracker = null)
public SnapServer(IReadOnlyTrieStore trieStore, IReadOnlyKeyValueStore codeDb, ILogManager logManager, ILastNStateRootTracker? lastNStateRootTracker = null)
{
_store = trieStore ?? throw new ArgumentNullException(nameof(trieStore));
_codeDb = codeDb ?? throw new ArgumentNullException(nameof(codeDb));
_stateReader = stateReader; // TODO: Remove
_lastNStateRootTracker = lastNStateRootTracker;
_logManager = logManager ?? throw new ArgumentNullException(nameof(logManager));
_logger = logManager.GetClassLogger();
Expand Down
2 changes: 1 addition & 1 deletion src/Nethermind/Nethermind.State/WorldStateManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ public event EventHandler<ReorgBoundaryReached>? ReorgBoundaryReached

public IStateReader GlobalStateReader { get; }

public ISnapServer? SnapServer => _trieStore.Scheme == INodeStorage.KeyScheme.Hash ? null : new SnapServer.SnapServer(_readOnlyTrieStore, _readaOnlyCodeCb, GlobalStateReader, _logManager, _lastNStateRootTracker);
public ISnapServer? SnapServer => _trieStore.Scheme == INodeStorage.KeyScheme.Hash ? null : new SnapServer.SnapServer(_readOnlyTrieStore, _readaOnlyCodeCb, _logManager, _lastNStateRootTracker);

public IWorldStateScopeProvider CreateResettableWorldState()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -301,8 +301,6 @@ public SyncPeerMock(
Node = node ?? new Node(TestItem.PublicKeyA, "127.0.0.1", 30302, true) { EthDetails = "eth68" };
_maxRandomizedLatencyMs = maxRandomizedLatencyMs ?? 0;

IStateReader alwaysAvailableRootTracker = Substitute.For<IStateReader>();
alwaysAvailableRootTracker.HasStateForBlock(Arg.Any<BlockHeader>()).Returns(true);
PruningConfig pruningConfig = new PruningConfig();
TestFinalizedStateProvider testFinalizedStateProvider = new TestFinalizedStateProvider(pruningConfig.PruningBoundary);
TrieStore trieStore = new TrieStore(new NodeStorage(stateDb), Nethermind.Trie.Pruning.No.Pruning,
Expand All @@ -311,7 +309,6 @@ public SyncPeerMock(
_snapServer = new SnapServer(
trieStore.AsReadOnly(),
codeDb,
alwaysAvailableRootTracker,
LimboLogs.Instance);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -261,9 +261,7 @@ private static (SnapServer, Hash256) BuildSnapServerFromEntries((Hash256, Accoun
st.Commit();
}

IStateReader stateRootTracker = Substitute.For<IStateReader>();
stateRootTracker.HasStateForBlock(Build.A.BlockHeader.WithStateRoot(st.RootHash).TestObject).Returns(true);
var ss = new SnapServer(trieStore.AsReadOnly(), new TestMemDb(), stateRootTracker, LimboLogs.Instance);
var ss = new SnapServer(trieStore.AsReadOnly(), new TestMemDb(), LimboLogs.Instance);
return (ss, st.RootHash);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,13 @@ private class Context
internal MemDb ClientStateDb { get; init; } = null!;
}

private Context CreateContext(IStateReader? stateRootTracker = null, ILastNStateRootTracker? lastNStateRootTracker = null)
private Context CreateContext(ILastNStateRootTracker? lastNStateRootTracker = null)
{
MemDb stateDbServer = new();
MemDb codeDbServer = new();
TestRawTrieStore store = new TestRawTrieStore(stateDbServer);
StateTree tree = new(store, LimboLogs.Instance);
SnapServer server = new(store.AsReadOnly(), codeDbServer, stateRootTracker ?? CreateConstantStateRootTracker(true), LimboLogs.Instance, lastNStateRootTracker);
SnapServer server = new(store.AsReadOnly(), codeDbServer, LimboLogs.Instance, lastNStateRootTracker);

MemDb clientStateDb = new();
using ProgressTracker progressTracker = new(clientStateDb, new TestSyncConfig(), new StateSyncPivot(null!, new TestSyncConfig(), LimboLogs.Instance), LimboLogs.Instance);
Expand Down Expand Up @@ -133,7 +133,7 @@ public void TestNoState(bool withLastNStateTracker)
lastNStateTracker.HasStateRoot(Arg.Any<Hash256>()).Returns(false);
}

Context context = CreateContext(stateRootTracker: CreateConstantStateRootTracker(withLastNStateTracker), lastNStateRootTracker: lastNStateTracker);
Context context = CreateContext(lastNStateRootTracker: lastNStateTracker);

(IOwnedReadOnlyList<PathWithAccount> accounts, IOwnedReadOnlyList<byte[]> accountProofs) =
context.Server.GetAccountRanges(context.Tree.RootHash, Keccak.Zero, Keccak.MaxValue, 4000, CancellationToken.None);
Expand Down Expand Up @@ -267,7 +267,7 @@ public void TestGetStorageRange()

(StateTree inputStateTree, StorageTree inputStorageTree, Hash256 _) = TestItem.Tree.GetTrees(store);

SnapServer server = new(store.AsReadOnly(), codeDb, CreateConstantStateRootTracker(true), LimboLogs.Instance);
SnapServer server = new(store.AsReadOnly(), codeDb, LimboLogs.Instance);

IDb codeDb2 = new MemDb();
IDb stateDb2 = new MemDb();
Expand Down Expand Up @@ -306,7 +306,7 @@ public void TestGetStorageRange_NoSlotsForAccount()

(StateTree inputStateTree, StorageTree inputStorageTree, Hash256 _) = TestItem.Tree.GetTrees(store);

SnapServer server = new(store.AsReadOnly(), codeDb, CreateConstantStateRootTracker(true), LimboLogs.Instance);
SnapServer server = new(store.AsReadOnly(), codeDb, LimboLogs.Instance);

ValueHash256 lastStorageHash = TestItem.Tree.SlotsWithPaths[^1].Path;
var asInt = lastStorageHash.ToUInt256();
Expand All @@ -332,7 +332,7 @@ public void TestGetStorageRangeMulti()

(StateTree inputStateTree, StorageTree inputStorageTree, Hash256 _) = TestItem.Tree.GetTrees(store, 10000);

SnapServer server = new(store.AsReadOnly(), codeDb, CreateConstantStateRootTracker(true), LimboLogs.Instance);
SnapServer server = new(store.AsReadOnly(), codeDb, LimboLogs.Instance);

IDb stateDb2 = new MemDb();
IDb codeDb2 = new MemDb();
Expand Down Expand Up @@ -404,7 +404,7 @@ public void TestWithHugeTree()
}
stateTree.Commit();

SnapServer server = new(store.AsReadOnly(), codeDb, CreateConstantStateRootTracker(true), LimboLogs.Instance);
SnapServer server = new(store.AsReadOnly(), codeDb, LimboLogs.Instance);

// size of one PathWithAccount ranges from 39 -> 72
(IOwnedReadOnlyList<PathWithAccount> accounts, IOwnedReadOnlyList<byte[]> accountProofs)
Expand Down Expand Up @@ -483,10 +483,4 @@ public void TestWithHugeTree()
proofs?.Dispose();
}

private IStateReader CreateConstantStateRootTracker(bool available)
{
IStateReader tracker = Substitute.For<IStateReader>();
tracker.HasStateForBlock(Arg.Any<BlockHeader>()).Returns(available);
return tracker;
}
}