github.com/klaytn/klaytn@v1.12.1/cmd/utils/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 utils
    22  
    23  import (
    24  	"github.com/klaytn/klaytn/api/debug"
    25  	"github.com/urfave/cli/v2"
    26  	"github.com/urfave/cli/v2/altsrc"
    27  )
    28  
    29  // TODO-Klaytn: Check whether all flags are registered in utils.FlagGroups
    30  
    31  func AllNodeFlags() []cli.Flag {
    32  	nodeFlags := []cli.Flag{}
    33  	nodeFlags = append(nodeFlags, CommonNodeFlags...)
    34  	nodeFlags = append(nodeFlags, CommonRPCFlags...)
    35  	nodeFlags = append(nodeFlags, ConsoleFlags...)
    36  	nodeFlags = append(nodeFlags, debug.Flags...)
    37  	nodeFlags = append(nodeFlags, ChainDataFetcherFlags...)
    38  	nodeFlags = union(nodeFlags, SnapshotFlags)
    39  	nodeFlags = union(nodeFlags, DBMigrationSrcFlags)
    40  	nodeFlags = union(nodeFlags, DBMigrationDstFlags)
    41  	nodeFlags = union(nodeFlags, BNFlags)
    42  	nodeFlags = union(nodeFlags, KCNFlags)
    43  	nodeFlags = union(nodeFlags, KPNFlags)
    44  	nodeFlags = union(nodeFlags, KENFlags)
    45  	nodeFlags = union(nodeFlags, KSCNFlags)
    46  	nodeFlags = union(nodeFlags, KSPNFlags)
    47  	nodeFlags = union(nodeFlags, KSENFlags)
    48  	return nodeFlags
    49  }
    50  
    51  func contains(list []cli.Flag, item cli.Flag) bool {
    52  	for _, flag := range list {
    53  		if flag.Names()[0] == item.Names()[0] {
    54  			return true
    55  		}
    56  	}
    57  	return false
    58  }
    59  
    60  func union(list1, list2 []cli.Flag) []cli.Flag {
    61  	for _, item := range list2 {
    62  		if !contains(list1, item) {
    63  			list1 = append(list1, item)
    64  		}
    65  	}
    66  	return list1
    67  }
    68  
    69  // All flags used for each node type
    70  func KcnNodeFlags() []cli.Flag {
    71  	return append(CommonNodeFlags, KCNFlags...)
    72  }
    73  
    74  func KpnNodeFlags() []cli.Flag {
    75  	return append(CommonNodeFlags, KPNFlags...)
    76  }
    77  
    78  func KenNodeFlags() []cli.Flag {
    79  	return append(CommonNodeFlags, KENFlags...)
    80  }
    81  
    82  func KscnNodeFlags() []cli.Flag {
    83  	return append(CommonNodeFlags, KSCNFlags...)
    84  }
    85  
    86  func KspnNodeFlags() []cli.Flag {
    87  	return append(CommonNodeFlags, KSPNFlags...)
    88  }
    89  
    90  func KsenNodeFlags() []cli.Flag {
    91  	return append(CommonNodeFlags, KSENFlags...)
    92  }
    93  
    94  func BNAppFlags() []cli.Flag {
    95  	flags := append([]cli.Flag{}, BNFlags...)
    96  	flags = append(flags, debug.Flags...)
    97  	flags = append(flags, CommonRPCFlags...)
    98  	return flags
    99  }
   100  
   101  func KcnAppFlags() []cli.Flag {
   102  	flags := append([]cli.Flag{}, KcnNodeFlags()...)
   103  	flags = append(flags, CommonRPCFlags...)
   104  	flags = append(flags, ConsoleFlags...)
   105  	flags = append(flags, debug.Flags...)
   106  	flags = append(flags, DBMigrationDstFlags...)
   107  	return flags
   108  }
   109  
   110  func KpnAppFlags() []cli.Flag {
   111  	flags := append([]cli.Flag{}, KpnNodeFlags()...)
   112  	flags = append(flags, CommonRPCFlags...)
   113  	flags = append(flags, ConsoleFlags...)
   114  	flags = append(flags, debug.Flags...)
   115  	flags = append(flags, DBMigrationDstFlags...)
   116  	flags = append(flags, ChainDataFetcherFlags...)
   117  	return flags
   118  }
   119  
   120  func KenAppFlags() []cli.Flag {
   121  	flags := append([]cli.Flag{}, KenNodeFlags()...)
   122  	flags = append(flags, CommonRPCFlags...)
   123  	flags = append(flags, ConsoleFlags...)
   124  	flags = append(flags, debug.Flags...)
   125  	flags = append(flags, DBMigrationDstFlags...)
   126  	flags = append(flags, ChainDataFetcherFlags...)
   127  	return flags
   128  }
   129  
   130  func KscnAppFlags() []cli.Flag {
   131  	flags := append([]cli.Flag{}, KscnNodeFlags()...)
   132  	flags = append(flags, CommonRPCFlags...)
   133  	flags = append(flags, ConsoleFlags...)
   134  	flags = append(flags, debug.Flags...)
   135  	return flags
   136  }
   137  
   138  func KspnAppFlags() []cli.Flag {
   139  	flags := append([]cli.Flag{}, KspnNodeFlags()...)
   140  	flags = append(flags, CommonRPCFlags...)
   141  	flags = append(flags, ConsoleFlags...)
   142  	flags = append(flags, debug.Flags...)
   143  	flags = append(flags, ChainDataFetcherFlags...)
   144  	return flags
   145  }
   146  
   147  func KsenAppFlags() []cli.Flag {
   148  	flags := append([]cli.Flag{}, KsenNodeFlags()...)
   149  	flags = append(flags, CommonRPCFlags...)
   150  	flags = append(flags, ConsoleFlags...)
   151  	flags = append(flags, debug.Flags...)
   152  	flags = append(flags, ChainDataFetcherFlags...)
   153  	return flags
   154  }
   155  
   156  var ConsoleFlags = []cli.Flag{
   157  	altsrc.NewStringFlag(JSpathFlag),
   158  	altsrc.NewStringFlag(ExecFlag),
   159  	altsrc.NewStringFlag(PreloadJSFlag),
   160  }
   161  
   162  // Common flags that configure the node
   163  var CommonNodeFlags = []cli.Flag{
   164  	ConfFlag,
   165  	altsrc.NewBoolFlag(NtpDisableFlag),
   166  	altsrc.NewStringFlag(NtpServerFlag),
   167  	altsrc.NewPathFlag(DocRootFlag),
   168  	altsrc.NewStringFlag(BootnodesFlag),
   169  	altsrc.NewStringFlag(IdentityFlag),
   170  	altsrc.NewStringFlag(UnlockedAccountFlag),
   171  	altsrc.NewStringFlag(PasswordFileFlag),
   172  	altsrc.NewStringFlag(DbTypeFlag),
   173  	altsrc.NewPathFlag(DataDirFlag),
   174  	altsrc.NewPathFlag(ChainDataDirFlag),
   175  	altsrc.NewBoolFlag(OverwriteGenesisFlag),
   176  	altsrc.NewUint64Flag(StartBlockNumberFlag),
   177  	altsrc.NewPathFlag(KeyStoreDirFlag),
   178  	altsrc.NewBoolFlag(TxPoolNoLocalsFlag),
   179  	altsrc.NewBoolFlag(TxPoolAllowLocalAnchorTxFlag),
   180  	altsrc.NewBoolFlag(TxPoolDenyRemoteTxFlag),
   181  	altsrc.NewStringFlag(TxPoolJournalFlag),
   182  	altsrc.NewDurationFlag(TxPoolJournalIntervalFlag),
   183  	altsrc.NewUint64Flag(TxPoolPriceLimitFlag),
   184  	altsrc.NewUint64Flag(TxPoolPriceBumpFlag),
   185  	altsrc.NewUint64Flag(TxPoolExecSlotsAccountFlag),
   186  	altsrc.NewUint64Flag(TxPoolExecSlotsAllFlag),
   187  	altsrc.NewUint64Flag(TxPoolNonExecSlotsAccountFlag),
   188  	altsrc.NewUint64Flag(TxPoolNonExecSlotsAllFlag),
   189  	altsrc.NewDurationFlag(TxPoolLifetimeFlag),
   190  	altsrc.NewBoolFlag(TxPoolKeepLocalsFlag),
   191  	NewWrappedTextMarshalerFlag(SyncModeFlag),
   192  	altsrc.NewStringFlag(GCModeFlag),
   193  	altsrc.NewBoolFlag(LightKDFFlag),
   194  	altsrc.NewBoolFlag(SingleDBFlag),
   195  	altsrc.NewUintFlag(NumStateTrieShardsFlag),
   196  	altsrc.NewIntFlag(LevelDBCompressionTypeFlag),
   197  	altsrc.NewBoolFlag(LevelDBNoBufferPoolFlag),
   198  	altsrc.NewBoolFlag(DBNoPerformanceMetricsFlag),
   199  	altsrc.NewBoolFlag(RocksDBSecondaryFlag),
   200  	altsrc.NewUint64Flag(RocksDBCacheSizeFlag),
   201  	altsrc.NewBoolFlag(RocksDBDumpMallocStatFlag),
   202  	altsrc.NewStringFlag(RocksDBCompressionTypeFlag),
   203  	altsrc.NewStringFlag(RocksDBBottommostCompressionTypeFlag),
   204  	altsrc.NewStringFlag(RocksDBFilterPolicyFlag),
   205  	altsrc.NewBoolFlag(RocksDBDisableMetricsFlag),
   206  	altsrc.NewIntFlag(RocksDBMaxOpenFilesFlag),
   207  	altsrc.NewBoolFlag(RocksDBCacheIndexAndFilterFlag),
   208  	altsrc.NewStringFlag(DynamoDBTableNameFlag),
   209  	altsrc.NewStringFlag(DynamoDBRegionFlag),
   210  	altsrc.NewBoolFlag(DynamoDBIsProvisionedFlag),
   211  	altsrc.NewInt64Flag(DynamoDBReadCapacityFlag),
   212  	altsrc.NewInt64Flag(DynamoDBWriteCapacityFlag),
   213  	altsrc.NewBoolFlag(DynamoDBReadOnlyFlag),
   214  	altsrc.NewIntFlag(LevelDBCacheSizeFlag),
   215  	altsrc.NewBoolFlag(NoParallelDBWriteFlag),
   216  	altsrc.NewBoolFlag(SenderTxHashIndexingFlag),
   217  	altsrc.NewIntFlag(TrieMemoryCacheSizeFlag),
   218  	altsrc.NewUintFlag(TrieBlockIntervalFlag),
   219  	altsrc.NewUint64Flag(TriesInMemoryFlag),
   220  	altsrc.NewBoolFlag(LivePruningFlag),
   221  	altsrc.NewUint64Flag(LivePruningRetentionFlag),
   222  	altsrc.NewIntFlag(CacheTypeFlag),
   223  	altsrc.NewIntFlag(CacheScaleFlag),
   224  	altsrc.NewStringFlag(CacheUsageLevelFlag),
   225  	altsrc.NewIntFlag(MemorySizeFlag),
   226  	altsrc.NewStringFlag(TrieNodeCacheTypeFlag),
   227  	altsrc.NewIntFlag(NumFetcherPrefetchWorkerFlag),
   228  	altsrc.NewBoolFlag(UseSnapshotForPrefetchFlag),
   229  	altsrc.NewIntFlag(TrieNodeCacheLimitFlag),
   230  	altsrc.NewDurationFlag(TrieNodeCacheSavePeriodFlag),
   231  	altsrc.NewStringSliceFlag(TrieNodeCacheRedisEndpointsFlag),
   232  	altsrc.NewBoolFlag(TrieNodeCacheRedisClusterFlag),
   233  	altsrc.NewBoolFlag(TrieNodeCacheRedisPublishBlockFlag),
   234  	altsrc.NewBoolFlag(TrieNodeCacheRedisSubscribeBlockFlag),
   235  	altsrc.NewIntFlag(ListenPortFlag),
   236  	altsrc.NewIntFlag(SubListenPortFlag),
   237  	altsrc.NewBoolFlag(MultiChannelUseFlag),
   238  	altsrc.NewIntFlag(MaxConnectionsFlag),
   239  	altsrc.NewIntFlag(MaxRequestContentLengthFlag),
   240  	altsrc.NewIntFlag(MaxPendingPeersFlag),
   241  	altsrc.NewUint64Flag(TargetGasLimitFlag),
   242  	altsrc.NewStringFlag(NATFlag),
   243  	altsrc.NewBoolFlag(NoDiscoverFlag),
   244  	altsrc.NewDurationFlag(RWTimerWaitTimeFlag),
   245  	altsrc.NewUint64Flag(RWTimerIntervalFlag),
   246  	altsrc.NewStringFlag(NetrestrictFlag),
   247  	altsrc.NewStringFlag(NodeKeyFileFlag),
   248  	altsrc.NewStringFlag(NodeKeyHexFlag),
   249  	altsrc.NewStringFlag(BlsNodeKeyFileFlag),
   250  	altsrc.NewStringFlag(BlsNodeKeyHexFlag),
   251  	altsrc.NewBoolFlag(VMEnableDebugFlag),
   252  	altsrc.NewIntFlag(VMLogTargetFlag),
   253  	altsrc.NewBoolFlag(VMTraceInternalTxFlag),
   254  	altsrc.NewBoolFlag(VMOpDebugFlag),
   255  	altsrc.NewUint64Flag(NetworkIdFlag),
   256  	altsrc.NewBoolFlag(MetricsEnabledFlag),
   257  	altsrc.NewBoolFlag(PrometheusExporterFlag),
   258  	altsrc.NewIntFlag(PrometheusExporterPortFlag),
   259  	altsrc.NewStringFlag(ExtraDataFlag),
   260  	altsrc.NewStringFlag(SrvTypeFlag),
   261  	altsrc.NewBoolFlag(AutoRestartFlag),
   262  	altsrc.NewDurationFlag(RestartTimeOutFlag),
   263  	altsrc.NewStringFlag(DaemonPathFlag),
   264  	altsrc.NewStringFlag(ConfigFileFlag),
   265  	altsrc.NewIntFlag(APIFilterGetLogsMaxItemsFlag),
   266  	altsrc.NewDurationFlag(APIFilterGetLogsDeadlineFlag),
   267  	altsrc.NewUint64Flag(OpcodeComputationCostLimitFlag),
   268  	altsrc.NewBoolFlag(SnapshotFlag),
   269  	altsrc.NewIntFlag(SnapshotCacheSizeFlag),
   270  	altsrc.NewBoolFlag(SnapshotAsyncGen),
   271  }
   272  
   273  // Common RPC flags
   274  var CommonRPCFlags = []cli.Flag{
   275  	altsrc.NewBoolFlag(RPCEnabledFlag),
   276  	altsrc.NewStringFlag(RPCListenAddrFlag),
   277  	altsrc.NewIntFlag(RPCPortFlag),
   278  	altsrc.NewStringFlag(RPCApiFlag),
   279  	altsrc.NewUint64Flag(RPCGlobalGasCap),
   280  	altsrc.NewFloat64Flag(RPCGlobalEthTxFeeCapFlag),
   281  	altsrc.NewStringFlag(RPCCORSDomainFlag),
   282  	altsrc.NewStringFlag(RPCVirtualHostsFlag),
   283  	altsrc.NewBoolFlag(RPCNonEthCompatibleFlag),
   284  	altsrc.NewDurationFlag(RPCGlobalEVMTimeoutFlag),
   285  	altsrc.NewBoolFlag(WSEnabledFlag),
   286  	altsrc.NewStringFlag(WSListenAddrFlag),
   287  	altsrc.NewIntFlag(WSPortFlag),
   288  	altsrc.NewBoolFlag(GRPCEnabledFlag),
   289  	altsrc.NewStringFlag(GRPCListenAddrFlag),
   290  	altsrc.NewIntFlag(GRPCPortFlag),
   291  	altsrc.NewIntFlag(RPCConcurrencyLimit),
   292  	altsrc.NewStringFlag(WSApiFlag),
   293  	altsrc.NewStringFlag(WSAllowedOriginsFlag),
   294  	altsrc.NewIntFlag(WSMaxSubscriptionPerConn),
   295  	altsrc.NewInt64Flag(WSReadDeadLine),
   296  	altsrc.NewInt64Flag(WSWriteDeadLine),
   297  	altsrc.NewIntFlag(WSMaxConnections),
   298  	altsrc.NewBoolFlag(IPCDisabledFlag),
   299  	altsrc.NewPathFlag(IPCPathFlag),
   300  	altsrc.NewIntFlag(RPCReadTimeout),
   301  	altsrc.NewIntFlag(RPCWriteTimeoutFlag),
   302  	altsrc.NewIntFlag(RPCIdleTimeoutFlag),
   303  	altsrc.NewIntFlag(RPCExecutionTimeoutFlag),
   304  	altsrc.NewBoolFlag(UnsafeDebugDisableFlag),
   305  	altsrc.NewIntFlag(HeavyDebugRequestLimitFlag),
   306  	altsrc.NewDurationFlag(StateRegenerationTimeLimitFlag),
   307  	altsrc.NewStringFlag(RPCUpstreamArchiveENFlag),
   308  }
   309  
   310  var BNFlags = []cli.Flag{
   311  	altsrc.NewStringFlag(SrvTypeFlag),
   312  	altsrc.NewPathFlag(DataDirFlag),
   313  	altsrc.NewStringFlag(GenKeyFlag),
   314  	altsrc.NewStringFlag(NodeKeyFileFlag),
   315  	altsrc.NewStringFlag(NodeKeyHexFlag),
   316  	altsrc.NewBoolFlag(WriteAddressFlag),
   317  	altsrc.NewStringFlag(BNAddrFlag),
   318  	altsrc.NewStringFlag(NATFlag),
   319  	altsrc.NewStringFlag(NetrestrictFlag),
   320  	altsrc.NewBoolFlag(MetricsEnabledFlag),
   321  	altsrc.NewBoolFlag(PrometheusExporterFlag),
   322  	altsrc.NewIntFlag(PrometheusExporterPortFlag),
   323  	altsrc.NewStringFlag(AuthorizedNodesFlag),
   324  	altsrc.NewUint64Flag(NetworkIdFlag),
   325  }
   326  
   327  var KCNFlags = []cli.Flag{
   328  	altsrc.NewStringFlag(RewardbaseFlag),
   329  	altsrc.NewBoolFlag(CypressFlag),
   330  	altsrc.NewBoolFlag(BaobabFlag),
   331  	altsrc.NewInt64Flag(BlockGenerationIntervalFlag),
   332  	altsrc.NewDurationFlag(BlockGenerationTimeLimitFlag),
   333  }
   334  
   335  var KPNFlags = []cli.Flag{
   336  	altsrc.NewUint64Flag(TxResendIntervalFlag),
   337  	altsrc.NewIntFlag(TxResendCountFlag),
   338  	altsrc.NewBoolFlag(TxResendUseLegacyFlag),
   339  	altsrc.NewBoolFlag(CypressFlag),
   340  	altsrc.NewBoolFlag(BaobabFlag),
   341  	altsrc.NewBoolFlag(TxPoolSpamThrottlerDisableFlag),
   342  }
   343  
   344  var KENFlags = []cli.Flag{
   345  	altsrc.NewStringFlag(ServiceChainSignerFlag),
   346  	altsrc.NewBoolFlag(CypressFlag),
   347  	altsrc.NewBoolFlag(BaobabFlag),
   348  	altsrc.NewBoolFlag(ChildChainIndexingFlag),
   349  	altsrc.NewBoolFlag(MainBridgeFlag),
   350  	altsrc.NewIntFlag(MainBridgeListenPortFlag),
   351  	altsrc.NewBoolFlag(KESNodeTypeServiceFlag),
   352  	// DBSyncer
   353  	altsrc.NewBoolFlag(EnableDBSyncerFlag),
   354  	altsrc.NewStringFlag(DBHostFlag),
   355  	altsrc.NewStringFlag(DBPortFlag),
   356  	altsrc.NewStringFlag(DBNameFlag),
   357  	altsrc.NewStringFlag(DBUserFlag),
   358  	altsrc.NewStringFlag(DBPasswordFlag),
   359  	altsrc.NewBoolFlag(EnabledLogModeFlag),
   360  	altsrc.NewIntFlag(MaxIdleConnsFlag),
   361  	altsrc.NewIntFlag(MaxOpenConnsFlag),
   362  	altsrc.NewDurationFlag(ConnMaxLifeTimeFlag),
   363  	altsrc.NewIntFlag(BlockSyncChannelSizeFlag),
   364  	altsrc.NewStringFlag(DBSyncerModeFlag),
   365  	altsrc.NewIntFlag(GenQueryThreadFlag),
   366  	altsrc.NewIntFlag(InsertThreadFlag),
   367  	altsrc.NewIntFlag(BulkInsertSizeFlag),
   368  	altsrc.NewStringFlag(EventModeFlag),
   369  	altsrc.NewUint64Flag(MaxBlockDiffFlag),
   370  	altsrc.NewUint64Flag(TxResendIntervalFlag),
   371  	altsrc.NewIntFlag(TxResendCountFlag),
   372  	altsrc.NewBoolFlag(TxResendUseLegacyFlag),
   373  }
   374  
   375  var KSCNFlags = []cli.Flag{
   376  	altsrc.NewStringFlag(RewardbaseFlag),
   377  	altsrc.NewInt64Flag(BlockGenerationIntervalFlag),
   378  	altsrc.NewDurationFlag(BlockGenerationTimeLimitFlag),
   379  	altsrc.NewStringFlag(ServiceChainSignerFlag),
   380  	altsrc.NewUint64Flag(AnchoringPeriodFlag),
   381  	altsrc.NewUint64Flag(SentChainTxsLimit),
   382  	altsrc.NewBoolFlag(MainBridgeFlag),
   383  	altsrc.NewIntFlag(MainBridgeListenPortFlag),
   384  	altsrc.NewBoolFlag(ChildChainIndexingFlag),
   385  	altsrc.NewBoolFlag(SubBridgeFlag),
   386  	altsrc.NewIntFlag(SubBridgeListenPortFlag),
   387  	altsrc.NewIntFlag(ParentChainIDFlag),
   388  	altsrc.NewBoolFlag(VTRecoveryFlag),
   389  	altsrc.NewUint64Flag(VTRecoveryIntervalFlag),
   390  	altsrc.NewBoolFlag(ServiceChainNewAccountFlag),
   391  	altsrc.NewBoolFlag(ServiceChainAnchoringFlag),
   392  	altsrc.NewUint64Flag(ServiceChainParentOperatorTxGasLimitFlag),
   393  	altsrc.NewUint64Flag(ServiceChainChildOperatorTxGasLimitFlag),
   394  	// KAS
   395  	altsrc.NewBoolFlag(KASServiceChainAnchorFlag),
   396  	altsrc.NewUint64Flag(KASServiceChainAnchorPeriodFlag),
   397  	altsrc.NewStringFlag(KASServiceChainAnchorUrlFlag),
   398  	altsrc.NewStringFlag(KASServiceChainAnchorOperatorFlag),
   399  	altsrc.NewStringFlag(KASServiceChainSecretKeyFlag),
   400  	altsrc.NewStringFlag(KASServiceChainAccessKeyFlag),
   401  	altsrc.NewStringFlag(KASServiceChainXChainIdFlag),
   402  	altsrc.NewDurationFlag(KASServiceChainAnchorRequestTimeoutFlag),
   403  }
   404  
   405  var KSPNFlags = []cli.Flag{
   406  	altsrc.NewUint64Flag(TxResendIntervalFlag),
   407  	altsrc.NewIntFlag(TxResendCountFlag),
   408  	altsrc.NewBoolFlag(TxResendUseLegacyFlag),
   409  	altsrc.NewBoolFlag(TxPoolSpamThrottlerDisableFlag),
   410  	altsrc.NewStringFlag(ServiceChainSignerFlag),
   411  	altsrc.NewUint64Flag(AnchoringPeriodFlag),
   412  	altsrc.NewUint64Flag(SentChainTxsLimit),
   413  	altsrc.NewBoolFlag(MainBridgeFlag),
   414  	altsrc.NewIntFlag(MainBridgeListenPortFlag),
   415  	altsrc.NewBoolFlag(ChildChainIndexingFlag),
   416  	altsrc.NewBoolFlag(SubBridgeFlag),
   417  	altsrc.NewIntFlag(SubBridgeListenPortFlag),
   418  	altsrc.NewIntFlag(ParentChainIDFlag),
   419  	altsrc.NewBoolFlag(VTRecoveryFlag),
   420  	altsrc.NewUint64Flag(VTRecoveryIntervalFlag),
   421  	altsrc.NewBoolFlag(ServiceChainNewAccountFlag),
   422  	altsrc.NewBoolFlag(ServiceChainAnchoringFlag),
   423  	altsrc.NewUint64Flag(ServiceChainParentOperatorTxGasLimitFlag),
   424  	altsrc.NewUint64Flag(ServiceChainChildOperatorTxGasLimitFlag),
   425  	// KAS
   426  	altsrc.NewBoolFlag(KASServiceChainAnchorFlag),
   427  	altsrc.NewUint64Flag(KASServiceChainAnchorPeriodFlag),
   428  	altsrc.NewStringFlag(KASServiceChainAnchorUrlFlag),
   429  	altsrc.NewStringFlag(KASServiceChainAnchorOperatorFlag),
   430  	altsrc.NewStringFlag(KASServiceChainSecretKeyFlag),
   431  	altsrc.NewStringFlag(KASServiceChainAccessKeyFlag),
   432  	altsrc.NewStringFlag(KASServiceChainXChainIdFlag),
   433  	altsrc.NewDurationFlag(KASServiceChainAnchorRequestTimeoutFlag),
   434  }
   435  
   436  var KSENFlags = []cli.Flag{
   437  	altsrc.NewStringFlag(ServiceChainSignerFlag),
   438  	altsrc.NewBoolFlag(ChildChainIndexingFlag),
   439  	altsrc.NewBoolFlag(MainBridgeFlag),
   440  	altsrc.NewIntFlag(MainBridgeListenPortFlag),
   441  	altsrc.NewBoolFlag(SubBridgeFlag),
   442  	altsrc.NewIntFlag(SubBridgeListenPortFlag),
   443  	altsrc.NewUint64Flag(AnchoringPeriodFlag),
   444  	altsrc.NewUint64Flag(SentChainTxsLimit),
   445  	altsrc.NewIntFlag(ParentChainIDFlag),
   446  	altsrc.NewBoolFlag(VTRecoveryFlag),
   447  	altsrc.NewUint64Flag(VTRecoveryIntervalFlag),
   448  	altsrc.NewBoolFlag(ServiceChainAnchoringFlag),
   449  	altsrc.NewBoolFlag(KESNodeTypeServiceFlag),
   450  	altsrc.NewUint64Flag(ServiceChainParentOperatorTxGasLimitFlag),
   451  	altsrc.NewUint64Flag(ServiceChainChildOperatorTxGasLimitFlag),
   452  	// KAS
   453  	altsrc.NewBoolFlag(KASServiceChainAnchorFlag),
   454  	altsrc.NewUint64Flag(KASServiceChainAnchorPeriodFlag),
   455  	altsrc.NewStringFlag(KASServiceChainAnchorUrlFlag),
   456  	altsrc.NewStringFlag(KASServiceChainAnchorOperatorFlag),
   457  	altsrc.NewStringFlag(KASServiceChainSecretKeyFlag),
   458  	altsrc.NewStringFlag(KASServiceChainAccessKeyFlag),
   459  	altsrc.NewStringFlag(KASServiceChainXChainIdFlag),
   460  	altsrc.NewDurationFlag(KASServiceChainAnchorRequestTimeoutFlag),
   461  	// DBSyncer
   462  	altsrc.NewBoolFlag(EnableDBSyncerFlag),
   463  	altsrc.NewStringFlag(DBHostFlag),
   464  	altsrc.NewStringFlag(DBPortFlag),
   465  	altsrc.NewStringFlag(DBNameFlag),
   466  	altsrc.NewStringFlag(DBUserFlag),
   467  	altsrc.NewStringFlag(DBPasswordFlag),
   468  	altsrc.NewBoolFlag(EnabledLogModeFlag),
   469  	altsrc.NewIntFlag(MaxIdleConnsFlag),
   470  	altsrc.NewIntFlag(MaxOpenConnsFlag),
   471  	altsrc.NewDurationFlag(ConnMaxLifeTimeFlag),
   472  	altsrc.NewIntFlag(BlockSyncChannelSizeFlag),
   473  	altsrc.NewStringFlag(DBSyncerModeFlag),
   474  	altsrc.NewIntFlag(GenQueryThreadFlag),
   475  	altsrc.NewIntFlag(InsertThreadFlag),
   476  	altsrc.NewIntFlag(BulkInsertSizeFlag),
   477  	altsrc.NewStringFlag(EventModeFlag),
   478  	altsrc.NewUint64Flag(MaxBlockDiffFlag),
   479  	altsrc.NewUint64Flag(TxResendIntervalFlag),
   480  	altsrc.NewIntFlag(TxResendCountFlag),
   481  	altsrc.NewBoolFlag(TxResendUseLegacyFlag),
   482  }
   483  
   484  var SnapshotFlags = []cli.Flag{
   485  	altsrc.NewStringFlag(DbTypeFlag),
   486  	altsrc.NewPathFlag(DataDirFlag),
   487  	altsrc.NewPathFlag(ChainDataDirFlag),
   488  	altsrc.NewBoolFlag(SingleDBFlag),
   489  	altsrc.NewUintFlag(NumStateTrieShardsFlag),
   490  	altsrc.NewStringFlag(DynamoDBTableNameFlag),
   491  	altsrc.NewStringFlag(DynamoDBRegionFlag),
   492  	altsrc.NewBoolFlag(DynamoDBIsProvisionedFlag),
   493  	altsrc.NewInt64Flag(DynamoDBReadCapacityFlag),
   494  	altsrc.NewInt64Flag(DynamoDBWriteCapacityFlag),
   495  	altsrc.NewIntFlag(LevelDBCompressionTypeFlag),
   496  	altsrc.NewBoolFlag(RocksDBSecondaryFlag),
   497  	altsrc.NewUint64Flag(RocksDBCacheSizeFlag),
   498  	altsrc.NewBoolFlag(RocksDBDumpMallocStatFlag),
   499  	altsrc.NewStringFlag(RocksDBFilterPolicyFlag),
   500  	altsrc.NewStringFlag(RocksDBCompressionTypeFlag),
   501  	altsrc.NewStringFlag(RocksDBBottommostCompressionTypeFlag),
   502  	altsrc.NewBoolFlag(RocksDBDisableMetricsFlag),
   503  	altsrc.NewIntFlag(RocksDBMaxOpenFilesFlag),
   504  	altsrc.NewBoolFlag(RocksDBCacheIndexAndFilterFlag),
   505  }
   506  
   507  var DBMigrationSrcFlags = []cli.Flag{
   508  	altsrc.NewStringFlag(DbTypeFlag),
   509  	altsrc.NewPathFlag(DataDirFlag),
   510  	altsrc.NewBoolFlag(SingleDBFlag),
   511  	altsrc.NewIntFlag(LevelDBCacheSizeFlag),
   512  	altsrc.NewUintFlag(NumStateTrieShardsFlag),
   513  	altsrc.NewStringFlag(DynamoDBTableNameFlag),
   514  	altsrc.NewStringFlag(DynamoDBRegionFlag),
   515  	altsrc.NewBoolFlag(DynamoDBIsProvisionedFlag),
   516  	altsrc.NewInt64Flag(DynamoDBReadCapacityFlag),
   517  	altsrc.NewInt64Flag(DynamoDBWriteCapacityFlag),
   518  	altsrc.NewIntFlag(LevelDBCompressionTypeFlag),
   519  	altsrc.NewBoolFlag(DBNoPerformanceMetricsFlag),
   520  	altsrc.NewBoolFlag(RocksDBSecondaryFlag),
   521  	altsrc.NewUint64Flag(RocksDBCacheSizeFlag),
   522  	altsrc.NewBoolFlag(RocksDBDumpMallocStatFlag),
   523  	altsrc.NewStringFlag(RocksDBFilterPolicyFlag),
   524  	altsrc.NewStringFlag(RocksDBCompressionTypeFlag),
   525  	altsrc.NewStringFlag(RocksDBBottommostCompressionTypeFlag),
   526  	altsrc.NewBoolFlag(RocksDBDisableMetricsFlag),
   527  	altsrc.NewIntFlag(RocksDBMaxOpenFilesFlag),
   528  	altsrc.NewBoolFlag(RocksDBCacheIndexAndFilterFlag),
   529  }
   530  
   531  var DBMigrationDstFlags = []cli.Flag{
   532  	altsrc.NewStringFlag(DstDbTypeFlag),
   533  	altsrc.NewPathFlag(DstDataDirFlag),
   534  	altsrc.NewBoolFlag(DstSingleDBFlag),
   535  	altsrc.NewIntFlag(DstLevelDBCacheSizeFlag),
   536  	altsrc.NewIntFlag(DstLevelDBCompressionTypeFlag),
   537  	altsrc.NewUintFlag(DstNumStateTrieShardsFlag),
   538  	altsrc.NewStringFlag(DstDynamoDBTableNameFlag),
   539  	altsrc.NewStringFlag(DstDynamoDBRegionFlag),
   540  	altsrc.NewBoolFlag(DstDynamoDBIsProvisionedFlag),
   541  	altsrc.NewInt64Flag(DstDynamoDBReadCapacityFlag),
   542  	altsrc.NewInt64Flag(DstDynamoDBWriteCapacityFlag),
   543  	altsrc.NewUint64Flag(DstRocksDBCacheSizeFlag),
   544  	altsrc.NewBoolFlag(DstRocksDBDumpMallocStatFlag),
   545  	altsrc.NewBoolFlag(DstRocksDBDisableMetricsFlag),
   546  	altsrc.NewBoolFlag(DstRocksDBSecondaryFlag),
   547  	altsrc.NewStringFlag(DstRocksDBCompressionTypeFlag),
   548  	altsrc.NewStringFlag(DstRocksDBBottommostCompressionTypeFlag),
   549  	altsrc.NewStringFlag(DstRocksDBFilterPolicyFlag),
   550  	altsrc.NewIntFlag(DstRocksDBMaxOpenFilesFlag),
   551  	altsrc.NewBoolFlag(DstRocksDBCacheIndexAndFilterFlag),
   552  }
   553  
   554  var ChainDataFetcherFlags = []cli.Flag{
   555  	altsrc.NewBoolFlag(EnableChainDataFetcherFlag),
   556  	altsrc.NewStringFlag(ChainDataFetcherMode),
   557  	altsrc.NewBoolFlag(ChainDataFetcherNoDefault),
   558  	altsrc.NewIntFlag(ChainDataFetcherNumHandlers),
   559  	altsrc.NewIntFlag(ChainDataFetcherJobChannelSize),
   560  	altsrc.NewIntFlag(ChainDataFetcherChainEventSizeFlag),
   561  	altsrc.NewIntFlag(ChainDataFetcherMaxProcessingDataSize),
   562  	altsrc.NewStringFlag(ChainDataFetcherKASDBHostFlag),
   563  	altsrc.NewStringFlag(ChainDataFetcherKASDBPortFlag),
   564  	altsrc.NewStringFlag(ChainDataFetcherKASDBNameFlag),
   565  	altsrc.NewStringFlag(ChainDataFetcherKASDBUserFlag),
   566  	altsrc.NewStringFlag(ChainDataFetcherKASDBPasswordFlag),
   567  	altsrc.NewBoolFlag(ChainDataFetcherKASCacheUse),
   568  	altsrc.NewStringFlag(ChainDataFetcherKASCacheURLFlag),
   569  	altsrc.NewStringFlag(ChainDataFetcherKASXChainIdFlag),
   570  	altsrc.NewStringFlag(ChainDataFetcherKASBasicAuthParamFlag),
   571  	altsrc.NewInt64Flag(ChainDataFetcherKafkaReplicasFlag),
   572  	altsrc.NewStringSliceFlag(ChainDataFetcherKafkaBrokersFlag),
   573  	altsrc.NewIntFlag(ChainDataFetcherKafkaPartitionsFlag),
   574  	altsrc.NewStringFlag(ChainDataFetcherKafkaTopicResourceFlag),
   575  	altsrc.NewStringFlag(ChainDataFetcherKafkaTopicEnvironmentFlag),
   576  	altsrc.NewIntFlag(ChainDataFetcherKafkaMaxMessageBytesFlag),
   577  	altsrc.NewIntFlag(ChainDataFetcherKafkaSegmentSizeBytesFlag),
   578  	altsrc.NewIntFlag(ChainDataFetcherKafkaRequiredAcksFlag),
   579  	altsrc.NewStringFlag(ChainDataFetcherKafkaMessageVersionFlag),
   580  	altsrc.NewStringFlag(ChainDataFetcherKafkaProducerIdFlag),
   581  }