Skip to content

Commit 9aec648

Browse files
committed
migrate libp2p key
1 parent ff592d5 commit 9aec648

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

cmd/migrate-curio/migrate.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import (
3333
"github.com/ipfs/go-datastore"
3434
"github.com/ipfs/go-datastore/namespace"
3535
cbor "github.com/ipfs/go-ipld-cbor"
36+
"github.com/libp2p/go-libp2p/core/crypto"
3637
"github.com/mitchellh/go-homedir"
3738
"github.com/urfave/cli/v2"
3839
"golang.org/x/net/context"
@@ -74,6 +75,21 @@ func migrate(cctx *cli.Context, repoDir string) error {
7475
return err
7576
}
7677

78+
keyStore, err := lr.KeyStore()
79+
if err != nil {
80+
return fmt.Errorf("failed to open Boost keystore")
81+
}
82+
83+
key, err := keyStore.Get("libp2p-host")
84+
if err != nil {
85+
return fmt.Errorf("failed to get key from keystore: %w", err)
86+
}
87+
88+
pkey, err := crypto.UnmarshalPrivateKey(key.PrivateKey)
89+
if err != nil {
90+
return fmt.Errorf("failed to unmarshal private key: %w", err)
91+
}
92+
7793
mds, err := lr.Datastore(ctx, "/metadata")
7894
if err != nil {
7995
return err
@@ -160,6 +176,12 @@ func migrate(cctx *cli.Context, repoDir string) error {
160176
if err := migrateDDODeals(ctx, full, activeSectors, maddr, hdb, sqldb, mdb); err != nil {
161177
return xerrors.Errorf("failed to migrate DDO deals: %w", err)
162178
}
179+
180+
// Migrate libp2p key
181+
if err := migrateKeys(ctx, maddr, pkey, hdb); err != nil {
182+
return xerrors.Errorf("failed to migrate libp2p key: %w", err)
183+
}
184+
163185
return nil
164186
}
165187

@@ -555,3 +577,23 @@ func migrateDDODeals(ctx context.Context, full v1api.FullNode, activeSectors bit
555577

556578
return nil
557579
}
580+
581+
func migrateKeys(ctx context.Context, maddr address.Address, priv crypto.PrivKey, hdb *harmonydb.DB) error {
582+
583+
pkey, err := priv.Raw()
584+
if err != nil {
585+
return err
586+
}
587+
588+
mid, err := address.IDFromAddress(maddr)
589+
if err != nil {
590+
return err
591+
}
592+
593+
_, err = hdb.Exec(ctx, `INSERT INTO libp2p (sp_id, priv_key) VALUES ($1, $2) ON CONFLICT(sp_id) DO NOTHING`, mid, pkey)
594+
if err != nil {
595+
return fmt.Errorf("inserting private key into libp2p table: %w", err)
596+
}
597+
598+
return nil
599+
}

0 commit comments

Comments
 (0)