diff --git a/client/docs/swagger-ui/swagger.yaml b/client/docs/swagger-ui/swagger.yaml index 1fac0e9b62..dcc942d75c 100644 --- a/client/docs/swagger-ui/swagger.yaml +++ b/client/docs/swagger-ui/swagger.yaml @@ -740,7 +740,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -888,7 +888,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -979,7 +979,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -1131,7 +1131,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -1219,7 +1219,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -1381,7 +1381,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -1603,7 +1603,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -1812,7 +1812,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -2030,7 +2030,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -2632,7 +2632,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -2682,7 +2682,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -2851,7 +2851,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -3083,7 +3083,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -3356,7 +3356,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -3572,7 +3572,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -3916,7 +3916,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -4069,7 +4069,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -4215,7 +4215,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -4445,7 +4445,7 @@ paths: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -28804,7 +28804,7 @@ definitions: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -28900,7 +28900,7 @@ definitions: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH @@ -28967,7 +28967,7 @@ definitions: properties: type: type: string - example: tendermint/PubKeySecp256k1 + example: ostracon/PubKeySecp256k1 value: type: string example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH diff --git a/client/docs/swagger_legacy.yaml b/client/docs/swagger_legacy.yaml index fe00efa484..0320e9f4da 100644 --- a/client/docs/swagger_legacy.yaml +++ b/client/docs/swagger_legacy.yaml @@ -2155,7 +2155,7 @@ definitions: properties: type: type: string - example: "tendermint/PubKeySecp256k1" + example: "ostracon/PubKeySecp256k1" value: type: string example: "Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH" diff --git a/client/keys/add_ledger_test.go b/client/keys/add_ledger_test.go index fbfcf37981..f73387cbe6 100644 --- a/client/keys/add_ledger_test.go +++ b/client/keys/add_ledger_test.go @@ -74,7 +74,7 @@ func Test_runAddCmdLedgerWithCustomCoinType(t *testing.T) { require.Equal(t, "keyname1", key1.GetName()) require.Equal(t, keyring.TypeLedger, key1.GetType()) require.Equal(t, - "terrapub1addwnpepqvpg7r26nl2pvqqern00m6s9uaax3hauu2rzg8qpjzq9hy6xve7sw0d84m6", + "terrapub1cqmsrdepqvpg7r26nl2pvqqern00m6s9uaax3hauu2rzg8qpjzq9hy6xve7swm8dz8g", sdk.MustBech32ifyPubKey(sdk.Bech32PubKeyTypeAccPub, key1.GetPubKey())) config.SetCoinType(438) @@ -122,6 +122,6 @@ func Test_runAddCmdLedger(t *testing.T) { require.Equal(t, "keyname1", key1.GetName()) require.Equal(t, keyring.TypeLedger, key1.GetType()) require.Equal(t, - "linkpub1addwnpepq27djm9tzq3sftqsayx95refxk8r5jn0kyshhql9mdjhjx829zlvzszgelc", + "linkpub1cqmsrdepq27djm9tzq3sftqsayx95refxk8r5jn0kyshhql9mdjhjx829zlvzygzwr2", sdk.MustBech32ifyPubKey(sdk.Bech32PubKeyTypeAccPub, key1.GetPubKey())) } diff --git a/client/keys/import_test.go b/client/keys/import_test.go index ff70b1f807..22ab4f0684 100644 --- a/client/keys/import_test.go +++ b/client/keys/import_test.go @@ -32,14 +32,15 @@ func Test_runImportCmd(t *testing.T) { }) keyfile := filepath.Join(kbHome, "key.asc") - armoredKey := `-----BEGIN TENDERMINT PRIVATE KEY----- -salt: A790BB721D1C094260EA84F5E5B72289 + armoredKey := `-----BEGIN OSTRACON PRIVATE KEY----- kdf: bcrypt +salt: A278E4F0DC466EF58CC9FC3149688593 +type: secp256k1 -HbP+c6JmeJy9JXe2rbbF1QtCX1gLqGcDQPBXiCtFvP7/8wTZtVOPj8vREzhZ9ElO -3P7YnrzPQThG0Q+ZnRSbl9MAS8uFAM4mqm5r/Ys= -=f3l4 ------END TENDERMINT PRIVATE KEY----- +mSB5rEfN4VCi1EnEca5PigV/WphYtrBFft+QyZ2ISztMeQmuhFNFWwjLBsJm5zXv +KNXMn0ZEeCZtbyNzPPdQUQBwcbueq9vx5NDqQCg= +=wp9z +-----END OSTRACON PRIVATE KEY----- ` require.NoError(t, ioutil.WriteFile(keyfile, []byte(armoredKey), 0644)) diff --git a/client/keys/migrate.go b/client/keys/migrate.go deleted file mode 100644 index 3d2da8b4ec..0000000000 --- a/client/keys/migrate.go +++ /dev/null @@ -1,147 +0,0 @@ -package keys - -import ( - "bufio" - "fmt" - "io/ioutil" - "os" - - "github.com/pkg/errors" - "github.com/spf13/cobra" - - "github.com/line/lbm-sdk/v2/client/flags" - "github.com/line/lbm-sdk/v2/client/input" - "github.com/line/lbm-sdk/v2/crypto/keyring" - sdk "github.com/line/lbm-sdk/v2/types" -) - -// migratePassphrase is used as a no-op migration key passphrase as a passphrase -// is not needed for importing into the Keyring keystore. -const migratePassphrase = "NOOP_PASSPHRASE" - -// MigrateCommand migrates key information from legacy keybase to OS secret store. -func MigrateCommand() *cobra.Command { - cmd := &cobra.Command{ - Use: "migrate ", - Short: "Migrate keys from the legacy (db-based) Keybase", - Long: `Migrate key information from the legacy (db-based) Keybase to the new keyring-based Keyring. -The legacy Keybase used to persist keys in a LevelDB database stored in a 'keys' sub-directory of -the old client application's home directory, e.g. $HOME/.gaiacli/keys/. -For each key material entry, the command will prompt if the key should be skipped or not. If the key -is not to be skipped, the passphrase must be entered. The key will only be migrated if the passphrase -is correct. Otherwise, the command will exit and migration must be repeated. - -It is recommended to run in 'dry-run' mode first to verify all key migration material. -`, - Args: cobra.ExactArgs(1), - RunE: runMigrateCmd, - } - - cmd.Flags().Bool(flags.FlagDryRun, false, "Run migration without actually persisting any changes to the new Keybase") - return cmd -} - -func runMigrateCmd(cmd *cobra.Command, args []string) error { - rootDir, _ := cmd.Flags().GetString(flags.FlagHome) - - // instantiate legacy keybase - var legacyKb keyring.LegacyKeybase - legacyKb, err := NewLegacyKeyBaseFromDir(args[0]) - if err != nil { - return err - } - - defer func() { _ = legacyKb.Close() }() - - // fetch list of keys from legacy keybase - oldKeys, err := legacyKb.List() - if err != nil { - return err - } - - buf := bufio.NewReader(cmd.InOrStdin()) - keyringServiceName := sdk.KeyringServiceName() - - var ( - tmpDir string - migrator keyring.Importer - ) - - if dryRun, _ := cmd.Flags().GetBool(flags.FlagDryRun); dryRun { - tmpDir, err = ioutil.TempDir("", "migrator-migrate-dryrun") - if err != nil { - return errors.Wrap(err, "failed to create temporary directory for dryrun migration") - } - - defer func() { _ = os.RemoveAll(tmpDir) }() - - migrator, err = keyring.New(keyringServiceName, keyring.BackendTest, tmpDir, buf) - } else { - backend, _ := cmd.Flags().GetString(flags.FlagKeyringBackend) - migrator, err = keyring.New(keyringServiceName, backend, rootDir, buf) - } - - if err != nil { - return errors.Wrap(err, fmt.Sprintf( - "failed to initialize keybase for service %s at directory %s", - keyringServiceName, rootDir, - )) - } - - if len(oldKeys) == 0 { - cmd.Print("Migration Aborted: no keys to migrate") - return nil - } - - for _, oldInfo := range oldKeys { - keyName := oldInfo.GetName() - keyType := oldInfo.GetType() - - cmd.PrintErrf("Migrating key: '%s (%s)' ...\n", keyName, keyType) - - // allow user to skip migrating specific keys - ok, err := input.GetConfirmation("Skip key migration?", buf, cmd.ErrOrStderr()) - if err != nil { - return err - } - if ok { - continue - } - - // TypeLocal needs an additional step to ask password. - // The other keyring types are handled by ImportInfo. - if keyType != keyring.TypeLocal { - infoImporter, ok := migrator.(keyring.LegacyInfoImporter) - if !ok { - return fmt.Errorf("the Keyring implementation does not support import operations of Info types") - } - - if err = infoImporter.ImportInfo(oldInfo); err != nil { - return err - } - - continue - } - - password, err := input.GetPassword("Enter passphrase to decrypt key:", buf) - if err != nil { - return err - } - - // NOTE: A passphrase is not actually needed here as when the key information - // is imported into the Keyring-based Keybase it only needs the password - // (see: writeLocalKey). - armoredPriv, err := legacyKb.ExportPrivKey(keyName, password, migratePassphrase) - if err != nil { - return err - } - - if err := migrator.ImportPrivKey(keyName, armoredPriv, migratePassphrase); err != nil { - return err - } - - } - cmd.PrintErrln("Migration complete.") - - return err -} diff --git a/client/keys/migrate_test.go b/client/keys/migrate_test.go deleted file mode 100644 index 9912222978..0000000000 --- a/client/keys/migrate_test.go +++ /dev/null @@ -1,42 +0,0 @@ -package keys - -import ( - "context" - "fmt" - "testing" - - "github.com/line/lbm-sdk/v2/client" - - "github.com/stretchr/testify/require" - - "github.com/otiai10/copy" - "github.com/stretchr/testify/assert" - - "github.com/line/lbm-sdk/v2/client/flags" - "github.com/line/lbm-sdk/v2/crypto/keyring" - "github.com/line/lbm-sdk/v2/testutil" -) - -func Test_runMigrateCmd(t *testing.T) { - kbHome := t.TempDir() - clientCtx := client.Context{}.WithKeyringDir(kbHome) - ctx := context.WithValue(context.Background(), client.ClientContextKey, &clientCtx) - - require.NoError(t, copy.Copy("testdata", kbHome)) - - cmd := MigrateCommand() - cmd.Flags().AddFlagSet(Commands("home").PersistentFlags()) - //mockIn := testutil.ApplyMockIODiscardOutErr(cmd) - mockIn, mockOut := testutil.ApplyMockIO(cmd) - - cmd.SetArgs([]string{ - kbHome, - //fmt.Sprintf("--%s=%s", flags.FlagHome, kbHome), - fmt.Sprintf("--%s=true", flags.FlagDryRun), - fmt.Sprintf("--%s=%s", flags.FlagKeyringBackend, keyring.BackendTest), - }) - - mockIn.Reset("\n12345678\n\n\n\n\n") - t.Log(mockOut.String()) - assert.NoError(t, cmd.ExecuteContext(ctx)) -} diff --git a/client/keys/root.go b/client/keys/root.go index 8b00032fad..7db7d5ff2a 100644 --- a/client/keys/root.go +++ b/client/keys/root.go @@ -47,7 +47,6 @@ The pass backend requires GnuPG: https://gnupg.org/ flags.LineBreak, DeleteKeyCommand(), ParseKeyStringCommand(), - MigrateCommand(), ) cmd.PersistentFlags().String(flags.FlagHome, defaultNodeHome, "The application home directory") diff --git a/client/keys/root_test.go b/client/keys/root_test.go index f66ae9265d..b6c2f5f88f 100644 --- a/client/keys/root_test.go +++ b/client/keys/root_test.go @@ -11,5 +11,5 @@ func TestCommands(t *testing.T) { assert.NotNil(t, rootCommands) // Commands are registered - assert.Equal(t, 10, len(rootCommands.Commands())) + assert.Equal(t, 9, len(rootCommands.Commands())) } diff --git a/client/keys/show_test.go b/client/keys/show_test.go index 996fd527ae..7e6aba74c8 100644 --- a/client/keys/show_test.go +++ b/client/keys/show_test.go @@ -28,8 +28,8 @@ func Test_multiSigKey_Properties(t *testing.T) { require.Equal(t, "myMultisig", tmp.GetName()) require.Equal(t, keyring.TypeMulti, tmp.GetType()) - require.Equal(t, "D3923267FA8A3DD367BB768FA8BDC8FF7F89DA3F", tmp.GetPubKey().Address().String()) - require.Equal(t, "cosmos16wfryel63g7axeamw68630wglalcnk3l0zuadc", sdk.MustBech32ifyAddressBytes("cosmos", tmp.GetAddress())) + require.Equal(t, "BDF0C827D34CA39919C7688EB5A95383C60B3471", tmp.GetPubKey().Address().String()) + require.Equal(t, "link1hhcvsf7nfj3ejxw8dz8tt22ns0rqkdr3rrh7xy", sdk.MustBech32ifyAddressBytes("link", tmp.GetAddress())) } func Test_showKeysCmd(t *testing.T) { diff --git a/client/keys/testdata/keys/keys.db/000136.ldb b/client/keys/testdata/keys/keys.db/000136.ldb deleted file mode 100644 index 58165a9ab1..0000000000 Binary files a/client/keys/testdata/keys/keys.db/000136.ldb and /dev/null differ diff --git a/client/keys/testdata/keys/keys.db/000137.ldb b/client/keys/testdata/keys/keys.db/000137.ldb deleted file mode 100644 index 340e51356e..0000000000 Binary files a/client/keys/testdata/keys/keys.db/000137.ldb and /dev/null differ diff --git a/client/keys/testdata/keys/keys.db/CURRENT b/client/keys/testdata/keys/keys.db/CURRENT deleted file mode 100644 index c5ea6dc2c1..0000000000 --- a/client/keys/testdata/keys/keys.db/CURRENT +++ /dev/null @@ -1 +0,0 @@ -MANIFEST-000167 diff --git a/client/keys/testdata/keys/keys.db/CURRENT.bak b/client/keys/testdata/keys/keys.db/CURRENT.bak deleted file mode 100644 index 6da0b2c731..0000000000 --- a/client/keys/testdata/keys/keys.db/CURRENT.bak +++ /dev/null @@ -1 +0,0 @@ -MANIFEST-000165 diff --git a/client/keys/testdata/keys/keys.db/LOCK b/client/keys/testdata/keys/keys.db/LOCK deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/client/keys/testdata/keys/keys.db/LOG b/client/keys/testdata/keys/keys.db/LOG deleted file mode 100644 index c42df220de..0000000000 --- a/client/keys/testdata/keys/keys.db/LOG +++ /dev/null @@ -1,876 +0,0 @@ -=============== Sep 12, 2020 (BST) =============== -14:56:38.444867 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -14:56:38.447630 db@open opening -14:56:38.447826 version@stat F·[] S·0B[] Sc·[] -14:56:38.449162 db@janitor F·2 G·0 -14:56:38.449180 db@open done T·1.537964ms -14:56:38.449193 db@close closing -14:56:38.449264 db@close done T·69.313µs -=============== Sep 12, 2020 (BST) =============== -14:56:49.081871 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -14:56:49.081975 version@stat F·[] S·0B[] Sc·[] -14:56:49.081994 db@open opening -14:56:49.082040 journal@recovery F·1 -14:56:49.082399 journal@recovery recovering @1 -14:56:49.083134 version@stat F·[] S·0B[] Sc·[] -14:56:49.088411 db@janitor F·2 G·0 -14:56:49.088430 db@open done T·6.428462ms -14:56:49.088440 db@close closing -14:56:49.088491 db@close done T·48.589µs -=============== Sep 12, 2020 (BST) =============== -14:56:55.214003 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -14:56:55.214144 version@stat F·[] S·0B[] Sc·[] -14:56:55.214165 db@open opening -14:56:55.214215 journal@recovery F·1 -14:56:55.214329 journal@recovery recovering @2 -14:56:55.214750 version@stat F·[] S·0B[] Sc·[] -14:56:55.221347 db@janitor F·2 G·0 -14:56:55.221365 db@open done T·7.194565ms -14:56:55.608587 db@close closing -14:56:55.608644 db@close done T·54.685µs -=============== Sep 12, 2020 (BST) =============== -14:57:07.211101 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -14:57:07.211224 version@stat F·[] S·0B[] Sc·[] -14:57:07.211243 db@open opening -14:57:07.211287 journal@recovery F·1 -14:57:07.211388 journal@recovery recovering @4 -14:57:07.213734 memdb@flush created L0@6 N·2 S·470B "cos..ess,v2":"val..nfo,v1" -14:57:07.214142 version@stat F·[1] S·470B[470B] Sc·[0.25] -14:57:07.218723 db@janitor F·3 G·0 -14:57:07.218743 db@open done T·7.488657ms -14:57:07.218804 db@close closing -14:57:07.218842 db@close done T·36.603µs -=============== Sep 12, 2020 (BST) =============== -14:57:16.418006 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -14:57:16.418133 version@stat F·[1] S·470B[470B] Sc·[0.25] -14:57:16.418153 db@open opening -14:57:16.418199 journal@recovery F·1 -14:57:16.418508 journal@recovery recovering @7 -14:57:16.418891 version@stat F·[1] S·470B[470B] Sc·[0.25] -14:57:16.425395 db@janitor F·3 G·0 -14:57:16.425423 db@open done T·7.257565ms -14:57:16.425482 db@close closing -14:57:16.425522 db@close done T·38.172µs -=============== Sep 12, 2020 (BST) =============== -14:57:16.425854 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -14:57:16.425965 version@stat F·[1] S·470B[470B] Sc·[0.25] -14:57:16.425983 db@open opening -14:57:16.426027 journal@recovery F·1 -14:57:16.426133 journal@recovery recovering @9 -14:57:16.426324 version@stat F·[1] S·470B[470B] Sc·[0.25] -14:57:16.431088 db@janitor F·3 G·0 -14:57:16.431103 db@open done T·5.115335ms -14:57:16.431142 db@close closing -14:57:16.431179 db@close done T·35.705µs -=============== Sep 12, 2020 (BST) =============== -14:57:16.431287 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -14:57:16.431376 version@stat F·[1] S·470B[470B] Sc·[0.25] -14:57:16.431394 db@open opening -14:57:16.431437 journal@recovery F·1 -14:57:16.431721 journal@recovery recovering @11 -14:57:16.432205 version@stat F·[1] S·470B[470B] Sc·[0.25] -14:57:16.437468 db@janitor F·3 G·0 -14:57:16.437486 db@open done T·6.087128ms -14:57:16.437529 db@close closing -14:57:16.437571 db@close done T·40.188µs -=============== Sep 12, 2020 (BST) =============== -14:57:16.437907 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -14:57:16.438006 version@stat F·[1] S·470B[470B] Sc·[0.25] -14:57:16.438024 db@open opening -14:57:16.438067 journal@recovery F·1 -14:57:16.438573 journal@recovery recovering @13 -14:57:16.439155 version@stat F·[1] S·470B[470B] Sc·[0.25] -14:57:16.443451 db@janitor F·3 G·0 -14:57:16.443466 db@open done T·5.437579ms -14:57:16.443511 db@close closing -14:57:16.443634 db@close done T·118.642µs -=============== Sep 12, 2020 (BST) =============== -14:57:16.443733 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -14:57:16.443847 version@stat F·[1] S·470B[470B] Sc·[0.25] -14:57:16.443864 db@open opening -14:57:16.443915 journal@recovery F·1 -14:57:16.444629 journal@recovery recovering @15 -14:57:16.445570 version@stat F·[1] S·470B[470B] Sc·[0.25] -14:57:16.450978 db@janitor F·3 G·0 -14:57:16.451001 db@open done T·7.132193ms -14:57:16.451050 db@close closing -14:57:16.451089 db@close done T·37.371µs -=============== Sep 12, 2020 (BST) =============== -14:57:19.439656 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -14:57:19.439775 version@stat F·[1] S·470B[470B] Sc·[0.25] -14:57:19.439793 db@open opening -14:57:19.439845 journal@recovery F·1 -14:57:19.440199 journal@recovery recovering @17 -14:57:19.440624 version@stat F·[1] S·470B[470B] Sc·[0.25] -14:57:19.445819 db@janitor F·3 G·0 -14:57:19.445837 db@open done T·6.03822ms -14:57:19.828985 db@close closing -14:57:19.829058 db@close done T·71.028µs -=============== Sep 12, 2020 (BST) =============== -15:07:04.002859 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:07:04.002990 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:04.003010 db@open opening -15:07:04.003081 journal@recovery F·1 -15:07:04.003191 journal@recovery recovering @19 -15:07:04.003591 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:04.008917 db@janitor F·3 G·0 -15:07:04.008942 db@open done T·5.916433ms -15:07:04.009005 db@close closing -15:07:04.009050 db@close done T·42.762µs -=============== Sep 12, 2020 (BST) =============== -15:07:15.240666 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:07:15.240802 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:15.240825 db@open opening -15:07:15.240871 journal@recovery F·1 -15:07:15.241288 journal@recovery recovering @21 -15:07:15.241702 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:15.249270 db@janitor F·3 G·0 -15:07:15.249299 db@open done T·8.459432ms -15:07:15.249363 db@close closing -15:07:15.249404 db@close done T·39.294µs -=============== Sep 12, 2020 (BST) =============== -15:07:15.249761 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:07:15.249850 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:15.249868 db@open opening -15:07:15.249911 journal@recovery F·1 -15:07:15.250026 journal@recovery recovering @23 -15:07:15.250195 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:15.254923 db@janitor F·3 G·0 -15:07:15.254943 db@open done T·5.069716ms -15:07:15.254987 db@close closing -15:07:15.255026 db@close done T·37.365µs -=============== Sep 12, 2020 (BST) =============== -15:07:15.255136 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:07:15.255218 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:15.255235 db@open opening -15:07:15.255277 journal@recovery F·1 -15:07:15.255617 journal@recovery recovering @25 -15:07:15.256091 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:15.262240 db@janitor F·3 G·0 -15:07:15.262260 db@open done T·7.018813ms -15:07:15.262310 db@close closing -15:07:15.262353 db@close done T·41.276µs -=============== Sep 12, 2020 (BST) =============== -15:07:15.262707 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:07:15.262808 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:15.262829 db@open opening -15:07:15.262874 journal@recovery F·1 -15:07:15.263408 journal@recovery recovering @27 -15:07:15.263994 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:15.268793 db@janitor F·3 G·0 -15:07:15.268810 db@open done T·5.975152ms -15:07:15.268861 db@close closing -15:07:15.268900 db@close done T·37.419µs -=============== Sep 12, 2020 (BST) =============== -15:07:15.268989 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:07:15.269096 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:15.269117 db@open opening -15:07:15.269165 journal@recovery F·1 -15:07:15.269858 journal@recovery recovering @29 -15:07:15.270587 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:15.275935 db@janitor F·3 G·0 -15:07:15.275951 db@open done T·6.828156ms -15:07:15.275999 db@close closing -15:07:15.276033 db@close done T·32.757µs -=============== Sep 12, 2020 (BST) =============== -15:07:21.660414 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:07:21.660547 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:21.660568 db@open opening -15:07:21.660655 journal@recovery F·1 -15:07:21.660960 journal@recovery recovering @31 -15:07:21.661682 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:21.667796 db@janitor F·3 G·0 -15:07:21.667813 db@open done T·7.237366ms -15:07:21.667869 db@close closing -15:07:21.667914 db@close done T·43.496µs -=============== Sep 12, 2020 (BST) =============== -15:07:21.668253 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:07:21.668354 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:21.668372 db@open opening -15:07:21.668418 journal@recovery F·1 -15:07:21.668529 journal@recovery recovering @33 -15:07:21.668930 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:21.674796 db@janitor F·3 G·0 -15:07:21.674817 db@open done T·6.440491ms -15:07:21.674861 db@close closing -15:07:21.674898 db@close done T·35.584µs -=============== Sep 12, 2020 (BST) =============== -15:07:21.675013 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:07:21.675115 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:21.675131 db@open opening -15:07:21.675179 journal@recovery F·1 -15:07:21.675707 journal@recovery recovering @35 -15:07:21.676833 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:21.681212 db@janitor F·3 G·0 -15:07:21.681226 db@open done T·6.089677ms -15:07:21.681270 db@close closing -15:07:21.681299 db@close done T·27.867µs -=============== Sep 12, 2020 (BST) =============== -15:07:21.681691 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:07:21.681799 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:21.681817 db@open opening -15:07:21.681882 journal@recovery F·1 -15:07:21.683119 journal@recovery recovering @37 -15:07:21.684000 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:21.689926 db@janitor F·3 G·0 -15:07:21.689940 db@open done T·8.117662ms -15:07:21.689984 db@close closing -15:07:21.690027 db@close done T·42.379µs -=============== Sep 12, 2020 (BST) =============== -15:07:21.690104 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:07:21.690189 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:21.690205 db@open opening -15:07:21.690247 journal@recovery F·1 -15:07:21.690536 journal@recovery recovering @39 -15:07:21.690899 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:21.695207 db@janitor F·3 G·0 -15:07:21.695223 db@open done T·5.013121ms -15:07:21.695265 db@close closing -15:07:21.695320 db@close done T·53.965µs -=============== Sep 12, 2020 (BST) =============== -15:07:24.335083 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:07:24.335214 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:24.335233 db@open opening -15:07:24.335282 journal@recovery F·1 -15:07:24.336367 journal@recovery recovering @41 -15:07:24.336786 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:07:24.342965 db@janitor F·3 G·0 -15:07:24.342984 db@open done T·7.745647ms -15:07:24.725175 db@close closing -15:07:24.725234 db@close done T·57.895µs -=============== Nov 2, 2020 (GMT) =============== -00:08:43.299526 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -00:08:43.299860 version@stat F·[1] S·470B[470B] Sc·[0.25] -00:08:43.299875 db@open opening -00:08:43.299900 journal@recovery F·1 -00:08:43.300467 journal@recovery recovering @43 -00:08:43.301378 version@stat F·[1] S·470B[470B] Sc·[0.25] -00:08:43.307882 db@janitor F·3 G·0 -00:08:43.307911 db@open done T·8.03178ms -00:08:43.308144 db@close closing -00:08:43.308231 db@close done T·85.824µs -=============== Nov 2, 2020 (GMT) =============== -00:09:14.493119 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -00:09:14.493237 version@stat F·[1] S·470B[470B] Sc·[0.25] -00:09:14.493272 db@open opening -00:09:14.493296 journal@recovery F·1 -00:09:14.493370 journal@recovery recovering @45 -00:09:14.493648 version@stat F·[1] S·470B[470B] Sc·[0.25] -00:09:14.499436 db@janitor F·3 G·0 -00:09:14.499452 db@open done T·6.170984ms -00:09:14.499537 db@close closing -00:09:14.499592 db@close done T·52.707µs -=============== Jan 22, 2021 (GMT) =============== -12:47:15.935887 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:47:15.937333 version@stat F·[1] S·470B[470B] Sc·[0.25] -12:47:15.937343 db@open opening -12:47:15.937370 journal@recovery F·1 -12:47:15.937642 journal@recovery recovering @47 -12:47:15.937942 version@stat F·[1] S·470B[470B] Sc·[0.25] -12:47:15.944262 db@janitor F·3 G·0 -12:47:15.944270 db@open done T·6.922789ms -12:47:15.944460 db@close closing -12:47:15.944492 db@close done T·30.723µs -=============== Jan 22, 2021 (GMT) =============== -15:23:04.060521 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:23:04.060694 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:23:04.060708 db@open opening -15:23:04.060734 journal@recovery F·1 -15:23:04.061045 journal@recovery recovering @49 -15:23:04.061463 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:23:04.067352 db@janitor F·3 G·0 -15:23:04.067386 db@open done T·6.675171ms -15:23:11.819265 db@close closing -15:23:11.819317 db@close done T·51.057µs -=============== Jan 22, 2021 (GMT) =============== -15:23:14.037455 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:23:14.037524 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:23:14.037535 db@open opening -15:23:14.037560 journal@recovery F·1 -15:23:14.037629 journal@recovery recovering @51 -15:23:14.037951 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:23:14.045002 db@janitor F·3 G·0 -15:23:14.045020 db@open done T·7.475686ms -15:23:22.065063 db@close closing -15:23:22.065111 db@close done T·47.074µs -=============== Jan 22, 2021 (GMT) =============== -15:23:43.145956 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:23:43.146094 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:23:43.146107 db@open opening -15:23:43.146132 journal@recovery F·1 -15:23:43.146447 journal@recovery recovering @53 -15:23:43.146912 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:23:43.153059 db@janitor F·3 G·0 -15:23:43.153108 db@open done T·6.977141ms -15:23:43.153245 db@close closing -15:23:43.153290 db@close done T·43.663µs -=============== Jan 22, 2021 (GMT) =============== -15:25:14.027169 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:25:14.027240 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:25:14.027250 db@open opening -15:25:14.027274 journal@recovery F·1 -15:25:14.027627 journal@recovery recovering @55 -15:25:14.028059 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:25:14.033292 db@janitor F·3 G·0 -15:25:14.033304 db@open done T·6.047911ms -15:25:19.981971 db@close closing -15:25:19.982011 db@close done T·39.165µs -=============== Jan 22, 2021 (GMT) =============== -15:25:51.137523 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:25:51.138542 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:25:51.138553 db@open opening -15:25:51.138579 journal@recovery F·1 -15:25:51.138632 journal@recovery recovering @57 -15:25:51.138981 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:25:51.144970 db@janitor F·3 G·0 -15:25:51.144983 db@open done T·6.422769ms -15:25:51.145031 db@close closing -15:25:51.145071 db@close done T·39.108µs -=============== Jan 22, 2021 (GMT) =============== -15:25:56.504732 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:25:56.504809 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:25:56.504824 db@open opening -15:25:56.504872 journal@recovery F·1 -15:25:56.505474 journal@recovery recovering @59 -15:25:56.505571 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:25:56.512054 db@janitor F·3 G·0 -15:25:56.512061 db@open done T·7.232269ms -15:25:56.710823 db@close closing -15:25:56.710860 db@close done T·36.326µs -=============== Jan 22, 2021 (GMT) =============== -15:26:02.847640 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -15:26:02.847733 version@stat F·[1] S·470B[470B] Sc·[0.25] -15:26:02.847745 db@open opening -15:26:02.847771 journal@recovery F·1 -15:26:02.848002 journal@recovery recovering @61 -15:26:02.850382 memdb@flush created L0@63 N·2 S·472B "cos..ess,v5":"tes..nfo,v4" -15:26:02.850491 version@stat F·[2] S·942B[942B] Sc·[0.50] -15:26:02.854544 db@janitor F·4 G·0 -15:26:02.854552 db@open done T·6.802972ms -15:26:09.729296 db@close closing -15:26:09.729392 db@close done T·95.18µs -=============== Feb 6, 2021 (GMT) =============== -12:21:53.904083 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:21:53.904380 version@stat F·[2] S·942B[942B] Sc·[0.50] -12:21:53.904391 db@open opening -12:21:53.904417 journal@recovery F·1 -12:21:53.905225 journal@recovery recovering @64 -12:21:53.905589 version@stat F·[2] S·942B[942B] Sc·[0.50] -12:21:53.910965 db@janitor F·4 G·0 -12:21:53.910976 db@open done T·6.578518ms -12:21:53.911304 db@close closing -12:21:53.911387 db@close done T·82.205µs -=============== Feb 6, 2021 (GMT) =============== -12:22:02.353974 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:22:02.354077 version@stat F·[2] S·942B[942B] Sc·[0.50] -12:22:02.354089 db@open opening -12:22:02.354116 journal@recovery F·1 -12:22:02.354419 journal@recovery recovering @66 -12:22:02.354608 version@stat F·[2] S·942B[942B] Sc·[0.50] -12:22:02.359491 db@janitor F·4 G·0 -12:22:02.359504 db@open done T·5.408186ms -12:22:02.359514 db@close closing -12:22:02.359542 db@close done T·27.662µs -=============== Feb 6, 2021 (GMT) =============== -12:22:07.888198 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:22:07.888300 version@stat F·[2] S·942B[942B] Sc·[0.50] -12:22:07.888310 db@open opening -12:22:07.888338 journal@recovery F·1 -12:22:07.888397 journal@recovery recovering @68 -12:22:07.888494 version@stat F·[2] S·942B[942B] Sc·[0.50] -12:22:07.895048 db@janitor F·4 G·0 -12:22:07.895060 db@open done T·6.746979ms -12:22:08.093013 db@close closing -12:22:08.093057 db@close done T·43.222µs -=============== Feb 18, 2021 (GMT) =============== -07:32:13.660053 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -07:32:13.661098 version@stat F·[2] S·942B[942B] Sc·[0.50] -07:32:13.661111 db@open opening -07:32:13.661140 journal@recovery F·1 -07:32:13.661439 journal@recovery recovering @70 -07:32:13.663498 memdb@flush created L0@72 N·2 S·465B "cia..nfo,v7":"cos..ess,v8" -07:32:13.663598 version@stat F·[3] S·1KiB[1KiB] Sc·[0.75] -07:32:13.668369 db@janitor F·5 G·0 -07:32:13.668400 db@open done T·7.285777ms -07:32:13.668491 db@close closing -07:32:13.668557 db@close done T·65.011µs -=============== Feb 18, 2021 (GMT) =============== -07:32:20.349460 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -07:32:20.349568 version@stat F·[3] S·1KiB[1KiB] Sc·[0.75] -07:32:20.349618 db@open opening -07:32:20.349691 journal@recovery F·1 -07:32:20.349769 journal@recovery recovering @73 -07:32:20.349867 version@stat F·[3] S·1KiB[1KiB] Sc·[0.75] -07:32:20.355997 db@janitor F·5 G·0 -07:32:20.356005 db@open done T·6.383828ms -07:32:20.553221 db@close closing -07:32:20.553251 db@close done T·28.713µs -=============== Feb 18, 2021 (GMT) =============== -07:32:30.022753 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -07:32:30.022830 version@stat F·[3] S·1KiB[1KiB] Sc·[0.75] -07:32:30.022842 db@open opening -07:32:30.022870 journal@recovery F·1 -07:32:30.023106 journal@recovery recovering @75 -07:32:30.025727 memdb@flush created L0@77 N·2 S·462B "cos..ess,v11":"foo.info,v10" -07:32:30.025896 version@stat F·[4] S·1KiB[1KiB] Sc·[1.00] -07:32:30.031203 db@janitor F·6 G·0 -07:32:30.031214 db@open done T·8.368455ms -07:32:30.031222 db@close closing -07:32:30.031249 db@close done T·26.625µs -=============== Feb 18, 2021 (GMT) =============== -07:32:36.137856 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -07:32:36.137945 version@stat F·[4] S·1KiB[1KiB] Sc·[1.00] -07:32:36.137955 db@open opening -07:32:36.137988 journal@recovery F·1 -07:32:36.138053 journal@recovery recovering @78 -07:32:36.138160 version@stat F·[4] S·1KiB[1KiB] Sc·[1.00] -07:32:36.144271 db@janitor F·6 G·0 -07:32:36.144281 db@open done T·6.322633ms -07:32:36.144342 table@compaction L0·4 -> L1·0 S·1KiB Q·12 -07:32:36.145937 table@build created L1@82 N·8 S·1KiB "cia..nfo,v7":"val..nfo,v1" -07:32:36.145957 version@stat F·[0 1] S·1KiB[0B 1KiB] Sc·[0.00 0.00] -07:32:36.147223 table@compaction committed F-3 S-606B Ke·0 D·0 T·2.864358ms -07:32:36.147251 table@remove removed @77 -07:32:36.147265 table@remove removed @72 -07:32:36.147280 table@remove removed @63 -07:32:36.147394 table@remove removed @6 -07:32:36.341754 db@close closing -07:32:36.341789 db@close done T·34.217µs -=============== Feb 23, 2021 (GMT) =============== -11:59:56.652297 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -11:59:56.653267 version@stat F·[0 1] S·1KiB[0B 1KiB] Sc·[0.00 0.00] -11:59:56.653279 db@open opening -11:59:56.653333 journal@recovery F·1 -11:59:56.653684 journal@recovery recovering @80 -11:59:56.655439 memdb@flush created L0@83 N·2 S·491B "bar.info,v13":"cos..ess,v14" -11:59:56.655563 version@stat F·[1 1] S·1KiB[491B 1KiB] Sc·[0.25 0.00] -11:59:56.659803 db@janitor F·4 G·0 -11:59:56.659812 db@open done T·6.529102ms -11:59:56.659952 db@close closing -11:59:56.660013 db@close done T·59.126µs -=============== Feb 23, 2021 (GMT) =============== -12:01:34.578182 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:01:34.578308 version@stat F·[1 1] S·1KiB[491B 1KiB] Sc·[0.25 0.00] -12:01:34.578348 db@open opening -12:01:34.578422 journal@recovery F·1 -12:01:34.578796 journal@recovery recovering @84 -12:01:34.579157 version@stat F·[1 1] S·1KiB[491B 1KiB] Sc·[0.25 0.00] -12:01:34.583888 db@janitor F·4 G·0 -12:01:34.583925 db@open done T·5.547338ms -12:01:34.583962 db@close closing -12:01:34.584011 db@close done T·46.636µs -=============== Feb 23, 2021 (GMT) =============== -12:01:34.584060 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:01:34.584136 version@stat F·[1 1] S·1KiB[491B 1KiB] Sc·[0.25 0.00] -12:01:34.584166 db@open opening -12:01:34.584195 journal@recovery F·1 -12:01:34.584799 journal@recovery recovering @86 -12:01:34.584896 version@stat F·[1 1] S·1KiB[491B 1KiB] Sc·[0.25 0.00] -12:01:34.590435 db@janitor F·4 G·0 -12:01:34.590445 db@open done T·6.275747ms -12:01:44.922399 db@close closing -12:01:44.922453 db@close done T·53.361µs -=============== Feb 23, 2021 (GMT) =============== -12:01:53.346191 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:01:53.346299 version@stat F·[1 1] S·1KiB[491B 1KiB] Sc·[0.25 0.00] -12:01:53.346310 db@open opening -12:01:53.346427 journal@recovery F·1 -12:01:53.346591 journal@recovery recovering @88 -12:01:53.350436 memdb@flush created L0@90 N·2 S·259B "cos..ess,v17":"led..nfo,v16" -12:01:53.350863 version@stat F·[2 1] S·1KiB[750B 1KiB] Sc·[0.50 0.00] -12:01:53.356998 db@janitor F·5 G·0 -12:01:53.357009 db@open done T·10.694071ms -12:01:53.357177 db@close closing -12:01:53.357258 db@close done T·79.894µs -=============== Feb 23, 2021 (GMT) =============== -12:01:57.771688 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:01:57.771807 version@stat F·[2 1] S·1KiB[750B 1KiB] Sc·[0.50 0.00] -12:01:57.771818 db@open opening -12:01:57.771844 journal@recovery F·1 -12:01:57.771911 journal@recovery recovering @91 -12:01:57.772211 version@stat F·[2 1] S·1KiB[750B 1KiB] Sc·[0.50 0.00] -12:01:57.777712 db@janitor F·5 G·0 -12:01:57.777726 db@open done T·5.899191ms -12:01:57.777794 db@close closing -12:01:57.777821 db@close done T·26.301µs -=============== Feb 23, 2021 (GMT) =============== -12:02:01.179234 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:02:01.179444 version@stat F·[2 1] S·1KiB[750B 1KiB] Sc·[0.50 0.00] -12:02:01.179471 db@open opening -12:02:01.179568 journal@recovery F·1 -12:02:01.180395 journal@recovery recovering @93 -12:02:01.180499 version@stat F·[2 1] S·1KiB[750B 1KiB] Sc·[0.50 0.00] -12:02:01.186898 db@janitor F·5 G·0 -12:02:01.186908 db@open done T·7.433758ms -12:02:01.376649 db@close closing -12:02:01.376744 db@close done T·94.311µs -=============== Feb 23, 2021 (GMT) =============== -12:02:08.325782 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:02:08.325880 version@stat F·[2 1] S·1KiB[750B 1KiB] Sc·[0.50 0.00] -12:02:08.325892 db@open opening -12:02:08.325919 journal@recovery F·1 -12:02:08.326096 journal@recovery recovering @95 -12:02:08.328874 memdb@flush created L0@97 N·2 S·189B "cos..ess,d19":"tes..nfo,d20" -12:02:08.329781 version@stat F·[3 1] S·2KiB[939B 1KiB] Sc·[0.75 0.00] -12:02:08.335685 db@janitor F·6 G·0 -12:02:08.335726 db@open done T·9.800531ms -12:02:08.335812 db@close closing -12:02:08.335913 db@close done T·98.185µs -=============== Feb 23, 2021 (GMT) =============== -12:02:10.989199 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:02:10.989372 version@stat F·[3 1] S·2KiB[939B 1KiB] Sc·[0.75 0.00] -12:02:10.989381 db@open opening -12:02:10.989413 journal@recovery F·1 -12:02:10.989493 journal@recovery recovering @98 -12:02:10.989823 version@stat F·[3 1] S·2KiB[939B 1KiB] Sc·[0.75 0.00] -12:02:10.997764 db@janitor F·6 G·0 -12:02:10.997775 db@open done T·8.391051ms -12:02:11.186825 db@close closing -12:02:11.186873 db@close done T·46.355µs -=============== Feb 23, 2021 (GMT) =============== -12:02:13.779564 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:02:13.779705 version@stat F·[3 1] S·2KiB[939B 1KiB] Sc·[0.75 0.00] -12:02:13.779716 db@open opening -12:02:13.779766 journal@recovery F·1 -12:02:13.780050 journal@recovery recovering @100 -12:02:13.782794 memdb@flush created L0@102 N·2 S·186B "cia..nfo,d23":"cos..ess,d22" -12:02:13.782888 version@stat F·[4 1] S·2KiB[1KiB 1KiB] Sc·[1.00 0.00] -12:02:13.787114 db@janitor F·7 G·0 -12:02:13.787129 db@open done T·7.382544ms -12:02:13.787201 table@compaction L0·4 -> L1·1 S·2KiB Q·24 -12:02:13.787271 db@close closing -12:02:13.789006 table@build created L1@105 N·8 S·1KiB "bar.info,v13":"val..nfo,v1" -12:02:13.789011 table@build exiting -12:02:13.789013 table@build revert @105 -12:02:13.789055 db@close done T·1.783005ms -=============== Feb 23, 2021 (GMT) =============== -12:02:19.245131 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:02:19.245285 version@stat F·[4 1] S·2KiB[1KiB 1KiB] Sc·[1.00 0.00] -12:02:19.245315 db@open opening -12:02:19.245368 journal@recovery F·1 -12:02:19.245465 journal@recovery recovering @103 -12:02:19.245858 version@stat F·[4 1] S·2KiB[1KiB 1KiB] Sc·[1.00 0.00] -12:02:19.251449 db@janitor F·7 G·0 -12:02:19.251465 db@open done T·6.140479ms -12:02:19.251485 table@compaction L0·4 -> L1·1 S·2KiB Q·24 -12:02:19.251521 db@close closing -12:02:19.251592 db@close done T·70.226µs -=============== Feb 23, 2021 (GMT) =============== -12:02:21.580113 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:02:21.580210 version@stat F·[4 1] S·2KiB[1KiB 1KiB] Sc·[1.00 0.00] -12:02:21.580222 db@open opening -12:02:21.580272 journal@recovery F·1 -12:02:21.580647 journal@recovery recovering @105 -12:02:21.580747 version@stat F·[4 1] S·2KiB[1KiB 1KiB] Sc·[1.00 0.00] -12:02:21.587123 db@janitor F·7 G·0 -12:02:21.587130 db@open done T·6.905846ms -12:02:21.587221 table@compaction L0·4 -> L1·1 S·2KiB Q·24 -12:02:21.589889 table@build created L1@109 N·8 S·1KiB "bar.info,v13":"val..nfo,v1" -12:02:21.589929 version@stat F·[0 1] S·1KiB[0B 1KiB] Sc·[0.00 0.00] -12:02:21.591275 table@compaction committed F-4 S-1KiB Ke·0 D·8 T·4.039289ms -12:02:21.591357 table@remove removed @102 -12:02:21.591414 table@remove removed @97 -12:02:21.591428 table@remove removed @90 -12:02:21.591440 table@remove removed @83 -12:02:21.591472 table@remove removed @82 -12:02:21.777758 db@close closing -12:02:21.777800 db@close done T·40.787µs -=============== Feb 23, 2021 (GMT) =============== -12:02:22.900722 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:02:22.900859 version@stat F·[0 1] S·1KiB[0B 1KiB] Sc·[0.00 0.00] -12:02:22.900892 db@open opening -12:02:22.900963 journal@recovery F·1 -12:02:22.901083 journal@recovery recovering @107 -12:02:22.904868 memdb@flush created L0@110 N·2 S·193B "cos..ess,d25":"val..nfo,d26" -12:02:22.905267 version@stat F·[1 1] S·1KiB[193B 1KiB] Sc·[0.25 0.00] -12:02:22.909786 db@janitor F·4 G·0 -12:02:22.909799 db@open done T·8.899965ms -12:02:22.909931 db@close closing -12:02:22.910008 db@close done T·74.647µs -=============== Feb 23, 2021 (GMT) =============== -12:02:53.139966 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:02:53.140102 version@stat F·[1 1] S·1KiB[193B 1KiB] Sc·[0.25 0.00] -12:02:53.140135 db@open opening -12:02:53.140206 journal@recovery F·1 -12:02:53.140586 journal@recovery recovering @111 -12:02:53.141053 version@stat F·[1 1] S·1KiB[193B 1KiB] Sc·[0.25 0.00] -12:02:53.147675 db@janitor F·4 G·0 -12:02:53.147687 db@open done T·7.546001ms -12:02:53.147750 db@close closing -12:02:53.147818 db@close done T·67.754µs -=============== Feb 23, 2021 (GMT) =============== -12:02:53.147913 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:02:53.147982 version@stat F·[1 1] S·1KiB[193B 1KiB] Sc·[0.25 0.00] -12:02:53.147993 db@open opening -12:02:53.148043 journal@recovery F·1 -12:02:53.148101 journal@recovery recovering @113 -12:02:53.148192 version@stat F·[1 1] S·1KiB[193B 1KiB] Sc·[0.25 0.00] -12:02:53.152906 db@janitor F·4 G·0 -12:02:53.152912 db@open done T·4.91707ms -12:02:53.156922 db@close closing -12:02:53.156949 db@close done T·25.968µs -=============== Feb 23, 2021 (GMT) =============== -12:03:24.147022 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:03:24.147113 version@stat F·[1 1] S·1KiB[193B 1KiB] Sc·[0.25 0.00] -12:03:24.147123 db@open opening -12:03:24.147195 journal@recovery F·1 -12:03:24.147542 journal@recovery recovering @115 -12:03:24.150459 memdb@flush created L0@117 N·2 S·244B "cos..ess,v29":"pub..nfo,v28" -12:03:24.150556 version@stat F·[2 1] S·1KiB[437B 1KiB] Sc·[0.50 0.00] -12:03:24.156079 db@janitor F·5 G·0 -12:03:24.156116 db@open done T·8.964543ms -12:03:24.156215 db@close closing -12:03:24.156330 db@close done T·113.154µs -=============== Feb 23, 2021 (GMT) =============== -12:03:33.230269 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:03:33.230428 version@stat F·[2 1] S·1KiB[437B 1KiB] Sc·[0.50 0.00] -12:03:33.230456 db@open opening -12:03:33.230505 journal@recovery F·1 -12:03:33.230859 journal@recovery recovering @118 -12:03:33.231123 version@stat F·[2 1] S·1KiB[437B 1KiB] Sc·[0.50 0.00] -12:03:33.237886 db@janitor F·5 G·0 -12:03:33.237932 db@open done T·7.464889ms -12:03:33.238009 db@close closing -12:03:33.238077 db@close done T·67.991µs -=============== Feb 23, 2021 (GMT) =============== -12:03:33.238135 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:03:33.238190 version@stat F·[2 1] S·1KiB[437B 1KiB] Sc·[0.50 0.00] -12:03:33.238200 db@open opening -12:03:33.238226 journal@recovery F·1 -12:03:33.238295 journal@recovery recovering @120 -12:03:33.238459 version@stat F·[2 1] S·1KiB[437B 1KiB] Sc·[0.50 0.00] -12:03:33.242714 db@janitor F·5 G·0 -12:03:33.242723 db@open done T·4.520893ms -12:03:33.246526 db@close closing -12:03:33.246576 db@close done T·49.286µs -=============== Feb 23, 2021 (GMT) =============== -12:03:36.732039 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:03:36.732132 version@stat F·[2 1] S·1KiB[437B 1KiB] Sc·[0.50 0.00] -12:03:36.732143 db@open opening -12:03:36.732193 journal@recovery F·1 -12:03:36.732321 journal@recovery recovering @122 -12:03:36.734960 memdb@flush created L0@124 N·2 S·244B "cos..ess,v32":"pub..nfo,v31" -12:03:36.735282 version@stat F·[3 1] S·1KiB[681B 1KiB] Sc·[0.75 0.00] -12:03:36.740852 db@janitor F·6 G·0 -12:03:36.740890 db@open done T·8.717358ms -12:03:36.741044 db@close closing -12:03:36.741134 db@close done T·87.869µs -=============== Feb 23, 2021 (GMT) =============== -12:03:56.009876 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:03:56.009989 version@stat F·[3 1] S·1KiB[681B 1KiB] Sc·[0.75 0.00] -12:03:56.010002 db@open opening -12:03:56.010034 journal@recovery F·1 -12:03:56.010178 journal@recovery recovering @125 -12:03:56.011128 version@stat F·[3 1] S·1KiB[681B 1KiB] Sc·[0.75 0.00] -12:03:56.018052 db@janitor F·6 G·0 -12:03:56.018064 db@open done T·8.05417ms -12:03:56.018173 db@close closing -12:03:56.018224 db@close done T·49.879µs -=============== Feb 23, 2021 (GMT) =============== -12:03:58.983153 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:03:58.983257 version@stat F·[3 1] S·1KiB[681B 1KiB] Sc·[0.75 0.00] -12:03:58.983268 db@open opening -12:03:58.983297 journal@recovery F·1 -12:03:58.983885 journal@recovery recovering @127 -12:03:58.983986 version@stat F·[3 1] S·1KiB[681B 1KiB] Sc·[0.75 0.00] -12:03:58.991844 db@janitor F·6 G·0 -12:03:58.991851 db@open done T·8.580014ms -12:03:59.181560 db@close closing -12:03:59.181637 db@close done T·76.045µs -=============== Feb 23, 2021 (GMT) =============== -12:04:10.259722 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:04:10.259852 version@stat F·[3 1] S·1KiB[681B 1KiB] Sc·[0.75 0.00] -12:04:10.259869 db@open opening -12:04:10.259919 journal@recovery F·1 -12:04:10.260104 journal@recovery recovering @129 -12:04:10.264224 memdb@flush created L0@131 N·2 S·187B "cos..ess,d34":"foo.info,d35" -12:04:10.264492 version@stat F·[4 1] S·1KiB[868B 1KiB] Sc·[1.00 0.00] -12:04:10.268582 db@janitor F·7 G·0 -12:04:10.268595 db@open done T·8.720601ms -12:04:10.268655 table@compaction L0·4 -> L1·1 S·1KiB Q·36 -12:04:10.268669 db@close closing -12:04:10.268830 db@close done T·159.948µs -=============== Feb 23, 2021 (GMT) =============== -12:04:10.268891 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:04:10.269025 version@stat F·[4 1] S·1KiB[868B 1KiB] Sc·[1.00 0.00] -12:04:10.269034 db@open opening -12:04:10.269089 journal@recovery F·1 -12:04:10.269152 journal@recovery recovering @132 -12:04:10.269259 version@stat F·[4 1] S·1KiB[868B 1KiB] Sc·[1.00 0.00] -12:04:10.274436 db@janitor F·7 G·0 -12:04:10.274466 db@open done T·5.404186ms -12:04:10.274543 table@compaction L0·4 -> L1·1 S·1KiB Q·36 -12:04:10.277245 table@build created L1@136 N·8 S·825B "bar.info,v13":"pub..nfo,v31" -12:04:10.277287 version@stat F·[0 1] S·825B[0B 825B] Sc·[0.00 0.00] -12:04:10.278388 db@close closing -12:04:10.280880 table@commit exiting -12:04:10.280907 db@close done T·2.542424ms -=============== Feb 23, 2021 (GMT) =============== -12:04:12.868499 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:04:12.868628 version@stat F·[0 1] S·825B[0B 825B] Sc·[0.00 0.00] -12:04:12.868640 db@open opening -12:04:12.868670 journal@recovery F·1 -12:04:12.868785 journal@recovery recovering @134 -12:04:12.870434 memdb@flush created L0@137 N·2 S·244B "cos..ess,v38":"pub..nfo,v37" -12:04:12.871017 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -12:04:12.876243 db@janitor F·9 G·5 -12:04:12.876251 db@janitor removing table-124 -12:04:12.876290 db@janitor removing table-110 -12:04:12.876302 db@janitor removing table-109 -12:04:12.876330 db@janitor removing table-117 -12:04:12.876340 db@janitor removing table-131 -12:04:12.876381 db@open done T·7.712682ms -12:04:12.876440 db@close closing -12:04:12.876498 db@close done T·55.873µs -=============== Feb 23, 2021 (GMT) =============== -12:09:38.966259 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:09:38.966450 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -12:09:38.966463 db@open opening -12:09:38.966490 journal@recovery F·1 -12:09:38.966746 journal@recovery recovering @138 -12:09:38.967252 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -12:09:38.974464 db@janitor F·4 G·0 -12:09:38.974477 db@open done T·8.005768ms -12:09:56.196454 db@close closing -12:09:56.196575 db@close done T·142.606µs -=============== Feb 23, 2021 (GMT) =============== -12:10:09.568902 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:10:09.568981 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -12:10:09.568993 db@open opening -12:10:09.569022 journal@recovery F·1 -12:10:09.569291 journal@recovery recovering @140 -12:10:09.569781 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -12:10:09.575840 db@janitor F·4 G·0 -12:10:09.575848 db@open done T·6.851269ms -12:10:23.290522 db@close closing -12:10:23.290590 db@close done T·66.518µs -=============== Feb 23, 2021 (GMT) =============== -12:11:01.674005 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:11:01.674086 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -12:11:01.674098 db@open opening -12:11:01.674128 journal@recovery F·1 -12:11:01.674359 journal@recovery recovering @142 -12:11:01.674814 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -12:11:01.680965 db@janitor F·4 G·0 -12:11:01.680980 db@open done T·6.874747ms -12:11:06.655715 db@close closing -12:11:06.655759 db@close done T·43.852µs -=============== Feb 23, 2021 (GMT) =============== -12:19:52.269690 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:19:52.269780 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -12:19:52.269792 db@open opening -12:19:52.269826 journal@recovery F·1 -12:19:52.270051 journal@recovery recovering @144 -12:19:52.270585 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -12:19:52.276899 db@janitor F·4 G·0 -12:19:52.276939 db@open done T·7.116495ms -12:19:59.249868 db@close closing -12:19:59.249968 db@close done T·99.117µs -=============== Feb 23, 2021 (GMT) =============== -12:20:30.569407 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:20:30.569504 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -12:20:30.569516 db@open opening -12:20:30.569545 journal@recovery F·1 -12:20:30.569730 journal@recovery recovering @146 -12:20:30.570245 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -12:20:30.577100 db@janitor F·4 G·0 -12:20:30.577111 db@open done T·7.591098ms -=============== Feb 23, 2021 (GMT) =============== -12:20:35.223490 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:20:35.223588 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -12:20:35.223601 db@open opening -12:20:35.223630 journal@recovery F·1 -12:20:35.223986 journal@recovery recovering @148 -12:20:35.224401 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -12:20:35.229848 db@janitor F·4 G·0 -12:20:35.229856 db@open done T·6.250812ms -12:20:41.049391 db@close closing -12:20:41.049441 db@close done T·49.18µs -=============== Feb 23, 2021 (GMT) =============== -12:21:45.804793 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:21:45.804915 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -12:21:45.804928 db@open opening -12:21:45.804961 journal@recovery F·1 -12:21:45.805201 journal@recovery recovering @150 -12:21:45.805681 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -12:21:45.810888 db@janitor F·4 G·0 -12:21:45.810920 db@open done T·5.985873ms -12:21:49.489917 db@close closing -12:21:49.490008 db@close done T·89.528µs -=============== Feb 26, 2021 (GMT) =============== -11:30:44.083018 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -11:30:44.084062 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -11:30:44.084075 db@open opening -11:30:44.084102 journal@recovery F·1 -11:30:44.084383 journal@recovery recovering @152 -11:30:44.084768 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -11:30:44.090432 db@janitor F·4 G·0 -11:30:44.090476 db@open done T·6.381184ms -11:30:44.090566 db@close closing -11:30:44.090613 db@close done T·44.34µs -=============== Feb 26, 2021 (GMT) =============== -11:32:36.352559 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -11:32:36.352641 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -11:32:36.352653 db@open opening -11:32:36.352681 journal@recovery F·1 -11:32:36.352756 journal@recovery recovering @154 -11:32:36.353034 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -11:32:36.360804 db@janitor F·4 G·0 -11:32:36.360816 db@open done T·8.15837ms -11:32:36.360904 db@close closing -11:32:36.360960 db@close done T·54.048µs -=============== Feb 26, 2021 (GMT) =============== -11:32:48.449675 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -11:32:48.449787 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -11:32:48.449820 db@open opening -11:32:48.449847 journal@recovery F·1 -11:32:48.449955 journal@recovery recovering @156 -11:32:48.450282 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -11:32:48.456194 db@janitor F·4 G·0 -11:32:48.456235 db@open done T·6.384513ms -11:32:48.456367 db@close closing -11:32:48.456478 db@close done T·109.034µs -=============== Feb 26, 2021 (GMT) =============== -11:34:15.269223 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -11:34:15.269382 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -11:34:15.269414 db@open opening -11:34:15.269464 journal@recovery F·1 -11:34:15.269563 journal@recovery recovering @158 -11:34:15.269872 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -11:34:15.275610 db@janitor F·4 G·0 -11:34:15.275622 db@open done T·6.200818ms -11:34:15.275707 db@close closing -11:34:15.275752 db@close done T·44.471µs -=============== Feb 26, 2021 (GMT) =============== -11:34:32.038701 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -11:34:32.038798 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -11:34:32.038810 db@open opening -11:34:32.038837 journal@recovery F·1 -11:34:32.039081 journal@recovery recovering @160 -11:34:32.039560 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -11:34:32.045125 db@janitor F·4 G·0 -11:34:32.045132 db@open done T·6.318174ms -11:34:52.928799 db@close closing -11:34:52.928908 db@close done T·94.101µs -=============== Feb 26, 2021 (GMT) =============== -19:42:33.585125 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -19:42:33.585220 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -19:42:33.585232 db@open opening -19:42:33.585283 journal@recovery F·1 -19:42:33.585544 journal@recovery recovering @162 -19:42:33.585964 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -19:42:33.592890 db@janitor F·4 G·0 -19:42:33.592928 db@open done T·7.666705ms -19:42:33.592996 db@close closing -19:42:33.593063 db@close done T·63.906µs -=============== Feb 27, 2021 (GMT) =============== -17:05:01.817733 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -17:05:01.817819 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -17:05:01.817830 db@open opening -17:05:01.817855 journal@recovery F·1 -17:05:01.818108 journal@recovery recovering @164 -17:05:01.818567 version@stat F·[1 1] S·1KiB[244B 825B] Sc·[0.25 0.00] -17:05:01.824986 db@janitor F·4 G·0 -17:05:01.825024 db@open done T·7.162696ms -17:05:01.825107 db@close closing -17:05:01.825221 db@close done T·111.618µs diff --git a/client/keys/testdata/keys/keys.db/MANIFEST-000167 b/client/keys/testdata/keys/keys.db/MANIFEST-000167 deleted file mode 100644 index 410bbeb71a..0000000000 Binary files a/client/keys/testdata/keys/keys.db/MANIFEST-000167 and /dev/null differ diff --git a/client/keys/utils.go b/client/keys/utils.go index 505989d11b..000b735f2c 100644 --- a/client/keys/utils.go +++ b/client/keys/utils.go @@ -3,7 +3,6 @@ package keys import ( "fmt" "io" - "path/filepath" yaml "gopkg.in/yaml.v2" @@ -14,23 +13,10 @@ import ( const ( OutputFormatText = "text" OutputFormatJSON = "json" - - // defaultKeyDBName is the client's subdirectory where keys are stored. - defaultKeyDBName = "keys" ) type bechKeyOutFn func(keyInfo cryptokeyring.Info) (cryptokeyring.KeyOutput, error) -// NewLegacyKeyBaseFromDir initializes a legacy keybase at the rootDir directory. Keybase -// options can be applied when generating this new Keybase. -func NewLegacyKeyBaseFromDir(rootDir string, opts ...cryptokeyring.KeybaseOption) (cryptokeyring.LegacyKeybase, error) { - return getLegacyKeyBaseFromDir(rootDir, opts...) -} - -func getLegacyKeyBaseFromDir(rootDir string, opts ...cryptokeyring.KeybaseOption) (cryptokeyring.LegacyKeybase, error) { - return cryptokeyring.NewLegacy(defaultKeyDBName, filepath.Join(rootDir, "keys"), opts...) -} - func printKeyInfo(w io.Writer, keyInfo cryptokeyring.Info, bechKeyOut bechKeyOutFn, output string) { ko, err := bechKeyOut(keyInfo) if err != nil { diff --git a/codec/amino_codec_test.go b/codec/amino_codec_test.go index 728e1e8581..fdd993ffd9 100644 --- a/codec/amino_codec_test.go +++ b/codec/amino_codec_test.go @@ -120,7 +120,7 @@ func TestAminoCodecUnpackAnyFails(t *testing.T) { func TestAminoCodecFullDecodeAndEncode(t *testing.T) { // This tx comes from https://github.com/cosmos/cosmos-sdk/issues/8117. - txSigned := `{"type":"lbm-sdk/StdTx","value":{"msg":[{"type":"lbm-sdk/MsgCreateValidator","value":{"description":{"moniker":"fulltest","identity":"satoshi","website":"example.com","details":"example inc"},"commission":{"rate":"0.500000000000000000","max_rate":"1.000000000000000000","max_change_rate":"0.200000000000000000"},"min_self_delegation":"1000000","delegator_address":"link120yvjfy7m2gnu9mvusrs40cxxhpt8nr3qhn8re","validator_address":"linkvaloper120yvjfy7m2gnu9mvusrs40cxxhpt8nr3jr36d2","pubkey":{"type":"tendermint/PubKeyEd25519","value":"CYrOiM3HtS7uv1B1OAkknZnFYSRpQYSYII8AtMMtev0="},"value":{"denom":"umuon","amount":"700000000"}}}],"fee":{"amount":[{"denom":"umuon","amount":"6000"}],"gas":"160000"},"signatures":[{"pub_key":{"type":"tendermint/PubKeySecp256k1","value":"AwAOXeWgNf1FjMaayrSnrOOKz+Fivr6DiI/i0x0sZCHw"},"signature":"RcnfS/u2yl7uIShTrSUlDWvsXo2p2dYu6WJC8VDVHMBLEQZWc8bsINSCjOnlsIVkUNNe1q/WCA9n3Gy1+0zhYA=="}],"memo":"","timeout_height":"0"}}` + txSigned := `{"type":"lbm-sdk/StdTx","value":{"msg":[{"type":"lbm-sdk/MsgCreateValidator","value":{"description":{"moniker":"fulltest","identity":"satoshi","website":"example.com","details":"example inc"},"commission":{"rate":"0.500000000000000000","max_rate":"1.000000000000000000","max_change_rate":"0.200000000000000000"},"min_self_delegation":"1000000","delegator_address":"link120yvjfy7m2gnu9mvusrs40cxxhpt8nr3qhn8re","validator_address":"linkvaloper120yvjfy7m2gnu9mvusrs40cxxhpt8nr3jr36d2","pubkey":{"type":"ostracon/PubKeyEd25519","value":"CYrOiM3HtS7uv1B1OAkknZnFYSRpQYSYII8AtMMtev0="},"value":{"denom":"umuon","amount":"700000000"}}}],"fee":{"amount":[{"denom":"umuon","amount":"6000"}],"gas":"160000"},"signatures":[{"pub_key":{"type":"ostracon/PubKeySecp256k1","value":"AwAOXeWgNf1FjMaayrSnrOOKz+Fivr6DiI/i0x0sZCHw"},"signature":"RcnfS/u2yl7uIShTrSUlDWvsXo2p2dYu6WJC8VDVHMBLEQZWc8bsINSCjOnlsIVkUNNe1q/WCA9n3Gy1+0zhYA=="}],"memo":"","timeout_height":"0"}}` _, legacyCdc := simapp.MakeCodecs() var tx legacytx.StdTx diff --git a/crypto/armor.go b/crypto/armor.go index 1c20499ca6..e3a5d12367 100644 --- a/crypto/armor.go +++ b/crypto/armor.go @@ -15,9 +15,9 @@ import ( ) const ( - blockTypePrivKey = "TENDERMINT PRIVATE KEY" - blockTypeKeyInfo = "TENDERMINT KEY INFO" - blockTypePubKey = "TENDERMINT PUBLIC KEY" + blockTypePrivKey = "OSTRACON PRIVATE KEY" + blockTypeKeyInfo = "OSTRACON KEY INFO" + blockTypePubKey = "OSTRACON PUBLIC KEY" defaultAlgo = "secp256k1" diff --git a/crypto/armor_test.go b/crypto/armor_test.go index 6596ba0b0d..5fcc5be8e9 100644 --- a/crypto/armor_test.go +++ b/crypto/armor_test.go @@ -62,7 +62,7 @@ func TestArmorUnarmorPrivKey(t *testing.T) { "salt": fmt.Sprintf("%X", saltBytes), "type": "secp256k", } - armored = armor.EncodeArmor("TENDERMINT PRIVATE KEY", headerWrongKdf, encBytes) + armored = armor.EncodeArmor("OSTRACON PRIVATE KEY", headerWrongKdf, encBytes) _, _, err = crypto.UnarmorDecryptPrivKey(armored, "passphrase") require.Error(t, err) require.Equal(t, "unrecognized KDF type: wrong", err.Error()) @@ -95,14 +95,14 @@ func TestArmorUnarmorPubKey(t *testing.T) { require.NoError(t, err) _, _, err = crypto.UnarmorPubKeyBytes(armored) require.Error(t, err) - require.Equal(t, `couldn't unarmor bytes: unrecognized armor type "TENDERMINT PRIVATE KEY", expected: "TENDERMINT PUBLIC KEY"`, err.Error()) + require.Equal(t, `couldn't unarmor bytes: unrecognized armor type "OSTRACON PRIVATE KEY", expected: "OSTRACON PUBLIC KEY"`, err.Error()) // armor pubkey manually header := map[string]string{ "version": "0.0.0", "type": "unknown", } - armored = armor.EncodeArmor("TENDERMINT PUBLIC KEY", header, pubBytes) + armored = armor.EncodeArmor("OSTRACON PUBLIC KEY", header, pubBytes) _, algo, err = crypto.UnarmorPubKeyBytes(armored) require.NoError(t, err) // return secp256k1 if version is 0.0.0 @@ -112,7 +112,7 @@ func TestArmorUnarmorPubKey(t *testing.T) { header = map[string]string{ "type": "unknown", } - armored = armor.EncodeArmor("TENDERMINT PUBLIC KEY", header, pubBytes) + armored = armor.EncodeArmor("OSTRACON PUBLIC KEY", header, pubBytes) bz, algo, err := crypto.UnarmorPubKeyBytes(armored) require.Nil(t, bz) require.Empty(t, algo) @@ -124,7 +124,7 @@ func TestArmorUnarmorPubKey(t *testing.T) { "type": "unknown", "version": "unknown", } - armored = armor.EncodeArmor("TENDERMINT PUBLIC KEY", header, pubBytes) + armored = armor.EncodeArmor("OSTRACON PUBLIC KEY", header, pubBytes) bz, algo, err = crypto.UnarmorPubKeyBytes(armored) require.Nil(t, bz) require.Empty(t, algo) @@ -151,7 +151,7 @@ func TestUnarmorInfoBytesErrors(t *testing.T) { "version": "0.0.1", } unarmoredBytes, err = crypto.UnarmorInfoBytes(armor.EncodeArmor( - "TENDERMINT KEY INFO", header, []byte("plain-text"))) + "OSTRACON KEY INFO", header, []byte("plain-text"))) require.Error(t, err) require.Equal(t, "unrecognized version: 0.0.1", err.Error()) require.Nil(t, unarmoredBytes) diff --git a/crypto/keyring/keyring.go b/crypto/keyring/keyring.go index 229313d75b..efb17b57ac 100644 --- a/crypto/keyring/keyring.go +++ b/crypto/keyring/keyring.go @@ -197,6 +197,8 @@ type keystore struct { options Options } +func infoKey(name string) []byte { return []byte(fmt.Sprintf("%s.%s", name, infoSuffix)) } + func newKeystore(kr keyring.Keyring, opts ...Option) keystore { // Default options for keybase options := Options{ diff --git a/crypto/keyring/keyring_ledger_test.go b/crypto/keyring/keyring_ledger_test.go index d05cdb89aa..f2ff70c943 100644 --- a/crypto/keyring/keyring_ledger_test.go +++ b/crypto/keyring/keyring_ledger_test.go @@ -30,7 +30,7 @@ func TestInMemoryCreateLedger(t *testing.T) { pubKey := ledger.GetPubKey() pk, err := sdk.Bech32ifyPubKey(sdk.Bech32PubKeyTypeAccPub, pubKey) require.NoError(t, err) - require.Equal(t, "linkpub1addwnpepqw830vud78huqu2dr5a6ptqn3rpjazec4krl6a5m4s955ywuur47zxh6gpv", pk) + require.Equal(t, "linkpub1cqmsrdepqw830vud78huqu2dr5a6ptqn3rpjazec4krl6a5m4s955ywuur47zjasla7", pk) // Check that restoring the key gets the same results restoredKey, err := kb.Key("some_account") @@ -41,7 +41,7 @@ func TestInMemoryCreateLedger(t *testing.T) { pubKey = restoredKey.GetPubKey() pk, err = sdk.Bech32ifyPubKey(sdk.Bech32PubKeyTypeAccPub, pubKey) require.NoError(t, err) - require.Equal(t, "linkpub1addwnpepqw830vud78huqu2dr5a6ptqn3rpjazec4krl6a5m4s955ywuur47zxh6gpv", pk) + require.Equal(t, "linkpub1cqmsrdepqw830vud78huqu2dr5a6ptqn3rpjazec4krl6a5m4s955ywuur47zjasla7", pk) path, err := restoredKey.GetPath() require.NoError(t, err) @@ -108,7 +108,7 @@ func TestAltKeyring_SaveLedgerKey(t *testing.T) { pubKey := ledger.GetPubKey() pk, err := sdk.Bech32ifyPubKey(sdk.Bech32PubKeyTypeAccPub, pubKey) require.NoError(t, err) - require.Equal(t, "linkpub1addwnpepqw830vud78huqu2dr5a6ptqn3rpjazec4krl6a5m4s955ywuur47zxh6gpv", pk) + require.Equal(t, "linkpub1cqmsrdepqw830vud78huqu2dr5a6ptqn3rpjazec4krl6a5m4s955ywuur47zjasla7", pk) // Check that restoring the key gets the same results restoredKey, err := keyring.Key("some_account") @@ -119,7 +119,7 @@ func TestAltKeyring_SaveLedgerKey(t *testing.T) { pubKey = restoredKey.GetPubKey() pk, err = sdk.Bech32ifyPubKey(sdk.Bech32PubKeyTypeAccPub, pubKey) require.NoError(t, err) - require.Equal(t, "linkpub1addwnpepqw830vud78huqu2dr5a6ptqn3rpjazec4krl6a5m4s955ywuur47zxh6gpv", pk) + require.Equal(t, "linkpub1cqmsrdepqw830vud78huqu2dr5a6ptqn3rpjazec4krl6a5m4s955ywuur47zjasla7", pk) path, err := restoredKey.GetPath() require.NoError(t, err) diff --git a/crypto/keyring/legacy.go b/crypto/keyring/legacy.go deleted file mode 100644 index a20e7191b9..0000000000 --- a/crypto/keyring/legacy.go +++ /dev/null @@ -1,235 +0,0 @@ -package keyring - -import ( - "fmt" - "io" - "strings" - - ostos "github.com/line/ostracon/libs/os" - tmdb "github.com/line/tm-db/v2" - "github.com/pkg/errors" - - "github.com/line/lbm-sdk/v2/crypto" - "github.com/line/lbm-sdk/v2/crypto/types" - sdk "github.com/line/lbm-sdk/v2/types" - sdkerrors "github.com/line/lbm-sdk/v2/types/errors" -) - -// LegacyKeybase is implemented by the legacy keybase implementation. -type LegacyKeybase interface { - List() ([]Info, error) - Export(name string) (armor string, err error) - ExportPrivKey(name, decryptPassphrase, encryptPassphrase string) (armor string, err error) - ExportPubKey(name string) (armor string, err error) - Close() error -} - -// NewLegacy creates a new instance of a legacy keybase. -func NewLegacy(name, dir string, opts ...KeybaseOption) (LegacyKeybase, error) { - if err := ostos.EnsureDir(dir, 0700); err != nil { - return nil, fmt.Errorf("failed to create Keybase directory: %s", err) - } - - db, err := sdk.NewLevelDB(name, dir) - if err != nil { - return nil, err - } - - return newDBKeybase(db), nil -} - -var _ LegacyKeybase = dbKeybase{} - -// dbKeybase combines encryption and storage implementation to provide a -// full-featured key manager. -// -// NOTE: dbKeybase will be deprecated in favor of keyringKeybase. -type dbKeybase struct { - db tmdb.DB -} - -// newDBKeybase creates a new dbKeybase instance using the provided DB for -// reading and writing keys. -func newDBKeybase(db tmdb.DB) dbKeybase { - return dbKeybase{ - db: db, - } -} - -// List returns the keys from storage in alphabetical order. -func (kb dbKeybase) List() ([]Info, error) { - var res []Info - - iter, err := kb.db.Iterator(nil, nil) - if err != nil { - return nil, err - } - - defer iter.Close() - - for ; iter.Valid(); iter.Next() { - key := string(iter.Key()) - - // need to include only keys in storage that have an info suffix - if strings.HasSuffix(key, infoSuffix) { - info, err := unmarshalInfo(iter.Value()) - if err != nil { - return nil, err - } - - res = append(res, info) - } - } - - return res, nil -} - -// Get returns the public information about one key. -func (kb dbKeybase) Get(name string) (Info, error) { - bs, err := kb.db.Get(infoKey(name)) - if err != nil { - return nil, err - } - - if len(bs) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrKeyNotFound, name) - } - - return unmarshalInfo(bs) -} - -// ExportPrivateKeyObject returns a PrivKey object given the key name and -// passphrase. An error is returned if the key does not exist or if the Info for -// the key is invalid. -func (kb dbKeybase) ExportPrivateKeyObject(name string, passphrase string) (types.PrivKey, error) { - info, err := kb.Get(name) - if err != nil { - return nil, err - } - - var priv types.PrivKey - - switch i := info.(type) { - case localInfo: - linfo := i - if linfo.PrivKeyArmor == "" { - err = fmt.Errorf("private key not available") - return nil, err - } - - priv, _, err = crypto.UnarmorDecryptPrivKey(linfo.PrivKeyArmor, passphrase) - if err != nil { - return nil, err - } - - case ledgerInfo, offlineInfo, multiInfo: - return nil, errors.New("only works on local private keys") - } - - return priv, nil -} - -func (kb dbKeybase) Export(name string) (armor string, err error) { - bz, err := kb.db.Get(infoKey(name)) - if err != nil { - return "", err - } - - if bz == nil { - return "", fmt.Errorf("no key to export with name %s", name) - } - - return crypto.ArmorInfoBytes(bz), nil -} - -// ExportPubKey returns public keys in ASCII armored format. It retrieves a Info -// object by its name and return the public key in a portable format. -func (kb dbKeybase) ExportPubKey(name string) (armor string, err error) { - bz, err := kb.db.Get(infoKey(name)) - if err != nil { - return "", err - } - - if bz == nil { - return "", fmt.Errorf("no key to export with name %s", name) - } - - info, err := unmarshalInfo(bz) - if err != nil { - return - } - - return crypto.ArmorPubKeyBytes(info.GetPubKey().Bytes(), string(info.GetAlgo())), nil -} - -// ExportPrivKey returns a private key in ASCII armored format. -// It returns an error if the key does not exist or a wrong encryption passphrase -// is supplied. -func (kb dbKeybase) ExportPrivKey(name string, decryptPassphrase string, - encryptPassphrase string) (armor string, err error) { - priv, err := kb.ExportPrivateKeyObject(name, decryptPassphrase) - if err != nil { - return "", err - } - - info, err := kb.Get(name) - if err != nil { - return "", err - } - - return crypto.EncryptArmorPrivKey(priv, encryptPassphrase, string(info.GetAlgo())), nil -} - -// Close the underlying storage. -func (kb dbKeybase) Close() error { return kb.db.Close() } - -func infoKey(name string) []byte { return []byte(fmt.Sprintf("%s.%s", name, infoSuffix)) } - -// InfoImporter is implemented by those types that want to provide functions necessary -// to migrate keys from LegacyKeybase types to Keyring types. -type InfoImporter interface { - // Import imports ASCII-armored private keys. - Import(uid string, armor string) error -} - -type keyringMigrator struct { - kr keystore -} - -func NewInfoImporter( - appName, backend, rootDir string, userInput io.Reader, opts ...Option, -) (InfoImporter, error) { - keyring, err := New(appName, backend, rootDir, userInput, opts...) - if err != nil { - return keyringMigrator{}, err - } - - kr := keyring.(keystore) - - return keyringMigrator{kr}, nil -} - -func (m keyringMigrator) Import(uid string, armor string) error { - _, err := m.kr.Key(uid) - if err == nil { - return fmt.Errorf("cannot overwrite key %q", uid) - } - - infoBytes, err := crypto.UnarmorInfoBytes(armor) - if err != nil { - return err - } - - info, err := unmarshalInfo(infoBytes) - if err != nil { - return err - } - - return m.kr.writeInfo(info) -} - -// KeybaseOption overrides options for the db. -type KeybaseOption func(*kbOptions) - -type kbOptions struct { -} diff --git a/crypto/keyring/legacy_test.go b/crypto/keyring/legacy_test.go deleted file mode 100644 index aef8c59378..0000000000 --- a/crypto/keyring/legacy_test.go +++ /dev/null @@ -1,57 +0,0 @@ -package keyring_test - -import ( - "io" - "path/filepath" - "testing" - - "github.com/otiai10/copy" - "github.com/stretchr/testify/require" - - "github.com/line/lbm-sdk/v2/crypto/keyring" -) - -func TestNewLegacyKeyBase(t *testing.T) { - dir := t.TempDir() - - kb, err := keyring.NewLegacy("keybasename", dir) - require.NoError(t, err) - require.NoError(t, kb.Close()) -} - -func TestLegacyKeybase(t *testing.T) { - dir := t.TempDir() - - // Backup testdata - require.NoError(t, copy.Copy("testdata", dir)) - - kb, err := keyring.NewLegacy("keys", filepath.Join(dir, "keys")) - require.NoError(t, err) - t.Cleanup(func() { kb.Close() }) - - keys, err := kb.List() - require.NoError(t, err) - require.Equal(t, 2, len(keys)) - - armor, err := kb.ExportPubKey(keys[0].GetName()) - require.NoError(t, err) - require.NotEmpty(t, armor) - - _, err = kb.ExportPrivKey(keys[0].GetName(), "12345678", "12345678") - require.Error(t, err) - - armoredInfo, err := kb.Export(keys[0].GetName()) - require.NoError(t, err) - require.NotEmpty(t, armoredInfo) - - importer, err := keyring.NewInfoImporter("link", "memory", "", nil) - require.NoError(t, err) - err = importer.Import("test", "") - require.Error(t, err) - require.Equal(t, io.EOF, err) - require.NoError(t, importer.Import("test", armoredInfo)) - - err = importer.Import("test", armoredInfo) - require.Error(t, err) - require.Equal(t, `public key already exist in keybase`, err.Error()) -} diff --git a/crypto/keyring/testdata/keys/keys.db/000002.ldb b/crypto/keyring/testdata/keys/keys.db/000002.ldb deleted file mode 100644 index b36586df36..0000000000 Binary files a/crypto/keyring/testdata/keys/keys.db/000002.ldb and /dev/null differ diff --git a/crypto/keyring/testdata/keys/keys.db/CURRENT b/crypto/keyring/testdata/keys/keys.db/CURRENT deleted file mode 100644 index cacca7574c..0000000000 --- a/crypto/keyring/testdata/keys/keys.db/CURRENT +++ /dev/null @@ -1 +0,0 @@ -MANIFEST-000004 diff --git a/crypto/keyring/testdata/keys/keys.db/CURRENT.bak b/crypto/keyring/testdata/keys/keys.db/CURRENT.bak deleted file mode 100644 index feda7d6b24..0000000000 --- a/crypto/keyring/testdata/keys/keys.db/CURRENT.bak +++ /dev/null @@ -1 +0,0 @@ -MANIFEST-000000 diff --git a/crypto/keyring/testdata/keys/keys.db/LOCK b/crypto/keyring/testdata/keys/keys.db/LOCK deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/crypto/keyring/testdata/keys/keys.db/LOG b/crypto/keyring/testdata/keys/keys.db/LOG deleted file mode 100644 index 386101e4fb..0000000000 --- a/crypto/keyring/testdata/keys/keys.db/LOG +++ /dev/null @@ -1,18 +0,0 @@ -=============== Mar 30, 2020 (CEST) =============== -02:07:34.137606 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -02:07:34.144547 db@open opening -02:07:34.144770 version@stat F·[] S·0B[] Sc·[] -02:07:34.145843 db@janitor F·2 G·0 -02:07:34.145875 db@open done T·1.315251ms -02:07:34.335635 db@close closing -02:07:34.335736 db@close done T·98.95µs -=============== Mar 30, 2020 (CEST) =============== -02:08:33.239115 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -02:08:33.239264 version@stat F·[] S·0B[] Sc·[] -02:08:33.239281 db@open opening -02:08:33.239310 journal@recovery F·1 -02:08:33.239398 journal@recovery recovering @1 -02:08:33.322008 memdb@flush created L0@2 N·4 S·391B "cos..ess,v4":"run..nfo,v3" -02:08:33.323091 version@stat F·[1] S·391B[391B] Sc·[0.25] -02:08:33.421979 db@janitor F·3 G·0 -02:08:33.422153 db@open done T·182.707962ms diff --git a/crypto/keyring/testdata/keys/keys.db/MANIFEST-000004 b/crypto/keyring/testdata/keys/keys.db/MANIFEST-000004 deleted file mode 100644 index 557b4bdbbc..0000000000 Binary files a/crypto/keyring/testdata/keys/keys.db/MANIFEST-000004 and /dev/null differ diff --git a/crypto/keyring/types_test.go b/crypto/keyring/types_test.go index e313f69462..237dc8e4b3 100644 --- a/crypto/keyring/types_test.go +++ b/crypto/keyring/types_test.go @@ -23,7 +23,7 @@ func Test_writeReadLedgerInfo(t *testing.T) { require.NoError(t, err) require.Equal(t, "m/44'/438'/5'/0/1", path.String()) require.Equal(t, - "linkpub1addwnpepqddddqg2glc8x4fl7vxjlnr7p5a3czm5kcdp4239sg6yqdc4rc2r5lef0hg", + "linkpub1cqmsrdepqddddqg2glc8x4fl7vxjlnr7p5a3czm5kcdp4239sg6yqdc4rc2r5tnrct6", sdk.MustBech32ifyPubKey(sdk.Bech32PubKeyTypeAccPub, lInfo.GetPubKey())) // Serialize and restore diff --git a/crypto/keys/ed25519/ed25519.go b/crypto/keys/ed25519/ed25519.go index b6055e52ec..a2474f3b91 100644 --- a/crypto/keys/ed25519/ed25519.go +++ b/crypto/keys/ed25519/ed25519.go @@ -17,8 +17,8 @@ import ( //------------------------------------- const ( - PrivKeyName = "tendermint/PrivKeyEd25519" - PubKeyName = "tendermint/PubKeyEd25519" + PrivKeyName = "ostracon/PrivKeyEd25519" + PubKeyName = "ostracon/PubKeyEd25519" // PubKeySize is is the size, in bytes, of public keys as used in this package. PubKeySize = 32 // PrivKeySize is the size, in bytes, of private keys as used in this package. diff --git a/crypto/keys/multisig/codec.go b/crypto/keys/multisig/codec.go index 00e9b98151..9e273dd8da 100644 --- a/crypto/keys/multisig/codec.go +++ b/crypto/keys/multisig/codec.go @@ -12,7 +12,7 @@ import ( // TODO: Figure out API for others to either add their own pubkey types, or // to make verify / marshal accept a AminoCdc. const ( - PubKeyAminoRoute = "tendermint/PubKeyMultisigThreshold" + PubKeyAminoRoute = "ostracon/PubKeyMultisigThreshold" ) var AminoCdc = codec.NewLegacyAmino() diff --git a/crypto/keys/secp256k1/secp256k1.go b/crypto/keys/secp256k1/secp256k1.go index 07ed22c636..9ac9e98f3c 100644 --- a/crypto/keys/secp256k1/secp256k1.go +++ b/crypto/keys/secp256k1/secp256k1.go @@ -23,8 +23,8 @@ var _ codec.AminoMarshaler = &PrivKey{} const ( PrivKeySize = 32 keyType = "secp256k1" - PrivKeyName = "tendermint/PrivKeySecp256k1" - PubKeyName = "tendermint/PubKeySecp256k1" + PrivKeyName = "ostracon/PrivKeySecp256k1" + PubKeyName = "ostracon/PubKeySecp256k1" ) // Bytes returns the byte representation of the Private Key. diff --git a/crypto/ledger/amino.go b/crypto/ledger/amino.go index 3b1e7b1e7a..392d6080a9 100644 --- a/crypto/ledger/amino.go +++ b/crypto/ledger/amino.go @@ -15,5 +15,5 @@ func init() { // RegisterAmino registers all go-crypto related types in the given (amino) codec. func RegisterAmino(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(PrivKeyLedgerSecp256k1{}, - "tendermint/PrivKeyLedgerSecp256k1", nil) + "ostracon/PrivKeyLedgerSecp256k1", nil) } diff --git a/crypto/ledger/encode_test.go b/crypto/ledger/encode_test.go index 19e064e88c..46cf7fb717 100644 --- a/crypto/ledger/encode_test.go +++ b/crypto/ledger/encode_test.go @@ -33,14 +33,14 @@ func ExamplePrintRegisteredTypes() { cdc.PrintTypes(os.Stdout) // | Type | Name | Prefix | Length | Notes | // | ---- | ---- | ------ | ----- | ------ | - // | PrivKeyLedgerSecp256k1 | tendermint/PrivKeyLedgerSecp256k1 | 0x10CAB393 | variable | | - // | PubKey | tendermint/PubKeyEd25519 | 0x1624DE64 | variable | | - // | PubKey | tendermint/PubKeySr25519 | 0x0DFB1005 | variable | | - // | PubKey | tendermint/PubKeySecp256k1 | 0xEB5AE987 | variable | | - // | PubKeyMultisigThreshold | tendermint/PubKeyMultisigThreshold | 0x22C1F7E2 | variable | | - // | PrivKey | tendermint/PrivKeyEd25519 | 0xA3288910 | variable | | - // | PrivKey | tendermint/PrivKeySr25519 | 0x2F82D78B | variable | | - // | PrivKey | tendermint/PrivKeySecp256k1 | 0xE1B0F79B | variable | | + // | PrivKeyLedgerSecp256k1 | ostracon/PrivKeyLedgerSecp256k1 | 0x10CAB393 | variable | | + // | PubKey | ostracon/PubKeyEd25519 | 0x1624DE64 | variable | | + // | PubKey | ostracon/PubKeySr25519 | 0x0DFB1005 | variable | | + // | PubKey | ostracon/PubKeySecp256k1 | 0xEB5AE987 | variable | | + // | PubKeyMultisigThreshold | ostracon/PubKeyMultisigThreshold | 0x22C1F7E2 | variable | | + // | PrivKey | ostracon/PrivKeyEd25519 | 0xA3288910 | variable | | + // | PrivKey | ostracon/PrivKeySr25519 | 0x2F82D78B | variable | | + // | PrivKey | ostracon/PrivKeySecp256k1 | 0xE1B0F79B | variable | | } func TestNilEncodings(t *testing.T) { diff --git a/crypto/ledger/ledger_test.go b/crypto/ledger/ledger_test.go index 1cd49535d5..1bb4cd2927 100644 --- a/crypto/ledger/ledger_test.go +++ b/crypto/ledger/ledger_test.go @@ -27,13 +27,13 @@ func TestPublicKeyUnsafe(t *testing.T) { require.NoError(t, err) require.NotNil(t, priv) - require.Equal(t, "eb5ae9872102bcd96cab102304ac10e90c5a0f29358e3a4a6fb1217b83e5db657918ea28bec1", + require.Equal(t, "c03701b72102bcd96cab102304ac10e90c5a0f29358e3a4a6fb1217b83e5db657918ea28bec1", fmt.Sprintf("%x", cdc.Amino.MustMarshalBinaryBare(priv.PubKey())), "Is your device using test mnemonic: %s ?", testutil.TestMnemonic) pubKeyAddr, err := sdk.Bech32ifyPubKey(sdk.Bech32PubKeyTypeAccPub, priv.PubKey()) require.NoError(t, err) - require.Equal(t, "linkpub1addwnpepq27djm9tzq3sftqsayx95refxk8r5jn0kyshhql9mdjhjx829zlvzszgelc", + require.Equal(t, "linkpub1cqmsrdepq27djm9tzq3sftqsayx95refxk8r5jn0kyshhql9mdjhjx829zlvzygzwr2", pubKeyAddr, "Is your device using test mnemonic: %s ?", testutil.TestMnemonic) addr := sdk.AccAddress(priv.PubKey().Address()).String() @@ -43,16 +43,16 @@ func TestPublicKeyUnsafe(t *testing.T) { func TestPublicKeyUnsafeHDPath(t *testing.T) { expectedAnswers := []string{ - "linkpub1addwnpepq27djm9tzq3sftqsayx95refxk8r5jn0kyshhql9mdjhjx829zlvzszgelc", - "linkpub1addwnpepqf258jtwpyujhxmlg94500j9yzqya5ryl835yp3dm6p9up25ufqcsjs2r6s", - "linkpub1addwnpepq2edmckd0zthve9r70err6ctxzqc4vt5648lu4fzqkld8dnaekzjcl9j5ft", - "linkpub1addwnpepqg9xfexl88nvmyyzpg5htz5qz30wgdftf0puz5u3sj6jkk9fxy7vzg7q5xn", - "linkpub1addwnpepqv09egt2l0u72a4h0stkcrx4hyz0z6mnxe5w5d7lzmmzfdj2mykj755jfdt", - "linkpub1addwnpepqfn9d7tew6vlr37sy9crsdud2gufsftm7wz3r2uhze2lfam4a263qsj6a8r", - "linkpub1addwnpepqfaq649vgk3levrsya2wkz8aecjxxd40rdfjhr6aqlld5ql54fds2yg7xpt", - "linkpub1addwnpepqv43zgg5dauwynq4wyqz3c6xtl9wcmc8z8ftgqvj87xs000lld6s63hlzt9", - "linkpub1addwnpepq0kchl479dz7f28hgfn7ve3txkktu9trq2dpmrzjy9awlyuf8w6x7nugtw7", - "linkpub1addwnpepqttsm9aacj9pq3w22xjms6lgyzxhhdjrrajt4hzzfl0melff9w9dq9e2ky7", + "linkpub1cqmsrdepq27djm9tzq3sftqsayx95refxk8r5jn0kyshhql9mdjhjx829zlvzygzwr2", + "linkpub1cqmsrdepqf258jtwpyujhxmlg94500j9yzqya5ryl835yp3dm6p9up25ufqcsx6q5xz", + "linkpub1cqmsrdepq2edmckd0zthve9r70err6ctxzqc4vt5648lu4fzqkld8dnaekzjct0cr4e", + "linkpub1cqmsrdepqg9xfexl88nvmyyzpg5htz5qz30wgdftf0puz5u3sj6jkk9fxy7vzu52r6p", + "linkpub1cqmsrdepqv09egt2l0u72a4h0stkcrx4hyz0z6mnxe5w5d7lzmmzfdj2mykj7q7c73e", + "linkpub1cqmsrdepqfn9d7tew6vlr37sy9crsdud2gufsftm7wz3r2uhze2lfam4a263qycs2m3", + "linkpub1cqmsrdepqfaq649vgk3levrsya2wkz8aecjxxd40rdfjhr6aqlld5ql54fds2sz53ae", + "linkpub1cqmsrdepqv43zgg5dauwynq4wyqz3c6xtl9wcmc8z8ftgqvj87xs000lld6s69a44hh", + "linkpub1cqmsrdepq0kchl479dz7f28hgfn7ve3txkktu9trq2dpmrzjy9awlyuf8w6x78kzujv", + "linkpub1cqmsrdepqttsm9aacj9pq3w22xjms6lgyzxhhdjrrajt4hzzfl0melff9w9dq3nqpcv", } const numIters = 10 @@ -105,13 +105,13 @@ func TestPublicKeySafe(t *testing.T) { require.Nil(t, ShowAddress(path, priv.PubKey(), sdk.GetConfig().GetBech32AccountAddrPrefix())) - require.Equal(t, "eb5ae9872102bcd96cab102304ac10e90c5a0f29358e3a4a6fb1217b83e5db657918ea28bec1", + require.Equal(t, "c03701b72102bcd96cab102304ac10e90c5a0f29358e3a4a6fb1217b83e5db657918ea28bec1", fmt.Sprintf("%x", cdc.Amino.MustMarshalBinaryBare(priv.PubKey())), "Is your device using test mnemonic: %s ?", testutil.TestMnemonic) pubKeyAddr, err := sdk.Bech32ifyPubKey(sdk.Bech32PubKeyTypeAccPub, priv.PubKey()) require.NoError(t, err) - require.Equal(t, "linkpub1addwnpepq27djm9tzq3sftqsayx95refxk8r5jn0kyshhql9mdjhjx829zlvzszgelc", + require.Equal(t, "linkpub1cqmsrdepq27djm9tzq3sftqsayx95refxk8r5jn0kyshhql9mdjhjx829zlvzygzwr2", pubKeyAddr, "Is your device using test mnemonic: %s ?", testutil.TestMnemonic) require.Equal(t, "link1tdl7n2acgmec0y5nng0q2fahl9khyct3cgsktn", @@ -123,16 +123,16 @@ func TestPublicKeySafe(t *testing.T) { func TestPublicKeyHDPath(t *testing.T) { expectedPubKeys := []string{ - "linkpub1addwnpepq27djm9tzq3sftqsayx95refxk8r5jn0kyshhql9mdjhjx829zlvzszgelc", - "linkpub1addwnpepqf258jtwpyujhxmlg94500j9yzqya5ryl835yp3dm6p9up25ufqcsjs2r6s", - "linkpub1addwnpepq2edmckd0zthve9r70err6ctxzqc4vt5648lu4fzqkld8dnaekzjcl9j5ft", - "linkpub1addwnpepqg9xfexl88nvmyyzpg5htz5qz30wgdftf0puz5u3sj6jkk9fxy7vzg7q5xn", - "linkpub1addwnpepqv09egt2l0u72a4h0stkcrx4hyz0z6mnxe5w5d7lzmmzfdj2mykj755jfdt", - "linkpub1addwnpepqfn9d7tew6vlr37sy9crsdud2gufsftm7wz3r2uhze2lfam4a263qsj6a8r", - "linkpub1addwnpepqfaq649vgk3levrsya2wkz8aecjxxd40rdfjhr6aqlld5ql54fds2yg7xpt", - "linkpub1addwnpepqv43zgg5dauwynq4wyqz3c6xtl9wcmc8z8ftgqvj87xs000lld6s63hlzt9", - "linkpub1addwnpepq0kchl479dz7f28hgfn7ve3txkktu9trq2dpmrzjy9awlyuf8w6x7nugtw7", - "linkpub1addwnpepqttsm9aacj9pq3w22xjms6lgyzxhhdjrrajt4hzzfl0melff9w9dq9e2ky7", + "linkpub1cqmsrdepq27djm9tzq3sftqsayx95refxk8r5jn0kyshhql9mdjhjx829zlvzygzwr2", + "linkpub1cqmsrdepqf258jtwpyujhxmlg94500j9yzqya5ryl835yp3dm6p9up25ufqcsx6q5xz", + "linkpub1cqmsrdepq2edmckd0zthve9r70err6ctxzqc4vt5648lu4fzqkld8dnaekzjct0cr4e", + "linkpub1cqmsrdepqg9xfexl88nvmyyzpg5htz5qz30wgdftf0puz5u3sj6jkk9fxy7vzu52r6p", + "linkpub1cqmsrdepqv09egt2l0u72a4h0stkcrx4hyz0z6mnxe5w5d7lzmmzfdj2mykj7q7c73e", + "linkpub1cqmsrdepqfn9d7tew6vlr37sy9crsdud2gufsftm7wz3r2uhze2lfam4a263qycs2m3", + "linkpub1cqmsrdepqfaq649vgk3levrsya2wkz8aecjxxd40rdfjhr6aqlld5ql54fds2sz53ae", + "linkpub1cqmsrdepqv43zgg5dauwynq4wyqz3c6xtl9wcmc8z8ftgqvj87xs000lld6s69a44hh", + "linkpub1cqmsrdepq0kchl479dz7f28hgfn7ve3txkktu9trq2dpmrzjy9awlyuf8w6x78kzujv", + "linkpub1cqmsrdepqttsm9aacj9pq3w22xjms6lgyzxhhdjrrajt4hzzfl0melff9w9dq3nqpcv", } expectedAddrs := []string{ diff --git a/docs/cn/clients/service-providers.md b/docs/cn/clients/service-providers.md index 482f3d84cb..8a695ed0b3 100644 --- a/docs/cn/clients/service-providers.md +++ b/docs/cn/clients/service-providers.md @@ -164,7 +164,7 @@ sequence numbers and it will mostly do the correct thing. "signatures": [ { "pub_key": { - "type": "tendermint/PubKeySecp256k1", + "type": "ostracon/PubKeySecp256k1", "value": XXX }, "signature": XXX diff --git a/x/auth/legacy/v039/migrate_test.go b/x/auth/legacy/v039/migrate_test.go index c026db932b..b1e80b29f1 100644 --- a/x/auth/legacy/v039/migrate_test.go +++ b/x/auth/legacy/v039/migrate_test.go @@ -73,7 +73,7 @@ func TestMigrate(t *testing.T) { } ], "public_key": { - "type": "tendermint/PubKeyEd25519", + "type": "ostracon/PubKeyEd25519", "value": "eB0AcLMLKFRNFfh4XAAMstexfAIUQQCDnfjLZ2KJg+A=" }, "account_number": "1", @@ -91,7 +91,7 @@ func TestMigrate(t *testing.T) { } ], "public_key": { - "type": "tendermint/PubKeySecp256k1", + "type": "ostracon/PubKeySecp256k1", "value": "AruDygh5HprMOpHOEato85dLgAsybMJVyxBGUa3KuWCr" }, "account_number": "2", diff --git a/x/genutil/legacy/v038/migrate_test.go b/x/genutil/legacy/v038/migrate_test.go index 502e782fe9..1e9752254e 100644 --- a/x/genutil/legacy/v038/migrate_test.go +++ b/x/genutil/legacy/v038/migrate_test.go @@ -113,7 +113,7 @@ var genStakingState = []byte(`{ }, "update_time": "2019-09-24T23:11:22.9692177Z" }, - "consensus_pubkey": "linkvalconspub1addwnpepqgz0vs85hqfwar8eclrhnd47mmd6dvx0uy6yq3n5emn5dzxjv5vv2vpc22h", + "consensus_pubkey": "linkvalconspub1cqmsrdepqt2qvn9hxdpnqpwp33hw4znk5stakfp67auztzrqhs5xxvfah6fag55tu22", "delegator_shares": "100000000.000000000000000000", "description": { "details": "", diff --git a/x/genutil/legacy/v039/migrate_test.go b/x/genutil/legacy/v039/migrate_test.go index 863edcb6b0..1c0faeaab5 100644 --- a/x/genutil/legacy/v039/migrate_test.go +++ b/x/genutil/legacy/v039/migrate_test.go @@ -24,14 +24,14 @@ var genAuthState = []byte(`{ { "type": "lbm-sdk/Account", "value": { - "address": "link1fgc3542nakex4w8rl5n77zelpdguppfc3f6wdr", + "address": "link1vncp8z0kqt52406m5aq8f5tgw7r62hy9sdc7ts", "coins": [ { "denom": "stake", "amount": "400000" } ], - "public_key": "linkpub1addwnpepqf2nnrpt3jkwsv6wgs2ndc52y3hyfhwrtldlm80g2hr5z4lzwudgxll3drm", + "public_key": "linkpub1cqmsrdepqwygwv232a90sgk5k5wkdq990sg2r27wn5p7kc2cemm2yq50fvh52j2swpu", "account_number": 1, "sequence": 1 } @@ -59,14 +59,14 @@ var genAuthState = []byte(`{ { "type": "lbm-sdk/ContinuousVestingAccount", "value": { - "address": "link17kxlwdwmjuzh2y9vnfwyhz2fhfkznzuwt87sc6", + "address": "link1u3kdlk3ygg54x8xargfaj5qsxr94rzrpslcjla", "coins": [ { "denom": "stake", "amount": "10000205" } ], - "public_key": "linkpub1addwnpepqw6mp5utlyp85sezqgrvclta80j8zn0p56zvxdexgpgpxh9wvyfeyu683cr", + "public_key": "linkpub1cqmsrdepqfh73u2uw0qe4kvptrajmvnep7gvhzc3fuh745scvg7zewl4l76zct2qge9", "account_number": 3, "sequence": 5, "original_vesting": [ @@ -84,14 +84,14 @@ var genAuthState = []byte(`{ { "type": "lbm-sdk/DelayedVestingAccount", "value": { - "address": "link15q7fcsjxq3j635dk02hqalfu3d2plcp2tw9ngt", + "address": "link1yxyannuykr395nhee4rnzkxq9keexd7xgmqrqd", "coins": [ { "denom": "stake", "amount": "10000205" } ], - "public_key": "linkpub1addwnpepqg7yvmjtly3kn4qwctxghg8zn8mplydedydww904uf33xca8y4zn2temgn4", + "public_key": "linkpub1cqmsrdepqt2qvn9hxdpnqpwp33hw4znk5stakfp67auztzrqhs5xxvfah6fagud2wcd", "account_number": 4, "sequence": 15, "original_vesting": [ @@ -108,7 +108,7 @@ var genAuthState = []byte(`{ ] }`) -var expectedGenAuthState = []byte(`{"params":{"max_memo_characters":"10","tx_sig_limit":"10","tx_size_cost_per_byte":"10","sig_verify_cost_ed25519":"10","sig_verify_cost_secp256k1":"10"},"accounts":[{"type":"lbm-sdk/Account","value":{"address":"link1fgc3542nakex4w8rl5n77zelpdguppfc3f6wdr","coins":[{"denom":"stake","amount":"400000"}],"public_key":{"type":"tendermint/PubKeySecp256k1","value":"AlU5jCuMrOgzTkQVNuKKJG5E3cNf2/2d6FXHQVfidxqD"},"account_number":"1","sequence":"1"}},{"type":"lbm-sdk/ModuleAccount","value":{"address":"link1fl48vsnmsdzcv85q5d2q4z5ajdha8yu3q4fdzl","coins":[{"denom":"stake","amount":"400000000"}],"public_key":"","account_number":"2","sequence":"4","name":"bonded_tokens_pool","permissions":["burner","staking"]}},{"type":"lbm-sdk/ContinuousVestingAccount","value":{"address":"link17kxlwdwmjuzh2y9vnfwyhz2fhfkznzuwt87sc6","coins":[{"denom":"stake","amount":"10000205"}],"public_key":{"type":"tendermint/PubKeySecp256k1","value":"A7Ww04v5AnpDIgIGzH19O+RxTeGmhMM3JkBQE1yuYROS"},"account_number":"3","sequence":"5","original_vesting":[{"denom":"stake","amount":"10000205"}],"delegated_free":[],"delegated_vesting":[],"end_time":"1596125048","start_time":"1595952248"}},{"type":"lbm-sdk/DelayedVestingAccount","value":{"address":"link15q7fcsjxq3j635dk02hqalfu3d2plcp2tw9ngt","coins":[{"denom":"stake","amount":"10000205"}],"public_key":{"type":"tendermint/PubKeySecp256k1","value":"AjxGbkv5I2nUDsLMi6DimfYfkblpGucV9eJjE2OnJUU1"},"account_number":"4","sequence":"15","original_vesting":[{"denom":"stake","amount":"10000205"}],"delegated_free":[],"delegated_vesting":[],"end_time":"1596125048"}}]}`) +var expectedGenAuthState = []byte(`{"params":{"max_memo_characters":"10","tx_sig_limit":"10","tx_size_cost_per_byte":"10","sig_verify_cost_ed25519":"10","sig_verify_cost_secp256k1":"10"},"accounts":[{"type":"lbm-sdk/Account","value":{"address":"link1vncp8z0kqt52406m5aq8f5tgw7r62hy9sdc7ts","coins":[{"denom":"stake","amount":"400000"}],"public_key":{"type":"ostracon/PubKeySecp256k1","value":"A4iHMVFXSvgi1LUdZoClfBChq86dA+thWM72ogKPSy9F"},"account_number":"1","sequence":"1"}},{"type":"lbm-sdk/ModuleAccount","value":{"address":"link1fl48vsnmsdzcv85q5d2q4z5ajdha8yu3q4fdzl","coins":[{"denom":"stake","amount":"400000000"}],"public_key":"","account_number":"2","sequence":"4","name":"bonded_tokens_pool","permissions":["burner","staking"]}},{"type":"lbm-sdk/ContinuousVestingAccount","value":{"address":"link1u3kdlk3ygg54x8xargfaj5qsxr94rzrpslcjla","coins":[{"denom":"stake","amount":"10000205"}],"public_key":{"type":"ostracon/PubKeySecp256k1","value":"Am/o8VxzwZrZgVj7LbJ5D5DLixFPL+rSGGI8LLv1/7Qs"},"account_number":"3","sequence":"5","original_vesting":[{"denom":"stake","amount":"10000205"}],"delegated_free":[],"delegated_vesting":[],"end_time":"1596125048","start_time":"1595952248"}},{"type":"lbm-sdk/DelayedVestingAccount","value":{"address":"link1yxyannuykr395nhee4rnzkxq9keexd7xgmqrqd","coins":[{"denom":"stake","amount":"10000205"}],"public_key":{"type":"ostracon/PubKeySecp256k1","value":"AtQGTLczQzAFwYxu6op2pBfbJDr3eCWIYLwoYzE9vpPU"},"account_number":"4","sequence":"15","original_vesting":[{"denom":"stake","amount":"10000205"}],"delegated_free":[],"delegated_vesting":[],"end_time":"1596125048"}}]}`) func TestMigrate(t *testing.T) { genesis := types.AppMap{ diff --git a/x/staking/client/cli/tx_test.go b/x/staking/client/cli/tx_test.go index 4bac713723..025162446b 100644 --- a/x/staking/client/cli/tx_test.go +++ b/x/staking/client/cli/tx_test.go @@ -14,7 +14,7 @@ func TestPrepareConfigForTxCreateValidator(t *testing.T) { chainID := "chainID" ip := "1.1.1.1" nodeID := "nodeID" - valPubKey, _ := sdk.GetPubKeyFromBech32(sdk.Bech32PubKeyTypeConsPub, "linkvalconspub1addwnpepqv0u6gc09v6d4wjnt3cwpcrpk6m5rr899nsheu9t6z8ghfua2ml96ca4hxs") + valPubKey, _ := sdk.GetPubKeyFromBech32(sdk.Bech32PubKeyTypeConsPub, "linkvalconspub1cqmsrdepqwygwv232a90sgk5k5wkdq990sg2r27wn5p7kc2cemm2yq50fvh526n3unm") moniker := "DefaultMoniker" tests := []struct { diff --git a/x/staking/client/rest/rest_test.go b/x/staking/client/rest/rest_test.go index d80ef9a235..4d452d19a1 100644 --- a/x/staking/client/rest/rest_test.go +++ b/x/staking/client/rest/rest_test.go @@ -55,7 +55,7 @@ func (s *IntegrationTestSuite) TestLegacyGetValidators() { s.Require().Greater(len(validators), 0) // While we're at it, also check that the consensus_pubkey is // an Any, and not bech32 anymore. - s.Require().Contains(string(resp.Result), "\"consensus_pubkey\": {\n \"type\": \"tendermint/PubKeyEd25519\",") + s.Require().Contains(string(resp.Result), "\"consensus_pubkey\": {\n \"type\": \"ostracon/PubKeyEd25519\",") } }) } diff --git a/x/staking/legacy/v036/migrate_test.go b/x/staking/legacy/v036/migrate_test.go index 3cebc68650..29d7b29b5a 100644 --- a/x/staking/legacy/v036/migrate_test.go +++ b/x/staking/legacy/v036/migrate_test.go @@ -45,7 +45,7 @@ func TestMigrate(t *testing.T) { "validators": [ { "operator_address": "", - "consensus_pubkey": "linkvalconspub1zcjduepq9ymett3nlv6fytn7lqxzd3q3ckvd79eqlcf3wkhgamcl4rzghesqz4j37a", + "consensus_pubkey": "linkvalconspub1ef0jhvpq9ymett3nlv6fytn7lqxzd3q3ckvd79eqlcf3wkhgamcl4rzghesqd3x3xc", "jailed": false, "status": 0, "tokens": "0", @@ -70,7 +70,7 @@ func TestMigrate(t *testing.T) { }, { "operator_address": "", - "consensus_pubkey": "linkvalconspub1addwnpepqwfxk5k5pugwz3quqyzvzupefm3589tw6x9dkzjdkuzn7hgpz33ag3zxexj", + "consensus_pubkey": "linkvalconspub1cqmsrdepqwfxk5k5pugwz3quqyzvzupefm3589tw6x9dkzjdkuzn7hgpz33ag9gvw6q", "jailed": false, "status": 0, "tokens": "0", diff --git a/x/staking/types/validator_test.go b/x/staking/types/validator_test.go index bc7ddb02fb..8d949128ac 100644 --- a/x/staking/types/validator_test.go +++ b/x/staking/types/validator_test.go @@ -202,7 +202,7 @@ func TestValidatorMarshalUnmarshalJSON(t *testing.T) { js, err := legacy.Cdc.MarshalJSON(validator) require.NoError(t, err) require.NotEmpty(t, js) - require.Contains(t, string(js), "\"consensus_pubkey\":{\"type\":\"tendermint/PubKeyEd25519\"") + require.Contains(t, string(js), "\"consensus_pubkey\":{\"type\":\"ostracon/PubKeyEd25519\"") got := &types.Validator{} err = legacy.Cdc.UnmarshalJSON(js, got) assert.NoError(t, err) diff --git a/x/wasm/internal/keeper/testdata/genesis.json b/x/wasm/internal/keeper/testdata/genesis.json index 08969c7dd2..19a3d1f077 100644 --- a/x/wasm/internal/keeper/testdata/genesis.json +++ b/x/wasm/internal/keeper/testdata/genesis.json @@ -157,7 +157,7 @@ "signatures": [ { "pub_key": { - "type": "tendermint/PubKeySecp256k1", + "type": "ostracon/PubKeySecp256k1", "value": "A//cqZxkpH1re0VrHBtH308nb5t8K+Y/hF0GeRdRBmaJ" }, "signature": "5QEEIuUVQTEBMuAtOOHnnKo6rPsIbmfzUxUqRnDFERVqwVr1Kg+ex4f/UGIK0yrOAvOG8zDADwFP4yF8lw+o5g=="