Skip to content

Commit 46d8ea4

Browse files
committed
Removed state service from tracing
1 parent 46c50de commit 46d8ea4

File tree

3 files changed

+24
-34
lines changed

3 files changed

+24
-34
lines changed

packages/deployment/src/queue/BullQueue.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ export class BullQueue
6060
await this.activePromise;
6161
}
6262
let resOutside: () => void = () => {};
63+
// TODO Use Promise.withResolvers() for that
6364
const promise = new Promise<void>((res) => {
6465
resOutside = res;
6566
});

packages/sequencer/src/protocol/production/BatchProducerModule.ts

Lines changed: 19 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,7 @@ import {
1313
} from "../../sequencer/builder/SequencerModule";
1414
import { BatchStorage } from "../../storage/repositories/BatchStorage";
1515
import { SettleableBatch } from "../../storage/model/Batch";
16-
import { CachedStateService } from "../../state/state/CachedStateService";
1716
import { CachedMerkleTreeStore } from "../../state/merkle/CachedMerkleTreeStore";
18-
import { AsyncStateService } from "../../state/async/AsyncStateService";
1917
import { AsyncMerkleTreeStore } from "../../state/async/AsyncMerkleTreeStore";
2018
import { BlockWithResult } from "../../storage/model/Block";
2119

@@ -27,8 +25,9 @@ export type StateRecord = Record<string, Field[] | undefined>;
2725

2826
interface BatchMetadata {
2927
batch: SettleableBatch;
30-
stateService: CachedStateService;
31-
merkleStore: CachedMerkleTreeStore;
28+
changes: {
29+
commit: () => Promise<void>;
30+
};
3231
}
3332

3433
const errors = {
@@ -49,8 +48,6 @@ export class BatchProducerModule extends SequencerModule {
4948
private productionInProgress = false;
5049

5150
public constructor(
52-
@inject("AsyncStateService")
53-
private readonly asyncStateService: AsyncStateService,
5451
@inject("AsyncMerkleStore")
5552
private readonly merkleStore: AsyncMerkleTreeStore,
5653
@inject("BatchStorage") private readonly batchStorage: BatchStorage,
@@ -61,11 +58,6 @@ export class BatchProducerModule extends SequencerModule {
6158
super();
6259
}
6360

64-
private async applyStateChanges(batch: BatchMetadata) {
65-
await batch.stateService.mergeIntoParent();
66-
await batch.merkleStore.mergeIntoParent();
67-
}
68-
6961
/**
7062
* Main function to call when wanting to create a new block based on the
7163
* transactions that are present in the mempool. This function should also
@@ -89,8 +81,11 @@ export class BatchProducerModule extends SequencerModule {
8981
`Batch produced (${batchWithStateDiff.batch.blockHashes.length} blocks, ${numTxs} txs)`
9082
);
9183

92-
// Apply state changes to current StateService
93-
await this.applyStateChanges(batchWithStateDiff);
84+
// Apply state changes to current MerkleTreeStore
85+
await batchWithStateDiff.changes.commit();
86+
87+
// TODO Add transition from unproven to proven state for stateservice
88+
// This needs proper DB-level masking
9489
}
9590
return batchWithStateDiff?.batch;
9691
}
@@ -158,8 +153,7 @@ export class BatchProducerModule extends SequencerModule {
158153
toNetworkState: batch.toNetworkState,
159154
},
160155

161-
stateService: batch.stateService,
162-
merkleStore: batch.merkleStore,
156+
changes: batch.changes,
163157
};
164158
}
165159

@@ -181,36 +175,35 @@ export class BatchProducerModule extends SequencerModule {
181175
blockId: number
182176
): Promise<{
183177
proof: Proof<BlockProverPublicInput, BlockProverPublicOutput>;
184-
// TODO Return State services as commit-only object
185-
stateService: CachedStateService;
186-
merkleStore: CachedMerkleTreeStore;
178+
changes: {
179+
commit: () => Promise<void>;
180+
};
187181
fromNetworkState: NetworkState;
188182
toNetworkState: NetworkState;
189183
}> {
190184
if (blocks.length === 0 || blocks.flat(1).length === 0) {
191185
throw errors.blockWithoutTxs();
192186
}
193187

194-
const stateServices = {
195-
// TODO Remove stateService
196-
stateService: new CachedStateService(this.asyncStateService),
197-
merkleTreeStore: new CachedMerkleTreeStore(this.merkleStore),
198-
};
188+
const merkleTreeStore = new CachedMerkleTreeStore(this.merkleStore);
199189

200190
const trace = await this.batchTraceService.traceBatch(
201191
blocks.map((block) => block),
202-
stateServices
192+
merkleTreeStore
203193
);
204194

205195
const proof = await this.batchFlow.executeBatch(trace, blockId);
206196

207197
const fromNetworkState = blocks[0].block.networkState.before;
208198
const toNetworkState = blocks.at(-1)!.result.afterNetworkState;
209199

200+
const changes = {
201+
commit: merkleTreeStore.commit,
202+
};
203+
210204
return {
211205
proof,
212-
stateService: stateServices.stateService,
213-
merkleStore: stateServices.merkleTreeStore,
206+
changes,
214207
fromNetworkState,
215208
toNetworkState,
216209
};

packages/sequencer/src/protocol/production/tracing/BatchTracingService.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,23 +73,19 @@ export class BatchTracingService {
7373

7474
public async traceStateTransitions(
7575
blocks: BlockWithResult[],
76-
stateServices: {
77-
merkleTreeStore: CachedMerkleTreeStore;
78-
}
76+
merkleTreeStore: CachedMerkleTreeStore
7977
) {
8078
const batches = this.stateTransitionTracingService.extractSTBatches(blocks);
8179

8280
return await this.stateTransitionTracingService.createMerkleTrace(
83-
stateServices.merkleTreeStore,
81+
merkleTreeStore,
8482
batches
8583
);
8684
}
8785

8886
public async traceBatch(
8987
blocks: BlockWithResult[],
90-
stateServices: {
91-
merkleTreeStore: CachedMerkleTreeStore;
92-
},
88+
merkleTreeStore: CachedMerkleTreeStore,
9389
// TODO Implement and then also test
9490
parallel: boolean = false
9591
): Promise<BatchTrace> {
@@ -102,7 +98,7 @@ export class BatchTracingService {
10298
// Trace STs
10399
const stateTransitionTrace = await this.traceStateTransitions(
104100
blocks,
105-
stateServices
101+
merkleTreeStore
106102
);
107103

108104
return {

0 commit comments

Comments
 (0)