Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
Next Next commit
feat: add default rollup id to be used with mock sequencer
  • Loading branch information
MSevey committed Nov 5, 2024
commit ed0de7571af0514c4ad8e6f633602f7a63df5bf6
16 changes: 10 additions & 6 deletions cmd/rollkit/commands/run_node.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,10 @@ var (
// initialize the logger with the cometBFT defaults
logger = cometlog.NewTMLogger(cometlog.NewSyncWriter(os.Stdout))

errDAServerAlreadyRunning = errors.New("DA server already running")
errDAServerAlreadyRunning = errors.New("DA server already running")
errSequencerAlreadyRunning = errors.New("sequencer already running")
)

// MockSequencerAddress is a sample address used by the mock sequencer
const MockSequencerAddress = "localhost:50051"

// NewRunNodeCmd returns the command that allows the CLI to start a node.
func NewRunNodeCmd() *cobra.Command {
cmd := &cobra.Command{
Expand Down Expand Up @@ -146,8 +144,10 @@ func NewRunNodeCmd() *cobra.Command {

// use mock grpc sequencer server by default
if !cmd.Flags().Lookup("rollkit.sequencer_address").Changed {
srv, err := startMockSequencerServerGRPC(MockSequencerAddress, genDoc.ChainID)
if err != nil {
// If we are using defaults, then we also will override the default chainID from the genesis doc with the default from the node config
genDoc.ChainID = nodeConfig.SequencerRollupID
srv, err := startMockSequencerServerGRPC(nodeConfig.SequencerAddress, nodeConfig.SequencerRollupID)
if err != nil && !errors.Is(err, errSequencerAlreadyRunning) {
return fmt.Errorf("failed to launch mock sequencing server: %w", err)
}
// nolint:errcheck,gosec
Expand Down Expand Up @@ -275,6 +275,10 @@ func startMockSequencerServerGRPC(listenAddress string, rollupId string) (*grpc.
server := seqGRPC.NewServer(dummySeq, dummySeq, dummySeq)
lis, err := net.Listen("tcp", listenAddress)
if err != nil {
if errors.Is(err, syscall.EADDRINUSE) {
logger.Info(errSequencerAlreadyRunning.Error(), "address", nodeConfig.SequencerAddress)
return nil, errSequencerAlreadyRunning
}
return nil, err
}
go func() {
Expand Down
9 changes: 7 additions & 2 deletions config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ const (
FlagLazyBlockTime = "rollkit.lazy_block_time"
// FlagSequencerAddress is a flag for specifying the sequencer middleware address
FlagSequencerAddress = "rollkit.sequencer_address"
// FlagSequencerRollupID is a flag for specifying the sequencer middleware rollup ID
FlagSequencerRollupID = "rollkit.sequencer_rollup_id"
)

// NodeConfig stores Rollkit node configuration.
Expand All @@ -66,8 +68,9 @@ type NodeConfig struct {
DASubmitOptions string `mapstructure:"da_submit_options"`

// CLI flags
DANamespace string `mapstructure:"da_namespace"`
SequencerAddress string `mapstructure:"sequencer_address"`
DANamespace string `mapstructure:"da_namespace"`
SequencerAddress string `mapstructure:"sequencer_address"`
SequencerRollupID string `mapstructure:"sequencer_rollup_id"`
}

// HeaderConfig allows node to pass the initial trusted header hash to start the header exchange service
Expand Down Expand Up @@ -143,6 +146,7 @@ func (nc *NodeConfig) GetViperConfig(v *viper.Viper) error {
nc.DAMempoolTTL = v.GetUint64(FlagDAMempoolTTL)
nc.LazyBlockTime = v.GetDuration(FlagLazyBlockTime)
nc.SequencerAddress = v.GetString(FlagSequencerAddress)
nc.SequencerRollupID = v.GetString(FlagSequencerRollupID)

return nil
}
Expand Down Expand Up @@ -170,4 +174,5 @@ func AddFlags(cmd *cobra.Command) {
cmd.Flags().Uint64(FlagDAMempoolTTL, def.DAMempoolTTL, "number of DA blocks until transaction is dropped from the mempool")
cmd.Flags().Duration(FlagLazyBlockTime, def.LazyBlockTime, "block time (for lazy mode)")
cmd.Flags().String(FlagSequencerAddress, def.SequencerAddress, "sequencer middleware address (host:port)")
cmd.Flags().String(FlagSequencerRollupID, def.SequencerRollupID, "sequencer middleware rollup ID (default: mock-rollup)")
}
7 changes: 5 additions & 2 deletions config/defaults.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ const (
// Version is the current rollkit version
// Please keep updated with each new release
Version = "0.38.5"
// DefaultSequencerAddress
DefaultSequencerAddress = "localhost:50051"
)

// DefaultNodeConfig keeps default values of NodeConfig
Expand All @@ -34,6 +36,7 @@ var DefaultNodeConfig = NodeConfig{
HeaderConfig: HeaderConfig{
TrustedHash: "",
},
Instrumentation: config.DefaultInstrumentationConfig(),
SequencerAddress: "localhost:50051",
Instrumentation: config.DefaultInstrumentationConfig(),
SequencerAddress: DefaultSequencerAddress,
SequencerRollupID: "mock-rollup",
}