mirror of
https://github.com/tendermint/tendermint.git
synced 2026-01-05 04:55:18 +00:00
Add configuration updates for Tendermint v0.36. (#8310)
* v36: remove [fastsync] and [blocksync] config sections * v36: remove [blocksync], consolidate rename * v36: remove gRPC options from [rpc] * v36: add top-level mode setting * v36: remove deprecated per-node consensus timeouts * v36: remove vestigial mempool.wal-dir setting * v36: add queue-type setting * v36: add p2p connection limits * v36: add or update statsync.fetchers * v36: add statesync.use-p2p setting
This commit is contained in:
@@ -85,21 +85,138 @@ var plan = transform.Plan{
|
||||
T: transform.SnakeToKebab(),
|
||||
},
|
||||
{
|
||||
// Since https://github.com/tendermint/tendermint/pull/6896.
|
||||
Desc: "Rename [fastsync] to [blocksync]",
|
||||
T: transform.Rename(parser.Key{"fastsync"}, parser.Key{"blocksync"}),
|
||||
// [fastsync] renamed in https://github.com/tendermint/tendermint/pull/6896.
|
||||
// [blocksync] removed in https://github.com/tendermint/tendermint/pull/7159.
|
||||
Desc: "Remove [fastsync] and [blocksync] sections",
|
||||
T: transform.Func(func(_ context.Context, doc *tomledit.Document) error {
|
||||
doc.First("fast-sync").Remove()
|
||||
transform.FindTable(doc, "fastsync").Remove()
|
||||
transform.FindTable(doc, "blocksync").Remove()
|
||||
return nil
|
||||
}),
|
||||
ErrorOK: true,
|
||||
},
|
||||
{
|
||||
// Since https://github.com/tendermint/tendermint/pull/7159.
|
||||
Desc: "Move top-level fast_sync key to blocksync.enable",
|
||||
T: transform.MoveKey(
|
||||
parser.Key{"fast-sync"},
|
||||
parser.Key{"blocksync"},
|
||||
parser.Key{"enable"},
|
||||
// Since https://github.com/tendermint/tendermint/pull/6241.
|
||||
//
|
||||
// TODO(creachadair): backport into v0.35.x.
|
||||
Desc: `Add top-level mode setting (default "full")`,
|
||||
T: transform.EnsureKey(nil, &parser.KeyValue{
|
||||
Block: parser.Comments{"Mode of Node: full | validator | seed"},
|
||||
Name: parser.Key{"mode"},
|
||||
Value: parser.MustValue(`"full"`),
|
||||
}),
|
||||
ErrorOK: true,
|
||||
},
|
||||
{
|
||||
// Since https://github.com/tendermint/tendermint/pull/7121.
|
||||
Desc: "Remove gRPC settings from the [rpc] section",
|
||||
T: transform.Func(func(_ context.Context, doc *tomledit.Document) error {
|
||||
doc.First("rpc", "grpc-laddr").Remove()
|
||||
doc.First("rpc", "grpc-max-open-connections").Remove()
|
||||
return nil
|
||||
}),
|
||||
},
|
||||
{
|
||||
// Since https://github.com/tendermint/tendermint/pull/8217.
|
||||
Desc: "Remove per-node consensus timeouts (converted to consensus parameters)",
|
||||
T: transform.Remove(
|
||||
parser.Key{"consensus", "skip-timeout-commit"},
|
||||
parser.Key{"consensus", "timeout-commit"},
|
||||
parser.Key{"consensus", "timeout-precommit"},
|
||||
parser.Key{"consensus", "timeout-precommit-delta"},
|
||||
parser.Key{"consensus", "timeout-prevote"},
|
||||
parser.Key{"consensus", "timeout-prevote-delta"},
|
||||
parser.Key{"consensus", "timeout-propose"},
|
||||
parser.Key{"consensus", "timeout-propose-delta"},
|
||||
),
|
||||
ErrorOK: true,
|
||||
},
|
||||
{
|
||||
// Since https://github.com/tendermint/tendermint/pull/6396.
|
||||
//
|
||||
// TODO(creachadair): backport into v0.35.x.
|
||||
Desc: "Remove vestigial mempool.wal-dir setting",
|
||||
T: transform.Remove(parser.Key{"mempool", "wal-dir"}),
|
||||
ErrorOK: true,
|
||||
},
|
||||
{
|
||||
// Since https://github.com/tendermint/tendermint/pull/6323.
|
||||
//
|
||||
// TODO(creachadair): backport into v0.35.x.
|
||||
Desc: "Add new [p2p] queue-type setting",
|
||||
T: transform.EnsureKey(parser.Key{"p2p"}, &parser.KeyValue{
|
||||
Block: parser.Comments{"Select the p2p internal queue"},
|
||||
Name: parser.Key{"queue-type"},
|
||||
Value: parser.MustValue(`"priority"`),
|
||||
}),
|
||||
ErrorOK: true,
|
||||
},
|
||||
{
|
||||
// Since https://github.com/tendermint/tendermint/pull/6353.
|
||||
//
|
||||
// TODO(creachadair): backport into v0.35.x.
|
||||
Desc: "Add [p2p] connection count and rate limit settings",
|
||||
T: transform.Func(func(_ context.Context, doc *tomledit.Document) error {
|
||||
tab := transform.FindTable(doc, "p2p")
|
||||
if tab == nil {
|
||||
return errors.New("p2p table not found")
|
||||
}
|
||||
transform.InsertMapping(tab.Section, &parser.KeyValue{
|
||||
Block: parser.Comments{"Maximum number of connections (inbound and outbound)."},
|
||||
Name: parser.Key{"max-connections"},
|
||||
Value: parser.MustValue("64"),
|
||||
}, false)
|
||||
transform.InsertMapping(tab.Section, &parser.KeyValue{
|
||||
Block: parser.Comments{
|
||||
"Rate limits the number of incoming connection attempts per IP address.",
|
||||
},
|
||||
Name: parser.Key{"max-incoming-connection-attempts"},
|
||||
Value: parser.MustValue("100"),
|
||||
}, false)
|
||||
return nil
|
||||
}),
|
||||
},
|
||||
{
|
||||
// Added "chunk-fetchers" https://github.com/tendermint/tendermint/pull/6566.
|
||||
// This value was backported into v0.34.11 (modulo casing).
|
||||
// Renamed to "fetchers" https://github.com/tendermint/tendermint/pull/6587.
|
||||
//
|
||||
// TODO(creachadair): backport into v0.35.x.
|
||||
Desc: "Rename statesync.chunk-fetchers to statesync.fetchers",
|
||||
T: transform.Func(func(ctx context.Context, doc *tomledit.Document) error {
|
||||
// If the key already exists, rename it preserving its value.
|
||||
if found := doc.First("statesync", "chunk-fetchers"); found != nil {
|
||||
found.KeyValue.Name = parser.Key{"fetchers"}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Otherwise, add it.
|
||||
return transform.EnsureKey(parser.Key{"statesync"}, &parser.KeyValue{
|
||||
Block: parser.Comments{
|
||||
"The number of concurrent chunk and block fetchers to run (default: 4).",
|
||||
},
|
||||
Name: parser.Key{"fetchers"},
|
||||
Value: parser.MustValue("4"),
|
||||
})(ctx, doc)
|
||||
}),
|
||||
},
|
||||
{
|
||||
// Since https://github.com/tendermint/tendermint/pull/6807.
|
||||
// Backported into v0.34.13 (modulo casing).
|
||||
//
|
||||
// TODO(creachadair): backport into v0.35.x.
|
||||
Desc: "Add statesync.use-p2p setting",
|
||||
T: transform.EnsureKey(parser.Key{"statesync"}, &parser.KeyValue{
|
||||
Block: parser.Comments{
|
||||
"# State sync uses light client verification to verify state. This can be done either through the",
|
||||
"# P2P layer or RPC layer. Set this to true to use the P2P layer. If false (default), RPC layer",
|
||||
"# will be used.",
|
||||
},
|
||||
Name: parser.Key{"use-p2p"},
|
||||
Value: parser.MustValue("false"),
|
||||
}),
|
||||
},
|
||||
{
|
||||
// Since https://github.com/tendermint/tendermint/pull/6462.
|
||||
Desc: "Move priv-validator settings under [priv-validator]",
|
||||
@@ -147,22 +264,6 @@ var plan = transform.Plan{
|
||||
return nil
|
||||
}),
|
||||
},
|
||||
{
|
||||
// v1 removed: https://github.com/tendermint/tendermint/pull/5728
|
||||
// v2 deprecated: https://github.com/tendermint/tendermint/pull/6730
|
||||
Desc: `Set blocksync.version to "v0"`,
|
||||
T: transform.Func(func(_ context.Context, doc *tomledit.Document) error {
|
||||
v := doc.First("blocksync", "version")
|
||||
if v == nil {
|
||||
return nil // nothing to do
|
||||
} else if !v.IsMapping() {
|
||||
// This shouldn't happen, but is easier to debug than a panic.
|
||||
return fmt.Errorf("blocksync.version is weird: %v", v)
|
||||
}
|
||||
v.Value.X = parser.MustValue(`"v0"`).X
|
||||
return nil
|
||||
}),
|
||||
},
|
||||
}
|
||||
|
||||
// ApplyFixes transforms doc and reports whether it succeeded.
|
||||
@@ -248,8 +349,5 @@ func CheckValid(data []byte) error {
|
||||
return fmt.Errorf("decoding config: %w", err)
|
||||
}
|
||||
|
||||
// Stub in required value not stored in the config file, so that validation
|
||||
// will not fail spuriously.
|
||||
cfg.Mode = config.ModeValidator
|
||||
return cfg.ValidateBasic()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user