cli wiring

This commit is contained in:
i-norden 2022-01-30 21:17:25 -06:00
parent 4be92cd48b
commit 4519813341
2 changed files with 154 additions and 60 deletions

View File

@ -201,40 +201,78 @@ func makeFullNode(ctx *cli.Context) (*node.Node, ethapi.Backend) {
FilePath: ctx.GlobalString(utils.StateDiffFilePath.Name),
}
case shared.POSTGRES:
driverTypeStr := ctx.GlobalString(utils.StateDiffDBDriverTypeFlag.Name)
driverType, err := postgres.ResolveDriverType(driverTypeStr)
v2DriverTypeStr := ctx.GlobalString(utils.StateDiffV2DBDriverTypeFlag.Name)
v2DriverType, err := postgres.ResolveDriverType(v2DriverTypeStr)
if err != nil {
utils.Fatalf("%v", err)
}
pgConfig := postgres.Config{
Hostname: ctx.GlobalString(utils.StateDiffDBHostFlag.Name),
Port: ctx.GlobalInt(utils.StateDiffDBPortFlag.Name),
DatabaseName: ctx.GlobalString(utils.StateDiffDBNameFlag.Name),
Username: ctx.GlobalString(utils.StateDiffDBUserFlag.Name),
Password: ctx.GlobalString(utils.StateDiffDBPasswordFlag.Name),
v2PgConfig := postgres.Config{
Hostname: ctx.GlobalString(utils.StateDiffV2DBHostFlag.Name),
Port: ctx.GlobalInt(utils.StateDiffV2DBPortFlag.Name),
DatabaseName: ctx.GlobalString(utils.StateDiffV2DBNameFlag.Name),
Username: ctx.GlobalString(utils.StateDiffV2DBUserFlag.Name),
Password: ctx.GlobalString(utils.StateDiffV2DBPasswordFlag.Name),
ID: nodeID,
ClientName: clientName,
Driver: driverType,
Driver: v2DriverType,
}
if ctx.GlobalIsSet(utils.StateDiffDBMinConns.Name) {
pgConfig.MinConns = ctx.GlobalInt(utils.StateDiffDBMinConns.Name)
if ctx.GlobalIsSet(utils.StateDiffV2DBMinConns.Name) {
v2PgConfig.MinConns = ctx.GlobalInt(utils.StateDiffV2DBMinConns.Name)
}
if ctx.GlobalIsSet(utils.StateDiffDBMaxConns.Name) {
pgConfig.MaxConns = ctx.GlobalInt(utils.StateDiffDBMaxConns.Name)
if ctx.GlobalIsSet(utils.StateDiffV2DBMaxConns.Name) {
v2PgConfig.MaxConns = ctx.GlobalInt(utils.StateDiffV2DBMaxConns.Name)
}
if ctx.GlobalIsSet(utils.StateDiffDBMaxIdleConns.Name) {
pgConfig.MaxIdle = ctx.GlobalInt(utils.StateDiffDBMaxIdleConns.Name)
if ctx.GlobalIsSet(utils.StateDiffV2DBMaxIdleConns.Name) {
v2PgConfig.MaxIdle = ctx.GlobalInt(utils.StateDiffV2DBMaxIdleConns.Name)
}
if ctx.GlobalIsSet(utils.StateDiffDBMaxConnLifetime.Name) {
pgConfig.MaxConnLifetime = ctx.GlobalDuration(utils.StateDiffDBMaxConnLifetime.Name) * time.Second
if ctx.GlobalIsSet(utils.StateDiffV2DBMaxConnLifetime.Name) {
v2PgConfig.MaxConnLifetime = ctx.GlobalDuration(utils.StateDiffV2DBMaxConnLifetime.Name) * time.Second
}
if ctx.GlobalIsSet(utils.StateDiffDBMaxConnIdleTime.Name) {
pgConfig.MaxConnIdleTime = ctx.GlobalDuration(utils.StateDiffDBMaxConnIdleTime.Name) * time.Second
if ctx.GlobalIsSet(utils.StateDiffV2DBMaxConnIdleTime.Name) {
v2PgConfig.MaxConnIdleTime = ctx.GlobalDuration(utils.StateDiffV2DBMaxConnIdleTime.Name) * time.Second
}
if ctx.GlobalIsSet(utils.StateDiffDBConnTimeout.Name) {
pgConfig.ConnTimeout = ctx.GlobalDuration(utils.StateDiffDBConnTimeout.Name) * time.Second
if ctx.GlobalIsSet(utils.StateDiffV2DBConnTimeout.Name) {
v2PgConfig.ConnTimeout = ctx.GlobalDuration(utils.StateDiffV2DBConnTimeout.Name) * time.Second
}
v3DriverTypeStr := ctx.GlobalString(utils.StateDiffV2DBDriverTypeFlag.Name)
v3DriverType, err := postgres.ResolveDriverType(v3DriverTypeStr)
if err != nil {
utils.Fatalf("%v", err)
}
v3PgConfig := postgres.Config{
Hostname: ctx.GlobalString(utils.StateDiffV3DBHostFlag.Name),
Port: ctx.GlobalInt(utils.StateDiffV3DBPortFlag.Name),
DatabaseName: ctx.GlobalString(utils.StateDiffV3DBNameFlag.Name),
Username: ctx.GlobalString(utils.StateDiffV3DBUserFlag.Name),
Password: ctx.GlobalString(utils.StateDiffV3DBPasswordFlag.Name),
ID: nodeID,
ClientName: clientName,
Driver: v3DriverType,
}
if ctx.GlobalIsSet(utils.StateDiffV3DBMinConns.Name) {
v3PgConfig.MinConns = ctx.GlobalInt(utils.StateDiffV3DBMinConns.Name)
}
if ctx.GlobalIsSet(utils.StateDiffV3DBMaxConns.Name) {
v3PgConfig.MaxConns = ctx.GlobalInt(utils.StateDiffV3DBMaxConns.Name)
}
if ctx.GlobalIsSet(utils.StateDiffV3DBMaxIdleConns.Name) {
v3PgConfig.MaxIdle = ctx.GlobalInt(utils.StateDiffV3DBMaxIdleConns.Name)
}
if ctx.GlobalIsSet(utils.StateDiffV3DBMaxConnLifetime.Name) {
v3PgConfig.MaxConnLifetime = ctx.GlobalDuration(utils.StateDiffV3DBMaxConnLifetime.Name) * time.Second
}
if ctx.GlobalIsSet(utils.StateDiffV3DBMaxConnIdleTime.Name) {
v3PgConfig.MaxConnIdleTime = ctx.GlobalDuration(utils.StateDiffV3DBMaxConnIdleTime.Name) * time.Second
}
if ctx.GlobalIsSet(utils.StateDiffV3DBConnTimeout.Name) {
v3PgConfig.ConnTimeout = ctx.GlobalDuration(utils.StateDiffV3DBConnTimeout.Name) * time.Second
}
indexerConfig = postgres.MultiConfig{
V2: v2PgConfig,
V3: v3PgConfig,
}
indexerConfig = pgConfig
case shared.DUMP:
dumpTypeStr := ctx.GlobalString(utils.StateDiffDBDumpDst.Name)
dumpType, err := dumpdb.ResolveDumpType(dumpTypeStr)

View File

@ -796,6 +796,7 @@ var (
Name: "catalyst",
Usage: "Catalyst mode (eth2 integration testing)",
}
StateDiffFlag = cli.BoolFlag{
Name: "statediff",
Usage: "Enables the processing of state diffs between each block",
@ -805,63 +806,118 @@ var (
Usage: "Statediff database type (current options: postgres, file, dump)",
Value: "postgres",
}
StateDiffDBDriverTypeFlag = cli.StringFlag{
Name: "statediff.db.driver",
Usage: "Statediff database driver type",
Value: "pgx",
}
StateDiffDBDumpDst = cli.StringFlag{
Name: "statediff.dump.dst",
Usage: "Statediff database dump destination (default is stdout)",
Value: "stdout",
}
StateDiffDBHostFlag = cli.StringFlag{
Name: "statediff.db.host",
Usage: "Statediff database hostname/ip",
StateDiffV2DBDriverTypeFlag = cli.StringFlag{
Name: "statediff.db.v2.driver",
Usage: "Statediff v2 database driver type",
Value: "pgx",
}
StateDiffV2DBHostFlag = cli.StringFlag{
Name: "statediff.db.v2.host",
Usage: "Statediff v2 database hostname/ip",
Value: "localhost",
}
StateDiffDBPortFlag = cli.IntFlag{
Name: "statediff.db.port",
Usage: "Statediff database port",
StateDiffV2DBPortFlag = cli.IntFlag{
Name: "statediff.db.v2.port",
Usage: "Statediff v2 database port",
Value: 5432,
}
StateDiffDBNameFlag = cli.StringFlag{
Name: "statediff.db.name",
Usage: "Statediff database name",
StateDiffV2DBNameFlag = cli.StringFlag{
Name: "statediff.db.v2.name",
Usage: "Statediff v2 database name",
}
StateDiffDBPasswordFlag = cli.StringFlag{
Name: "statediff.db.password",
Usage: "Statediff database password",
StateDiffV2DBPasswordFlag = cli.StringFlag{
Name: "statediff.db.v2.password",
Usage: "Statediff v2 database password",
}
StateDiffDBUserFlag = cli.StringFlag{
Name: "statediff.db.user",
Usage: "Statediff database username",
StateDiffV2DBUserFlag = cli.StringFlag{
Name: "statediff.db.v2.user",
Usage: "Statediff v2 database username",
Value: "postgres",
}
StateDiffDBMaxConnLifetime = cli.DurationFlag{
Name: "statediff.db.maxconnlifetime",
Usage: "Statediff database maximum connection lifetime (in seconds)",
StateDiffV2DBMaxConnLifetime = cli.DurationFlag{
Name: "statediff.db.v2.maxconnlifetime",
Usage: "Statediff v2 database maximum connection lifetime (in seconds)",
}
StateDiffDBMaxConnIdleTime = cli.DurationFlag{
Name: "statediff.db.maxconnidletime",
Usage: "Statediff database maximum connection idle time (in seconds)",
StateDiffV2DBMaxConnIdleTime = cli.DurationFlag{
Name: "statediff.db.v2.maxconnidletime",
Usage: "Statediff v2 database maximum connection idle time (in seconds)",
}
StateDiffDBMaxConns = cli.IntFlag{
Name: "statediff.db.maxconns",
Usage: "Statediff database maximum connections",
StateDiffV2DBMaxConns = cli.IntFlag{
Name: "statediff.db.v2.maxconns",
Usage: "Statediff v2 database maximum connections",
}
StateDiffDBMinConns = cli.IntFlag{
Name: "statediff.db.minconns",
Usage: "Statediff database minimum connections",
StateDiffV2DBMinConns = cli.IntFlag{
Name: "statediff.db.v2.minconns",
Usage: "Statediff v2 database minimum connections",
}
StateDiffDBMaxIdleConns = cli.IntFlag{
Name: "statediff.db.maxidleconns",
Usage: "Statediff database maximum idle connections",
StateDiffV2DBMaxIdleConns = cli.IntFlag{
Name: "statediff.db.v2.maxidleconns",
Usage: "Statediff v2 database maximum idle connections",
}
StateDiffDBConnTimeout = cli.DurationFlag{
Name: "statediff.db.conntimeout",
Usage: "Statediff database connection timeout (in seconds)",
StateDiffV2DBConnTimeout = cli.DurationFlag{
Name: "statediff.db.v2.conntimeout",
Usage: "Statediff v2 database connection timeout (in seconds)",
}
StateDiffV3DBDriverTypeFlag = cli.StringFlag{
Name: "statediff.db.v3.driver",
Usage: "Statediff v3 database driver type",
Value: "pgx",
}
StateDiffV3DBHostFlag = cli.StringFlag{
Name: "statediff.db.v3.host",
Usage: "Statediff v3 database hostname/ip",
Value: "localhost",
}
StateDiffV3DBPortFlag = cli.IntFlag{
Name: "statediff.db.v3.port",
Usage: "Statediff v3 database port",
Value: 5432,
}
StateDiffV3DBNameFlag = cli.StringFlag{
Name: "statediff.db.v3.name",
Usage: "Statediff v3 database name",
}
StateDiffV3DBPasswordFlag = cli.StringFlag{
Name: "statediff.db.v3.password",
Usage: "Statediff v3 database password",
}
StateDiffV3DBUserFlag = cli.StringFlag{
Name: "statediff.db.v3.user",
Usage: "Statediff v3 database username",
Value: "postgres",
}
StateDiffV3DBMaxConnLifetime = cli.DurationFlag{
Name: "statediff.db.v3.maxconnlifetime",
Usage: "Statediff v3 database maximum connection lifetime (in seconds)",
}
StateDiffV3DBMaxConnIdleTime = cli.DurationFlag{
Name: "statediff.db.v3.maxconnidletime",
Usage: "Statediff v3 database maximum connection idle time (in seconds)",
}
StateDiffV3DBMaxConns = cli.IntFlag{
Name: "statediff.db.v3.maxconns",
Usage: "Statediff v3 database maximum connections",
}
StateDiffV3DBMinConns = cli.IntFlag{
Name: "statediff.db.v3.minconns",
Usage: "Statediff v3 database minimum connections",
}
StateDiffV3DBMaxIdleConns = cli.IntFlag{
Name: "statediff.db.v3.maxidleconns",
Usage: "Statediff v3 database maximum idle connections",
}
StateDiffV3DBConnTimeout = cli.DurationFlag{
Name: "statediff.db.v3.conntimeout",
Usage: "Statediff v3 database connection timeout (in seconds)",
}
StateDiffDBNodeIDFlag = cli.StringFlag{
Name: "statediff.db.nodeid",
Usage: "Node ID to use when writing state diffs to database",