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
7 changes: 5 additions & 2 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ var disableLogs bool
var platform string
var contenderEnabled bool
var contenderArgs []string
var contenderTarget string

var rootCmd = &cobra.Command{
Use: "playground",
Expand Down Expand Up @@ -183,6 +184,7 @@ func main() {
recipeCmd.Flags().StringVar(&platform, "platform", "", "docker platform to use")
recipeCmd.Flags().BoolVar(&contenderEnabled, "contender", false, "spam nodes with contender")
recipeCmd.Flags().StringArrayVar(&contenderArgs, "contender.arg", []string{}, "add/override contender CLI flags")
recipeCmd.Flags().StringVar(&contenderTarget, "contender.target", "", "override the node that contender spams -- accepts names like \"el\"")

cookCmd.AddCommand(recipeCmd)
}
Expand Down Expand Up @@ -232,8 +234,9 @@ func runIt(recipe playground.Recipe) error {
svcManager := recipe.Apply(&playground.ExContext{
LogLevel: logLevel,
Contender: &playground.ContenderContext{
Enabled: contenderEnabled,
ExtraArgs: contenderArgs,
Enabled: contenderEnabled,
ExtraArgs: contenderArgs,
TargetChain: contenderTarget,
},
}, artifacts)
if err := svcManager.Validate(); err != nil {
Expand Down
25 changes: 23 additions & 2 deletions playground/components.go
Original file line number Diff line number Diff line change
Expand Up @@ -813,7 +813,16 @@ func (n *nullService) Name() string {
}

type Contender struct {
ExtraArgs []string
ExtraArgs []string
TargetChain string // defaults to "el", may be any chain name in a recipe's spec
}

// Converts a `ContenderContext` into a `Contender` service. `Enabled` is ignored.
func (cc *ContenderContext) Contender() *Contender {
return &Contender{
ExtraArgs: cc.ExtraArgs,
TargetChain: cc.TargetChain,
}
}

func (c *Contender) Name() string {
Expand Down Expand Up @@ -854,10 +863,16 @@ func (c *Contender) Run(service *Service, ctx *ExContext) {
val string
hasVal bool
}

targetChain := "el"
if c.TargetChain != "" {
targetChain = c.TargetChain
}

defaults := []opt{
{name: "-l"},
{name: "--min-balance", val: "10 ether", hasVal: true},
{name: "-r", val: Connect("el", "http"), hasVal: true},
{name: "-r", val: Connect(targetChain, "http"), hasVal: true},
{name: "--tps", val: "20", hasVal: true},
}

Expand Down Expand Up @@ -888,6 +903,9 @@ func (c *Contender) Run(service *Service, ctx *ExContext) {
if flag == "-l" && seen["--loops"] {
return true
}
if flag == "-r" && seen["--rpc-url"] {
return true
}
return false
}

Expand Down Expand Up @@ -922,4 +940,7 @@ func (c *Contender) Run(service *Service, ctx *ExContext) {
WithArgs(args...).
DependsOnHealthy("beacon")

if c.TargetChain == "op-geth" {
service.DependsOnRunning("op-node")
}
}
11 changes: 10 additions & 1 deletion playground/manifest.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,11 @@ type ContenderContext struct {
// Run `contender spam` automatically once all playground services are running.
Enabled bool

// Provide additional args to contender's CLI
// Provide additional args to contender's CLI.
ExtraArgs []string

// Override the default target chain for contender to spam.
TargetChain string
}

// Execution context
Expand Down Expand Up @@ -603,3 +606,9 @@ func ReadManifest(outputFolder string) (*Manifest, error) {
}
return &manifestData, nil
}

func (svcManager *Manifest) RunContenderIfEnabled() {
if svcManager.ctx.Contender.Enabled {
svcManager.AddService("contender", svcManager.ctx.Contender.Contender())
}
}
6 changes: 1 addition & 5 deletions playground/recipe_buildernet.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,11 +59,7 @@ func (b *BuilderNetRecipe) Apply(ctx *ExContext, artifacts *Artifacts) *Manifest
})
}

if ctx.Contender.Enabled {
svcManager.AddService("contender", &Contender{
ExtraArgs: ctx.Contender.ExtraArgs,
})
}
svcManager.RunContenderIfEnabled()

return svcManager
}
Expand Down
6 changes: 1 addition & 5 deletions playground/recipe_l1.go
Original file line number Diff line number Diff line change
Expand Up @@ -107,11 +107,7 @@ func (l *L1Recipe) Apply(ctx *ExContext, artifacts *Artifacts) *Manifest {
})
}

if ctx.Contender.Enabled {
svcManager.AddService("contender", &Contender{
ExtraArgs: ctx.Contender.ExtraArgs,
})
}
svcManager.RunContenderIfEnabled()

return svcManager
}
Expand Down
7 changes: 3 additions & 4 deletions playground/recipe_opstack.go
Original file line number Diff line number Diff line change
Expand Up @@ -175,11 +175,10 @@ func (o *OpRecipe) Apply(ctx *ExContext, artifacts *Artifacts) *Manifest {
MaxChannelDuration: o.batcherMaxChannelDuration,
})

if ctx.Contender.Enabled {
svcManager.AddService("contender", &Contender{
ExtraArgs: ctx.Contender.ExtraArgs,
})
if svcManager.ctx.Contender.TargetChain == "" {
svcManager.ctx.Contender.TargetChain = "op-geth"
}
svcManager.RunContenderIfEnabled()

return svcManager
}
Expand Down