diff --git a/packages/ipfs-core/package.json b/packages/ipfs-core/package.json index 9fb745a48b..4ce4520f83 100644 --- a/packages/ipfs-core/package.json +++ b/packages/ipfs-core/package.json @@ -90,7 +90,7 @@ "@libp2p/interfaces": "^3.0.3", "@libp2p/kad-dht": "^3.0.0", "@libp2p/logger": "^2.0.0", - "@libp2p/mplex": "^5.0.0", + "@libp2p/mplex": "^5.2.0", "@libp2p/peer-id": "^1.1.10", "@libp2p/peer-id-factory": "^1.0.10", "@libp2p/record": "^2.0.0", @@ -137,7 +137,7 @@ "it-tar": "^6.0.0", "it-to-buffer": "^2.0.0", "just-safe-set": "^4.0.2", - "libp2p": "^0.38.0", + "libp2p": "^0.39.0", "merge-options": "^3.0.4", "mortice": "^3.0.0", "multiformats": "^9.5.1", diff --git a/packages/ipfs-core/src/components/network.js b/packages/ipfs-core/src/components/network.js index b2f0f44a57..7f083d15fd 100644 --- a/packages/ipfs-core/src/components/network.js +++ b/packages/ipfs-core/src/components/network.js @@ -64,10 +64,6 @@ export class Network { keychainConfig: undefined }) - if (libp2p.keychain) { - await libp2p.loadKeychain() - } - await libp2p.start() for (const ma of libp2p.getMultiaddrs()) { diff --git a/packages/ipfs-core/src/components/storage.js b/packages/ipfs-core/src/components/storage.js index 8f7eff57b7..416e7b0118 100644 --- a/packages/ipfs-core/src/components/storage.js +++ b/packages/ipfs-core/src/components/storage.js @@ -13,6 +13,7 @@ import { ERR_REPO_NOT_INITIALIZED } from 'ipfs-repo/errors' import { createEd25519PeerId, createRSAPeerId } from '@libp2p/peer-id-factory' import errCode from 'err-code' import { unmarshalPrivateKey } from '@libp2p/crypto/keys' +import { Key } from 'interface-datastore/key' const mergeOptions = mergeOpts.bind({ ignoreUndefined: true }) const log = logger('ipfs:components:peer:storage') @@ -158,15 +159,15 @@ const initRepo = async (print, repo, options) => { keychainConfig }) - if (libp2p.keychain) { - await libp2p.loadKeychain() - - await repo.config.set('Keychain', { - // @ts-expect-error private field - DEK: libp2p.keychain.init.dek - }) + if (!(await repo.datastore.has(new Key('/info/self')))) { + await libp2p.keychain.importPeer('self', peerId) } + await repo.config.set('Keychain', { + // @ts-expect-error private field + DEK: libp2p.keychain.init.dek + }) + return { peerId, keychain: libp2p.keychain } } @@ -264,10 +265,6 @@ const configureRepo = async (repo, options) => { } }) - if (libp2p.keychain) { - await libp2p.loadKeychain() - } - return { peerId, keychain: libp2p.keychain } } diff --git a/packages/ipfs-daemon/package.json b/packages/ipfs-daemon/package.json index 2c366511cb..64ae61f2ce 100644 --- a/packages/ipfs-daemon/package.json +++ b/packages/ipfs-daemon/package.json @@ -72,7 +72,7 @@ "ipfs-http-gateway": "^0.10.0", "ipfs-http-server": "^0.12.0", "ipfs-utils": "^9.0.6", - "libp2p": "^0.38.0" + "libp2p": "^0.39.0" }, "devDependencies": { "aegir": "^37.0.11",