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
2 changes: 0 additions & 2 deletions node/full.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import (
"github.com/rollkit/rollkit/pkg/config"
genesispkg "github.com/rollkit/rollkit/pkg/genesis"
"github.com/rollkit/rollkit/pkg/p2p"
"github.com/rollkit/rollkit/pkg/p2p/key"
rpcserver "github.com/rollkit/rollkit/pkg/rpc/server"
"github.com/rollkit/rollkit/pkg/service"
"github.com/rollkit/rollkit/pkg/signer"
Expand Down Expand Up @@ -73,7 +72,6 @@ func newFullNode(
nodeConfig config.Config,
p2pClient *p2p.Client,
signer signer.Signer,
nodeKey key.NodeKey,
genesis genesispkg.Genesis,
database ds.Batching,
exec coreexecutor.Executor,
Expand Down
24 changes: 0 additions & 24 deletions node/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,7 @@ import (
"context"
"errors"
"fmt"
"os"
"path/filepath"
"time"

"github.com/rollkit/rollkit/pkg/p2p/key"
)

// Source is an enum representing different sources of height
Expand Down Expand Up @@ -143,23 +139,3 @@ func Retry(tries int, durationBetweenAttempts time.Duration, fn func() error) (e
}
return fn()
}

// InitFiles initializes the files for the node.
// It creates a configuration directory and generates a node key.
// It returns the generated node key and an error if any occurs during the process.
func InitFiles(dir string) (*key.NodeKey, error) {
// Create config directory
configDir := filepath.Join(dir, "config")
err := os.MkdirAll(configDir, 0700) //nolint:gosec
if err != nil {
return nil, fmt.Errorf("failed to create config directory: %w", err)
}

// create the nodekey file
nodeKey, err := key.LoadOrGenNodeKey(configDir)
if err != nil {
return nil, fmt.Errorf("failed to create node key: %w", err)
}

return nodeKey, nil
}
2 changes: 0 additions & 2 deletions node/helpers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ func setupTestNodeWithCleanup(t *testing.T, config rollkitconfig.Config) (*FullN

executor, sequencer, dac, p2pClient, ds := createTestComponents(t)

nodeKey, err := InitFiles(config.RootDir)
require.NoError(t, err)

node, err := NewNode(
Expand All @@ -57,7 +56,6 @@ func setupTestNodeWithCleanup(t *testing.T, config rollkitconfig.Config) (*FullN
sequencer,
dac,
remoteSigner,
*nodeKey,
p2pClient,
genesis,
ds,
Expand Down
2 changes: 0 additions & 2 deletions node/light.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import (
"github.com/rollkit/rollkit/pkg/config"
"github.com/rollkit/rollkit/pkg/genesis"
"github.com/rollkit/rollkit/pkg/p2p"
"github.com/rollkit/rollkit/pkg/p2p/key"
rpcserver "github.com/rollkit/rollkit/pkg/rpc/server"
"github.com/rollkit/rollkit/pkg/service"
"github.com/rollkit/rollkit/pkg/store"
Expand All @@ -38,7 +37,6 @@ func newLightNode(
conf config.Config,
genesis genesis.Genesis,
p2pClient *p2p.Client,
nodeKey key.NodeKey,
database ds.Batching,
logger log.Logger,
) (ln *LightNode, err error) {
Expand Down
5 changes: 1 addition & 4 deletions node/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import (
"github.com/rollkit/rollkit/pkg/config"
"github.com/rollkit/rollkit/pkg/genesis"
"github.com/rollkit/rollkit/pkg/p2p"
"github.com/rollkit/rollkit/pkg/p2p/key"
"github.com/rollkit/rollkit/pkg/service"
"github.com/rollkit/rollkit/pkg/signer"
)
Expand All @@ -34,23 +33,21 @@ func NewNode(
sequencer coresequencer.Sequencer,
da coreda.DA,
signer signer.Signer,
nodeKey key.NodeKey,
p2pClient *p2p.Client,
genesis genesis.Genesis,
database ds.Batching,
metricsProvider MetricsProvider,
logger log.Logger,
) (Node, error) {
if conf.Node.Light {
return newLightNode(conf, genesis, p2pClient, nodeKey, database, logger)
return newLightNode(conf, genesis, p2pClient, database, logger)
}

return newFullNode(
ctx,
conf,
p2pClient,
signer,
nodeKey,
genesis,
database,
exec,
Expand Down
2 changes: 0 additions & 2 deletions node/node_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,6 @@ func newTestNode(ctx context.Context, t *testing.T, nodeType NodeType, chainID s

executor, sequencer, dac, p2pClient, ds := createTestComponents(t)

nodeKey, err := InitFiles(config.RootDir)
require.NoError(t, err)

logger := log.NewTestLogger(t)
Expand All @@ -183,7 +182,6 @@ func newTestNode(ctx context.Context, t *testing.T, nodeType NodeType, chainID s
sequencer,
dac,
remoteSigner,
*nodeKey,
p2pClient,
genesis,
ds,
Expand Down
3 changes: 0 additions & 3 deletions pkg/cmd/run_node.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ import (
rollconf "github.com/rollkit/rollkit/pkg/config"
genesispkg "github.com/rollkit/rollkit/pkg/genesis"
"github.com/rollkit/rollkit/pkg/p2p"
"github.com/rollkit/rollkit/pkg/p2p/key"
"github.com/rollkit/rollkit/pkg/signer"
"github.com/rollkit/rollkit/pkg/signer/file"
)
Expand Down Expand Up @@ -92,7 +91,6 @@ func StartNode(
executor coreexecutor.Executor,
sequencer coresequencer.Sequencer,
da coreda.DA,
nodeKey *key.NodeKey,
p2pClient *p2p.Client,
datastore datastore.Batching,
nodeConfig rollconf.Config,
Expand Down Expand Up @@ -134,7 +132,6 @@ func StartNode(
sequencer,
da,
signer,
*nodeKey,
p2pClient,
genesis,
datastore,
Expand Down
50 changes: 13 additions & 37 deletions pkg/cmd/run_node_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import (
coresequencer "github.com/rollkit/rollkit/core/sequencer"
rollconf "github.com/rollkit/rollkit/pkg/config"
"github.com/rollkit/rollkit/pkg/p2p"
"github.com/rollkit/rollkit/pkg/p2p/key"
"github.com/rollkit/rollkit/pkg/signer"
filesigner "github.com/rollkit/rollkit/pkg/signer/file"
)
Expand Down Expand Up @@ -79,21 +78,17 @@ func TestParseFlags(t *testing.T) {
args := append([]string{"start"}, flags...)

executor, sequencer, dac, keyProvider, p2pClient, ds := createTestComponents(context.Background(), t)
nodeKey, err := key.GenerateNodeKey()
if err != nil {
t.Fatalf("Error: %v", err)
}

nodeConfig := rollconf.DefaultConfig
nodeConfig.RootDir = t.TempDir()

newRunNodeCmd := newRunNodeCmd(t.Context(), executor, sequencer, dac, keyProvider, nodeKey, p2pClient, ds, nodeConfig)
newRunNodeCmd := newRunNodeCmd(t.Context(), executor, sequencer, dac, keyProvider, p2pClient, ds, nodeConfig)
_ = newRunNodeCmd.Flags().Set(rollconf.FlagRootDir, "custom/root/dir")
if err := newRunNodeCmd.ParseFlags(args); err != nil {
t.Errorf("Error: %v", err)
}

nodeConfig, err = ParseConfig(newRunNodeCmd)
nodeConfig, err := ParseConfig(newRunNodeCmd)
if err != nil {
t.Errorf("Error: %v", err)
}
Expand Down Expand Up @@ -160,22 +155,17 @@ func TestAggregatorFlagInvariants(t *testing.T) {

executor, sequencer, dac, keyProvider, p2pClient, ds := createTestComponents(context.Background(), t)

nodeKey, err := key.GenerateNodeKey()
if err != nil {
t.Fatalf("Error: %v", err)
}

nodeConfig := rollconf.DefaultConfig
nodeConfig.RootDir = t.TempDir()

newRunNodeCmd := newRunNodeCmd(t.Context(), executor, sequencer, dac, keyProvider, nodeKey, p2pClient, ds, nodeConfig)
newRunNodeCmd := newRunNodeCmd(t.Context(), executor, sequencer, dac, keyProvider, p2pClient, ds, nodeConfig)
_ = newRunNodeCmd.Flags().Set(rollconf.FlagRootDir, "custom/root/dir")

if err := newRunNodeCmd.ParseFlags(args); err != nil {
t.Errorf("Error: %v", err)
}

nodeConfig, err = ParseConfig(newRunNodeCmd)
nodeConfig, err := ParseConfig(newRunNodeCmd)
if err != nil {
t.Errorf("Error: %v", err)
}
Expand All @@ -200,14 +190,9 @@ func TestDefaultAggregatorValue(t *testing.T) {
t.Run(tc.name, func(t *testing.T) {
executor, sequencer, dac, keyProvider, p2pClient, ds := createTestComponents(context.Background(), t)

nodeKey, err := key.GenerateNodeKey()
if err != nil {
t.Fatalf("Error: %v", err)
}

nodeConfig := rollconf.DefaultConfig

newRunNodeCmd := newRunNodeCmd(t.Context(), executor, sequencer, dac, keyProvider, nodeKey, p2pClient, ds, nodeConfig)
newRunNodeCmd := newRunNodeCmd(t.Context(), executor, sequencer, dac, keyProvider, p2pClient, ds, nodeConfig)
_ = newRunNodeCmd.Flags().Set(rollconf.FlagRootDir, "custom/root/dir")

// Create a new command without specifying any flags
Expand All @@ -222,7 +207,7 @@ func TestDefaultAggregatorValue(t *testing.T) {
t.Errorf("Error parsing flags: %v", err)
}

nodeConfig, err = ParseConfig(newRunNodeCmd)
nodeConfig, err := ParseConfig(newRunNodeCmd)
if err != nil {
t.Errorf("Error parsing config: %v", err)
}
Expand Down Expand Up @@ -284,19 +269,13 @@ func TestCentralizedAddresses(t *testing.T) {

executor, sequencer, dac, keyProvider, p2pClient, ds := createTestComponents(context.Background(), t)

tmpDir := t.TempDir()
nodeKey, err := key.LoadOrGenNodeKey(filepath.Join(tmpDir, "config", "node_key.json"))
if err != nil {
t.Fatalf("Error: %v", err)
}

cmd := newRunNodeCmd(t.Context(), executor, sequencer, dac, keyProvider, nodeKey, p2pClient, ds, nodeConfig)
cmd := newRunNodeCmd(t.Context(), executor, sequencer, dac, keyProvider, p2pClient, ds, nodeConfig)
_ = cmd.Flags().Set(rollconf.FlagRootDir, "custom/root/dir")
if err := cmd.ParseFlags(args); err != nil {
t.Fatalf("ParseFlags error: %v", err)
}

nodeConfig, err = ParseConfig(cmd)
nodeConfig, err := ParseConfig(cmd)
if err != nil {
t.Fatalf("parseConfig error: %v", err)
}
Expand All @@ -312,14 +291,12 @@ func TestStartNodeErrors(t *testing.T) {

// Common setup
executor, sequencer, dac, _, p2pClient, ds := createTestComponents(baseCtx, t)
nodeKey, err := key.GenerateNodeKey()
assert.NoError(t, err)
tmpDir := t.TempDir()

// Create a dummy genesis file for successful load cases
// Note: StartNode expects genesis relative to ConfigPath's dir, which defaults relative to RootDir
dummyConfigDir := filepath.Join(tmpDir, "config")
err = os.MkdirAll(dummyConfigDir, 0755)
err := os.MkdirAll(dummyConfigDir, 0755)
assert.NoError(t, err)
dummyGenesisPath := filepath.Join(dummyConfigDir, "genesis.json")
err = os.WriteFile(dummyGenesisPath, []byte(`{"chain_id":"test","initial_height":"1"}`), 0o600)
Expand Down Expand Up @@ -393,7 +370,7 @@ func TestStartNodeErrors(t *testing.T) {
dummySigner, _ := filesigner.CreateFileSystemSigner(dummySignerPath, []byte("password"))

// Pass the potentially modified nodeConfig to newRunNodeCmd
cmd := newRunNodeCmd(baseCtx, executor, sequencer, dac, dummySigner, nodeKey, p2pClient, ds, nodeConfig)
cmd := newRunNodeCmd(baseCtx, executor, sequencer, dac, dummySigner, p2pClient, ds, nodeConfig)

// Set the context on the command object before using it
cmd.SetContext(baseCtx)
Expand All @@ -405,7 +382,7 @@ func TestStartNodeErrors(t *testing.T) {

runFunc := func() {
// Pass the final nodeConfig to StartNode
err := StartNode(logger, cmd, executor, sequencer, dac, nodeKey, p2pClient, ds, nodeConfig)
err := StartNode(logger, cmd, executor, sequencer, dac, p2pClient, ds, nodeConfig)
if tc.expectedError != "" {
assert.ErrorContains(t, err, tc.expectedError)
} else {
Expand All @@ -422,7 +399,7 @@ func TestStartNodeErrors(t *testing.T) {
assert.NotPanics(t, runFunc)
// Re-check error after NotPanics confirms no panic occurred
// Need to re-run StartNode as the original runFunc only checks error if !tc.expectPanic
err := StartNode(logger, cmd, executor, sequencer, dac, nodeKey, p2pClient, ds, nodeConfig)
err := StartNode(logger, cmd, executor, sequencer, dac, p2pClient, ds, nodeConfig)
if tc.expectedError != "" {
assert.ErrorContains(t, err, tc.expectedError)
}
Expand All @@ -438,7 +415,6 @@ func newRunNodeCmd(
sequencer coresequencer.Sequencer,
dac coreda.DA,
remoteSigner signer.Signer,
nodeKey *key.NodeKey,
p2pClient *p2p.Client,
datastore datastore.Batching,
nodeConfig rollconf.Config,
Expand All @@ -459,7 +435,7 @@ func newRunNodeCmd(
Short: "Run the rollkit node",
RunE: func(cmd *cobra.Command, args []string) error {
// Use the nodeConfig passed into this function closure
return StartNode(log.NewNopLogger(), cmd, executor, sequencer, dac, nodeKey, p2pClient, datastore, nodeConfig)
return StartNode(log.NewNopLogger(), cmd, executor, sequencer, dac, p2pClient, datastore, nodeConfig)
},
}

Expand Down
2 changes: 1 addition & 1 deletion rollups/evm/based/cmd/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ func NewExtendedRunNodeCmd(ctx context.Context) *cobra.Command {
// StartNode might need adjustment if it strictly requires coreda.Client methods.
// For now, assume it can work with coreda.DA or will be adjusted later.
// We also need to pass the namespace config for rollDA.
return rollcmd.StartNode(logger, cmd, executor, sequencer, rollDA, nodeKey, p2pClient, datastore, nodeConfig)
return rollcmd.StartNode(logger, cmd, executor, sequencer, rollDA, p2pClient, datastore, nodeConfig)
},
}

Expand Down
2 changes: 1 addition & 1 deletion rollups/evm/single/cmd/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ var RunCmd = &cobra.Command{
return err
}

return rollcmd.StartNode(logger, cmd, executor, sequencer, &daJrpc.DA, nodeKey, p2pClient, datastore, nodeConfig)
return rollcmd.StartNode(logger, cmd, executor, sequencer, &daJrpc.DA, p2pClient, datastore, nodeConfig)
},
}

Expand Down
2 changes: 1 addition & 1 deletion rollups/testapp/cmd/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,6 @@ var RunCmd = &cobra.Command{
return err
}

return rollcmd.StartNode(logger, cmd, executor, sequencer, &daJrpc.DA, nodeKey, p2pClient, datastore, nodeConfig)
return rollcmd.StartNode(logger, cmd, executor, sequencer, &daJrpc.DA, p2pClient, datastore, nodeConfig)
},
}