From f79e139ed7fffcdc84791b5defb2c99c86eca50f Mon Sep 17 00:00:00 2001 From: Rootul P Date: Wed, 26 Jun 2024 09:09:04 -0600 Subject: [PATCH 1/4] chore(deps): upgrade to celestia-app v1.12.0 (#3527) --- .github/workflows/ci_release.yml | 2 +- Dockerfile | 2 +- README.md | 2 +- go.mod | 6 +++--- go.sum | 8 ++++---- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci_release.yml b/.github/workflows/ci_release.yml index 6e3cdd0681..8efcf094b9 100644 --- a/.github/workflows/ci_release.yml +++ b/.github/workflows/ci_release.yml @@ -28,7 +28,7 @@ jobs: runs-on: ubuntu-latest env: # upgrade go version throughout pipeline here - GO_VERSION: "1.22" + GO_VERSION: "1.22.4" outputs: go-version: ${{ steps.set-vars.outputs.go-version }} branch: ${{ steps.trim_ref.outputs.branch }} diff --git a/Dockerfile b/Dockerfile index bb90920e58..7dcaaf5f81 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM docker.io/golang:1.22-alpine3.18 as builder +FROM --platform=$BUILDPLATFORM docker.io/golang:1.22.4-alpine3.20 as builder ARG TARGETPLATFORM ARG BUILDPLATFORM diff --git a/README.md b/README.md index 423ec17615..c671ccb6a9 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Continue reading [here](https://blog.celestia.org/celestia-mvp-release-data-avai | Requirement | Notes | | ----------- |----------------| -| Go version | 1.22 or higher | +| Go version | 1.22.4 or higher | ## System Requirements diff --git a/go.mod b/go.mod index e3293b38d8..749aae5674 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/celestiaorg/celestia-node -go 1.22.3 +go 1.22.4 require ( cosmossdk.io/errors v1.0.1 @@ -8,7 +8,7 @@ require ( github.com/BurntSushi/toml v1.4.0 github.com/alecthomas/jsonschema v0.0.0-20220216202328-9eeeec9d044b github.com/benbjohnson/clock v1.3.5 - github.com/celestiaorg/celestia-app v1.11.0 + github.com/celestiaorg/celestia-app v1.12.0 github.com/celestiaorg/go-fraud v0.2.1 github.com/celestiaorg/go-header v0.6.2 github.com/celestiaorg/go-libp2p-messenger v0.2.0 @@ -356,5 +356,5 @@ replace ( github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 // broken goleveldb needs to be replaced for the cosmos-sdk and celestia-app github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 - github.com/tendermint/tendermint => github.com/celestiaorg/celestia-core v1.36.1-tm-v0.34.29 + github.com/tendermint/tendermint => github.com/celestiaorg/celestia-core v1.37.0-tm-v0.34.29 ) diff --git a/go.sum b/go.sum index c50dc8a5ef..e89a3699e6 100644 --- a/go.sum +++ b/go.sum @@ -353,10 +353,10 @@ github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7 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/celestia-app v1.11.0 h1:NV2nWR4r75qWY0reawrzoMnVRRbUgVtrgtFT9+ytmGQ= -github.com/celestiaorg/celestia-app v1.11.0/go.mod h1:aKJkApIZnGt/q5ZYtsf6UM21MJR+D62rwWn2mCHKBNE= -github.com/celestiaorg/celestia-core v1.36.1-tm-v0.34.29 h1:BuYworCMtFxAYyM5l1C0gx6PT/ViHosVRydvYd7vCqs= -github.com/celestiaorg/celestia-core v1.36.1-tm-v0.34.29/go.mod h1:AL7kotb6ucKF4bpKKhGIzGhGL7dwYj2nFstiFC6PGxM= +github.com/celestiaorg/celestia-app v1.12.0 h1:7SMTI/sB8jxp7QPJQRi/liAREnToAD5nOyA7M+naPIc= +github.com/celestiaorg/celestia-app v1.12.0/go.mod h1:O/idsViCLLFdcaE4cJ+iZctZLX0KWfRheKT2W18W2uM= +github.com/celestiaorg/celestia-core v1.37.0-tm-v0.34.29 h1:9nJDE37cTg/Cx+f4FS2g7yYeoLrsaNJg36XsQ47sS1A= +github.com/celestiaorg/celestia-core v1.37.0-tm-v0.34.29/go.mod h1:IIdMu9gnDtjUmZkFuBN4Bf11z/rBtlL2rtwbQxdbRAU= github.com/celestiaorg/cosmos-sdk v1.23.0-sdk-v0.46.16 h1:N2uETI13szEKnGAdKhtTR0EsrpcW0AwRKYER74WLnuw= github.com/celestiaorg/cosmos-sdk v1.23.0-sdk-v0.46.16/go.mod h1:Bpl1LSWiDpQumgOhhMTZBMopqa0j7fRasIhvTZB44P0= github.com/celestiaorg/dagstore v0.0.0-20230824094345-537c012aa403 h1:Lj73O3S+KJx5/hgZ+IeOLEIoLsAveJN/7/ZtQQtPSVw= From 986f306bc627b41be2697d872f7598178b8fef46 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Jun 2024 15:20:57 +0000 Subject: [PATCH 2/4] chore(deps): Bump github.com/hashicorp/go-getter from 1.7.4 to 1.7.5 (#3528) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 749aae5674..df0639c9a2 100644 --- a/go.mod +++ b/go.mod @@ -184,7 +184,7 @@ require ( github.com/gtank/ristretto255 v0.1.2 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect - github.com/hashicorp/go-getter v1.7.4 // indirect + github.com/hashicorp/go-getter v1.7.5 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect diff --git a/go.sum b/go.sum index e89a3699e6..742a9b4b99 100644 --- a/go.sum +++ b/go.sum @@ -950,8 +950,8 @@ github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtng github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-getter v1.7.4 h1:3yQjWuxICvSpYwqSayAdKRFcvBl1y/vogCxczWSmix0= -github.com/hashicorp/go-getter v1.7.4/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= +github.com/hashicorp/go-getter v1.7.5 h1:dT58k9hQ/vbxNMwoI5+xFYAJuv6152UNvdHokfI5wE4= +github.com/hashicorp/go-getter v1.7.5/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k= github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= From 1fa5aa6a8c951e60dd76856535090783811a02b8 Mon Sep 17 00:00:00 2001 From: ramin Date: Thu, 27 Jun 2024 12:32:32 +0100 Subject: [PATCH 3/4] fix(nodebuilder/core): non default values from config.toml are written over by flag defaults in specific circumstances (#3526) Co-authored-by: rene <41963722+renaynay@users.noreply.github.com> --- nodebuilder/core/config.go | 16 +++- nodebuilder/core/config_test.go | 84 +++++++++++++++++ nodebuilder/core/flags.go | 17 ++-- nodebuilder/core/flags_test.go | 154 ++++++++++++++++++++++++++++++++ 4 files changed, 263 insertions(+), 8 deletions(-) create mode 100644 nodebuilder/core/config_test.go create mode 100644 nodebuilder/core/flags_test.go diff --git a/nodebuilder/core/config.go b/nodebuilder/core/config.go index bb5eea5b83..a211fac231 100644 --- a/nodebuilder/core/config.go +++ b/nodebuilder/core/config.go @@ -7,6 +7,11 @@ import ( "github.com/celestiaorg/celestia-node/libs/utils" ) +const ( + DefaultRPCPort = "26657" + DefaultGRPCPort = "9090" +) + var MetricsEnabled bool // Config combines all configuration fields for managing the relationship with a Core node. @@ -21,8 +26,8 @@ type Config struct { func DefaultConfig() Config { return Config{ IP: "", - RPCPort: "26657", - GRPCPort: "9090", + RPCPort: DefaultRPCPort, + GRPCPort: DefaultGRPCPort, } } @@ -32,6 +37,13 @@ func (cfg *Config) Validate() error { return nil } + if cfg.RPCPort == "" { + return fmt.Errorf("nodebuilder/core: rpc port is not set") + } + if cfg.GRPCPort == "" { + return fmt.Errorf("nodebuilder/core: grpc port is not set") + } + ip, err := utils.ValidateAddr(cfg.IP) if err != nil { return err diff --git a/nodebuilder/core/config_test.go b/nodebuilder/core/config_test.go new file mode 100644 index 0000000000..9b06d6918d --- /dev/null +++ b/nodebuilder/core/config_test.go @@ -0,0 +1,84 @@ +package core + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestValidate(t *testing.T) { + tests := []struct { + name string + cfg Config + expectErr bool + }{ + { + name: "valid config", + cfg: Config{ + IP: "127.0.0.1", + RPCPort: DefaultRPCPort, + GRPCPort: DefaultGRPCPort, + }, + expectErr: false, + }, + { + name: "empty config, no endpoint", + cfg: Config{}, + expectErr: false, + }, + { + name: "missing RPC port", + cfg: Config{ + IP: "127.0.0.1", + GRPCPort: DefaultGRPCPort, + }, + expectErr: true, + }, + { + name: "missing GRPC port", + cfg: Config{ + IP: "127.0.0.1", + RPCPort: DefaultRPCPort, + }, + expectErr: true, + }, + { + name: "invalid IP", + cfg: Config{ + IP: "invalid-ip", + RPCPort: DefaultRPCPort, + GRPCPort: DefaultGRPCPort, + }, + expectErr: true, + }, + { + name: "invalid RPC port", + cfg: Config{ + IP: "127.0.0.1", + RPCPort: "invalid-port", + GRPCPort: DefaultGRPCPort, + }, + expectErr: true, + }, + { + name: "invalid GRPC port", + cfg: Config{ + IP: "127.0.0.1", + RPCPort: DefaultRPCPort, + GRPCPort: "invalid-port", + }, + expectErr: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.cfg.Validate() + if tt.expectErr { + require.Error(t, err) + } else { + require.NoError(t, err) + } + }) + } +} diff --git a/nodebuilder/core/flags.go b/nodebuilder/core/flags.go index 9cbed9b277..127ee5ee60 100644 --- a/nodebuilder/core/flags.go +++ b/nodebuilder/core/flags.go @@ -26,12 +26,12 @@ func Flags() *flag.FlagSet { ) flags.String( coreRPCFlag, - "26657", + DefaultRPCPort, "Set a custom RPC port for the core node connection. The --core.ip flag must also be provided.", ) flags.String( coreGRPCFlag, - "9090", + DefaultGRPCPort, "Set a custom gRPC port for the core node connection. The --core.ip flag must also be provided.", ) return flags @@ -50,11 +50,16 @@ func ParseFlags( return nil } - rpc := cmd.Flag(coreRPCFlag).Value.String() - grpc := cmd.Flag(coreGRPCFlag).Value.String() + if cmd.Flag(coreRPCFlag).Changed { + rpc := cmd.Flag(coreRPCFlag).Value.String() + cfg.RPCPort = rpc + } + + if cmd.Flag(coreGRPCFlag).Changed { + grpc := cmd.Flag(coreGRPCFlag).Value.String() + cfg.GRPCPort = grpc + } cfg.IP = coreIP - cfg.RPCPort = rpc - cfg.GRPCPort = grpc return cfg.Validate() } diff --git a/nodebuilder/core/flags_test.go b/nodebuilder/core/flags_test.go new file mode 100644 index 0000000000..ce906de037 --- /dev/null +++ b/nodebuilder/core/flags_test.go @@ -0,0 +1,154 @@ +package core + +import ( + "testing" + + "github.com/spf13/cobra" + "github.com/stretchr/testify/require" +) + +func TestParseFlags(t *testing.T) { + tests := []struct { + name string + args []string + inputCfg Config // config that could be read from ctx + expectedCfg Config + expectError bool + }{ + { + name: "no flags", + args: []string{}, + inputCfg: Config{}, + expectedCfg: Config{ + IP: "", + RPCPort: "", + GRPCPort: "", + }, + expectError: false, + }, + { + name: "only core.ip", + args: []string{"--core.ip=127.0.0.1"}, + inputCfg: Config{ + RPCPort: DefaultRPCPort, + GRPCPort: DefaultGRPCPort, + }, + expectedCfg: Config{ + IP: "127.0.0.1", + RPCPort: DefaultRPCPort, + GRPCPort: DefaultGRPCPort, + }, + expectError: false, + }, + { + name: "only core.ip, empty port values", + args: []string{"--core.ip=127.0.0.1"}, + inputCfg: Config{}, + expectedCfg: Config{ + IP: "127.0.0.1", + RPCPort: DefaultRPCPort, + GRPCPort: DefaultGRPCPort, + }, + expectError: true, + }, + { + name: "no flags, values from input config.toml ", + args: []string{}, + inputCfg: Config{ + IP: "127.162.36.1", + RPCPort: "1234", + GRPCPort: "5678", + }, + expectedCfg: Config{ + IP: "127.162.36.1", + RPCPort: "1234", + GRPCPort: "5678", + }, + expectError: false, + }, + { + name: "only core.ip, with config.toml overridden defaults for ports", + args: []string{"--core.ip=127.0.0.1"}, + inputCfg: Config{ + RPCPort: "1234", + GRPCPort: "5678", + }, + expectedCfg: Config{ + IP: "127.0.0.1", + RPCPort: "1234", + GRPCPort: "5678", + }, + expectError: false, + }, + { + name: "core.ip and core.rpc.port", + args: []string{"--core.ip=127.0.0.1", "--core.rpc.port=12345"}, + inputCfg: Config{ + RPCPort: DefaultRPCPort, + GRPCPort: DefaultGRPCPort, + }, + expectedCfg: Config{ + IP: "127.0.0.1", + RPCPort: "12345", + GRPCPort: DefaultGRPCPort, + }, + expectError: false, + }, + { + name: "core.ip and core.grpc.port", + args: []string{"--core.ip=127.0.0.1", "--core.grpc.port=54321"}, + inputCfg: Config{ + RPCPort: DefaultRPCPort, + GRPCPort: DefaultGRPCPort, + }, + expectedCfg: Config{ + IP: "127.0.0.1", + RPCPort: DefaultRPCPort, + GRPCPort: "54321", + }, + expectError: false, + }, + { + name: "core.ip, core.rpc.port, and core.grpc.port", + args: []string{"--core.ip=127.0.0.1", "--core.rpc.port=12345", "--core.grpc.port=54321"}, + expectedCfg: Config{ + IP: "127.0.0.1", + RPCPort: "12345", + GRPCPort: "54321", + }, + expectError: false, + }, + { + name: "core.rpc.port without core.ip", + args: []string{"--core.rpc.port=12345"}, + expectedCfg: Config{}, + expectError: true, + }, + { + name: "core.grpc.port without core.ip", + args: []string{"--core.grpc.port=54321"}, + expectedCfg: Config{}, + expectError: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + cmd := &cobra.Command{} + flags := Flags() + cmd.Flags().AddFlagSet(flags) + cmd.SetArgs(tt.args) + + err := cmd.Execute() + require.NoError(t, err) + + err = ParseFlags(cmd, &tt.inputCfg) + if tt.expectError { + require.Error(t, err) + } else { + require.NoError(t, err) + require.Equal(t, tt.expectedCfg, tt.inputCfg) + } + }) + } +} From 0e5c61c86cbdc21e222f77edaccefdeed0ba81f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Jul 2024 15:08:12 +0000 Subject: [PATCH 4/4] chore(deps): Bump alpine from 3.20.0 to 3.20.1 (#3521) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7dcaaf5f81..d052463369 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,7 +25,7 @@ RUN uname -a &&\ CGO_ENABLED=${CGO_ENABLED} GOOS=${TARGETOS} GOARCH=${TARGETARCH} \ make build && make cel-key -FROM docker.io/alpine:3.20.0 +FROM docker.io/alpine:3.20.1 # Read here why UID 10001: https://github.com/hexops/dockerfile/blob/main/README.md#do-not-use-a-uid-below-10000 ARG UID=10001