Skip to content
Merged
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
24 changes: 19 additions & 5 deletions runner/payload/simulator/cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@ var flags = []cli.Flag{
Usage: "Range of blocks to sample from (defaults to sample-size for consecutive blocks). Set to a larger value to pick random blocks over a wider timeframe.",
Value: 0,
},
&cli.Uint64Flag{
Name: "start-block",
Usage: "Block number to start sampling from (defaults to latest block - 100). Blocks are sampled backwards from this block.",
Value: 0,
},
&cli.IntFlag{
Name: "num-workers",
Usage: "Number of parallel workers for fetching and processing blocks",
Expand Down Expand Up @@ -73,6 +78,7 @@ func main() {
genesisFilePath := c.String("genesis")
sampleSize := c.Int("sample-size")
sampleRange := c.Int("sample-range")
startBlock := c.Uint64("start-block")
numWorkers := c.Int("num-workers")
clientType := c.String("client")

Expand Down Expand Up @@ -121,16 +127,24 @@ func main() {
return err
}

latestBlock, err := client.BlockByNumber(c.Context, nil)
if err != nil {
return err
// Determine the reference block number for sampling
var referenceBlockNum uint64
if startBlock > 0 {
// Use user-specified start block
referenceBlockNum = startBlock
} else {
// Default to latest block - 100
latestBlock, err := client.BlockByNumber(c.Context, nil)
if err != nil {
return err
}
referenceBlockNum = latestBlock.NumberU64() - 100
}
latestBlockNum := latestBlock.NumberU64()

logger := oplog.NewLogger(os.Stdout, oplog.ReadCLIConfig(c))

// Select which block numbers to sample
blockNumbers := selectBlockNumbers(latestBlockNum-100, sampleSize, sampleRange)
blockNumbers := selectBlockNumbers(referenceBlockNum, sampleSize, sampleRange)

logger.Info("Starting parallel block processing", "blocks", len(blockNumbers), "workers", numWorkers, "client", clientType)

Expand Down
Loading