Skip to content

Commit

Permalink
Rename --no-eth-node to --disable-l1-verification, fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
kirugan committed Nov 4, 2024
1 parent 033666a commit 81d6a31
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 37 deletions.
19 changes: 10 additions & 9 deletions cmd/juno/juno.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ const (
dbPathF = "db-path"
networkF = "network"
ethNodeF = "eth-node"
noEthNodeF = "no-eth-node"
disableL1VerificationF = "disable-l1-verification"
pprofF = "pprof"
pprofHostF = "pprof-host"
pprofPortF = "pprof-port"
Expand Down Expand Up @@ -92,7 +92,7 @@ const (
defaultWS = false
defaultWSPort = 6061
defaultEthNode = ""
defaultNoEthNode = false
defaultDisableL1Verification = false
defaultPprof = false
defaultPprofPort = 6062
defaultColour = true
Expand Down Expand Up @@ -147,12 +147,12 @@ const (
colourUsage = "Use `--colour=false` command to disable colourized outputs (ANSI Escape Codes)."
ethNodeUsage = "WebSocket endpoint of the Ethereum node. To verify the correctness of the L2 chain, " +
"Juno must connect to an Ethereum node and parse events in the Starknet contract."
noEthNodeUsage = "Disables the connection to the Ethereum node."
pendingPollIntervalUsage = "Sets how frequently pending block will be updated (0s will disable fetching of pending block)."
p2pUsage = "EXPERIMENTAL: Enables p2p server."
p2pAddrUsage = "EXPERIMENTAL: Specify p2p listening source address as multiaddr. Example: /ip4/0.0.0.0/tcp/7777"
p2pPublicAddrUsage = "EXPERIMENTAL: Specify p2p public address as multiaddr. Example: /ip4/35.243.XXX.XXX/tcp/7777"
p2pPeersUsage = "EXPERIMENTAL: Specify list of p2p peers split by a comma. " +
disableL1VerificationUsage = "Disables L1 verification since an Ethereum node is not provided."
pendingPollIntervalUsage = "Sets how frequently pending block will be updated (0s will disable fetching of pending block)."
p2pUsage = "EXPERIMENTAL: Enables p2p server."
p2pAddrUsage = "EXPERIMENTAL: Specify p2p listening source address as multiaddr. Example: /ip4/0.0.0.0/tcp/7777"
p2pPublicAddrUsage = "EXPERIMENTAL: Specify p2p public address as multiaddr. Example: /ip4/35.243.XXX.XXX/tcp/7777"
p2pPeersUsage = "EXPERIMENTAL: Specify list of p2p peers split by a comma. " +
"These peers can be either Feeder or regular nodes."
p2pFeederNodeUsage = "EXPERIMENTAL: Run juno as a feeder node which will only sync from feeder gateway and gossip the new" +
" blocks to the network."
Expand Down Expand Up @@ -330,7 +330,8 @@ func NewCmd(config *node.Config, run func(*cobra.Command, []string) error) *cobr
junoCmd.Flags().String(cnCoreContractAddressF, defaultCNCoreContractAddressStr, networkCustomCoreContractAddressUsage)
junoCmd.Flags().IntSlice(cnUnverifiableRangeF, defaultCNUnverifiableRange, networkCustomUnverifiableRange)
junoCmd.Flags().String(ethNodeF, defaultEthNode, ethNodeUsage)
junoCmd.Flags().Bool(noEthNodeF, defaultNoEthNode, noEthNodeUsage)
junoCmd.Flags().Bool(disableL1VerificationF, defaultDisableL1Verification, disableL1VerificationUsage)
junoCmd.MarkFlagsMutuallyExclusive(ethNodeF, disableL1VerificationF)
junoCmd.Flags().Bool(pprofF, defaultPprof, pprofUsage)
junoCmd.Flags().String(pprofHostF, defaulHost, pprofHostUsage)
junoCmd.Flags().Uint16(pprofPortF, defaultPprofPort, pprofPortUsage)
Expand Down
14 changes: 7 additions & 7 deletions node/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ type Config struct {
DatabasePath string `mapstructure:"db-path"`
Network utils.Network `mapstructure:"network"`
EthNode string `mapstructure:"eth-node"`
NoEthNode bool `mapstructure:"no-eth-node"`
DisableL1Verification bool `mapstructure:"disable-l1-verification"`
Pprof bool `mapstructure:"pprof"`
PprofHost string `mapstructure:"pprof-host"`
PprofPort uint16 `mapstructure:"pprof-port"`
Expand Down Expand Up @@ -273,13 +273,13 @@ func New(cfg *Config, version string) (*Node, error) { //nolint:gocyclo,funlen
metricsService: metricsService,
}

if n.cfg.EthNode == "" {
if n.cfg.NoEthNode {
n.log.Warnw("Ethereum node address not found; will not verify against L1")
} else {
return nil, fmt.Errorf("--eth-node flag is required, you can use --no-eth-node to disable L1 verification")
if !n.cfg.DisableL1Verification {
// Due to mutually exclusive flag we can do the following.
if n.cfg.EthNode == "" {
//nolint:lll
return nil, fmt.Errorf("ethereum node address not found; will not verify against L1. Use --Let rename it disable-l1-verification flag if L1 verification is not required")
}

Check warning on line 281 in node/node.go

View check run for this annotation

Codecov / codecov/patch

node/node.go#L277-L281

Added lines #L277 - L281 were not covered by tests
} else {

var l1Client *l1.Client
l1Client, err = newL1Client(cfg.EthNode, cfg.Metrics, n.blockchain, n.log)

Check warning on line 284 in node/node.go

View check run for this annotation

Codecov / codecov/patch

node/node.go#L284

Added line #L284 was not covered by tests
if err != nil {
Expand Down
44 changes: 23 additions & 21 deletions node/node_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,25 +18,26 @@ import (
// Create a new node with all services enabled.
func TestNewNode(t *testing.T) {
config := &node.Config{
LogLevel: utils.INFO,
HTTP: true,
HTTPPort: 0,
Websocket: true,
WebsocketPort: 0,
GRPC: true,
GRPCPort: 0,
DatabasePath: t.TempDir(),
Network: utils.Sepolia, // P2P will only work with Sepolia (for the time being)
EthNode: "",
Pprof: true,
PprofPort: 0,
Colour: true,
PendingPollInterval: time.Second,
Metrics: true,
MetricsPort: 0,
P2P: true,
P2PAddr: "",
P2PPeers: "",
LogLevel: utils.INFO,
HTTP: true,
HTTPPort: 0,
Websocket: true,
WebsocketPort: 0,
GRPC: true,
GRPCPort: 0,
DatabasePath: t.TempDir(),
Network: utils.Sepolia, // P2P will only work with Sepolia (for the time being)
EthNode: "",
DisableL1Verification: true,
Pprof: true,
PprofPort: 0,
Colour: true,
PendingPollInterval: time.Second,
Metrics: true,
MetricsPort: 0,
P2P: true,
P2PAddr: "",
P2PPeers: "",
}

n, err := node.New(config, "v0.3")
Expand Down Expand Up @@ -77,8 +78,9 @@ func TestNetworkVerificationOnNonEmptyDB(t *testing.T) {
require.NoError(t, database.Close())

_, err = node.New(&node.Config{
DatabasePath: dbPath,
Network: test.network,
DatabasePath: dbPath,
Network: test.network,
DisableL1Verification: true,
}, "v0.1")
if test.errString == "" {
require.NoError(t, err)
Expand Down

0 comments on commit 81d6a31

Please sign in to comment.