Skip to content

Commit

Permalink
Merge branch 'main' into sanaz/manifest-first-part
Browse files Browse the repository at this point in the history
  • Loading branch information
staheri14 committed May 9, 2024
2 parents 35ebdf3 + 171a547 commit 79ee4f6
Show file tree
Hide file tree
Showing 33 changed files with 380 additions and 220 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/create_release_tracking_epic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ name: Create Release Tracking Epic
# on slack for tracking the deployment of a release to testnets and mainnet.
on:
release:
types: [published]
types: [released]
jobs:
trigger_issue:
uses: celestiaorg/.github/.github/workflows/[email protected]
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
**/**.go
go.mod
go.sum
- uses: golangci/golangci-lint-action@v5.0.0
- uses: golangci/golangci-lint-action@v6.0.1
with:
version: v1.57.0
args: --timeout 10m
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
run: make test-coverage

- name: Upload coverage.txt
uses: codecov/[email protected].0
uses: codecov/[email protected].1
with:
file: ./coverage.txt

Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#
# Separating the builder and runtime image allows the runtime image to be
# considerably smaller because it doesn't need to have Golang installed.
ARG BUILDER_IMAGE=docker.io/golang:1.22.2-alpine3.19
ARG BUILDER_IMAGE=docker.io/golang:1.22.3-alpine3.19
ARG RUNTIME_IMAGE=docker.io/alpine:3.19
ARG TARGETOS
ARG TARGETARCH
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ DOCKER_PROTO_BUILDER := docker run -v $(shell pwd):/workspace --workdir /workspa
PROJECTNAME=$(shell basename "$(PWD)")
HTTPS_GIT := https://github.com/celestiaorg/celestia-app.git
PACKAGE_NAME := github.com/celestiaorg/celestia-app/v2
GOLANG_CROSS_VERSION ?= v1.22.2
GOLANG_CROSS_VERSION ?= v1.22.3

# process linker flags
ldflags = -X github.com/cosmos/cosmos-sdk/version.Name=celestia-app \
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ node | | | |

### Source

1. [Install Go](https://go.dev/doc/install) 1.22.2
1. [Install Go](https://go.dev/doc/install) 1.22.3
1. Clone this repo
1. Install the celestia-app CLI

Expand Down
38 changes: 16 additions & 22 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ import (
servertypes "github.com/cosmos/cosmos-sdk/server/types"
storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkmodule "github.com/cosmos/cosmos-sdk/types/module"
"github.com/cosmos/cosmos-sdk/version"
authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
authtx "github.com/cosmos/cosmos-sdk/x/auth/tx"
Expand Down Expand Up @@ -81,6 +80,7 @@ import (
ibcporttypes "github.com/cosmos/ibc-go/v6/modules/core/05-port/types"
ibchost "github.com/cosmos/ibc-go/v6/modules/core/24-host"
ibckeeper "github.com/cosmos/ibc-go/v6/modules/core/keeper"
ibctesting "github.com/cosmos/ibc-go/v6/testing"
ibctestingtypes "github.com/cosmos/ibc-go/v6/testing/types"
"github.com/spf13/cast"
abci "github.com/tendermint/tendermint/abci/types"
Expand All @@ -90,7 +90,8 @@ import (
dbm "github.com/tendermint/tm-db"
)

// maccPerms is short for module account permissions.
// maccPerms is short for module account permissions. It is a map from module
// account name to a list of permissions for that module account.
var maccPerms = map[string][]string{
authtypes.FeeCollectorName: nil,
distrtypes.ModuleName: nil,
Expand All @@ -108,7 +109,10 @@ const (
DefaultInitialVersion = v1
)

var _ servertypes.Application = (*App)(nil)
var (
_ servertypes.Application = (*App)(nil)
_ ibctesting.TestingApp = (*App)(nil)
)

// App extends an ABCI application, but with most of its parameters exported.
// They are exported for convenience in creating helper functions, as object
Expand Down Expand Up @@ -455,6 +459,11 @@ func (app *App) EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) abci.Respo
if req.Height == app.upgradeHeightV2-1 {
app.SetInitialAppVersionInConsensusParams(ctx, v2)
app.SetAppVersion(ctx, v2)
// The blobstream module was disabled in v2 so the following line
// removes the the params subspace for blobstream.
if err := app.ParamsKeeper.DeleteSubspace(blobstreamtypes.ModuleName); err != nil {
panic(err)
}
}
// from v2 to v3 and onwards we use a signalling mechanism
} else if shouldUpgrade, newVersion := app.SignalKeeper.ShouldUpgrade(); shouldUpgrade {
Expand Down Expand Up @@ -568,7 +577,8 @@ func (app *App) SupportedVersions() []uint64 {
return app.mm.SupportedVersions()
}

// versionedKeys returns the keys for the kv stores for a given app version
// versionedKeys returns a map from moduleName to KV store key for the given app
// version.
func (app *App) versionedKeys(appVersion uint64) map[string]*storetypes.KVStoreKey {
output := make(map[string]*storetypes.KVStoreKey)
if keys, exists := app.keyVersions[appVersion]; exists {
Expand Down Expand Up @@ -683,11 +693,8 @@ func (app *App) RegisterAPIRoutes(apiSvr *api.Server, _ config.APIConfig) {
authtx.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
// Register new tendermint queries routes from grpc-gateway.
tmservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)

// Register node gRPC service for grpc-gateway.
nodeservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)

// Register the
ModuleBasics.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
}

Expand All @@ -698,7 +705,7 @@ func (app *App) RegisterTxService(clientCtx client.Context) {

// RegisterTendermintService implements the Application.RegisterTendermintService method.
func (app *App) RegisterTendermintService(clientCtx client.Context) {
tmservice.RegisterTendermintService(clientCtx, app.BaseApp.GRPCQueryRouter(), app.interfaceRegistry, nil)
tmservice.RegisterTendermintService(clientCtx, app.BaseApp.GRPCQueryRouter(), app.interfaceRegistry, app.Query)
}

func (app *App) RegisterNodeService(clientCtx client.Context) {
Expand All @@ -720,7 +727,7 @@ func (app *App) BlockedParams() [][2]string {
}
}

// initParamsKeeper init params keeper and its subspaces
// initParamsKeeper initializes the params keeper and its subspaces.
func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key, tkey storetypes.StoreKey) paramskeeper.Keeper {
paramsKeeper := paramskeeper.NewKeeper(appCodec, legacyAmino, key, tkey)

Expand All @@ -742,16 +749,3 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino

return paramsKeeper
}

// extractRegisters isolates the encoding module registers from the module
// manager, and appends any solo registers.
func extractRegisters(m sdkmodule.BasicManager) []encoding.ModuleRegister {
// TODO: might be able to use some standard generics in go 1.18
s := make([]encoding.ModuleRegister, len(m))
i := 0
for _, v := range m {
s[i] = v
i++
}
return s
}
10 changes: 10 additions & 0 deletions app/modules.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package app
import (
"fmt"

"github.com/celestiaorg/celestia-app/v2/app/encoding"
"github.com/celestiaorg/celestia-app/v2/app/module"
"github.com/celestiaorg/celestia-app/v2/x/blob"
blobtypes "github.com/celestiaorg/celestia-app/v2/x/blob/types"
Expand Down Expand Up @@ -369,3 +370,12 @@ func (app *App) assertAllKeysArePresent() {
}
}
}

// extractRegisters returns the encoding module registers from the basic
// manager.
func extractRegisters(manager sdkmodule.BasicManager) (modules []encoding.ModuleRegister) {
for _, module := range manager {
modules = append(modules, module)
}
return modules
}
48 changes: 41 additions & 7 deletions app/test/upgrade_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,19 @@ import (
v1 "github.com/celestiaorg/celestia-app/v2/pkg/appconsts/v1"
v2 "github.com/celestiaorg/celestia-app/v2/pkg/appconsts/v2"
"github.com/celestiaorg/celestia-app/v2/test/util"
blobstreamtypes "github.com/celestiaorg/celestia-app/v2/x/blobstream/types"
"github.com/celestiaorg/celestia-app/v2/x/minfee"
"github.com/cosmos/cosmos-sdk/crypto/keyring"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/x/params/types/proposal"
packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v6/packetforward/types"
icahosttypes "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host/types"
"github.com/stretchr/testify/require"
abci "github.com/tendermint/tendermint/abci/types"
"github.com/tendermint/tendermint/libs/log"
tmproto "github.com/tendermint/tendermint/proto/tendermint/types"
tmversion "github.com/tendermint/tendermint/proto/tendermint/version"
dbm "github.com/tendermint/tm-db"

packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v6/packetforward/types"

"github.com/tendermint/tendermint/libs/log"
)

// TestAppUpgrades verifies that the all module's params are overridden during an
Expand Down Expand Up @@ -63,9 +62,6 @@ func TestAppUpgrades(t *testing.T) {
t.Run(tt.module, func(t *testing.T) {
testApp, _ := SetupTestAppWithUpgradeHeight(t, 3)

supportedVersions := []uint64{v1.Version, v2.Version}
require.Equal(t, supportedVersions, testApp.SupportedVersions())

ctx := testApp.NewContext(true, tmproto.Header{
Version: tmversion.Consensus{
App: 1,
Expand Down Expand Up @@ -102,6 +98,30 @@ func TestAppUpgrades(t *testing.T) {
}
}

// TestBlobstreamRemovedInV2 verifies that the blobstream params exist in v1 and
// do not exist in v2.
func TestBlobstreamRemovedInV2(t *testing.T) {
testApp, _ := SetupTestAppWithUpgradeHeight(t, 3)
ctx := testApp.NewContext(true, tmproto.Header{})

require.EqualValues(t, 1, testApp.AppVersion())
got, err := testApp.ParamsKeeper.Params(ctx, &proposal.QueryParamsRequest{
Subspace: blobstreamtypes.ModuleName,
Key: string(blobstreamtypes.ParamsStoreKeyDataCommitmentWindow),
})
require.NoError(t, err)
require.Equal(t, "\"400\"", got.Param.Value)

upgradeFromV1ToV2(t, testApp)

require.EqualValues(t, 2, testApp.AppVersion())
_, err = testApp.ParamsKeeper.Params(ctx, &proposal.QueryParamsRequest{
Subspace: blobstreamtypes.ModuleName,
Key: string(blobstreamtypes.ParamsStoreKeyDataCommitmentWindow),
})
require.Error(t, err)
}

func SetupTestAppWithUpgradeHeight(t *testing.T, upgradeHeight int64) (*app.App, keyring.Keyring) {
t.Helper()

Expand Down Expand Up @@ -139,6 +159,20 @@ func SetupTestAppWithUpgradeHeight(t *testing.T, upgradeHeight int64) (*app.App,
infoResp = testApp.Info(abci.RequestInfo{})
require.EqualValues(t, app.DefaultInitialConsensusParams().Version.AppVersion, infoResp.AppVersion)

supportedVersions := []uint64{v1.Version, v2.Version}
require.Equal(t, supportedVersions, testApp.SupportedVersions())

_ = testApp.Commit()
return testApp, kr
}

func upgradeFromV1ToV2(t *testing.T, testApp *app.App) {
t.Helper()
testApp.BeginBlock(abci.RequestBeginBlock{Header: tmproto.Header{
Height: 2,
Version: tmversion.Consensus{App: 1},
}})
testApp.EndBlock(abci.RequestEndBlock{Height: 2})
testApp.Commit()
require.EqualValues(t, 2, testApp.AppVersion())
}
2 changes: 1 addition & 1 deletion docker/Dockerfile_txsim
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Stage 1: generate celestia-appd binary
FROM --platform=$BUILDPLATFORM docker.io/golang:1.22.2-alpine3.19 as builder
FROM --platform=$BUILDPLATFORM docker.io/golang:1.22.3-alpine3.19 as builder

ARG TARGETOS
ARG TARGETARCH
Expand Down
31 changes: 14 additions & 17 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/celestiaorg/celestia-app/v2

go 1.22.2
go 1.22.3

require (
cosmossdk.io/errors v1.0.1
Expand All @@ -10,20 +10,20 @@ require (
github.com/celestiaorg/go-square/merkle v0.0.0-20240117232118-fd78256df076
github.com/celestiaorg/knuu v0.13.2
github.com/celestiaorg/nmt v0.20.0
github.com/celestiaorg/rsmt2d v0.13.0
github.com/celestiaorg/rsmt2d v0.13.1
github.com/cosmos/cosmos-proto v1.0.0-beta.5
github.com/cosmos/cosmos-sdk v0.46.16
github.com/cosmos/gogoproto v1.4.12
github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v6 v6.1.2
github.com/cosmos/ibc-go/v6 v6.3.1
github.com/ethereum/go-ethereum v1.14.0
github.com/cosmos/ibc-go/v6 v6.2.2
github.com/ethereum/go-ethereum v1.14.2
github.com/gogo/protobuf v1.3.3
github.com/golang/mock v1.6.0
github.com/golang/protobuf v1.5.4
github.com/gorilla/mux v1.8.1
github.com/grpc-ecosystem/grpc-gateway v1.16.0
github.com/rs/zerolog v1.32.0
github.com/spf13/cast v1.5.0
github.com/spf13/cast v1.6.0
github.com/spf13/cobra v1.8.0
github.com/spf13/pflag v1.0.5
github.com/stretchr/testify v1.9.0
Expand All @@ -32,7 +32,7 @@ require (
golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb
google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de
google.golang.org/grpc v1.63.2
google.golang.org/protobuf v1.34.0
google.golang.org/protobuf v1.34.1
gopkg.in/yaml.v2 v2.4.0
)

Expand Down Expand Up @@ -77,10 +77,9 @@ require (
github.com/crate-crypto/go-kzg-4844 v1.0.0 // indirect
github.com/creachadair/taskgroup v0.3.2 // indirect
github.com/danieljoos/wincred v1.1.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/deckarep/golang-set/v2 v2.1.0 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect
github.com/deepmap/oapi-codegen v1.8.2 // indirect
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect
github.com/dgraph-io/badger/v2 v2.2007.4 // indirect
github.com/dgraph-io/ristretto v0.1.1 // indirect
Expand All @@ -94,7 +93,7 @@ require (
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
github.com/ethereum/c-kzg-4844 v1.0.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fsnotify/fsnotify v1.6.0 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect
github.com/go-kit/kit v0.12.0 // indirect
github.com/go-kit/log v0.2.1 // indirect
github.com/go-logfmt/logfmt v0.6.0 // indirect
Expand Down Expand Up @@ -142,8 +141,6 @@ require (
github.com/imdario/mergo v0.3.13 // indirect
github.com/improbable-eng/grpc-web v0.15.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/influxdata/influxdb-client-go/v2 v2.12.2 // indirect
github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/jmhodges/levigo v1.0.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
Expand Down Expand Up @@ -179,14 +176,14 @@ require (
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/pelletier/go-toml/v2 v2.0.7 // 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
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus/client_golang v1.14.0 // indirect
github.com/prometheus/client_model v0.5.0 // indirect
github.com/prometheus/common v0.42.0 // indirect
github.com/prometheus/procfs v0.9.0 // indirect
github.com/prometheus/procfs v0.12.0 // indirect
github.com/rakyll/statik v0.1.7 // indirect
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
github.com/regen-network/cosmos-proto v0.3.1 // indirect
Expand All @@ -196,10 +193,10 @@ require (
github.com/sasha-s/go-deadlock v0.3.1 // indirect
github.com/shirou/gopsutil v3.21.6+incompatible // indirect
github.com/sirupsen/logrus v1.9.3 // indirect
github.com/spf13/afero v1.10.0 // indirect
github.com/spf13/afero v1.11.0 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/viper v1.15.0 // indirect
github.com/subosito/gotenv v1.4.2 // indirect
github.com/subosito/gotenv v1.6.0 // indirect
github.com/supranational/blst v0.3.11 // indirect
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect
github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c // indirect
Expand Down Expand Up @@ -263,5 +260,5 @@ replace (
github.com/cosmos/ledger-cosmos-go => github.com/cosmos/ledger-cosmos-go v0.12.4
github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1
github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7
github.com/tendermint/tendermint => github.com/celestiaorg/celestia-core v1.35.0-tm-v0.34.29
github.com/tendermint/tendermint => github.com/celestiaorg/celestia-core v1.36.0-tm-v0.34.29
)
Loading

0 comments on commit 79ee4f6

Please sign in to comment.