mirror of
https://github.com/tendermint/tendermint.git
synced 2026-09-20 15:04:22 +00:00
e2e: disconnect maverick (#6099)
This commit is contained in:
+36
-37
@@ -6,7 +6,6 @@ import (
|
||||
"net"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/spf13/viper"
|
||||
@@ -24,8 +23,6 @@ import (
|
||||
grpcprivval "github.com/tendermint/tendermint/privval/grpc"
|
||||
privvalproto "github.com/tendermint/tendermint/proto/tendermint/privval"
|
||||
"github.com/tendermint/tendermint/proxy"
|
||||
mcs "github.com/tendermint/tendermint/test/maverick/consensus"
|
||||
maverick "github.com/tendermint/tendermint/test/maverick/node"
|
||||
)
|
||||
|
||||
var logger = log.NewTMLogger(log.NewSyncWriter(os.Stdout))
|
||||
@@ -69,11 +66,12 @@ func run(configFile string) error {
|
||||
case "socket", "grpc":
|
||||
err = startApp(cfg)
|
||||
case "builtin":
|
||||
if len(cfg.Misbehaviors) == 0 {
|
||||
err = startNode(cfg)
|
||||
} else {
|
||||
err = startMaverick(cfg)
|
||||
}
|
||||
// FIXME: Temporarily remove maverick until it is redesigned
|
||||
// if len(cfg.Misbehaviors) == 0 {
|
||||
err = startNode(cfg)
|
||||
// } else {
|
||||
// err = startMaverick(cfg)
|
||||
// }
|
||||
default:
|
||||
err = fmt.Errorf("invalid protocol %q", cfg.Protocol)
|
||||
}
|
||||
@@ -139,41 +137,42 @@ func startNode(cfg *Config) error {
|
||||
return n.Start()
|
||||
}
|
||||
|
||||
// FIXME: Temporarily disconnected maverick until it is redesigned
|
||||
// startMaverick starts a Maverick node that runs the application directly. It assumes the Tendermint
|
||||
// configuration is in $TMHOME/config/tendermint.toml.
|
||||
func startMaverick(cfg *Config) error {
|
||||
app, err := NewApplication(cfg)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// func startMaverick(cfg *Config) error {
|
||||
// app, err := NewApplication(cfg)
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
|
||||
tmcfg, logger, nodeKey, err := setupNode()
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to setup config: %w", err)
|
||||
}
|
||||
// tmcfg, logger, nodeKey, err := setupNode()
|
||||
// if err != nil {
|
||||
// return fmt.Errorf("failed to setup config: %w", err)
|
||||
// }
|
||||
|
||||
misbehaviors := make(map[int64]mcs.Misbehavior, len(cfg.Misbehaviors))
|
||||
for heightString, misbehaviorString := range cfg.Misbehaviors {
|
||||
height, _ := strconv.ParseInt(heightString, 10, 64)
|
||||
misbehaviors[height] = mcs.MisbehaviorList[misbehaviorString]
|
||||
}
|
||||
// misbehaviors := make(map[int64]mcs.Misbehavior, len(cfg.Misbehaviors))
|
||||
// for heightString, misbehaviorString := range cfg.Misbehaviors {
|
||||
// height, _ := strconv.ParseInt(heightString, 10, 64)
|
||||
// misbehaviors[height] = mcs.MisbehaviorList[misbehaviorString]
|
||||
// }
|
||||
|
||||
n, err := maverick.NewNode(tmcfg,
|
||||
maverick.LoadOrGenFilePV(tmcfg.PrivValidatorKeyFile(), tmcfg.PrivValidatorStateFile()),
|
||||
*nodeKey,
|
||||
proxy.NewLocalClientCreator(app),
|
||||
maverick.DefaultGenesisDocProviderFunc(tmcfg),
|
||||
maverick.DefaultDBProvider,
|
||||
maverick.DefaultMetricsProvider(tmcfg.Instrumentation),
|
||||
logger,
|
||||
misbehaviors,
|
||||
)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// n, err := maverick.NewNode(tmcfg,
|
||||
// maverick.LoadOrGenFilePV(tmcfg.PrivValidatorKeyFile(), tmcfg.PrivValidatorStateFile()),
|
||||
// *nodeKey,
|
||||
// proxy.NewLocalClientCreator(app),
|
||||
// maverick.DefaultGenesisDocProviderFunc(tmcfg),
|
||||
// maverick.DefaultDBProvider,
|
||||
// maverick.DefaultMetricsProvider(tmcfg.Instrumentation),
|
||||
// logger,
|
||||
// misbehaviors,
|
||||
// )
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
|
||||
return n.Start()
|
||||
}
|
||||
// return n.Start()
|
||||
// }
|
||||
|
||||
// startSigner starts a signer server connecting to the given endpoint.
|
||||
func startSigner(cfg *Config) error {
|
||||
|
||||
@@ -18,7 +18,8 @@ RUN go mod download
|
||||
COPY . .
|
||||
RUN make build && cp build/tendermint /usr/bin/tendermint
|
||||
COPY test/e2e/docker/entrypoint* /usr/bin/
|
||||
RUN cd test/e2e && make maverick && cp build/maverick /usr/bin/maverick
|
||||
# FIXME: Temporarily disconnect maverick node until it is redesigned
|
||||
# RUN cd test/e2e && make maverick && cp build/maverick /usr/bin/maverick
|
||||
RUN cd test/e2e && make app && cp build/app /usr/bin/app
|
||||
|
||||
# Set up runtime directory. We don't use a separate runtime image since we need
|
||||
|
||||
@@ -36,7 +36,8 @@ seeds = ["seed01"]
|
||||
seeds = ["seed01"]
|
||||
snapshot_interval = 5
|
||||
perturb = ["disconnect"]
|
||||
misbehaviors = { 1018 = "double-prevote" }
|
||||
# FIXME: maverick has been disabled until it is redesigned (https://github.com/tendermint/tendermint/issues/5575)
|
||||
# misbehaviors = { 1018 = "double-prevote" }
|
||||
|
||||
[node.validator02]
|
||||
seeds = ["seed02"]
|
||||
|
||||
@@ -16,7 +16,6 @@ import (
|
||||
"github.com/tendermint/tendermint/crypto/ed25519"
|
||||
"github.com/tendermint/tendermint/crypto/secp256k1"
|
||||
rpchttp "github.com/tendermint/tendermint/rpc/client/http"
|
||||
mcs "github.com/tendermint/tendermint/test/maverick/consensus"
|
||||
"github.com/tendermint/tendermint/types"
|
||||
)
|
||||
|
||||
@@ -373,11 +372,12 @@ func (n Node) Validate(testnet Testnet) error {
|
||||
height, testnet.InitialHeight)
|
||||
}
|
||||
exists := false
|
||||
for possibleBehaviors := range mcs.MisbehaviorList {
|
||||
if possibleBehaviors == misbehavior {
|
||||
exists = true
|
||||
}
|
||||
}
|
||||
// FIXME: Maverick has been disabled until it is redesigned
|
||||
// for possibleBehaviors := range mcs.MisbehaviorList {
|
||||
// if possibleBehaviors == misbehavior {
|
||||
// exists = true
|
||||
// }
|
||||
// }
|
||||
if !exists {
|
||||
return fmt.Errorf("misbehavior %s does not exist", misbehavior)
|
||||
}
|
||||
|
||||
+15
-14
@@ -124,18 +124,21 @@ func MakeDockerCompose(testnet *e2e.Testnet) ([]byte, error) {
|
||||
tmpl, err := template.New("docker-compose").Funcs(template.FuncMap{
|
||||
"startCommands": func(misbehaviors map[int64]string, logLevel string) string {
|
||||
command := "start"
|
||||
misbehaviorString := ""
|
||||
for height, misbehavior := range misbehaviors {
|
||||
// after the first behavior set, a comma must be prepended
|
||||
if misbehaviorString != "" {
|
||||
misbehaviorString += ","
|
||||
}
|
||||
heightString := strconv.Itoa(int(height))
|
||||
misbehaviorString += misbehavior + "," + heightString
|
||||
}
|
||||
if misbehaviorString != "" {
|
||||
command += " --misbehaviors " + misbehaviorString
|
||||
}
|
||||
|
||||
// FIXME: Temporarily disable behaviors until maverick is redesigned
|
||||
// misbehaviorString := ""
|
||||
// for height, misbehavior := range misbehaviors {
|
||||
// // after the first behavior set, a comma must be prepended
|
||||
// if misbehaviorString != "" {
|
||||
// misbehaviorString += ","
|
||||
// }
|
||||
// heightString := strconv.Itoa(int(height))
|
||||
// misbehaviorString += misbehavior + "," + heightString
|
||||
// }
|
||||
|
||||
// if misbehaviorString != "" {
|
||||
// command += " --misbehaviors " + misbehaviorString
|
||||
// }
|
||||
if logLevel != "" && logLevel != config.DefaultLogLevel {
|
||||
command += " --log-level " + logLevel
|
||||
}
|
||||
@@ -165,8 +168,6 @@ services:
|
||||
image: tendermint/e2e-node
|
||||
{{- if eq .ABCIProtocol "builtin" }}
|
||||
entrypoint: /usr/bin/entrypoint-builtin
|
||||
{{- else if .Misbehaviors }}
|
||||
entrypoint: /usr/bin/entrypoint-maverick
|
||||
{{- end }}
|
||||
{{- if ne .ABCIProtocol "builtin"}}
|
||||
command: {{ startCommands .Misbehaviors .LogLevel }}
|
||||
|
||||
Reference in New Issue
Block a user