From ecc18eaf866677ca2eefe6cded05bbe9c257ba59 Mon Sep 17 00:00:00 2001 From: sanaz Date: Wed, 29 May 2024 10:38:00 -0700 Subject: [PATCH 01/28] adds tracing --- test/e2e/testnet/node.go | 123 +++++++++++++++++++++++++++++++++------ 1 file changed, 104 insertions(+), 19 deletions(-) diff --git a/test/e2e/testnet/node.go b/test/e2e/testnet/node.go index 26abb448ec..714d5e2517 100644 --- a/test/e2e/testnet/node.go +++ b/test/e2e/testnet/node.go @@ -14,6 +14,8 @@ import ( "github.com/tendermint/tendermint/config" "github.com/tendermint/tendermint/crypto" "github.com/tendermint/tendermint/p2p" + "github.com/tendermint/tendermint/pkg/trace" + "github.com/tendermint/tendermint/pkg/trace/schema" "github.com/tendermint/tendermint/privval" "github.com/tendermint/tendermint/rpc/client/http" "github.com/tendermint/tendermint/types" @@ -24,6 +26,7 @@ const ( p2pPort = 26656 grpcPort = 9090 prometheusPort = 26660 + tracingPort = 26661 dockerSrcURL = "ghcr.io/celestiaorg/celestia-app" secp256k1Type = "secp256k1" ed25519Type = "ed25519" @@ -32,17 +35,76 @@ const ( ) type Node struct { - Name string - Version string - StartHeight int64 - InitialPeers []string - SignerKey crypto.PrivKey - NetworkKey crypto.PrivKey - SelfDelegation int64 - Instance *knuu.Instance - - rpcProxyPort int - grpcProxyPort int + Name string + Version string + StartHeight int64 + InitialPeers []string + SignerKey crypto.PrivKey + NetworkKey crypto.PrivKey + SelfDelegation int64 + Instance *knuu.Instance + RemoteHomeDirectory string + + rpcProxyPort int + grpcProxyPort int + traceProxyPort int +} + +func (n *Node) GetRemoteHomeDirectory() string { + return n.RemoteHomeDirectory +} + +// GetRoundStateTraces retrieves the round state traces from a node. +func (n *Node) GetRoundStateTraces() ([]trace.Event[schema.RoundState], error) { + tableFileName := fmt.Sprintf("%s.json", schema.RoundState{}.Table()) + traceFileName := filepath.Join(n.GetRemoteHomeDirectory(), "data", + "traces", tableFileName) + consensusRoundStateBytes, err := n.Instance.GetFileBytes(traceFileName) + if err != nil { + return nil, err + } + tmpFile, err := os.CreateTemp(".", tableFileName) + if err != nil { + return nil, err + } + defer os.Remove(tmpFile.Name()) + + if _, err = tmpFile.Write(consensusRoundStateBytes); err != nil { + return nil, err + } + events, err := trace.DecodeFile[schema.RoundState](tmpFile) + if err != nil { + return nil, fmt.Errorf("decoding file: %w", err) + } + return events, nil +} + +// PullReceivedBytes retrieves the round state traces from a node. +func (n *Node) PullReceivedBytes() ([]trace.Event[schema.ReceivedBytes], + error, +) { + + addr := n.AddressTracing() + log.Info().Str("Address", addr).Msg("Pulling round state traces") + + err := trace.GetTable(addr, schema.ReceivedBytes{}.Table(), ".") + if err != nil { + return nil, fmt.Errorf("getting table: %w", err) + } + return nil, nil +} + +// PullRoundStateTraces retrieves the round state traces from a node. +func (n *Node) PullRoundStateTraces() ([]trace.Event[schema.RoundState], error) { + + addr := n.AddressTracing() + log.Info().Str("Address", addr).Msg("Pulling round state traces") + + err := trace.GetTable(addr, schema.RoundState{}.Table(), ".") + if err != nil { + return nil, fmt.Errorf("getting table: %w", err) + } + return nil, nil } // Resources defines the resource requirements for a Node. @@ -84,6 +146,10 @@ func NewNode( if err := instance.AddPortTCP(grpcPort); err != nil { return nil, err } + if err := instance.AddPortTCP(tracingPort); err != nil { + return nil, err + } + if grafana != nil { // add support for metrics if err := instance.SetPrometheusEndpoint(prometheusPort, fmt.Sprintf("knuu-%s", knuu.Scope()), "1m"); err != nil { @@ -122,14 +188,15 @@ func NewNode( } return &Node{ - Name: name, - Instance: instance, - Version: version, - StartHeight: startHeight, - InitialPeers: peers, - SignerKey: signerKey, - NetworkKey: networkKey, - SelfDelegation: selfDelegation, + Name: name, + Instance: instance, + Version: version, + StartHeight: startHeight, + InitialPeers: peers, + SignerKey: signerKey, + NetworkKey: networkKey, + SelfDelegation: selfDelegation, + RemoteHomeDirectory: remoteRootDir, }, nil } @@ -251,6 +318,18 @@ func (n Node) RemoteAddressRPC() (string, error) { return fmt.Sprintf("%s:%d", ip, rpcPort), nil } +func (n Node) AddressTracing() string { + return fmt.Sprintf("http://127.0.0.1:%d", n.traceProxyPort) +} + +func (n Node) RemoteAddressTracing() (string, error) { + ip, err := n.Instance.GetIP() + if err != nil { + return "", err + } + return fmt.Sprintf("http://%s:26661", ip), nil +} + func (n Node) IsValidator() bool { return n.SelfDelegation != 0 } @@ -306,8 +385,14 @@ func (n *Node) forwardPorts() error { return fmt.Errorf("forwarding port %d: %w", grpcPort, err) } + traceProxyPort, err := n.Instance.PortForwardTCP(tracingPort) + if err != nil { + return fmt.Errorf("forwarding port %d: %w", tracingPort, err) + } + n.rpcProxyPort = rpcProxyPort n.grpcProxyPort = grpcProxyPort + n.traceProxyPort = traceProxyPort return nil } From 60de468243f1d27fb0e4b608ab75e4450fe362e0 Mon Sep 17 00:00:00 2001 From: sanaz Date: Wed, 29 May 2024 10:38:27 -0700 Subject: [PATCH 02/28] adds tracing config options --- test/e2e/testnet/setup.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/test/e2e/testnet/setup.go b/test/e2e/testnet/setup.go index f4e60484dd..26649fdb16 100644 --- a/test/e2e/testnet/setup.go +++ b/test/e2e/testnet/setup.go @@ -1,7 +1,10 @@ package testnet import ( + "encoding/json" "fmt" + "os" + "path/filepath" "strings" "time" @@ -10,6 +13,7 @@ import ( "github.com/tendermint/tendermint/config" "github.com/tendermint/tendermint/p2p" "github.com/tendermint/tendermint/p2p/pex" + "github.com/tendermint/tendermint/pkg/trace" ) func MakeConfig(node *Node, opts ...Option) (*config.Config, error) { @@ -66,6 +70,15 @@ func WithBroadcastTxs(broadcast bool) Option { } } +func WithLocalTracing(localTracingType string) Option { + return func(cfg *config.Config) { + cfg.Instrumentation.TraceType = localTracingType + cfg.Instrumentation.TraceBufferSize = 1000 + cfg.Instrumentation.TracePullAddress = ":26661" + //cfg.Instrumentation.TracingTables = "consensus_round_state,received_bytes" + // cfg.Instrumentation.TracePushConfig = "s3.json" + } +} func WriteAddressBook(peers []string, file string) error { book := pex.NewAddrBook(file, false) for _, peer := range peers { @@ -87,3 +100,23 @@ func MakeAppConfig(_ *Node) (*serverconfig.Config, error) { srvCfg.MinGasPrices = fmt.Sprintf("0.001%s", app.BondDenom) return srvCfg, srvCfg.ValidateBasic() } + +// MakeTracePushConfig creates a trace push config file "s3.json" in the given config path +// with the trace push config from the environment variables. +func MakeTracePushConfig(configPath string) error { + traceConfigFile, err := os.OpenFile(filepath.Join(configPath, "s3.json"), os.O_CREATE|os.O_RDWR, 0o777) + if err != nil { + return err + } + defer traceConfigFile.Close() + traceConfig, err := trace.GetPushConfigFromEnv() + if err != nil { + return err + } + err = json.NewEncoder(traceConfigFile).Encode(traceConfig) + if err != nil { + return err + } + traceConfigFile.Close() + return nil +} From c973daa2d44b8f30521192c81b42d949321faddc Mon Sep 17 00:00:00 2001 From: sanaz Date: Wed, 29 May 2024 10:53:14 -0700 Subject: [PATCH 03/28] adds blobPerSequence param --- test/e2e/testnet/testnet.go | 13 +++++++++---- test/e2e/testnet/txsimNode.go | 3 ++- test/e2e/testnet/util.go | 5 +++++ 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/test/e2e/testnet/testnet.go b/test/e2e/testnet/testnet.go index 4dd0bbe9b3..0d57a6928b 100644 --- a/test/e2e/testnet/testnet.go +++ b/test/e2e/testnet/testnet.go @@ -69,7 +69,9 @@ func (t *Testnet) SetConsensusMaxBlockSize(size int64) { func (t *Testnet) CreateGenesisNode(version string, selfDelegation, upgradeHeight int64, resources Resources) error { signerKey := t.keygen.Generate(ed25519Type) networkKey := t.keygen.Generate(ed25519Type) - node, err := NewNode(fmt.Sprintf("val%d", len(t.nodes)), version, 0, selfDelegation, nil, signerKey, networkKey, upgradeHeight, resources, t.grafana) + node, err := NewNode(fmt.Sprintf("val%d", len(t.nodes)), version, 0, + selfDelegation, nil, signerKey, networkKey, upgradeHeight, resources, + t.grafana) if err != nil { return err } @@ -98,7 +100,7 @@ func (t *Testnet) CreateTxClients(version string, for i, grpcEndpoint := range grpcEndpoints { name := fmt.Sprintf("txsim%d", i) err := t.CreateTxClient(name, version, sequences, - blobRange, resources, grpcEndpoint) + blobRange, blobPerSequence, resources, grpcEndpoint) if err != nil { log.Err(err).Str("name", name). Str("grpc endpoint", grpcEndpoint). @@ -127,6 +129,7 @@ func (t *Testnet) CreateTxClient(name, version string, sequences int, blobRange string, + blobPerSequence int, resources Resources, grpcEndpoint string, ) error { @@ -144,7 +147,7 @@ func (t *Testnet) CreateTxClient(name, // Create a txsim node using the key stored in the txsimKeyringDir txsim, err := CreateTxClient(name, version, grpcEndpoint, t.seed, - sequences, blobRange, 1, resources, txsimRootDir) + sequences, blobRange, blobPerSequence, 1, resources, txsimRootDir) if err != nil { log.Err(err). Str("name", name). @@ -235,7 +238,9 @@ func (t *Testnet) CreateAccount(name string, tokens int64, txsimKeyringDir strin func (t *Testnet) CreateNode(version string, startHeight, upgradeHeight int64, resources Resources) error { signerKey := t.keygen.Generate(ed25519Type) networkKey := t.keygen.Generate(ed25519Type) - node, err := NewNode(fmt.Sprintf("val%d", len(t.nodes)), version, startHeight, 0, nil, signerKey, networkKey, upgradeHeight, resources, t.grafana) + node, err := NewNode(fmt.Sprintf("val%d", len(t.nodes)), version, + startHeight, 0, nil, signerKey, networkKey, upgradeHeight, resources, + t.grafana) if err != nil { return err } diff --git a/test/e2e/testnet/txsimNode.go b/test/e2e/testnet/txsimNode.go index 66cba89797..338ca3754b 100644 --- a/test/e2e/testnet/txsimNode.go +++ b/test/e2e/testnet/txsimNode.go @@ -26,6 +26,7 @@ func CreateTxClient( seed int64, sequences int, blobRange string, + blobsPerSeq int, pollTime int, resources Resources, volumePath string, @@ -65,7 +66,7 @@ func CreateTxClient( fmt.Sprintf("-t %ds", pollTime), fmt.Sprintf("-b %d ", sequences), fmt.Sprintf("-d %d ", seed), - fmt.Sprintf("-a %d ", 5), + fmt.Sprintf("-a %d ", blobsPerSeq), fmt.Sprintf("-s %s ", blobRange), } diff --git a/test/e2e/testnet/util.go b/test/e2e/testnet/util.go index 443f342986..0d89494858 100644 --- a/test/e2e/testnet/util.go +++ b/test/e2e/testnet/util.go @@ -5,6 +5,7 @@ import ( "math/rand" "os" + "github.com/rs/zerolog/log" "github.com/tendermint/tendermint/crypto" "github.com/tendermint/tendermint/crypto/ed25519" "github.com/tendermint/tendermint/crypto/secp256k1" @@ -44,12 +45,16 @@ type GrafanaInfo struct { } func GetGrafanaInfoFromEnvVar() *GrafanaInfo { + log.Info().Msg("Checking Grafana environment variables") if os.Getenv("GRAFANA_ENDPOINT") == "" || os.Getenv("GRAFANA_USERNAME") == "" || os.Getenv("GRAFANA_TOKEN") == "" { + + log.Info().Msg("No Grafana environment variables found") return nil } + log.Info().Msg("Grafana environment variables found") return &GrafanaInfo{ Endpoint: os.Getenv("GRAFANA_ENDPOINT"), Username: os.Getenv("GRAFANA_USERNAME"), From 1c53b712051d15c305aef7c644a11983bf3d5c09 Mon Sep 17 00:00:00 2001 From: sanaz Date: Wed, 29 May 2024 10:54:51 -0700 Subject: [PATCH 04/28] backports all the optimization in knuu --- test/e2e/testnet/node.go | 29 ++++++++-- test/e2e/testnet/test_helpers.go | 76 ++++++++++++++++++++++++++ test/e2e/testnet/testnet.go | 94 ++++++++++++++------------------ 3 files changed, 141 insertions(+), 58 deletions(-) diff --git a/test/e2e/testnet/node.go b/test/e2e/testnet/node.go index 714d5e2517..90aaa182e7 100644 --- a/test/e2e/testnet/node.go +++ b/test/e2e/testnet/node.go @@ -220,6 +220,9 @@ func (n *Node) Init(genesis *types.GenesisDoc, peers []string, configOptions ... } } + //if err := MakeTracePushConfig(filepath.Join(nodeDir, "config")); err != nil { + // return fmt.Errorf("error creating trace push config: %w", err) + //} // Create and write the config file cfg, err := MakeConfig(n, configOptions...) if err != nil { @@ -266,11 +269,15 @@ func (n *Node) Init(genesis *types.GenesisDoc, peers []string, configOptions ... return fmt.Errorf("writing address book: %w", err) } - if err := n.Instance.AddFolder(nodeDir, remoteRootDir, "10001:10001"); err != nil { - return fmt.Errorf("copying over node %s directory: %w", n.Name, err) + err = n.Instance.Commit() + if err != nil { + return fmt.Errorf("committing instance: %w", err) } - return n.Instance.Commit() + if err = n.Instance.AddFolder(nodeDir, remoteRootDir, "10001:10001"); err != nil { + return fmt.Errorf("copying over node %s directory: %w", n.Name, err) + } + return nil } // AddressP2P returns a P2P endpoint address for the node. This is used for @@ -339,14 +346,26 @@ func (n Node) Client() (*http.HTTP, error) { } func (n *Node) Start() error { - if err := n.Instance.Start(); err != nil { + if err := n.StartAsync(); err != nil { + return err + } + if err := n.WaitUntilStartedAndForwardPorts(); err != nil { return err } + return nil +} - if err := n.Instance.WaitInstanceIsRunning(); err != nil { +func (n *Node) StartAsync() error { + if err := n.Instance.StartAsync(); err != nil { return err } + return nil +} +func (n *Node) WaitUntilStartedAndForwardPorts() error { + if err := n.Instance.WaitInstanceIsRunning(); err != nil { + return err + } return n.forwardPorts() } diff --git a/test/e2e/testnet/test_helpers.go b/test/e2e/testnet/test_helpers.go index a3de3cf4c3..34e967ee5c 100644 --- a/test/e2e/testnet/test_helpers.go +++ b/test/e2e/testnet/test_helpers.go @@ -1,7 +1,14 @@ package testnet import ( + "context" + "encoding/json" + "fmt" "log" + "strconv" + "time" + + "github.com/celestiaorg/knuu/pkg/knuu" ) func NoError(message string, err error) { @@ -9,3 +16,72 @@ func NoError(message string, err error) { log.Fatalf("%s: %v", message, err) } } + +type JSONRPCError struct { + Code int + Message string + Data string +} + +func (e *JSONRPCError) Error() string { + return fmt.Sprintf("JSONRPC Error - Code: %d, Message: %s, Data: %s", e.Code, e.Message, e.Data) +} + +func getStatus(executor *knuu.Executor, app *knuu.Instance) (string, error) { + nodeIP, err := app.GetIP() + if err != nil { + return "", fmt.Errorf("error getting node ip: %w", err) + } + + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute) + defer cancel() + status, err := executor.ExecuteCommandWithContext(ctx, "wget", "-q", "-O", "-", fmt.Sprintf("%s:26657/status", nodeIP)) + if err != nil { + return "", fmt.Errorf("error executing command: %w", err) + } + return status, nil +} + +func latestBlockHeightFromStatus(status string) (int64, error) { + var result map[string]interface{} + err := json.Unmarshal([]byte(status), &result) + if err != nil { + return 0, fmt.Errorf("error unmarshalling status: %w", err) + } + + if errorField, ok := result["error"]; ok { + errorData, ok := errorField.(map[string]interface{}) + if !ok { + return 0, fmt.Errorf("error field exists but is not a map[string]interface{}") + } + jsonError := &JSONRPCError{} + if errorCode, ok := errorData["code"].(float64); ok { + jsonError.Code = int(errorCode) + } + if errorMessage, ok := errorData["message"].(string); ok { + jsonError.Message = errorMessage + } + if errorData, ok := errorData["data"].(string); ok { + jsonError.Data = errorData + } + return 0, jsonError + } + + resultData, ok := result["result"].(map[string]interface{}) + if !ok { + return 0, fmt.Errorf("error getting result from status") + } + syncInfo, ok := resultData["sync_info"].(map[string]interface{}) + if !ok { + return 0, fmt.Errorf("error getting sync info from status") + } + latestBlockHeight, ok := syncInfo["latest_block_height"].(string) + if !ok { + return 0, fmt.Errorf("error getting latest block height from sync info") + } + latestBlockHeightInt, err := strconv.ParseInt(latestBlockHeight, 10, 64) + if err != nil { + return 0, fmt.Errorf("error converting latest block height to int: %w", err) + } + return latestBlockHeightInt, nil +} diff --git a/test/e2e/testnet/testnet.go b/test/e2e/testnet/testnet.go index 0d57a6928b..f8dba937bf 100644 --- a/test/e2e/testnet/testnet.go +++ b/test/e2e/testnet/testnet.go @@ -94,6 +94,7 @@ func (t *Testnet) CreateGenesisNodes(num int, version string, selfDelegation, up func (t *Testnet) CreateTxClients(version string, sequences int, blobRange string, + blobPerSequence int, resources Resources, grpcEndpoints []string, ) error { @@ -154,22 +155,21 @@ func (t *Testnet) CreateTxClient(name, Msg("error creating txsim") return err } - - // copy over the keyring directory to the txsim instance - err = txsim.Instance.AddFolder(txsimKeyringDir, txsimRootDir, "10001:10001") + err = txsim.Instance.Commit() if err != nil { log.Err(err). - Str("directory", txsimKeyringDir). Str("name", name). - Msg("error adding keyring dir to txsim") + Msg("error committing txsim") return err } - err = txsim.Instance.Commit() + // copy over the keyring directory to the txsim instance + err = txsim.Instance.AddFolder(txsimKeyringDir, txsimRootDir, "10001:10001") if err != nil { log.Err(err). + Str("directory", txsimKeyringDir). Str("name", name). - Msg("error committing txsim") + Msg("error adding keyring dir to txsim") return err } @@ -179,7 +179,7 @@ func (t *Testnet) CreateTxClient(name, func (t *Testnet) StartTxClients() error { for _, txsim := range t.txClients { - err := txsim.Instance.Start() + err := txsim.Instance.StartWithoutWait() if err != nil { log.Err(err). Str("name", txsim.Name). @@ -190,6 +190,13 @@ func (t *Testnet) StartTxClients() error { Str("name", txsim.Name). Msg("txsim started") } + // wait for txsims to start + for _, txsim := range t.txClients { + err := txsim.Instance.WaitInstanceIsRunning() + if err != nil { + return fmt.Errorf("txsim %s failed to start: %w", txsim.Name, err) + } + } return nil } @@ -332,12 +339,21 @@ func (t *Testnet) Start() error { genesisNodes = append(genesisNodes, node) } } + // start genesis nodes asynchronously for _, node := range genesisNodes { - err := node.Start() + err := node.StartAsync() if err != nil { return fmt.Errorf("node %s failed to start: %w", node.Name, err) } } + // wait for instances to be running + for _, node := range genesisNodes { + err := node.WaitUntilStartedAndForwardPorts() + if err != nil { + return fmt.Errorf("node %s failed to start: %w", node.Name, err) + } + } + // wait for nodes to sync for _, node := range genesisNodes { client, err := node.Client() if err != nil { @@ -354,58 +370,30 @@ func (t *Testnet) Start() error { if i == 9 { return fmt.Errorf("failed to start node %s", node.Name) } - time.Sleep(time.Second) + fmt.Printf("node %s is not synced yet, waiting...\n", node.Name) + time.Sleep(100 * time.Millisecond) } } return nil } func (t *Testnet) Cleanup() { - for _, node := range t.nodes { - if node.Instance.IsInState(knuu.Started) { - if err := node.Instance.Stop(); err != nil { - log.Err(err). - Str("name", node.Name). - Msg("node failed to stop") - continue - } - if err := node.Instance.WaitInstanceIsStopped(); err != nil { - log.Err(err). - Str("name", node.Name). - Msg("node failed to stop") - continue - } - } - if node.Instance.IsInState(knuu.Started, knuu.Stopped) { - err := node.Instance.Destroy() - if err != nil { - log.Err(err). - Str("name", node.Name). - Msg("node failed to cleanup") - } + // cleanup txsim + for _, txsim := range t.txClients { + err := txsim.Instance.Destroy() + if err != nil { + log.Err(err). + Str("name", txsim.Name). + Msg("txsim failed to cleanup") } } - // stop and cleanup txsim - for _, txsim := range t.txClients { - if txsim.Instance.IsInState(knuu.Started) { - err := txsim.Instance.Stop() - if err != nil { - log.Err(err). - Str("name", txsim.Name). - Msg("txsim failed to stop") - } - err = txsim.Instance.WaitInstanceIsStopped() - if err != nil { - log.Err(err). - Str("name", txsim.Name). - Msg("txsim failed to stop") - } - err = txsim.Instance.Destroy() - if err != nil { - log.Err(err). - Str("name", txsim.Name). - Msg("txsim failed to cleanup") - } + // cleanup nodes + for _, node := range t.nodes { + err := node.Instance.Destroy() + if err != nil { + log.Err(err). + Str("name", node.Name). + Msg("node failed to cleanup") } } if err := t.executor.Destroy(); err != nil { From 93d5a4eb1ed1a9993691fb27d22f5f92dccda318 Mon Sep 17 00:00:00 2001 From: sanaz Date: Wed, 29 May 2024 11:01:19 -0700 Subject: [PATCH 05/28] adds tracing config fields to the Manifest --- test/e2e/benchmark/manifest.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/e2e/benchmark/manifest.go b/test/e2e/benchmark/manifest.go index d7068025bd..de372b9cb1 100644 --- a/test/e2e/benchmark/manifest.go +++ b/test/e2e/benchmark/manifest.go @@ -68,11 +68,15 @@ type Manifest struct { // consensus parameters MaxBlockBytes int64 + // other configs + // tracing configs, can be local or noop + LocalTracingType string + PushTrace bool + // other configs UpgradeHeight int64 GovMaxSquareSize int64 } - func (m *Manifest) GetGenesisModifiers() []genesis.Modifier { ecfg := encoding.MakeConfig(app.ModuleBasics) var modifiers []genesis.Modifier From 248687ea4aa340470b23820465adf99383c4a560 Mon Sep 17 00:00:00 2001 From: sanaz Date: Wed, 29 May 2024 11:03:50 -0700 Subject: [PATCH 06/28] enables local tracing in E2EThroughput tests --- test/e2e/benchmark/throughput.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/e2e/benchmark/throughput.go b/test/e2e/benchmark/throughput.go index 81e00ea233..e62265556c 100644 --- a/test/e2e/benchmark/throughput.go +++ b/test/e2e/benchmark/throughput.go @@ -49,6 +49,8 @@ func E2EThroughput() error { Prometheus: true, GovMaxSquareSize: appconsts.DefaultGovMaxSquareSize, MaxBlockBytes: appconsts.DefaultMaxBytes, + LocalTracingType: "local", + PushTrace: false, TestDuration: 30 * time.Second, TxClients: 2, } From 01b9203c879895534355eb1318b4fff3f818b9a0 Mon Sep 17 00:00:00 2001 From: sanaz Date: Wed, 29 May 2024 11:12:46 -0700 Subject: [PATCH 07/28] updates config based the choice of local tracing --- test/e2e/benchmark/benchmark.go | 1 + 1 file changed, 1 insertion(+) diff --git a/test/e2e/benchmark/benchmark.go b/test/e2e/benchmark/benchmark.go index 8304048daf..c6137dac9d 100644 --- a/test/e2e/benchmark/benchmark.go +++ b/test/e2e/benchmark/benchmark.go @@ -63,6 +63,7 @@ func (b *BenchmarkTest) SetupNodes() error { testnet.WithTimeoutPropose(b.manifest.TimeoutPropose), testnet.WithTimeoutCommit(b.manifest.TimeoutCommit), testnet.WithPrometheus(b.manifest.Prometheus), + testnet.WithLocalTracing(b.manifest.LocalTracingType), )) return nil } From 92cec9fa5a9f5c8c398f4305aef77ec332ae3d95 Mon Sep 17 00:00:00 2001 From: sanaz Date: Wed, 29 May 2024 11:13:00 -0700 Subject: [PATCH 08/28] refactors the code --- test/e2e/testnet/node.go | 46 +++------------------------------------- 1 file changed, 3 insertions(+), 43 deletions(-) diff --git a/test/e2e/testnet/node.go b/test/e2e/testnet/node.go index 714d5e2517..12b24c0a14 100644 --- a/test/e2e/testnet/node.go +++ b/test/e2e/testnet/node.go @@ -43,7 +43,7 @@ type Node struct { NetworkKey crypto.PrivKey SelfDelegation int64 Instance *knuu.Instance - RemoteHomeDirectory string + remoteHomeDirectory string rpcProxyPort int grpcProxyPort int @@ -51,47 +51,7 @@ type Node struct { } func (n *Node) GetRemoteHomeDirectory() string { - return n.RemoteHomeDirectory -} - -// GetRoundStateTraces retrieves the round state traces from a node. -func (n *Node) GetRoundStateTraces() ([]trace.Event[schema.RoundState], error) { - tableFileName := fmt.Sprintf("%s.json", schema.RoundState{}.Table()) - traceFileName := filepath.Join(n.GetRemoteHomeDirectory(), "data", - "traces", tableFileName) - consensusRoundStateBytes, err := n.Instance.GetFileBytes(traceFileName) - if err != nil { - return nil, err - } - tmpFile, err := os.CreateTemp(".", tableFileName) - if err != nil { - return nil, err - } - defer os.Remove(tmpFile.Name()) - - if _, err = tmpFile.Write(consensusRoundStateBytes); err != nil { - return nil, err - } - events, err := trace.DecodeFile[schema.RoundState](tmpFile) - if err != nil { - return nil, fmt.Errorf("decoding file: %w", err) - } - return events, nil -} - -// PullReceivedBytes retrieves the round state traces from a node. -func (n *Node) PullReceivedBytes() ([]trace.Event[schema.ReceivedBytes], - error, -) { - - addr := n.AddressTracing() - log.Info().Str("Address", addr).Msg("Pulling round state traces") - - err := trace.GetTable(addr, schema.ReceivedBytes{}.Table(), ".") - if err != nil { - return nil, fmt.Errorf("getting table: %w", err) - } - return nil, nil + return n.remoteHomeDirectory } // PullRoundStateTraces retrieves the round state traces from a node. @@ -196,7 +156,7 @@ func NewNode( SignerKey: signerKey, NetworkKey: networkKey, SelfDelegation: selfDelegation, - RemoteHomeDirectory: remoteRootDir, + remoteHomeDirectory: remoteRootDir, }, nil } From 9507488eb8afee7485b53726e2c468adcda0b032 Mon Sep 17 00:00:00 2001 From: sanaz Date: Wed, 29 May 2024 11:13:52 -0700 Subject: [PATCH 09/28] removes remoteHomeDirectory field and getter --- test/e2e/testnet/node.go | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/test/e2e/testnet/node.go b/test/e2e/testnet/node.go index 12b24c0a14..67344faf91 100644 --- a/test/e2e/testnet/node.go +++ b/test/e2e/testnet/node.go @@ -35,25 +35,20 @@ const ( ) type Node struct { - Name string - Version string - StartHeight int64 - InitialPeers []string - SignerKey crypto.PrivKey - NetworkKey crypto.PrivKey - SelfDelegation int64 - Instance *knuu.Instance - remoteHomeDirectory string + Name string + Version string + StartHeight int64 + InitialPeers []string + SignerKey crypto.PrivKey + NetworkKey crypto.PrivKey + SelfDelegation int64 + Instance *knuu.Instance rpcProxyPort int grpcProxyPort int traceProxyPort int } -func (n *Node) GetRemoteHomeDirectory() string { - return n.remoteHomeDirectory -} - // PullRoundStateTraces retrieves the round state traces from a node. func (n *Node) PullRoundStateTraces() ([]trace.Event[schema.RoundState], error) { From 7b8ad0a4b63ae3b305211aaa225b8d934f2e80c5 Mon Sep 17 00:00:00 2001 From: sanaz Date: Wed, 29 May 2024 11:24:57 -0700 Subject: [PATCH 10/28] includes missing blobPerSequence --- test/e2e/benchmark/benchmark.go | 1 + test/e2e/testnet/testnet.go | 1 + 2 files changed, 2 insertions(+) diff --git a/test/e2e/benchmark/benchmark.go b/test/e2e/benchmark/benchmark.go index c6137dac9d..14a2d7f618 100644 --- a/test/e2e/benchmark/benchmark.go +++ b/test/e2e/benchmark/benchmark.go @@ -54,6 +54,7 @@ func (b *BenchmarkTest) SetupNodes() error { err = b.CreateTxClients(b.manifest.TxClientVersion, b.manifest.BlobSequences, b.manifest.BlobSizes, + b.manifest.BlobsPerSeq, b.manifest.TxClientsResource, gRPCEndpoints) testnet.NoError("failed to create tx clients", err) diff --git a/test/e2e/testnet/testnet.go b/test/e2e/testnet/testnet.go index 0d57a6928b..1813392d85 100644 --- a/test/e2e/testnet/testnet.go +++ b/test/e2e/testnet/testnet.go @@ -94,6 +94,7 @@ func (t *Testnet) CreateGenesisNodes(num int, version string, selfDelegation, up func (t *Testnet) CreateTxClients(version string, sequences int, blobRange string, + blobPerSequence int, resources Resources, grpcEndpoints []string, ) error { From 685ee9daed808c04f58848d3057f68e09c207aa2 Mon Sep 17 00:00:00 2001 From: sanaz Date: Wed, 29 May 2024 11:25:27 -0700 Subject: [PATCH 11/28] allows specifying path to save the table when pulling round state table --- test/e2e/testnet/node.go | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/test/e2e/testnet/node.go b/test/e2e/testnet/node.go index 67344faf91..e77ded21bf 100644 --- a/test/e2e/testnet/node.go +++ b/test/e2e/testnet/node.go @@ -50,12 +50,14 @@ type Node struct { } // PullRoundStateTraces retrieves the round state traces from a node. -func (n *Node) PullRoundStateTraces() ([]trace.Event[schema.RoundState], error) { +// it will save it to the provided path. +func (n *Node) PullRoundStateTraces(path string) ([]trace.Event[schema. + RoundState], error) { addr := n.AddressTracing() log.Info().Str("Address", addr).Msg("Pulling round state traces") - err := trace.GetTable(addr, schema.RoundState{}.Table(), ".") + err := trace.GetTable(addr, schema.RoundState{}.Table(), path) if err != nil { return nil, fmt.Errorf("getting table: %w", err) } @@ -143,15 +145,14 @@ func NewNode( } return &Node{ - Name: name, - Instance: instance, - Version: version, - StartHeight: startHeight, - InitialPeers: peers, - SignerKey: signerKey, - NetworkKey: networkKey, - SelfDelegation: selfDelegation, - remoteHomeDirectory: remoteRootDir, + Name: name, + Instance: instance, + Version: version, + StartHeight: startHeight, + InitialPeers: peers, + SignerKey: signerKey, + NetworkKey: networkKey, + SelfDelegation: selfDelegation, }, nil } From 43fb5acb73939bccde0bf5fda1d7f314b94971f4 Mon Sep 17 00:00:00 2001 From: sanaz Date: Wed, 29 May 2024 11:25:51 -0700 Subject: [PATCH 12/28] checks if local tracing works --- test/e2e/benchmark/throughput.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/e2e/benchmark/throughput.go b/test/e2e/benchmark/throughput.go index e62265556c..0e33c12978 100644 --- a/test/e2e/benchmark/throughput.go +++ b/test/e2e/benchmark/throughput.go @@ -68,6 +68,13 @@ func E2EThroughput() error { testnet.NoError("failed to run the benchmark test", benchTest.Run()) // post test data collection and validation + + // if local tracing is enbaled, pull round state traces to confirm tracing is working + if benchTest.manifest.LocalTracingType == "local" { + if _, err := benchTest.Node(0).PullRoundStateTraces("."); err != nil { + return fmt.Errorf("failed to pull round state traces: %w", err) + } + } log.Println("Reading blockchain") blockchain, err := testnode.ReadBlockchain(context.Background(), benchTest.Node(0).AddressRPC()) From 7d628d55965f36902dddbf51de7067df72827c19 Mon Sep 17 00:00:00 2001 From: sanaz Date: Wed, 29 May 2024 12:43:32 -0700 Subject: [PATCH 13/28] defines pushing traced data in benchmark tests --- test/e2e/benchmark/benchmark.go | 26 ++++++++++++++++++++++++++ test/e2e/benchmark/throughput.go | 4 +++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/test/e2e/benchmark/benchmark.go b/test/e2e/benchmark/benchmark.go index 14a2d7f618..e146c7245a 100644 --- a/test/e2e/benchmark/benchmark.go +++ b/test/e2e/benchmark/benchmark.go @@ -6,6 +6,7 @@ import ( "time" "github.com/celestiaorg/celestia-app/v2/test/e2e/testnet" + "github.com/tendermint/tendermint/pkg/trace" ) type BenchmarkTest struct { @@ -66,6 +67,31 @@ func (b *BenchmarkTest) SetupNodes() error { testnet.WithPrometheus(b.manifest.Prometheus), testnet.WithLocalTracing(b.manifest.LocalTracingType), )) + + if b.manifest.PushTrace { + log.Println("reading trace push config") + if pushConfig, err := trace.GetPushConfigFromEnv(); err == nil { + log.Print("Setting up trace push config") + for _, node := range b.Nodes() { + if err = node.Instance.SetEnvironmentVariable(trace. + PushBucketName, pushConfig.BucketName); err != nil { + return fmt.Errorf("failed to set TRACE_PUSH_BUCKET_NAME: %v", err) + } + if err = node.Instance.SetEnvironmentVariable(trace.PushRegion, pushConfig.Region); err != nil { + return fmt.Errorf("failed to set TRACE_PUSH_REGION: %v", err) + } + if err = node.Instance.SetEnvironmentVariable(trace.PushAccessKey, pushConfig.AccessKey); err != nil { + return fmt.Errorf("failed to set TRACE_PUSH_ACCESS_KEY: %v", err) + } + if err = node.Instance.SetEnvironmentVariable(trace.PushKey, pushConfig.SecretKey); err != nil { + return fmt.Errorf("failed to set TRACE_PUSH_SECRET_KEY: %v", err) + } + if err = node.Instance.SetEnvironmentVariable(trace.PushDelay, fmt.Sprintf("%d", pushConfig.PushDelay)); err != nil { + return fmt.Errorf("failed to set TRACE_PUSH_DELAY: %v", err) + } + } + } + } return nil } diff --git a/test/e2e/benchmark/throughput.go b/test/e2e/benchmark/throughput.go index 0e33c12978..8b9c7eec80 100644 --- a/test/e2e/benchmark/throughput.go +++ b/test/e2e/benchmark/throughput.go @@ -69,12 +69,14 @@ func E2EThroughput() error { // post test data collection and validation - // if local tracing is enbaled, pull round state traces to confirm tracing is working + // if local tracing is enabled, + // pull round state traces to confirm tracing is working as expected. if benchTest.manifest.LocalTracingType == "local" { if _, err := benchTest.Node(0).PullRoundStateTraces("."); err != nil { return fmt.Errorf("failed to pull round state traces: %w", err) } } + log.Println("Reading blockchain") blockchain, err := testnode.ReadBlockchain(context.Background(), benchTest.Node(0).AddressRPC()) From 33fa9cd892e4d11c718f8ef58ef84bbfbd679c60 Mon Sep 17 00:00:00 2001 From: sanaz Date: Wed, 29 May 2024 13:13:52 -0700 Subject: [PATCH 14/28] downloads traces if specified so --- test/e2e/benchmark/manifest.go | 4 ++++ test/e2e/benchmark/throughput.go | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/test/e2e/benchmark/manifest.go b/test/e2e/benchmark/manifest.go index de372b9cb1..a1d8b52ac9 100644 --- a/test/e2e/benchmark/manifest.go +++ b/test/e2e/benchmark/manifest.go @@ -72,11 +72,15 @@ type Manifest struct { // tracing configs, can be local or noop LocalTracingType string PushTrace bool + // download traces from the s3 bucket + // only available when PushTrace is enabled + DownloadTraces bool // other configs UpgradeHeight int64 GovMaxSquareSize int64 } + func (m *Manifest) GetGenesisModifiers() []genesis.Modifier { ecfg := encoding.MakeConfig(app.ModuleBasics) var modifiers []genesis.Modifier diff --git a/test/e2e/benchmark/throughput.go b/test/e2e/benchmark/throughput.go index 8b9c7eec80..d4f75ec011 100644 --- a/test/e2e/benchmark/throughput.go +++ b/test/e2e/benchmark/throughput.go @@ -9,6 +9,7 @@ import ( "github.com/celestiaorg/celestia-app/v2/pkg/appconsts" "github.com/celestiaorg/celestia-app/v2/test/e2e/testnet" "github.com/celestiaorg/celestia-app/v2/test/util/testnode" + "github.com/tendermint/tendermint/pkg/trace" ) const ( @@ -51,6 +52,7 @@ func E2EThroughput() error { MaxBlockBytes: appconsts.DefaultMaxBytes, LocalTracingType: "local", PushTrace: false, + DownloadTraces: false, TestDuration: 30 * time.Second, TxClients: 2, } @@ -77,6 +79,18 @@ func E2EThroughput() error { } } + // download traces from S3, if enabled + if benchTest.manifest.PushTrace && benchTest.manifest.DownloadTraces { + // download traces from S3 + pushConfig, _ := trace.GetPushConfigFromEnv() + err := trace.S3Download("./traces/", benchTest.manifest.ChainID, + pushConfig) + if err != nil { + return fmt.Errorf("failed to download traces from S3: %w", err) + + } + } + log.Println("Reading blockchain") blockchain, err := testnode.ReadBlockchain(context.Background(), benchTest.Node(0).AddressRPC()) From 88318599bc3a88b98b3b7cf6b4f861634dbb18bf Mon Sep 17 00:00:00 2001 From: sanaz Date: Wed, 29 May 2024 13:31:04 -0700 Subject: [PATCH 15/28] removes unused comments --- test/e2e/testnet/setup.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/e2e/testnet/setup.go b/test/e2e/testnet/setup.go index 26649fdb16..f3b210c329 100644 --- a/test/e2e/testnet/setup.go +++ b/test/e2e/testnet/setup.go @@ -75,8 +75,6 @@ func WithLocalTracing(localTracingType string) Option { cfg.Instrumentation.TraceType = localTracingType cfg.Instrumentation.TraceBufferSize = 1000 cfg.Instrumentation.TracePullAddress = ":26661" - //cfg.Instrumentation.TracingTables = "consensus_round_state,received_bytes" - // cfg.Instrumentation.TracePushConfig = "s3.json" } } func WriteAddressBook(peers []string, file string) error { From 566e2834573cc1312aa6f9de15f391a718cf379d Mon Sep 17 00:00:00 2001 From: sanaz Date: Wed, 29 May 2024 13:33:26 -0700 Subject: [PATCH 16/28] deletes MakeTracePushConfig as it is not used --- test/e2e/testnet/setup.go | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/test/e2e/testnet/setup.go b/test/e2e/testnet/setup.go index f3b210c329..04890e969c 100644 --- a/test/e2e/testnet/setup.go +++ b/test/e2e/testnet/setup.go @@ -1,10 +1,7 @@ package testnet import ( - "encoding/json" "fmt" - "os" - "path/filepath" "strings" "time" @@ -13,7 +10,6 @@ import ( "github.com/tendermint/tendermint/config" "github.com/tendermint/tendermint/p2p" "github.com/tendermint/tendermint/p2p/pex" - "github.com/tendermint/tendermint/pkg/trace" ) func MakeConfig(node *Node, opts ...Option) (*config.Config, error) { @@ -98,23 +94,3 @@ func MakeAppConfig(_ *Node) (*serverconfig.Config, error) { srvCfg.MinGasPrices = fmt.Sprintf("0.001%s", app.BondDenom) return srvCfg, srvCfg.ValidateBasic() } - -// MakeTracePushConfig creates a trace push config file "s3.json" in the given config path -// with the trace push config from the environment variables. -func MakeTracePushConfig(configPath string) error { - traceConfigFile, err := os.OpenFile(filepath.Join(configPath, "s3.json"), os.O_CREATE|os.O_RDWR, 0o777) - if err != nil { - return err - } - defer traceConfigFile.Close() - traceConfig, err := trace.GetPushConfigFromEnv() - if err != nil { - return err - } - err = json.NewEncoder(traceConfigFile).Encode(traceConfig) - if err != nil { - return err - } - traceConfigFile.Close() - return nil -} From 1772eb4f568d648defae11bb5b08f1c484f101f2 Mon Sep 17 00:00:00 2001 From: sanaz Date: Wed, 29 May 2024 13:36:45 -0700 Subject: [PATCH 17/28] resolves linter issues --- test/e2e/benchmark/throughput.go | 1 - test/e2e/testnet/node.go | 4 ++-- test/e2e/testnet/setup.go | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/e2e/benchmark/throughput.go b/test/e2e/benchmark/throughput.go index d4f75ec011..e63d33328b 100644 --- a/test/e2e/benchmark/throughput.go +++ b/test/e2e/benchmark/throughput.go @@ -87,7 +87,6 @@ func E2EThroughput() error { pushConfig) if err != nil { return fmt.Errorf("failed to download traces from S3: %w", err) - } } diff --git a/test/e2e/testnet/node.go b/test/e2e/testnet/node.go index e77ded21bf..bfe76139bb 100644 --- a/test/e2e/testnet/node.go +++ b/test/e2e/testnet/node.go @@ -52,8 +52,8 @@ type Node struct { // PullRoundStateTraces retrieves the round state traces from a node. // it will save it to the provided path. func (n *Node) PullRoundStateTraces(path string) ([]trace.Event[schema. - RoundState], error) { - + RoundState], error, +) { addr := n.AddressTracing() log.Info().Str("Address", addr).Msg("Pulling round state traces") diff --git a/test/e2e/testnet/setup.go b/test/e2e/testnet/setup.go index 04890e969c..629d428e42 100644 --- a/test/e2e/testnet/setup.go +++ b/test/e2e/testnet/setup.go @@ -73,6 +73,7 @@ func WithLocalTracing(localTracingType string) Option { cfg.Instrumentation.TracePullAddress = ":26661" } } + func WriteAddressBook(peers []string, file string) error { book := pex.NewAddrBook(file, false) for _, peer := range peers { From 1515dea30a0ad700042953a730c4cda90bda297d Mon Sep 17 00:00:00 2001 From: sanaz Date: Wed, 29 May 2024 14:01:47 -0700 Subject: [PATCH 18/28] updates knuu version to v0.13.3 --- go.mod | 42 ++++++++++----------- go.sum | 113 ++++++++++++++++++++++++++++----------------------------- 2 files changed, 77 insertions(+), 78 deletions(-) diff --git a/go.mod b/go.mod index 14b17fd9f3..e19505d69f 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/celestiaorg/blobstream-contracts/v3 v3.1.0 github.com/celestiaorg/go-square v1.0.1 github.com/celestiaorg/go-square/merkle v0.0.0-20240117232118-fd78256df076 - github.com/celestiaorg/knuu v0.13.2 + github.com/celestiaorg/knuu v0.13.3 github.com/celestiaorg/nmt v0.21.0 github.com/celestiaorg/rsmt2d v0.13.1 github.com/cosmos/cosmos-proto v1.0.0-beta.5 @@ -29,7 +29,7 @@ require ( github.com/stretchr/testify v1.9.0 github.com/tendermint/tendermint v0.34.29 github.com/tendermint/tm-db v0.6.7 - golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb + golang.org/x/exp v0.0.0-20240213143201-ec583247a57a google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 google.golang.org/grpc v1.64.0 google.golang.org/protobuf v1.34.1 @@ -56,7 +56,7 @@ require ( github.com/bgentry/speakeasy v0.1.0 // indirect github.com/bits-and-blooms/bitset v1.10.0 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect - github.com/celestiaorg/bittwister v0.0.0-20231211182706-b065de784c03 // indirect + github.com/celestiaorg/bittwister v0.0.0-20231213180407-65cdbaf5b8c7 // indirect github.com/celestiaorg/merkletree v0.0.0-20210714075610-a84dc3ddbbe4 // indirect github.com/cenkalti/backoff/v4 v4.1.3 // indirect github.com/cespare/xxhash v1.1.0 // indirect @@ -85,8 +85,8 @@ require ( github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v26.0.2+incompatible // indirect - github.com/docker/go-connections v0.4.0 // indirect + github.com/docker/docker v26.1.2+incompatible // indirect + github.com/docker/go-connections v0.4.1-0.20210727194412-58542c764a11 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/dvsekhvalnov/jose2go v1.6.0 // indirect @@ -104,6 +104,7 @@ require ( github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/swag v0.22.3 // indirect github.com/go-playground/validator/v10 v10.11.2 // indirect + github.com/goccy/go-json v0.10.2 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/gateway v1.1.0 // indirect github.com/golang/glog v1.2.0 // indirect @@ -138,15 +139,16 @@ require ( github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3 // indirect github.com/holiman/uint256 v1.2.4 // indirect github.com/iancoleman/orderedmap v0.2.0 // indirect - github.com/imdario/mergo v0.3.13 // indirect + github.com/imdario/mergo v0.3.16 // indirect github.com/improbable-eng/grpc-web v0.15.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect + github.com/joho/godotenv v1.5.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.17.6 // indirect - github.com/klauspost/cpuid/v2 v2.2.6 // indirect + github.com/klauspost/cpuid/v2 v2.2.7 // indirect github.com/klauspost/reedsolomon v1.12.1 // indirect github.com/lib/pq v1.10.7 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect @@ -160,8 +162,7 @@ require ( github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/minio/md5-simd v1.1.2 // indirect - github.com/minio/minio-go/v7 v7.0.69 // indirect - github.com/minio/sha256-simd v1.0.1 // indirect + github.com/minio/minio-go/v7 v7.0.70 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect @@ -175,7 +176,7 @@ require ( github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect github.com/onsi/ginkgo v1.16.5 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc2 // indirect + github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect github.com/pelletier/go-toml/v2 v2.1.0 // indirect github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 // indirect github.com/pkg/errors v0.9.1 // indirect @@ -212,38 +213,37 @@ require ( go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect - go.opentelemetry.io/otel v1.24.0 // indirect + go.opentelemetry.io/otel v1.26.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.18.0 // indirect - go.opentelemetry.io/otel/metric v1.24.0 // indirect - go.opentelemetry.io/otel/sdk v1.24.0 // indirect - go.opentelemetry.io/otel/trace v1.24.0 // indirect + go.opentelemetry.io/otel/metric v1.26.0 // indirect + go.opentelemetry.io/otel/sdk v1.26.0 // indirect + go.opentelemetry.io/otel/trace v1.26.0 // indirect go.opentelemetry.io/proto/otlp v1.1.0 // indirect - go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect - go.uber.org/zap v1.24.0 // indirect + go.uber.org/zap v1.27.0 // indirect golang.org/x/crypto v0.22.0 // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.24.0 // indirect golang.org/x/oauth2 v0.18.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.19.0 // indirect + golang.org/x/sys v0.20.0 // indirect golang.org/x/term v0.19.0 // indirect - golang.org/x/text v0.14.0 // indirect + golang.org/x/text v0.15.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.20.0 // indirect google.golang.org/api v0.169.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/api v0.29.3 // indirect k8s.io/apimachinery v0.29.3 // indirect k8s.io/client-go v0.29.2 // indirect - k8s.io/klog/v2 v2.110.1 // indirect - k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect nhooyr.io/websocket v1.8.6 // indirect rsc.io/tmplfunc v0.0.3 // indirect diff --git a/go.sum b/go.sum index 53f4954046..11fcf050e2 100644 --- a/go.sum +++ b/go.sum @@ -215,6 +215,7 @@ github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3 github.com/DataDog/zstd v1.5.0 h1:+K/VEwIAaPcHiMtQvpLD4lqW7f0Gk3xdYZmI1hD+CXo= github.com/DataDog/zstd v1.5.0/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= +github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= @@ -273,8 +274,6 @@ github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1/go.mod h1:rLiOUrPLW/Er5kRcQ7 github.com/aws/aws-sdk-go-v2/service/sso v1.1.1/go.mod h1:SuZJxklHxLAXgLTc1iFXbEWkXs7QRTQpCLGaKIprQW0= github.com/aws/aws-sdk-go-v2/service/sts v1.1.1/go.mod h1:Wi0EBZwiz/K44YliU0EKxqTCJGUfYTWXrrBwkq736bM= github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw= -github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -317,8 +316,8 @@ github.com/bufbuild/protocompile v0.5.1/go.mod h1:G5iLmavmF4NsYtpZFvE3B/zFch2GIY github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= -github.com/celestiaorg/bittwister v0.0.0-20231211182706-b065de784c03 h1:oAyIR+jHql2SR4lIcsI3gXeyhzM3GSMtAzSXBuH0NEQ= -github.com/celestiaorg/bittwister v0.0.0-20231211182706-b065de784c03/go.mod h1:1EF5MfOxVf0WC51Gb7pJ6bcZxnXKNAf9pqWtjgPBAYc= +github.com/celestiaorg/bittwister v0.0.0-20231213180407-65cdbaf5b8c7 h1:nxplQi8wrLMjhu260RuigXylC3pWoDu4OVumPHeojnk= +github.com/celestiaorg/bittwister v0.0.0-20231213180407-65cdbaf5b8c7/go.mod h1:1EF5MfOxVf0WC51Gb7pJ6bcZxnXKNAf9pqWtjgPBAYc= github.com/celestiaorg/blobstream-contracts/v3 v3.1.0 h1:h1Y4V3EMQ2mFmNtWt2sIhZIuyASInj1a9ExI8xOsTOw= github.com/celestiaorg/blobstream-contracts/v3 v3.1.0/go.mod h1:x4DKyfKOSv1ZJM9NwV+Pw01kH2CD7N5zTFclXIVJ6GQ= github.com/celestiaorg/celestia-core v1.36.1-tm-v0.34.29 h1:BuYworCMtFxAYyM5l1C0gx6PT/ViHosVRydvYd7vCqs= @@ -329,8 +328,8 @@ github.com/celestiaorg/go-square v1.0.1 h1:LEG1zrw4i03VBMElQF8GAbKYgh1bT1uGzWxas github.com/celestiaorg/go-square v1.0.1/go.mod h1:XMv5SGCeGSkynW2OOsedugaW/rQlvzxGzWGxTKsyYOU= github.com/celestiaorg/go-square/merkle v0.0.0-20240117232118-fd78256df076 h1:PYInrsYzrDIsZW9Yb86OTi2aEKuPcpgJt6Mc0Jlc/yg= github.com/celestiaorg/go-square/merkle v0.0.0-20240117232118-fd78256df076/go.mod h1:hlidgivKyvv7m4Yl2Fdf2mSTmazZYxX8+bnr5IQrI98= -github.com/celestiaorg/knuu v0.13.2 h1:JKA4RpKighW8StYFAm34wno3lQLTN+iuhUm6q3VrxkI= -github.com/celestiaorg/knuu v0.13.2/go.mod h1:7UUt/ZYezIXVKKypNbr/b0/NyP39sRttfJp3grOAjvw= +github.com/celestiaorg/knuu v0.13.3 h1:JP8/8Pj8ZVvlGEzqvA4xP0kMQ6QaXC1tMzzd1ih+uak= +github.com/celestiaorg/knuu v0.13.3/go.mod h1:U9TngqkNTz582iRpyEUIp98NDBBva2RCs+b97XkTQzw= github.com/celestiaorg/merkletree v0.0.0-20210714075610-a84dc3ddbbe4 h1:CJdIpo8n5MFP2MwK0gSRcOVlDlFdQJO1p+FqdxYzmvc= github.com/celestiaorg/merkletree v0.0.0-20210714075610-a84dc3ddbbe4/go.mod h1:fzuHnhzj1pUygGz+1ZkB3uQbEUL4htqCGJ4Qs2LwMZA= github.com/celestiaorg/nmt v0.21.0 h1:81MBqxNn3orByoiCtdNVjwi5WsLgMkzHwP02ZMhTBHM= @@ -487,10 +486,10 @@ github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwu github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v26.0.2+incompatible h1:yGVmKUFGgcxA6PXWAokO0sQL22BrQ67cgVjko8tGdXE= -github.com/docker/docker v26.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/docker v26.1.2+incompatible h1:UVX5ZOrrfTGZZYEP+ZDq3Xn9PdHNXaSYMFPDumMqG2k= +github.com/docker/docker v26.1.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.4.1-0.20210727194412-58542c764a11 h1:IPrmumsT9t5BS7XcPhgsCTlkWbYg80SEXUzDpReaU6Y= +github.com/docker/go-connections v0.4.1-0.20210727194412-58542c764a11/go.mod h1:a6bNUGTbQBsY6VRHTr4h/rkOXjl244DyRD0tx3fgq4Q= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/dop251/goja v0.0.0-20211011172007-d99e4b8cbf48/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk= @@ -524,8 +523,8 @@ github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1 github.com/ethereum/go-ethereum v1.10.17/go.mod h1:Lt5WzjM07XlXc95YzrhosmR4J9Ahd6X2wyEV2SvGhk0= github.com/ethereum/go-ethereum v1.14.3 h1:5zvnAqLtnCZrU9uod1JCvHWJbPMURzYFHfc2eHz4PHA= github.com/ethereum/go-ethereum v1.14.3/go.mod h1:1STrq471D0BQbCX9He0hUj4bHxX2k6mt5nOQJhDNOJ8= -github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= -github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= +github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c h1:8ISkoahWXwZR41ois5lSJBSVw4D0OV19Ht/JSTzvSv0= github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64= github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 h1:JWuenKqqX8nojtoVVWjGfOF9635RETekkoH6Cc9SX0A= @@ -623,6 +622,8 @@ github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= +github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= +github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -734,8 +735,8 @@ github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20230228050547-1710fef4ab10 h1:CqYfpuYIjnlNxM3msdyPRKabhXZWbKjf3Q8BWROFBso= -github.com/google/pprof v0.0.0-20230228050547-1710fef4ab10/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk= +github.com/google/pprof v0.0.0-20240207164012-fb44976bdcd5 h1:E/LAvt58di64hlYjx7AsNS6C/ysHWYo+2qPCZKTQhRo= +github.com/google/pprof v0.0.0-20240207164012-fb44976bdcd5/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= @@ -862,8 +863,8 @@ github.com/iancoleman/orderedmap v0.2.0 h1:sq1N/TFpYH++aViPcaKjys3bDClUEU7s5B+z6 github.com/iancoleman/orderedmap v0.2.0/go.mod h1:N0Wam8K1arqPXNWjMo21EXnBPOPp36vB07FNRdD2geA= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= -github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= +github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= +github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/improbable-eng/grpc-web v0.15.0 h1:BN+7z6uNXZ1tQGcNAuaU1YjsLTApzkjt2tzCixLaUPQ= github.com/improbable-eng/grpc-web v0.15.0/go.mod h1:1sy9HKV4Jt9aEs9JSnkWlRJPuPtwNr0l57L4f878wP8= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= @@ -895,6 +896,8 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGw github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= +github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= @@ -929,8 +932,8 @@ github.com/klauspost/compress v1.17.6 h1:60eq2E/jlfwQXtvZEeBUYADs+BwKBWURIY+Gj2e github.com/klauspost/compress v1.17.6/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.6 h1:ndNyv040zDGIDh8thGkXYjnFtiN02M1PVVF+JE/48xc= -github.com/klauspost/cpuid/v2 v2.2.6/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= +github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/klauspost/reedsolomon v1.12.1 h1:NhWgum1efX1x58daOBGCFWcxtEhOhXKKl1HAPQUp03Q= @@ -1009,10 +1012,8 @@ github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= -github.com/minio/minio-go/v7 v7.0.69 h1:l8AnsQFyY1xiwa/DaQskY4NXSLA2yrGsW5iD9nRPVS0= -github.com/minio/minio-go/v7 v7.0.69/go.mod h1:XAvOPJQ5Xlzk5o3o/ArO2NMbhSGkimC+bpW/ngRKDmQ= -github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= -github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= +github.com/minio/minio-go/v7 v7.0.70 h1:1u9NtMgfK1U42kUxcsl5v0yj6TEOPR497OAQxpJnn2g= +github.com/minio/minio-go/v7 v7.0.70/go.mod h1:4yBA8v80xGA30cfM3fz0DKYMXunWl/AV/6tWEs9ryzo= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= @@ -1086,19 +1087,19 @@ github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108 github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.13.0 h1:0jY9lJquiL8fcf3M4LAXN5aMlS/b2BV86HFFPCPMgE4= -github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xlT/ETL/o= +github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= +github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg= -github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= +github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= +github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= -github.com/opencontainers/image-spec v1.1.0-rc2/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= +github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b h1:YWuSjZCQAPM8UUBLkYUk1e+rZcvWHJmFb6i6rM44Xs8= +github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= github.com/opencontainers/runc v1.1.3 h1:vIXrkId+0/J2Ymu2m7VjGvbSlAId9XNRPhn2p4b+d8w= github.com/opencontainers/runc v1.1.3/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= @@ -1221,6 +1222,7 @@ github.com/shirou/gopsutil v3.21.6+incompatible h1:mmZtAlWSd8U2HeRTjswbnDLPxqsEo github.com/shirou/gopsutil v3.21.6+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= @@ -1377,33 +1379,31 @@ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.4 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= -go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= -go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= +go.opentelemetry.io/otel v1.26.0 h1:LQwgL5s/1W7YiiRwxf03QGnWLb2HW4pLiAhaA5cZXBs= +go.opentelemetry.io/otel v1.26.0/go.mod h1:UmLkJHUAidDval2EICqBMbnAd0/m2vmpf/dAM+fvFs4= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0 h1:t6wl9SPayj+c7lEIFgm4ooDBZVb01IhLB4InpomhRw8= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0/go.mod h1:iSDOcsnSA5INXzZtwaBPrKp/lWu/V14Dd+llD0oI2EA= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0 h1:Xw8U6u2f8DK2XAkGRFV7BBLENgnTGX9i4rQRxJf+/vs= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0/go.mod h1:6KW1Fm6R/s6Z3PGXwSJN2K4eT6wQB3vXX6CVnYX9NmM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.26.0 h1:1wp/gyxsuYtuE/JFxsQRtcCDtMrO2qMvlfXALU5wkzI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.26.0/go.mod h1:gbTHmghkGgqxMomVQQMur1Nba4M0MQ8AYThXDUjsJ38= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.18.0 h1:hSWWvDjXHVLq9DkmB+77fl8v7+t+yYiS+eNkiplDK54= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.18.0/go.mod h1:zG7KQql1WjZCaUJd+L/ReSYx4bjbYJxg5ws9ws+mYes= go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= -go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= -go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= +go.opentelemetry.io/otel/metric v1.26.0 h1:7S39CLuY5Jgg9CrnA9HHiEjGMF/X2VHvoXGgSllRz30= +go.opentelemetry.io/otel/metric v1.26.0/go.mod h1:SY+rHOI4cEawI9a7N1A4nIg/nTQXe1ccCNWYOJUrpX4= go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= -go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucgoDw= -go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg= +go.opentelemetry.io/otel/sdk v1.26.0 h1:Y7bumHf5tAiDlRYFmGqetNcLaVUZmh4iYfmGxtmz7F8= +go.opentelemetry.io/otel/sdk v1.26.0/go.mod h1:0p8MXpqLeJ0pzcszQQN4F0S5FVjBLgypeGSngLsmirs= go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= -go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= -go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= +go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA= +go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v1.1.0 h1:2Di21piLrCqJ3U3eXGCTPHE9R8Nh+0uglSnOyxikMeI= go.opentelemetry.io/proto/otlp v1.1.0/go.mod h1:GpBHCBWiqvVLDqmHZsoMM3C5ySeKTC7ej/RNTae6MdY= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= -go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/mock v0.2.0 h1:TaP3xedm7JaAgScZO7tlvlKrqT0p7I6OsdGB5YNSMDU= go.uber.org/mock v0.2.0/go.mod h1:J0y0rp9L3xiff1+ZBfKxlC1fz2+aO16tw0tsDOixfuM= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -1414,8 +1414,8 @@ go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9E go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1454,8 +1454,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb h1:c0vyKkb6yr3KR7jEfJaOSv4lG7xPkbN6r52aJz1d8a8= -golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= +golang.org/x/exp v0.0.0-20240213143201-ec583247a57a h1:HinSgX1tJRX3KsL//Gxynpw5CTOAIPhgL4W8PNiIpVE= +golang.org/x/exp v0.0.0-20240213143201-ec583247a57a/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1706,8 +1706,8 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1725,8 +1725,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1990,8 +1990,8 @@ google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUE google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 h1:RFiFrvy37/mpSpdySBDrUdipW/dHwsRwh3J3+A9VgT4= google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237/go.mod h1:Z5Iiy3jtmioajWHDGFk7CeugTyHtPvMHA4UTmUkyalE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 h1:NnYq6UN9ReLM9/Y01KWNOWyI5xQ9kbIms5GGJVwS/Yc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda h1:LI5DOvAxUPMv/50agcLLoo+AdWc1irS9Rzz4vPuD1V4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -2091,7 +2091,6 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= @@ -2113,10 +2112,10 @@ k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= k8s.io/client-go v0.29.2 h1:FEg85el1TeZp+/vYJM7hkDlSTFZ+c5nnK44DJ4FyoRg= k8s.io/client-go v0.29.2/go.mod h1:knlvFZE58VpqbQpJNbCbctTVXcd35mMyAAwBdpt4jrA= -k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= -k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= -k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780= -k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= From 2df5bf382a3660f3ffe8c30a63d4aafabc4ba2f6 Mon Sep 17 00:00:00 2001 From: sanaz Date: Thu, 30 May 2024 11:18:12 -0700 Subject: [PATCH 19/28] addresses first round of comments --- test/e2e/benchmark/benchmark.go | 3 +-- test/e2e/benchmark/manifest.go | 4 +--- test/e2e/testnet/node.go | 4 ++-- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/test/e2e/benchmark/benchmark.go b/test/e2e/benchmark/benchmark.go index e146c7245a..fb192c2618 100644 --- a/test/e2e/benchmark/benchmark.go +++ b/test/e2e/benchmark/benchmark.go @@ -73,8 +73,7 @@ func (b *BenchmarkTest) SetupNodes() error { if pushConfig, err := trace.GetPushConfigFromEnv(); err == nil { log.Print("Setting up trace push config") for _, node := range b.Nodes() { - if err = node.Instance.SetEnvironmentVariable(trace. - PushBucketName, pushConfig.BucketName); err != nil { + if err = node.Instance.SetEnvironmentVariable(trace.PushBucketName, pushConfig.BucketName); err != nil { return fmt.Errorf("failed to set TRACE_PUSH_BUCKET_NAME: %v", err) } if err = node.Instance.SetEnvironmentVariable(trace.PushRegion, pushConfig.Region); err != nil { diff --git a/test/e2e/benchmark/manifest.go b/test/e2e/benchmark/manifest.go index a1d8b52ac9..cbc740084d 100644 --- a/test/e2e/benchmark/manifest.go +++ b/test/e2e/benchmark/manifest.go @@ -68,15 +68,13 @@ type Manifest struct { // consensus parameters MaxBlockBytes int64 - // other configs - // tracing configs, can be local or noop + // LocalTracingType can be "local" or "noop" LocalTracingType string PushTrace bool // download traces from the s3 bucket // only available when PushTrace is enabled DownloadTraces bool - // other configs UpgradeHeight int64 GovMaxSquareSize int64 } diff --git a/test/e2e/testnet/node.go b/test/e2e/testnet/node.go index bfe76139bb..9a4ab07bc1 100644 --- a/test/e2e/testnet/node.go +++ b/test/e2e/testnet/node.go @@ -50,9 +50,9 @@ type Node struct { } // PullRoundStateTraces retrieves the round state traces from a node. -// it will save it to the provided path. +// It will save them to the provided path. func (n *Node) PullRoundStateTraces(path string) ([]trace.Event[schema. - RoundState], error, +RoundState], error, ) { addr := n.AddressTracing() log.Info().Str("Address", addr).Msg("Pulling round state traces") From 102272e32c0999582a2e09ff20f7fcc7cebdbf21 Mon Sep 17 00:00:00 2001 From: sanaz Date: Mon, 3 Jun 2024 14:53:46 -0700 Subject: [PATCH 20/28] fixes linter complaint --- test/e2e/testnet/node.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/e2e/testnet/node.go b/test/e2e/testnet/node.go index 9a4ab07bc1..ca7fe6133f 100644 --- a/test/e2e/testnet/node.go +++ b/test/e2e/testnet/node.go @@ -51,8 +51,7 @@ type Node struct { // PullRoundStateTraces retrieves the round state traces from a node. // It will save them to the provided path. -func (n *Node) PullRoundStateTraces(path string) ([]trace.Event[schema. -RoundState], error, +func (n *Node) PullRoundStateTraces(path string) ([]trace.Event[schema.RoundState], error, ) { addr := n.AddressTracing() log.Info().Str("Address", addr).Msg("Pulling round state traces") From df9107f05859730a2d75c79f138e39638c7ec1e1 Mon Sep 17 00:00:00 2001 From: sanaz Date: Tue, 4 Jun 2024 16:16:44 -0700 Subject: [PATCH 21/28] removes commented codes --- test/e2e/testnet/node.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/test/e2e/testnet/node.go b/test/e2e/testnet/node.go index aebaaf1d70..3d264d7f58 100644 --- a/test/e2e/testnet/node.go +++ b/test/e2e/testnet/node.go @@ -174,10 +174,7 @@ func (n *Node) Init(genesis *types.GenesisDoc, peers []string, configOptions ... return fmt.Errorf("error creating directory %s: %w", dir, err) } } - - //if err := MakeTracePushConfig(filepath.Join(nodeDir, "config")); err != nil { - // return fmt.Errorf("error creating trace push config: %w", err) - //} + // Create and write the config file cfg, err := MakeConfig(n, configOptions...) if err != nil { From f7a0f81efa2844a53f826bf96e6827c227401ec4 Mon Sep 17 00:00:00 2001 From: sanaz Date: Tue, 4 Jun 2024 16:25:54 -0700 Subject: [PATCH 22/28] update go mod --- go.mod | 7 +++---- go.sum | 14 ++++++-------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 24ccae55fd..935a5757e5 100644 --- a/go.mod +++ b/go.mod @@ -173,7 +173,6 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mtibben/percent v0.2.1 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect github.com/onsi/ginkgo v1.16.5 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect @@ -239,9 +238,9 @@ require ( gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/api v0.29.3 // indirect - k8s.io/apimachinery v0.29.3 // indirect - k8s.io/client-go v0.29.2 // indirect + k8s.io/api v0.28.2 // indirect + k8s.io/apimachinery v0.28.2 // indirect + k8s.io/client-go v0.28.2 // indirect k8s.io/klog/v2 v2.120.1 // indirect k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect diff --git a/go.sum b/go.sum index 8f39c1a6de..9cf57d5b86 100644 --- a/go.sum +++ b/go.sum @@ -1059,8 +1059,6 @@ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRW github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/grpc-proxy v0.0.0-20181017164139-0f1106ef9c76/go.mod h1:x5OoJHDHqxHS801UIuhqGl6QdSAEJvtausosHSdazIo= -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= @@ -2106,12 +2104,12 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= -k8s.io/api v0.29.3 h1:2ORfZ7+bGC3YJqGpV0KSDDEVf8hdGQ6A03/50vj8pmw= -k8s.io/api v0.29.3/go.mod h1:y2yg2NTyHUUkIoTC+phinTnEa3KFM6RZ3szxt014a80= -k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= -k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= -k8s.io/client-go v0.29.2 h1:FEg85el1TeZp+/vYJM7hkDlSTFZ+c5nnK44DJ4FyoRg= -k8s.io/client-go v0.29.2/go.mod h1:knlvFZE58VpqbQpJNbCbctTVXcd35mMyAAwBdpt4jrA= +k8s.io/api v0.28.2 h1:9mpl5mOb6vXZvqbQmankOfPIGiudghwCoLl1EYfUZbw= +k8s.io/api v0.28.2/go.mod h1:RVnJBsjU8tcMq7C3iaRSGMeaKt2TWEUXcpIt/90fjEg= +k8s.io/apimachinery v0.28.2 h1:KCOJLrc6gu+wV1BYgwik4AF4vXOlVJPdiqn0yAWWwXQ= +k8s.io/apimachinery v0.28.2/go.mod h1:RdzF87y/ngqk9H4z3EL2Rppv5jj95vGS/HaFXrLDApU= +k8s.io/client-go v0.28.2 h1:DNoYI1vGq0slMBN/SWKMZMw0Rq+0EQW6/AK4v9+3VeY= +k8s.io/client-go v0.28.2/go.mod h1:sMkApowspLuc7omj1FOSUxSoqjr+d5Q0Yc0LOFnYFJY= k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= From c8fc94d609b6b737dac22ae234709e2780ed3a50 Mon Sep 17 00:00:00 2001 From: sanaz Date: Tue, 4 Jun 2024 16:31:18 -0700 Subject: [PATCH 23/28] removes node_helpers --- test/e2e/testnet/node_helpers.go | 80 -------------------------------- 1 file changed, 80 deletions(-) delete mode 100644 test/e2e/testnet/node_helpers.go diff --git a/test/e2e/testnet/node_helpers.go b/test/e2e/testnet/node_helpers.go deleted file mode 100644 index 167434844d..0000000000 --- a/test/e2e/testnet/node_helpers.go +++ /dev/null @@ -1,80 +0,0 @@ -package testnet - -import ( - "context" - "encoding/json" - "fmt" - "strconv" - "time" - - "github.com/celestiaorg/knuu/pkg/knuu" -) - -type JSONRPCError struct { - Code int - Message string - Data string -} - -func (e *JSONRPCError) Error() string { - return fmt.Sprintf("JSONRPC Error - Code: %d, Message: %s, Data: %s", e.Code, e.Message, e.Data) -} - -func getStatus(executor *knuu.Executor, app *knuu.Instance) (string, error) { - nodeIP, err := app.GetIP() - if err != nil { - return "", fmt.Errorf("error getting node ip: %w", err) - } - - ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute) - defer cancel() - status, err := executor.ExecuteCommandWithContext(ctx, "wget", "-q", "-O", "-", fmt.Sprintf("%s:26657/status", nodeIP)) - if err != nil { - return "", fmt.Errorf("error executing command: %w", err) - } - return status, nil -} - -func latestBlockHeightFromStatus(status string) (int64, error) { - var result map[string]interface{} - err := json.Unmarshal([]byte(status), &result) - if err != nil { - return 0, fmt.Errorf("error unmarshalling status: %w", err) - } - - if errorField, ok := result["error"]; ok { - errorData, ok := errorField.(map[string]interface{}) - if !ok { - return 0, fmt.Errorf("error field exists but is not a map[string]interface{}") - } - jsonError := &JSONRPCError{} - if errorCode, ok := errorData["code"].(float64); ok { - jsonError.Code = int(errorCode) - } - if errorMessage, ok := errorData["message"].(string); ok { - jsonError.Message = errorMessage - } - if errorData, ok := errorData["data"].(string); ok { - jsonError.Data = errorData - } - return 0, jsonError - } - - resultData, ok := result["result"].(map[string]interface{}) - if !ok { - return 0, fmt.Errorf("error getting result from status") - } - syncInfo, ok := resultData["sync_info"].(map[string]interface{}) - if !ok { - return 0, fmt.Errorf("error getting sync info from status") - } - latestBlockHeight, ok := syncInfo["latest_block_height"].(string) - if !ok { - return 0, fmt.Errorf("error getting latest block height from sync info") - } - latestBlockHeightInt, err := strconv.ParseInt(latestBlockHeight, 10, 64) - if err != nil { - return 0, fmt.Errorf("error converting latest block height to int: %w", err) - } - return latestBlockHeightInt, nil -} From 77a5b4f3cd62c672c42877de4e7caf497f0c8b8e Mon Sep 17 00:00:00 2001 From: sanaz Date: Tue, 4 Jun 2024 16:32:14 -0700 Subject: [PATCH 24/28] gofumpt node.go --- test/e2e/testnet/node.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/testnet/node.go b/test/e2e/testnet/node.go index 3d264d7f58..30ebbb3079 100644 --- a/test/e2e/testnet/node.go +++ b/test/e2e/testnet/node.go @@ -174,7 +174,7 @@ func (n *Node) Init(genesis *types.GenesisDoc, peers []string, configOptions ... return fmt.Errorf("error creating directory %s: %w", dir, err) } } - + // Create and write the config file cfg, err := MakeConfig(n, configOptions...) if err != nil { From bb65e2b8fe77800897bc80053501149f5d7fc376 Mon Sep 17 00:00:00 2001 From: sanaz Date: Tue, 18 Jun 2024 10:49:51 -0700 Subject: [PATCH 25/28] renames GlobalMin to NetworkMin --- x/minfee/grpc_query.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/minfee/grpc_query.go b/x/minfee/grpc_query.go index c76d39722c..b467fb0729 100644 --- a/x/minfee/grpc_query.go +++ b/x/minfee/grpc_query.go @@ -30,5 +30,5 @@ func (q *QueryServerImpl) NetworkMinGasPrice(ctx context.Context, _ *QueryNetwor return nil, status.Errorf(codes.NotFound, "subspace not found for minfee. Minfee is only active in app version 2 and onwards") } subspace.GetParamSet(sdkCtx, ¶ms) - return &QueryNetworkMinGasPriceResponse{NetworkMinGasPrice: params.GlobalMinGasPrice}, nil + return &QueryNetworkMinGasPriceResponse{NetworkMinGasPrice: params.NetworkMinGasPrice}, nil } From 6aab4b4a1401a0cce84b938b98cc1da31b3b092c Mon Sep 17 00:00:00 2001 From: sanaz Date: Tue, 18 Jun 2024 10:55:59 -0700 Subject: [PATCH 26/28] fixes another instance --- x/minfee/grpc_query_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/minfee/grpc_query_test.go b/x/minfee/grpc_query_test.go index 0cbc90b7d8..08f9e6e834 100644 --- a/x/minfee/grpc_query_test.go +++ b/x/minfee/grpc_query_test.go @@ -24,5 +24,5 @@ func TestQueryNetworkMinGasPrice(t *testing.T) { require.NoError(t, err) // Check the response - require.Equal(t, v2.GlobalMinGasPrice, resp.NetworkMinGasPrice.MustFloat64()) + require.Equal(t, v2.NetworkMinGasPrice, resp.NetworkMinGasPrice.MustFloat64()) } From fee3c03f3e5c11fe073ee41a3471bc02f9a97849 Mon Sep 17 00:00:00 2001 From: sanaz Date: Tue, 18 Jun 2024 11:05:44 -0700 Subject: [PATCH 27/28] removes unused functions from test_helpers --- test/e2e/testnet/test_helpers.go | 65 -------------------------------- 1 file changed, 65 deletions(-) diff --git a/test/e2e/testnet/test_helpers.go b/test/e2e/testnet/test_helpers.go index 34e967ee5c..d507c17fc5 100644 --- a/test/e2e/testnet/test_helpers.go +++ b/test/e2e/testnet/test_helpers.go @@ -1,14 +1,8 @@ package testnet import ( - "context" - "encoding/json" "fmt" "log" - "strconv" - "time" - - "github.com/celestiaorg/knuu/pkg/knuu" ) func NoError(message string, err error) { @@ -26,62 +20,3 @@ type JSONRPCError struct { func (e *JSONRPCError) Error() string { return fmt.Sprintf("JSONRPC Error - Code: %d, Message: %s, Data: %s", e.Code, e.Message, e.Data) } - -func getStatus(executor *knuu.Executor, app *knuu.Instance) (string, error) { - nodeIP, err := app.GetIP() - if err != nil { - return "", fmt.Errorf("error getting node ip: %w", err) - } - - ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute) - defer cancel() - status, err := executor.ExecuteCommandWithContext(ctx, "wget", "-q", "-O", "-", fmt.Sprintf("%s:26657/status", nodeIP)) - if err != nil { - return "", fmt.Errorf("error executing command: %w", err) - } - return status, nil -} - -func latestBlockHeightFromStatus(status string) (int64, error) { - var result map[string]interface{} - err := json.Unmarshal([]byte(status), &result) - if err != nil { - return 0, fmt.Errorf("error unmarshalling status: %w", err) - } - - if errorField, ok := result["error"]; ok { - errorData, ok := errorField.(map[string]interface{}) - if !ok { - return 0, fmt.Errorf("error field exists but is not a map[string]interface{}") - } - jsonError := &JSONRPCError{} - if errorCode, ok := errorData["code"].(float64); ok { - jsonError.Code = int(errorCode) - } - if errorMessage, ok := errorData["message"].(string); ok { - jsonError.Message = errorMessage - } - if errorData, ok := errorData["data"].(string); ok { - jsonError.Data = errorData - } - return 0, jsonError - } - - resultData, ok := result["result"].(map[string]interface{}) - if !ok { - return 0, fmt.Errorf("error getting result from status") - } - syncInfo, ok := resultData["sync_info"].(map[string]interface{}) - if !ok { - return 0, fmt.Errorf("error getting sync info from status") - } - latestBlockHeight, ok := syncInfo["latest_block_height"].(string) - if !ok { - return 0, fmt.Errorf("error getting latest block height from sync info") - } - latestBlockHeightInt, err := strconv.ParseInt(latestBlockHeight, 10, 64) - if err != nil { - return 0, fmt.Errorf("error converting latest block height to int: %w", err) - } - return latestBlockHeightInt, nil -} From 8fc27758a7390395257e958a8d1b930137c50fd3 Mon Sep 17 00:00:00 2001 From: sanaz Date: Tue, 18 Jun 2024 13:50:20 -0700 Subject: [PATCH 28/28] deletes parts in the benchmark test that attempts rerunning txsims --- test/e2e/benchmark/benchmark.go | 7 ------- 1 file changed, 7 deletions(-) diff --git a/test/e2e/benchmark/benchmark.go b/test/e2e/benchmark/benchmark.go index 88f50de000..9268fe677b 100644 --- a/test/e2e/benchmark/benchmark.go +++ b/test/e2e/benchmark/benchmark.go @@ -113,13 +113,6 @@ func (b *BenchmarkTest) Run() error { } } - // once the testnet is up, start tx clients - log.Println("Starting tx clients") - err = b.StartTxClients() - if err != nil { - return fmt.Errorf("failed to start tx clients: %v", err) - } - // wait some time for the tx clients to submit transactions time.Sleep(b.manifest.TestDuration)