@@ -100,7 +100,7 @@ func (o *OpRbuilder) Apply(ctx *ExContext) *Component {
100100 })
101101
102102 if ctx .Bootnode != nil {
103- service .WithArgs ("--trusted-peers " , ctx .Bootnode .Connect ())
103+ service .WithArgs ("--bootnodes " , ctx .Bootnode .Connect ())
104104 }
105105
106106 if o .Flashblocks {
@@ -170,7 +170,7 @@ func (f *FlashblocksRPC) Apply(ctx *ExContext) *Component {
170170
171171 if ctx .Bootnode != nil {
172172 service .WithArgs (
173- "--trusted-peers " , ctx .Bootnode .Connect (),
173+ "--bootnodes " , ctx .Bootnode .Connect (),
174174 )
175175 }
176176
@@ -509,6 +509,10 @@ func (r *RethEL) Apply(ctx *ExContext) *Component {
509509 WithArtifact ("/data/jwtsecret" , "jwtsecret" ).
510510 WithVolume ("data" , "/data_reth" , true )
511511
512+ if ctx .Bootnode != nil {
513+ svc .WithArgs ("--bootnodes" , ctx .Bootnode .Connect ())
514+ }
515+
512516 UseHealthmon (component , svc , healthmonExecution )
513517
514518 if r .UseNativeReth {
@@ -1053,6 +1057,47 @@ func registerBuilderHook(ctx context.Context, exCtx *ExContext, manifest *Manife
10531057 return nil
10541058}
10551059
1060+ type BootnodeProtocol string
1061+
1062+ const (
1063+ BootnodeProtocolV5 BootnodeProtocol = "v5"
1064+ )
1065+
1066+ type Bootnode struct {
1067+ Protocol BootnodeProtocol
1068+ Enode * EnodeAddr
1069+ }
1070+
1071+ func (b * Bootnode ) Apply (ctx * ExContext ) * Component {
1072+ component := NewComponent ("bootnode" )
1073+
1074+ b .Enode = ctx .Output .GetEnodeAddr ()
1075+ svc := component .NewService ("bootnode" ).
1076+ WithImage ("ghcr.io/paradigmxyz/reth" ).
1077+ WithTag ("v1.9.3" ).
1078+ WithEntrypoint ("/usr/local/bin/reth" ).
1079+ WithArgs (
1080+ "p2p" , "bootnode" ,
1081+ "--addr" , `0.0.0.0:{{Port "rpc" 30303}}` ,
1082+ "--p2p-secret-key" , "/data/p2p_key.txt" ,
1083+ "-vvvv" ,
1084+ "--color" , "never" ,
1085+ ).
1086+ WithArtifact ("/data/p2p_key.txt" , b .Enode .Artifact )
1087+
1088+ if b .Protocol == BootnodeProtocolV5 {
1089+ svc .WithArgs ("--v5" )
1090+ }
1091+
1092+ // Mutate the execution context by setting the bootnode.
1093+ ctx .Bootnode = & BootnodeRef {
1094+ Service : "bootnode" ,
1095+ ID : b .Enode .NodeID (),
1096+ }
1097+
1098+ return component
1099+ }
1100+
10561101const (
10571102 healthmonBeacon = "beacon"
10581103 healthmonExecution = "execution"
0 commit comments