Skip to content

Commit

Permalink
Define separate fallback RPC argument to work around URL escaping iss…
Browse files Browse the repository at this point in the history
…ues (#777)
  • Loading branch information
pschork authored Oct 2, 2024
1 parent 35e0b6b commit e44ba45
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 0 deletions.
18 changes: 18 additions & 0 deletions common/geth/cli.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (

var (
rpcUrlFlagName = "chain.rpc"
rpcFallbackUrlFlagName = "chain.rpc_fallback"
privateKeyFlagName = "chain.private-key"
numConfirmationsFlagName = "chain.num-confirmations"
numRetriesFlagName = "chain.num-retries"
Expand All @@ -27,6 +28,13 @@ func EthClientFlags(envPrefix string) []cli.Flag {
Required: true,
EnvVar: common.PrefixEnvVar(envPrefix, "CHAIN_RPC"),
},
cli.StringFlag{
Name: rpcFallbackUrlFlagName,
Usage: "Fallback chain rpc for Disperser/Batcher/Dataapi",
Required: false,
Value: "",
EnvVar: common.PrefixEnvVar(envPrefix, "CHAIN_RPC_FALLBACK"),
},
cli.StringFlag{
Name: privateKeyFlagName,
Usage: "Ethereum private key for disperser",
Expand Down Expand Up @@ -57,6 +65,11 @@ func ReadEthClientConfig(ctx *cli.Context) EthClientConfig {
cfg.NumConfirmations = ctx.GlobalInt(numConfirmationsFlagName)
cfg.NumRetries = ctx.GlobalInt(numRetriesFlagName)

fallbackRPCURL := ctx.GlobalString(rpcFallbackUrlFlagName)
if len(fallbackRPCURL) > 0 {
cfg.RPCURLs = append(cfg.RPCURLs, []string{fallbackRPCURL}...)
}

return cfg
}

Expand All @@ -68,5 +81,10 @@ func ReadEthClientConfigRPCOnly(ctx *cli.Context) EthClientConfig {
cfg.NumConfirmations = ctx.GlobalInt(numConfirmationsFlagName)
cfg.NumRetries = ctx.GlobalInt(numRetriesFlagName)

fallbackRPCURL := ctx.GlobalString(rpcFallbackUrlFlagName)
if len(fallbackRPCURL) > 0 {
cfg.RPCURLs = append(cfg.RPCURLs, []string{fallbackRPCURL}...)
}

return cfg
}
6 changes: 6 additions & 0 deletions common/geth/multihoming_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ var _ dacommon.EthClient = (*MultiHomingClient)(nil)
func NewMultiHomingClient(config EthClientConfig, senderAddress gethcommon.Address, logger logging.Logger) (*MultiHomingClient, error) {
rpcUrls := config.RPCURLs

if len(config.RPCURLs) > 1 {
logger.Info("Fallback chain RPC enabled")
} else {
logger.Info("Fallback chain RPC not available")
}

FailoverController, err := NewFailoverController(logger, rpcUrls)
if err != nil {
return nil, err
Expand Down
1 change: 1 addition & 0 deletions disperser/cmd/apiserver/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ func RunDisperserServer(ctx *cli.Context) error {
if err != nil {
return err
}

client, err := geth.NewMultiHomingClient(config.EthClientConfig, gethcommon.Address{}, logger)
if err != nil {
logger.Error("Cannot create chain.Client", "err", err)
Expand Down

0 comments on commit e44ba45

Please sign in to comment.