github.com/klaytn/klaytn@v1.10.2/cmd/utils/nodecmd/nodeflags.go (about)

     1  // Modifications Copyright 2019 The klaytn Authors
     2  // Copyright 2016 The go-ethereum Authors
     3  // This file is part of go-ethereum.
     4  //
     5  // go-ethereum is free software: you can redistribute it and/or modify
     6  // it under the terms of the GNU General Public License as published by
     7  // the Free Software Foundation, either version 3 of the License, or
     8  // (at your option) any later version.
     9  //
    10  // go-ethereum is distributed in the hope that it will be useful,
    11  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    12  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    13  // GNU General Public License for more details.
    14  //
    15  // You should have received a copy of the GNU General Public License
    16  // along with go-ethereum. If not, see <http://www.gnu.org/licenses/>.
    17  //
    18  // This file is derived from cmd/geth/main.go (2018/06/04).
    19  // Modified and improved for the klaytn development.
    20  
    21  package nodecmd
    22  
    23  import (
    24  	"github.com/klaytn/klaytn/api/debug"
    25  	"github.com/klaytn/klaytn/cmd/utils"
    26  	"gopkg.in/urfave/cli.v1"
    27  	"gopkg.in/urfave/cli.v1/altsrc"
    28  )
    29  
    30  // TODO-Klaytn: Check whether all flags are registered in utils.FlagGroups
    31  
    32  // All flags used for each node type
    33  func KcnNodeFlags() []cli.Flag {
    34  	return append(CommonNodeFlags, KCNFlags...)
    35  }
    36  
    37  func KpnNodeFlags() []cli.Flag {
    38  	return append(CommonNodeFlags, KPNFlags...)
    39  }
    40  
    41  func KenNodeFlags() []cli.Flag {
    42  	return append(CommonNodeFlags, KENFlags...)
    43  }
    44  
    45  func KscnNodeFlags() []cli.Flag {
    46  	return append(CommonNodeFlags, KSCNFlags...)
    47  }
    48  
    49  func KspnNodeFlags() []cli.Flag {
    50  	return append(CommonNodeFlags, KSPNFlags...)
    51  }
    52  
    53  func KsenNodeFlags() []cli.Flag {
    54  	return append(CommonNodeFlags, KSENFlags...)
    55  }
    56  
    57  func KcnAppFlags() []cli.Flag {
    58  	flags := append([]cli.Flag{}, KcnNodeFlags()...)
    59  	flags = append(flags, CommonRPCFlags...)
    60  	flags = append(flags, ConsoleFlags...)
    61  	flags = append(flags, debug.Flags...)
    62  	flags = append(flags, DBMigrationFlags...)
    63  	return flags
    64  }
    65  
    66  func KpnAppFlags() []cli.Flag {
    67  	flags := append([]cli.Flag{}, KpnNodeFlags()...)
    68  	flags = append(flags, CommonRPCFlags...)
    69  	flags = append(flags, ConsoleFlags...)
    70  	flags = append(flags, debug.Flags...)
    71  	flags = append(flags, DBMigrationFlags...)
    72  	flags = append(flags, ChainDataFetcherFlags...)
    73  	return flags
    74  }
    75  
    76  func KenAppFlags() []cli.Flag {
    77  	flags := append([]cli.Flag{}, KenNodeFlags()...)
    78  	flags = append(flags, CommonRPCFlags...)
    79  	flags = append(flags, ConsoleFlags...)
    80  	flags = append(flags, debug.Flags...)
    81  	flags = append(flags, DBMigrationFlags...)
    82  	flags = append(flags, ChainDataFetcherFlags...)
    83  	return flags
    84  }
    85  
    86  func KscnAppFlags() []cli.Flag {
    87  	flags := append([]cli.Flag{}, KscnNodeFlags()...)
    88  	flags = append(flags, CommonRPCFlags...)
    89  	flags = append(flags, ConsoleFlags...)
    90  	flags = append(flags, debug.Flags...)
    91  	return flags
    92  }
    93  
    94  func KspnAppFlags() []cli.Flag {
    95  	flags := append([]cli.Flag{}, KspnNodeFlags()...)
    96  	flags = append(flags, CommonRPCFlags...)
    97  	flags = append(flags, ConsoleFlags...)
    98  	flags = append(flags, debug.Flags...)
    99  	flags = append(flags, ChainDataFetcherFlags...)
   100  	return flags
   101  }
   102  
   103  func KsenAppFlags() []cli.Flag {
   104  	flags := append([]cli.Flag{}, KsenNodeFlags()...)
   105  	flags = append(flags, CommonRPCFlags...)
   106  	flags = append(flags, ConsoleFlags...)
   107  	flags = append(flags, debug.Flags...)
   108  	flags = append(flags, ChainDataFetcherFlags...)
   109  	return flags
   110  }
   111  
   112  // Common flags that configure the node
   113  var CommonNodeFlags = []cli.Flag{
   114  	utils.ConfFlag,
   115  	altsrc.NewBoolFlag(utils.NtpDisableFlag),
   116  	altsrc.NewStringFlag(utils.NtpServerFlag),
   117  	altsrc.NewStringFlag(utils.BootnodesFlag),
   118  	altsrc.NewStringFlag(utils.IdentityFlag),
   119  	altsrc.NewStringFlag(utils.UnlockedAccountFlag),
   120  	altsrc.NewStringFlag(utils.PasswordFileFlag),
   121  	altsrc.NewStringFlag(utils.DbTypeFlag),
   122  	utils.NewWrappedDirectoryFlag(utils.DataDirFlag),
   123  	altsrc.NewBoolFlag(utils.OverwriteGenesisFlag),
   124  	altsrc.NewUint64Flag(utils.StartBlockNumberFlag),
   125  	utils.NewWrappedDirectoryFlag(utils.KeyStoreDirFlag),
   126  	altsrc.NewBoolFlag(utils.TxPoolNoLocalsFlag),
   127  	altsrc.NewBoolFlag(utils.TxPoolAllowLocalAnchorTxFlag),
   128  	altsrc.NewBoolFlag(utils.TxPoolDenyRemoteTxFlag),
   129  	altsrc.NewStringFlag(utils.TxPoolJournalFlag),
   130  	altsrc.NewDurationFlag(utils.TxPoolJournalIntervalFlag),
   131  	altsrc.NewUint64Flag(utils.TxPoolPriceLimitFlag),
   132  	altsrc.NewUint64Flag(utils.TxPoolPriceBumpFlag),
   133  	altsrc.NewUint64Flag(utils.TxPoolExecSlotsAccountFlag),
   134  	altsrc.NewUint64Flag(utils.TxPoolExecSlotsAllFlag),
   135  	altsrc.NewUint64Flag(utils.TxPoolNonExecSlotsAccountFlag),
   136  	altsrc.NewUint64Flag(utils.TxPoolNonExecSlotsAllFlag),
   137  	altsrc.NewDurationFlag(utils.TxPoolLifetimeFlag),
   138  	altsrc.NewBoolFlag(utils.TxPoolKeepLocalsFlag),
   139  	utils.NewWrappedTextMarshalerFlag(utils.SyncModeFlag),
   140  	altsrc.NewStringFlag(utils.GCModeFlag),
   141  	altsrc.NewBoolFlag(utils.LightKDFFlag),
   142  	altsrc.NewBoolFlag(utils.SingleDBFlag),
   143  	altsrc.NewUintFlag(utils.NumStateTrieShardsFlag),
   144  	altsrc.NewIntFlag(utils.LevelDBCompressionTypeFlag),
   145  	altsrc.NewBoolFlag(utils.LevelDBNoBufferPoolFlag),
   146  	altsrc.NewBoolFlag(utils.DBNoPerformanceMetricsFlag),
   147  	altsrc.NewStringFlag(utils.DynamoDBTableNameFlag),
   148  	altsrc.NewStringFlag(utils.DynamoDBRegionFlag),
   149  	altsrc.NewBoolFlag(utils.DynamoDBIsProvisionedFlag),
   150  	altsrc.NewInt64Flag(utils.DynamoDBReadCapacityFlag),
   151  	altsrc.NewInt64Flag(utils.DynamoDBWriteCapacityFlag),
   152  	altsrc.NewBoolFlag(utils.DynamoDBReadOnlyFlag),
   153  	altsrc.NewIntFlag(utils.LevelDBCacheSizeFlag),
   154  	altsrc.NewBoolFlag(utils.NoParallelDBWriteFlag),
   155  	altsrc.NewBoolFlag(utils.SenderTxHashIndexingFlag),
   156  	altsrc.NewIntFlag(utils.TrieMemoryCacheSizeFlag),
   157  	altsrc.NewUintFlag(utils.TrieBlockIntervalFlag),
   158  	altsrc.NewUint64Flag(utils.TriesInMemoryFlag),
   159  	altsrc.NewIntFlag(utils.CacheTypeFlag),
   160  	altsrc.NewIntFlag(utils.CacheScaleFlag),
   161  	altsrc.NewStringFlag(utils.CacheUsageLevelFlag),
   162  	altsrc.NewIntFlag(utils.MemorySizeFlag),
   163  	altsrc.NewStringFlag(utils.TrieNodeCacheTypeFlag),
   164  	altsrc.NewIntFlag(utils.NumFetcherPrefetchWorkerFlag),
   165  	altsrc.NewBoolFlag(utils.UseSnapshotForPrefetchFlag),
   166  	altsrc.NewIntFlag(utils.TrieNodeCacheLimitFlag),
   167  	altsrc.NewDurationFlag(utils.TrieNodeCacheSavePeriodFlag),
   168  	altsrc.NewStringSliceFlag(utils.TrieNodeCacheRedisEndpointsFlag),
   169  	altsrc.NewBoolFlag(utils.TrieNodeCacheRedisClusterFlag),
   170  	altsrc.NewBoolFlag(utils.TrieNodeCacheRedisPublishBlockFlag),
   171  	altsrc.NewBoolFlag(utils.TrieNodeCacheRedisSubscribeBlockFlag),
   172  	altsrc.NewIntFlag(utils.ListenPortFlag),
   173  	altsrc.NewIntFlag(utils.SubListenPortFlag),
   174  	altsrc.NewBoolFlag(utils.MultiChannelUseFlag),
   175  	altsrc.NewIntFlag(utils.MaxConnectionsFlag),
   176  	altsrc.NewIntFlag(utils.MaxRequestContentLengthFlag),
   177  	altsrc.NewIntFlag(utils.MaxPendingPeersFlag),
   178  	altsrc.NewUint64Flag(utils.TargetGasLimitFlag),
   179  	altsrc.NewStringFlag(utils.NATFlag),
   180  	altsrc.NewBoolFlag(utils.NoDiscoverFlag),
   181  	altsrc.NewDurationFlag(utils.RWTimerWaitTimeFlag),
   182  	altsrc.NewUint64Flag(utils.RWTimerIntervalFlag),
   183  	altsrc.NewStringFlag(utils.NetrestrictFlag),
   184  	altsrc.NewStringFlag(utils.NodeKeyFileFlag),
   185  	altsrc.NewStringFlag(utils.NodeKeyHexFlag),
   186  	altsrc.NewBoolFlag(utils.VMEnableDebugFlag),
   187  	altsrc.NewIntFlag(utils.VMLogTargetFlag),
   188  	altsrc.NewBoolFlag(utils.VMTraceInternalTxFlag),
   189  	altsrc.NewUint64Flag(utils.NetworkIdFlag),
   190  	altsrc.NewStringFlag(utils.RPCCORSDomainFlag),
   191  	altsrc.NewStringFlag(utils.RPCVirtualHostsFlag),
   192  	altsrc.NewBoolFlag(utils.RPCNonEthCompatibleFlag),
   193  	altsrc.NewBoolFlag(utils.MetricsEnabledFlag),
   194  	altsrc.NewBoolFlag(utils.PrometheusExporterFlag),
   195  	altsrc.NewIntFlag(utils.PrometheusExporterPortFlag),
   196  	altsrc.NewStringFlag(utils.ExtraDataFlag),
   197  	altsrc.NewStringFlag(utils.SrvTypeFlag),
   198  	altsrc.NewBoolFlag(utils.AutoRestartFlag),
   199  	altsrc.NewDurationFlag(utils.RestartTimeOutFlag),
   200  	altsrc.NewStringFlag(utils.DaemonPathFlag),
   201  	altsrc.NewStringFlag(utils.ConfigFileFlag),
   202  	altsrc.NewIntFlag(utils.APIFilterGetLogsMaxItemsFlag),
   203  	altsrc.NewDurationFlag(utils.APIFilterGetLogsDeadlineFlag),
   204  	altsrc.NewUint64Flag(utils.OpcodeComputationCostLimitFlag),
   205  	altsrc.NewBoolFlag(utils.SnapshotFlag),
   206  	altsrc.NewIntFlag(utils.SnapshotCacheSizeFlag),
   207  	altsrc.NewBoolTFlag(utils.SnapshotAsyncGen),
   208  }
   209  
   210  // Common RPC flags
   211  var CommonRPCFlags = []cli.Flag{
   212  	altsrc.NewBoolFlag(utils.RPCEnabledFlag),
   213  	altsrc.NewStringFlag(utils.RPCListenAddrFlag),
   214  	altsrc.NewIntFlag(utils.RPCPortFlag),
   215  	altsrc.NewStringFlag(utils.RPCApiFlag),
   216  	altsrc.NewUint64Flag(utils.RPCGlobalGasCap),
   217  	altsrc.NewDurationFlag(utils.RPCGlobalEVMTimeoutFlag),
   218  	altsrc.NewFloat64Flag(utils.RPCGlobalEthTxFeeCapFlag),
   219  	altsrc.NewBoolFlag(utils.WSEnabledFlag),
   220  	altsrc.NewStringFlag(utils.WSListenAddrFlag),
   221  	altsrc.NewIntFlag(utils.WSPortFlag),
   222  	altsrc.NewBoolFlag(utils.GRPCEnabledFlag),
   223  	altsrc.NewStringFlag(utils.GRPCListenAddrFlag),
   224  	altsrc.NewIntFlag(utils.GRPCPortFlag),
   225  	altsrc.NewIntFlag(utils.RPCConcurrencyLimit),
   226  	altsrc.NewStringFlag(utils.WSApiFlag),
   227  	altsrc.NewStringFlag(utils.WSAllowedOriginsFlag),
   228  	altsrc.NewIntFlag(utils.WSMaxSubscriptionPerConn),
   229  	altsrc.NewInt64Flag(utils.WSReadDeadLine),
   230  	altsrc.NewInt64Flag(utils.WSWriteDeadLine),
   231  	altsrc.NewIntFlag(utils.WSMaxConnections),
   232  	altsrc.NewBoolFlag(utils.IPCDisabledFlag),
   233  	utils.NewWrappedDirectoryFlag(utils.IPCPathFlag),
   234  	altsrc.NewIntFlag(utils.RPCReadTimeout),
   235  	altsrc.NewIntFlag(utils.RPCWriteTimeoutFlag),
   236  	altsrc.NewIntFlag(utils.RPCIdleTimeoutFlag),
   237  	altsrc.NewIntFlag(utils.RPCExecutionTimeoutFlag),
   238  	altsrc.NewBoolFlag(utils.UnsafeDebugDisableFlag),
   239  }
   240  
   241  var KCNFlags = []cli.Flag{
   242  	altsrc.NewStringFlag(utils.RewardbaseFlag),
   243  	altsrc.NewBoolFlag(utils.CypressFlag),
   244  	altsrc.NewBoolFlag(utils.BaobabFlag),
   245  	altsrc.NewInt64Flag(utils.BlockGenerationIntervalFlag),
   246  	altsrc.NewDurationFlag(utils.BlockGenerationTimeLimitFlag),
   247  }
   248  
   249  var KPNFlags = []cli.Flag{
   250  	altsrc.NewUint64Flag(utils.TxResendIntervalFlag),
   251  	altsrc.NewIntFlag(utils.TxResendCountFlag),
   252  	altsrc.NewBoolFlag(utils.TxResendUseLegacyFlag),
   253  	altsrc.NewBoolFlag(utils.CypressFlag),
   254  	altsrc.NewBoolFlag(utils.BaobabFlag),
   255  	altsrc.NewBoolFlag(utils.TxPoolSpamThrottlerDisableFlag),
   256  }
   257  
   258  var KENFlags = []cli.Flag{
   259  	altsrc.NewStringFlag(utils.ServiceChainSignerFlag),
   260  	altsrc.NewBoolFlag(utils.CypressFlag),
   261  	altsrc.NewBoolFlag(utils.BaobabFlag),
   262  	altsrc.NewBoolFlag(utils.ChildChainIndexingFlag),
   263  	altsrc.NewBoolFlag(utils.MainBridgeFlag),
   264  	altsrc.NewIntFlag(utils.MainBridgeListenPortFlag),
   265  	altsrc.NewBoolFlag(utils.KESNodeTypeServiceFlag),
   266  	// DBSyncer
   267  	altsrc.NewBoolFlag(utils.EnableDBSyncerFlag),
   268  	altsrc.NewStringFlag(utils.DBHostFlag),
   269  	altsrc.NewStringFlag(utils.DBPortFlag),
   270  	altsrc.NewStringFlag(utils.DBNameFlag),
   271  	altsrc.NewStringFlag(utils.DBUserFlag),
   272  	altsrc.NewStringFlag(utils.DBPasswordFlag),
   273  	altsrc.NewBoolFlag(utils.EnabledLogModeFlag),
   274  	altsrc.NewIntFlag(utils.MaxIdleConnsFlag),
   275  	altsrc.NewIntFlag(utils.MaxOpenConnsFlag),
   276  	altsrc.NewDurationFlag(utils.ConnMaxLifeTimeFlag),
   277  	altsrc.NewIntFlag(utils.BlockSyncChannelSizeFlag),
   278  	altsrc.NewStringFlag(utils.DBSyncerModeFlag),
   279  	altsrc.NewIntFlag(utils.GenQueryThreadFlag),
   280  	altsrc.NewIntFlag(utils.InsertThreadFlag),
   281  	altsrc.NewIntFlag(utils.BulkInsertSizeFlag),
   282  	altsrc.NewStringFlag(utils.EventModeFlag),
   283  	altsrc.NewUint64Flag(utils.MaxBlockDiffFlag),
   284  	altsrc.NewUint64Flag(utils.TxResendIntervalFlag),
   285  	altsrc.NewIntFlag(utils.TxResendCountFlag),
   286  	altsrc.NewBoolFlag(utils.TxResendUseLegacyFlag),
   287  }
   288  
   289  var KSCNFlags = []cli.Flag{
   290  	altsrc.NewStringFlag(utils.RewardbaseFlag),
   291  	altsrc.NewInt64Flag(utils.BlockGenerationIntervalFlag),
   292  	altsrc.NewDurationFlag(utils.BlockGenerationTimeLimitFlag),
   293  	altsrc.NewStringFlag(utils.ServiceChainSignerFlag),
   294  	altsrc.NewUint64Flag(utils.AnchoringPeriodFlag),
   295  	altsrc.NewUint64Flag(utils.SentChainTxsLimit),
   296  	altsrc.NewBoolFlag(utils.MainBridgeFlag),
   297  	altsrc.NewIntFlag(utils.MainBridgeListenPortFlag),
   298  	altsrc.NewBoolFlag(utils.ChildChainIndexingFlag),
   299  	altsrc.NewBoolFlag(utils.SubBridgeFlag),
   300  	altsrc.NewIntFlag(utils.SubBridgeListenPortFlag),
   301  	altsrc.NewIntFlag(utils.ParentChainIDFlag),
   302  	altsrc.NewBoolFlag(utils.VTRecoveryFlag),
   303  	altsrc.NewUint64Flag(utils.VTRecoveryIntervalFlag),
   304  	altsrc.NewBoolFlag(utils.ServiceChainNewAccountFlag),
   305  	altsrc.NewBoolFlag(utils.ServiceChainAnchoringFlag),
   306  	altsrc.NewUint64Flag(utils.ServiceChainParentOperatorTxGasLimitFlag),
   307  	altsrc.NewUint64Flag(utils.ServiceChainChildOperatorTxGasLimitFlag),
   308  	// KAS
   309  	altsrc.NewBoolFlag(utils.KASServiceChainAnchorFlag),
   310  	altsrc.NewUint64Flag(utils.KASServiceChainAnchorPeriodFlag),
   311  	altsrc.NewStringFlag(utils.KASServiceChainAnchorUrlFlag),
   312  	altsrc.NewStringFlag(utils.KASServiceChainAnchorOperatorFlag),
   313  	altsrc.NewStringFlag(utils.KASServiceChainSecretKeyFlag),
   314  	altsrc.NewStringFlag(utils.KASServiceChainAccessKeyFlag),
   315  	altsrc.NewStringFlag(utils.KASServiceChainXChainIdFlag),
   316  	altsrc.NewDurationFlag(utils.KASServiceChainAnchorRequestTimeoutFlag),
   317  }
   318  
   319  var KSPNFlags = []cli.Flag{
   320  	altsrc.NewUint64Flag(utils.TxResendIntervalFlag),
   321  	altsrc.NewIntFlag(utils.TxResendCountFlag),
   322  	altsrc.NewBoolFlag(utils.TxResendUseLegacyFlag),
   323  	altsrc.NewBoolFlag(utils.TxPoolSpamThrottlerDisableFlag),
   324  	altsrc.NewStringFlag(utils.ServiceChainSignerFlag),
   325  	altsrc.NewUint64Flag(utils.AnchoringPeriodFlag),
   326  	altsrc.NewUint64Flag(utils.SentChainTxsLimit),
   327  	altsrc.NewBoolFlag(utils.MainBridgeFlag),
   328  	altsrc.NewIntFlag(utils.MainBridgeListenPortFlag),
   329  	altsrc.NewBoolFlag(utils.ChildChainIndexingFlag),
   330  	altsrc.NewBoolFlag(utils.SubBridgeFlag),
   331  	altsrc.NewIntFlag(utils.SubBridgeListenPortFlag),
   332  	altsrc.NewIntFlag(utils.ParentChainIDFlag),
   333  	altsrc.NewBoolFlag(utils.VTRecoveryFlag),
   334  	altsrc.NewUint64Flag(utils.VTRecoveryIntervalFlag),
   335  	altsrc.NewBoolFlag(utils.ServiceChainNewAccountFlag),
   336  	altsrc.NewBoolFlag(utils.ServiceChainAnchoringFlag),
   337  	altsrc.NewUint64Flag(utils.ServiceChainParentOperatorTxGasLimitFlag),
   338  	altsrc.NewUint64Flag(utils.ServiceChainChildOperatorTxGasLimitFlag),
   339  	// KAS
   340  	altsrc.NewBoolFlag(utils.KASServiceChainAnchorFlag),
   341  	altsrc.NewUint64Flag(utils.KASServiceChainAnchorPeriodFlag),
   342  	altsrc.NewStringFlag(utils.KASServiceChainAnchorUrlFlag),
   343  	altsrc.NewStringFlag(utils.KASServiceChainAnchorOperatorFlag),
   344  	altsrc.NewStringFlag(utils.KASServiceChainSecretKeyFlag),
   345  	altsrc.NewStringFlag(utils.KASServiceChainAccessKeyFlag),
   346  	altsrc.NewStringFlag(utils.KASServiceChainXChainIdFlag),
   347  	altsrc.NewDurationFlag(utils.KASServiceChainAnchorRequestTimeoutFlag),
   348  }
   349  
   350  var KSENFlags = []cli.Flag{
   351  	altsrc.NewStringFlag(utils.ServiceChainSignerFlag),
   352  	altsrc.NewBoolFlag(utils.ChildChainIndexingFlag),
   353  	altsrc.NewBoolFlag(utils.MainBridgeFlag),
   354  	altsrc.NewIntFlag(utils.MainBridgeListenPortFlag),
   355  	altsrc.NewBoolFlag(utils.SubBridgeFlag),
   356  	altsrc.NewIntFlag(utils.SubBridgeListenPortFlag),
   357  	altsrc.NewUint64Flag(utils.AnchoringPeriodFlag),
   358  	altsrc.NewUint64Flag(utils.SentChainTxsLimit),
   359  	altsrc.NewIntFlag(utils.ParentChainIDFlag),
   360  	altsrc.NewBoolFlag(utils.VTRecoveryFlag),
   361  	altsrc.NewUint64Flag(utils.VTRecoveryIntervalFlag),
   362  	altsrc.NewBoolFlag(utils.ServiceChainAnchoringFlag),
   363  	altsrc.NewBoolFlag(utils.KESNodeTypeServiceFlag),
   364  	altsrc.NewUint64Flag(utils.ServiceChainParentOperatorTxGasLimitFlag),
   365  	altsrc.NewUint64Flag(utils.ServiceChainChildOperatorTxGasLimitFlag),
   366  	// KAS
   367  	altsrc.NewBoolFlag(utils.KASServiceChainAnchorFlag),
   368  	altsrc.NewUint64Flag(utils.KASServiceChainAnchorPeriodFlag),
   369  	altsrc.NewStringFlag(utils.KASServiceChainAnchorUrlFlag),
   370  	altsrc.NewStringFlag(utils.KASServiceChainAnchorOperatorFlag),
   371  	altsrc.NewStringFlag(utils.KASServiceChainSecretKeyFlag),
   372  	altsrc.NewStringFlag(utils.KASServiceChainAccessKeyFlag),
   373  	altsrc.NewStringFlag(utils.KASServiceChainXChainIdFlag),
   374  	altsrc.NewDurationFlag(utils.KASServiceChainAnchorRequestTimeoutFlag),
   375  	// DBSyncer
   376  	altsrc.NewBoolFlag(utils.EnableDBSyncerFlag),
   377  	altsrc.NewStringFlag(utils.DBHostFlag),
   378  	altsrc.NewStringFlag(utils.DBPortFlag),
   379  	altsrc.NewStringFlag(utils.DBNameFlag),
   380  	altsrc.NewStringFlag(utils.DBUserFlag),
   381  	altsrc.NewStringFlag(utils.DBPasswordFlag),
   382  	altsrc.NewBoolFlag(utils.EnabledLogModeFlag),
   383  	altsrc.NewIntFlag(utils.MaxIdleConnsFlag),
   384  	altsrc.NewIntFlag(utils.MaxOpenConnsFlag),
   385  	altsrc.NewDurationFlag(utils.ConnMaxLifeTimeFlag),
   386  	altsrc.NewIntFlag(utils.BlockSyncChannelSizeFlag),
   387  	altsrc.NewStringFlag(utils.DBSyncerModeFlag),
   388  	altsrc.NewIntFlag(utils.GenQueryThreadFlag),
   389  	altsrc.NewIntFlag(utils.InsertThreadFlag),
   390  	altsrc.NewIntFlag(utils.BulkInsertSizeFlag),
   391  	altsrc.NewStringFlag(utils.EventModeFlag),
   392  	altsrc.NewUint64Flag(utils.MaxBlockDiffFlag),
   393  	altsrc.NewUint64Flag(utils.TxResendIntervalFlag),
   394  	altsrc.NewIntFlag(utils.TxResendCountFlag),
   395  	altsrc.NewBoolFlag(utils.TxResendUseLegacyFlag),
   396  }
   397  
   398  var DBMigrationFlags = []cli.Flag{
   399  	altsrc.NewStringFlag(utils.DstDbTypeFlag),
   400  	utils.NewWrappedDirectoryFlag(utils.DstDataDirFlag),
   401  	altsrc.NewBoolFlag(utils.DstSingleDBFlag),
   402  	altsrc.NewIntFlag(utils.DstLevelDBCompressionTypeFlag),
   403  	altsrc.NewUintFlag(utils.DstNumStateTrieShardsFlag),
   404  	altsrc.NewStringFlag(utils.DstDynamoDBTableNameFlag),
   405  	altsrc.NewStringFlag(utils.DstDynamoDBRegionFlag),
   406  	altsrc.NewBoolFlag(utils.DstDynamoDBIsProvisionedFlag),
   407  	altsrc.NewInt64Flag(utils.DstDynamoDBReadCapacityFlag),
   408  	altsrc.NewInt64Flag(utils.DstDynamoDBWriteCapacityFlag),
   409  }
   410  
   411  var ChainDataFetcherFlags = []cli.Flag{
   412  	altsrc.NewBoolFlag(utils.EnableChainDataFetcherFlag),
   413  	altsrc.NewStringFlag(utils.ChainDataFetcherMode),
   414  	altsrc.NewBoolFlag(utils.ChainDataFetcherNoDefault),
   415  	altsrc.NewIntFlag(utils.ChainDataFetcherNumHandlers),
   416  	altsrc.NewIntFlag(utils.ChainDataFetcherJobChannelSize),
   417  	altsrc.NewIntFlag(utils.ChainDataFetcherChainEventSizeFlag),
   418  	altsrc.NewIntFlag(utils.ChainDataFetcherMaxProcessingDataSize),
   419  	altsrc.NewStringFlag(utils.ChainDataFetcherKASDBHostFlag),
   420  	altsrc.NewStringFlag(utils.ChainDataFetcherKASDBPortFlag),
   421  	altsrc.NewStringFlag(utils.ChainDataFetcherKASDBNameFlag),
   422  	altsrc.NewStringFlag(utils.ChainDataFetcherKASDBUserFlag),
   423  	altsrc.NewStringFlag(utils.ChainDataFetcherKASDBPasswordFlag),
   424  	altsrc.NewBoolFlag(utils.ChainDataFetcherKASCacheUse),
   425  	altsrc.NewStringFlag(utils.ChainDataFetcherKASCacheURLFlag),
   426  	altsrc.NewStringFlag(utils.ChainDataFetcherKASXChainIdFlag),
   427  	altsrc.NewStringFlag(utils.ChainDataFetcherKASBasicAuthParamFlag),
   428  	altsrc.NewInt64Flag(utils.ChainDataFetcherKafkaReplicasFlag),
   429  	altsrc.NewStringSliceFlag(utils.ChainDataFetcherKafkaBrokersFlag),
   430  	altsrc.NewIntFlag(utils.ChainDataFetcherKafkaPartitionsFlag),
   431  	altsrc.NewStringFlag(utils.ChainDataFetcherKafkaTopicResourceFlag),
   432  	altsrc.NewStringFlag(utils.ChainDataFetcherKafkaTopicEnvironmentFlag),
   433  	altsrc.NewInt64Flag(utils.ChainDataFetcherKafkaMaxMessageBytesFlag),
   434  	altsrc.NewIntFlag(utils.ChainDataFetcherKafkaSegmentSizeBytesFlag),
   435  	altsrc.NewIntFlag(utils.ChainDataFetcherKafkaRequiredAcksFlag),
   436  	altsrc.NewStringFlag(utils.ChainDataFetcherKafkaMessageVersionFlag),
   437  	altsrc.NewStringFlag(utils.ChainDataFetcherKafkaProducerIdFlag),
   438  }