diff --git a/Dockerfile b/Dockerfile index de65643960c..6afbe571313 100644 --- a/Dockerfile +++ b/Dockerfile @@ -50,5 +50,5 @@ EXPOSE 7001 8546 8540 ENTRYPOINT [ "/gossamer/bin/gossamer" ] -COPY chain /gossamer/chain +COPY internal/chain /gossamer/chain COPY --from=builder /go/src/github.com/ChainSafe/gossamer/bin/gossamer /gossamer/bin/gossamer diff --git a/cmd/gossamer/README.md b/cmd/gossamer/README.md index b93f1a4902b..83d47a6335c 100644 --- a/cmd/gossamer/README.md +++ b/cmd/gossamer/README.md @@ -20,7 +20,7 @@ This is the default Gossamer execution method, which invokes the `gossamerAction blockchain client are [described below in the Client Components section](#client-components). - `--basepath` - the path to the directory where Gossamer will store its data -- `--chain` - specifies the [chain configuration](../../chain) that the +- `--chain` - specifies the [chain configuration](../../internal/chain) that the [Gossamer host node](https://chainsafe.github.io/gossamer/getting-started/overview/host-architecture/) should load - `--key` - specifies a test keyring account to use (e.g. `--key=alice`) - `--log` - supports levels `crit` (silent), `error`, `warn`, `info`, `debug`, and `trce` (detailed), default is `info` @@ -86,7 +86,7 @@ The `importStateAction` function is defined in [`main.go`](main.go). The `export` subcommand transforms a genesis configuration and Gossamer state into a TOML configuration file. This subcommand invokes the `exportAction` function defined in [`export.go`](export.go). -- `--config` - path to a TOML configuration file (e.g. those defined in [the `chain` directory](../../chain)) +- `--config` - path to a TOML configuration file (e.g. those defined in [the `chain` directory](../../internal/chain)) - `--basepath` - path to the Gossamer data directory that defines the state to export ## Client Components diff --git a/cmd/gossamer/config.go b/cmd/gossamer/config.go index 68ceea5368f..1dbff4db127 100644 --- a/cmd/gossamer/config.go +++ b/cmd/gossamer/config.go @@ -10,12 +10,12 @@ import ( "strings" "time" - "github.com/ChainSafe/gossamer/chain/dev" - "github.com/ChainSafe/gossamer/chain/gssmr" "github.com/ChainSafe/gossamer/dot" ctoml "github.com/ChainSafe/gossamer/dot/config/toml" "github.com/ChainSafe/gossamer/dot/state" "github.com/ChainSafe/gossamer/dot/state/pruner" + "github.com/ChainSafe/gossamer/internal/chain/dev" + "github.com/ChainSafe/gossamer/internal/chain/gssmr" "github.com/ChainSafe/gossamer/internal/log" "github.com/ChainSafe/gossamer/lib/common" "github.com/ChainSafe/gossamer/lib/genesis" diff --git a/cmd/gossamer/config_test.go b/cmd/gossamer/config_test.go index dbea9ac7355..f1d73719aed 100644 --- a/cmd/gossamer/config_test.go +++ b/cmd/gossamer/config_test.go @@ -14,12 +14,12 @@ import ( "testing" "time" - "github.com/ChainSafe/gossamer/chain/dev" - "github.com/ChainSafe/gossamer/chain/gssmr" "github.com/ChainSafe/gossamer/dot" ctoml "github.com/ChainSafe/gossamer/dot/config/toml" "github.com/ChainSafe/gossamer/dot/state" "github.com/ChainSafe/gossamer/dot/types" + "github.com/ChainSafe/gossamer/internal/chain/dev" + "github.com/ChainSafe/gossamer/internal/chain/gssmr" "github.com/ChainSafe/gossamer/internal/log" "github.com/ChainSafe/gossamer/lib/common" "github.com/ChainSafe/gossamer/lib/genesis" diff --git a/cmd/gossamer/export_test.go b/cmd/gossamer/export_test.go index 7752c8d9b13..4ef6a89349b 100644 --- a/cmd/gossamer/export_test.go +++ b/cmd/gossamer/export_test.go @@ -7,10 +7,9 @@ import ( "io" "testing" - "github.com/ChainSafe/gossamer/chain/gssmr" "github.com/ChainSafe/gossamer/dot" - ctoml "github.com/ChainSafe/gossamer/dot/config/toml" + "github.com/ChainSafe/gossamer/internal/chain/gssmr" "github.com/ChainSafe/gossamer/internal/log" "github.com/stretchr/testify/require" "github.com/urfave/cli" diff --git a/cmd/gossamer/flags.go b/cmd/gossamer/flags.go index 722e4e0ad01..97fe2a7d5ba 100644 --- a/cmd/gossamer/flags.go +++ b/cmd/gossamer/flags.go @@ -4,7 +4,7 @@ package main import ( - "github.com/ChainSafe/gossamer/chain/dev" + "github.com/ChainSafe/gossamer/internal/chain/dev" "github.com/urfave/cli" ) diff --git a/cmd/gossamer/flags_test.go b/cmd/gossamer/flags_test.go index 42c92beaa5f..71f6669b487 100644 --- a/cmd/gossamer/flags_test.go +++ b/cmd/gossamer/flags_test.go @@ -7,8 +7,8 @@ import ( "io" "testing" - "github.com/ChainSafe/gossamer/chain/dev" "github.com/ChainSafe/gossamer/dot" + "github.com/ChainSafe/gossamer/internal/chain/dev" "github.com/stretchr/testify/require" "github.com/urfave/cli" ) diff --git a/cmd/gossamer/main_test.go b/cmd/gossamer/main_test.go index e0f5b61586d..69eea580b19 100644 --- a/cmd/gossamer/main_test.go +++ b/cmd/gossamer/main_test.go @@ -204,7 +204,7 @@ func TestMain(m *testing.M) { panic(err) } - testGssmrConfigPath = filepath.Join(rootPath, "./chain/gssmr/config.toml") + testGssmrConfigPath = filepath.Join(rootPath, "./internal/chain/gssmr/config.toml") os.Exit(m.Run()) } diff --git a/cmd/gossamer/toml_config.go b/cmd/gossamer/toml_config.go index 9399558dfe9..c7a2f9bb0b7 100644 --- a/cmd/gossamer/toml_config.go +++ b/cmd/gossamer/toml_config.go @@ -11,15 +11,15 @@ import ( "reflect" "unicode" - "github.com/ChainSafe/gossamer" ctoml "github.com/ChainSafe/gossamer/dot/config/toml" + "github.com/ChainSafe/gossamer/internal" "github.com/naoina/toml" ) func loadConfigFromResource(cfg *ctoml.Config, resourcePath string) error { - file, err := gossamer.DefaultConfigTomlFiles.Open(resourcePath) + file, err := internal.DefaultConfigTomlFiles.Open(resourcePath) if err != nil { - logger.Errorf("failed to open toml configuration file: %s", err) + logger.Errorf("opening toml configuration file: %w", err) return err } return loadConfig(cfg, file) diff --git a/cmd/gossamer/toml_config_test.go b/cmd/gossamer/toml_config_test.go index 480d3242e51..a6a3725a03b 100644 --- a/cmd/gossamer/toml_config_test.go +++ b/cmd/gossamer/toml_config_test.go @@ -40,7 +40,7 @@ func TestLoadConfigGssmr(t *testing.T) { require.NoError(t, err) projectRootPath := utils.GetProjectRootPathTest(t) - gssmrConfigPath := filepath.Join(projectRootPath, "./chain/gssmr/config.toml") + gssmrConfigPath := filepath.Join(projectRootPath, "./internal/chain/gssmr/config.toml") err = loadConfigFromFile(dotConfigToToml(cfg), gssmrConfigPath) require.NoError(t, err) @@ -57,7 +57,7 @@ func TestLoadConfigKusama(t *testing.T) { require.NoError(t, err) projectRootPath := utils.GetProjectRootPathTest(t) - kusamaConfigPath := filepath.Join(projectRootPath, "./chain/kusama/config.toml") + kusamaConfigPath := filepath.Join(projectRootPath, "./internal/chain/kusama/config.toml") err = loadConfigFromFile(dotConfigToToml(cfg), kusamaConfigPath) require.NoError(t, err) diff --git a/dot/config.go b/dot/config.go index eba3879b09a..94ad7457b9f 100644 --- a/dot/config.go +++ b/dot/config.go @@ -8,12 +8,12 @@ import ( "strings" "time" - "github.com/ChainSafe/gossamer/chain/dev" - "github.com/ChainSafe/gossamer/chain/gssmr" - "github.com/ChainSafe/gossamer/chain/kusama" - "github.com/ChainSafe/gossamer/chain/polkadot" "github.com/ChainSafe/gossamer/dot/state/pruner" "github.com/ChainSafe/gossamer/dot/types" + "github.com/ChainSafe/gossamer/internal/chain/dev" + "github.com/ChainSafe/gossamer/internal/chain/gssmr" + "github.com/ChainSafe/gossamer/internal/chain/kusama" + "github.com/ChainSafe/gossamer/internal/chain/polkadot" "github.com/ChainSafe/gossamer/internal/log" "github.com/ChainSafe/gossamer/internal/pprof" "github.com/ChainSafe/gossamer/lib/common" diff --git a/chain/dev-staking/config.toml b/internal/chain/dev-staking/config.toml similarity index 100% rename from chain/dev-staking/config.toml rename to internal/chain/dev-staking/config.toml diff --git a/chain/dev-staking/dev-staking-spec-raw.json b/internal/chain/dev-staking/dev-staking-spec-raw.json similarity index 100% rename from chain/dev-staking/dev-staking-spec-raw.json rename to internal/chain/dev-staking/dev-staking-spec-raw.json diff --git a/chain/dev-staking/dev-staking-spec.json b/internal/chain/dev-staking/dev-staking-spec.json similarity index 100% rename from chain/dev-staking/dev-staking-spec.json rename to internal/chain/dev-staking/dev-staking-spec.json diff --git a/chain/dev-v3substrate/genesis-spec.json b/internal/chain/dev-v3substrate/genesis-spec.json similarity index 100% rename from chain/dev-v3substrate/genesis-spec.json rename to internal/chain/dev-v3substrate/genesis-spec.json diff --git a/chain/dev-v3substrate/genesis.json b/internal/chain/dev-v3substrate/genesis.json similarity index 100% rename from chain/dev-v3substrate/genesis.json rename to internal/chain/dev-v3substrate/genesis.json diff --git a/chain/dev/config.toml b/internal/chain/dev/config.toml similarity index 100% rename from chain/dev/config.toml rename to internal/chain/dev/config.toml diff --git a/chain/dev/defaults.go b/internal/chain/dev/defaults.go similarity index 100% rename from chain/dev/defaults.go rename to internal/chain/dev/defaults.go diff --git a/chain/dev/genesis-spec.json b/internal/chain/dev/genesis-spec.json similarity index 100% rename from chain/dev/genesis-spec.json rename to internal/chain/dev/genesis-spec.json diff --git a/chain/dev/genesis.json b/internal/chain/dev/genesis.json similarity index 100% rename from chain/dev/genesis.json rename to internal/chain/dev/genesis.json diff --git a/chain/gssmr-staking/config-alice.toml b/internal/chain/gssmr-staking/config-alice.toml similarity index 100% rename from chain/gssmr-staking/config-alice.toml rename to internal/chain/gssmr-staking/config-alice.toml diff --git a/chain/gssmr-staking/config-bob.toml b/internal/chain/gssmr-staking/config-bob.toml similarity index 100% rename from chain/gssmr-staking/config-bob.toml rename to internal/chain/gssmr-staking/config-bob.toml diff --git a/chain/gssmr-staking/config-charlie.toml b/internal/chain/gssmr-staking/config-charlie.toml similarity index 100% rename from chain/gssmr-staking/config-charlie.toml rename to internal/chain/gssmr-staking/config-charlie.toml diff --git a/chain/gssmr-staking/gssmr-staking-spec-raw.json b/internal/chain/gssmr-staking/gssmr-staking-spec-raw.json similarity index 100% rename from chain/gssmr-staking/gssmr-staking-spec-raw.json rename to internal/chain/gssmr-staking/gssmr-staking-spec-raw.json diff --git a/chain/gssmr-staking/gssmr-staking-spec.json b/internal/chain/gssmr-staking/gssmr-staking-spec.json similarity index 100% rename from chain/gssmr-staking/gssmr-staking-spec.json rename to internal/chain/gssmr-staking/gssmr-staking-spec.json diff --git a/chain/gssmr-v3substrate/genesis-spec.json b/internal/chain/gssmr-v3substrate/genesis-spec.json similarity index 100% rename from chain/gssmr-v3substrate/genesis-spec.json rename to internal/chain/gssmr-v3substrate/genesis-spec.json diff --git a/chain/gssmr-v3substrate/genesis.json b/internal/chain/gssmr-v3substrate/genesis.json similarity index 100% rename from chain/gssmr-v3substrate/genesis.json rename to internal/chain/gssmr-v3substrate/genesis.json diff --git a/chain/gssmr/config-alice.toml b/internal/chain/gssmr/config-alice.toml similarity index 100% rename from chain/gssmr/config-alice.toml rename to internal/chain/gssmr/config-alice.toml diff --git a/chain/gssmr/config-bob.toml b/internal/chain/gssmr/config-bob.toml similarity index 100% rename from chain/gssmr/config-bob.toml rename to internal/chain/gssmr/config-bob.toml diff --git a/chain/gssmr/config-charlie.toml b/internal/chain/gssmr/config-charlie.toml similarity index 100% rename from chain/gssmr/config-charlie.toml rename to internal/chain/gssmr/config-charlie.toml diff --git a/chain/gssmr/config.toml b/internal/chain/gssmr/config.toml similarity index 100% rename from chain/gssmr/config.toml rename to internal/chain/gssmr/config.toml diff --git a/chain/gssmr/defaults.go b/internal/chain/gssmr/defaults.go similarity index 100% rename from chain/gssmr/defaults.go rename to internal/chain/gssmr/defaults.go diff --git a/chain/gssmr/genesis-spec.json b/internal/chain/gssmr/genesis-spec.json similarity index 100% rename from chain/gssmr/genesis-spec.json rename to internal/chain/gssmr/genesis-spec.json diff --git a/chain/gssmr/genesis.json b/internal/chain/gssmr/genesis.json similarity index 100% rename from chain/gssmr/genesis.json rename to internal/chain/gssmr/genesis.json diff --git a/chain/kusama/config.toml b/internal/chain/kusama/config.toml similarity index 100% rename from chain/kusama/config.toml rename to internal/chain/kusama/config.toml diff --git a/chain/kusama/defaults.go b/internal/chain/kusama/defaults.go similarity index 100% rename from chain/kusama/defaults.go rename to internal/chain/kusama/defaults.go diff --git a/chain/kusama/genesis.json b/internal/chain/kusama/genesis.json similarity index 100% rename from chain/kusama/genesis.json rename to internal/chain/kusama/genesis.json diff --git a/chain/polkadot/config.toml b/internal/chain/polkadot/config.toml similarity index 100% rename from chain/polkadot/config.toml rename to internal/chain/polkadot/config.toml diff --git a/chain/polkadot/defaults.go b/internal/chain/polkadot/defaults.go similarity index 100% rename from chain/polkadot/defaults.go rename to internal/chain/polkadot/defaults.go diff --git a/chain/polkadot/genesis.json b/internal/chain/polkadot/genesis.json similarity index 100% rename from chain/polkadot/genesis.json rename to internal/chain/polkadot/genesis.json diff --git a/chain/rococo-dev/config.toml b/internal/chain/rococo-dev/config.toml similarity index 100% rename from chain/rococo-dev/config.toml rename to internal/chain/rococo-dev/config.toml diff --git a/chain/rococo-dev/rococo-dev-spec-raw.json b/internal/chain/rococo-dev/rococo-dev-spec-raw.json similarity index 100% rename from chain/rococo-dev/rococo-dev-spec-raw.json rename to internal/chain/rococo-dev/rococo-dev-spec-raw.json diff --git a/chain/rococo-dev/rococo-dev-spec.json b/internal/chain/rococo-dev/rococo-dev-spec.json similarity index 100% rename from chain/rococo-dev/rococo-dev-spec.json rename to internal/chain/rococo-dev/rococo-dev-spec.json diff --git a/chain/westend-dev/config.toml b/internal/chain/westend-dev/config.toml similarity index 100% rename from chain/westend-dev/config.toml rename to internal/chain/westend-dev/config.toml diff --git a/chain/westend-dev/westend-dev-spec-raw.json b/internal/chain/westend-dev/westend-dev-spec-raw.json similarity index 100% rename from chain/westend-dev/westend-dev-spec-raw.json rename to internal/chain/westend-dev/westend-dev-spec-raw.json diff --git a/chain/westend-dev/westend-dev-spec.json b/internal/chain/westend-dev/westend-dev-spec.json similarity index 100% rename from chain/westend-dev/westend-dev-spec.json rename to internal/chain/westend-dev/westend-dev-spec.json diff --git a/chain/westend-local/config-alice.toml b/internal/chain/westend-local/config-alice.toml similarity index 100% rename from chain/westend-local/config-alice.toml rename to internal/chain/westend-local/config-alice.toml diff --git a/chain/westend-local/config-bob.toml b/internal/chain/westend-local/config-bob.toml similarity index 100% rename from chain/westend-local/config-bob.toml rename to internal/chain/westend-local/config-bob.toml diff --git a/chain/westend-local/config-charlie.toml b/internal/chain/westend-local/config-charlie.toml similarity index 100% rename from chain/westend-local/config-charlie.toml rename to internal/chain/westend-local/config-charlie.toml diff --git a/chain/westend-local/westend-local-spec-raw.json b/internal/chain/westend-local/westend-local-spec-raw.json similarity index 100% rename from chain/westend-local/westend-local-spec-raw.json rename to internal/chain/westend-local/westend-local-spec-raw.json diff --git a/chain/westend-local/westend-local-spec.json b/internal/chain/westend-local/westend-local-spec.json similarity index 100% rename from chain/westend-local/westend-local-spec.json rename to internal/chain/westend-local/westend-local-spec.json diff --git a/resources.go b/internal/resources.go similarity index 58% rename from resources.go rename to internal/resources.go index 8f6afb3e76a..eb45fd67362 100644 --- a/resources.go +++ b/internal/resources.go @@ -1,9 +1,9 @@ // Copyright 2023 ChainSafe Systems (ON) // SPDX-License-Identifier: LGPL-3.0-only -package gossamer +package internal import "embed" //go:embed chain/*/*.toml -// DefaultConfigTomlFiles resource files for default toml configurations +// DefaultConfigTomlFiles is the embedded file system containing the default toml configurations. var DefaultConfigTomlFiles embed.FS diff --git a/lib/utils/utils.go b/lib/utils/utils.go index 54cacd842aa..31fe2d838d0 100644 --- a/lib/utils/utils.go +++ b/lib/utils/utils.go @@ -151,31 +151,31 @@ func KeystoreFilepaths(basepath string) ([]string, error) { // GetWestendDevHumanReadableGenesisPath gets the westend-dev human readable spec filepath func GetWestendDevHumanReadableGenesisPath(t *testing.T) string { t.Helper() - return filepath.Join(GetProjectRootPathTest(t), "./chain/westend-dev/westend-dev-spec.json") + return filepath.Join(GetProjectRootPathTest(t), "./internal/chain/westend-dev/westend-dev-spec.json") } // GetWestendDevRawGenesisPath gets the westend-dev genesis raw path func GetWestendDevRawGenesisPath(t *testing.T) string { t.Helper() - return filepath.Join(GetProjectRootPathTest(t), "./chain/westend-dev/westend-dev-spec-raw.json") + return filepath.Join(GetProjectRootPathTest(t), "./internal/chain/westend-dev/westend-dev-spec-raw.json") } // GetWestendLocalRawGenesisPath gets the westend-local genesis raw path func GetWestendLocalRawGenesisPath(t *testing.T) string { t.Helper() - return filepath.Join(GetProjectRootPathTest(t), "./chain/westend-local/westend-local-spec-raw.json") + return filepath.Join(GetProjectRootPathTest(t), "./internal/chain/westend-local/westend-local-spec-raw.json") } // GetKusamaGenesisPath gets the Kusama genesis path func GetKusamaGenesisPath(t *testing.T) string { t.Helper() - return filepath.Join(GetProjectRootPathTest(t), "./chain/kusama/genesis.json") + return filepath.Join(GetProjectRootPathTest(t), "./internal/chain/kusama/genesis.json") } // GetPolkadotGenesisPath gets the Polkadot genesis path func GetPolkadotGenesisPath(t *testing.T) string { t.Helper() - return filepath.Join(GetProjectRootPathTest(t), "./chain/polkadot/genesis.json") + return filepath.Join(GetProjectRootPathTest(t), "./internal/chain/polkadot/genesis.json") } // GetProjectRootPathTest finds the root of the project where `go.mod` is @@ -191,14 +191,15 @@ var ( ErrFindProjectRoot = errors.New("cannot find project root") ) -// GetProjectRootPath finds the root of the project where `go.mod` is +// GetProjectRootPath finds the root of the project where directory `cmd` +// and subdirectories `gossamer, testcases` are // and returns it as an absolute path. func GetProjectRootPath() (rootPath string, err error) { _, fullpath, _, _ := runtime.Caller(0) rootPath = path.Dir(fullpath) - const directoryToFind = "chain" - const subPathsToFind = "dev,gssmr,kusama,polkadot" + const directoryToFind = "cmd" + const subPathsToFind = "gossamer,testcases" subPaths := strings.Split(subPathsToFind, ",")