prototyping keychain example

This commit is contained in:
Chris Troutner
2024-01-26 19:52:55 -08:00
parent ac3730dbd9
commit d41d20cc81
3 changed files with 251 additions and 132 deletions
+230 -132
View File
@@ -15,6 +15,8 @@
"@libp2p/bootstrap": "10.0.7",
"@libp2p/circuit-relay-v2": "1.0.7",
"@libp2p/identify": "1.0.6",
"@libp2p/keychain": "4.0.7",
"@libp2p/logger": "4.0.5",
"@libp2p/tcp": "9.0.7",
"axios": "0.27.2",
"bcryptjs": "2.4.3",
@@ -1254,15 +1256,16 @@
}
},
"node_modules/@libp2p/interface": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.0.2.tgz",
"integrity": "sha512-z/3Yyg+7cVyzRXwzdrDkJd7YmNaLE9iZjQaixo5luI/n9uk5OFFjb9ulAsNqpq8V1xylCo2DXIC7f94KClwzVw==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.1.2.tgz",
"integrity": "sha512-uC4hxtEJuWiDiZfokkSNEEbCzdyZrqb5kp67Wc5PjZsySZ2IoImdIfie003yQXlB1xBp/XUJzdC6kVu4M7LUmg==",
"dependencies": {
"@multiformats/multiaddr": "^12.1.10",
"it-pushable": "^3.2.1",
"it-pushable": "^3.2.3",
"it-stream-types": "^2.0.1",
"multiformats": "^12.1.3",
"uint8arraylist": "^2.4.3"
"multiformats": "^13.0.0",
"progress-events": "^1.0.0",
"uint8arraylist": "^2.4.7"
}
},
"node_modules/@libp2p/interface-internal": {
@@ -1276,6 +1279,11 @@
"uint8arraylist": "^2.4.3"
}
},
"node_modules/@libp2p/interface/node_modules/multiformats": {
"version": "13.0.1",
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.1.tgz",
"integrity": "sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA=="
},
"node_modules/@libp2p/kad-dht": {
"version": "10.0.15",
"resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-10.0.15.tgz",
@@ -1391,84 +1399,65 @@
}
},
"node_modules/@libp2p/keychain": {
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-3.0.8.tgz",
"integrity": "sha512-+WmW9bN9WE0uKqTG3DVk+zsd9Np63lLS+uYRhncwCGTvg0HKXq1t+i4Xd8KbZvUv7UVakE8aae1oMezW3nS+2g==",
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-4.0.7.tgz",
"integrity": "sha512-zWNv0SbHgFSFbvSqnK2uCIEmXGzk/HCGJtCUQCx3c0dWg/z/rPZD8oAx9rCA5eU1cjlfwXxrH1h4fDNlyBQt1w==",
"dependencies": {
"@libp2p/crypto": "^2.0.8",
"@libp2p/interface": "^0.1.6",
"@libp2p/logger": "^3.1.0",
"@libp2p/peer-id": "^3.0.6",
"@libp2p/crypto": "^4.0.1",
"@libp2p/interface": "^1.1.2",
"@libp2p/peer-id": "^4.0.5",
"interface-datastore": "^8.2.0",
"merge-options": "^3.0.4",
"multiformats": "^13.0.0",
"sanitize-filename": "^1.6.3",
"uint8arrays": "^4.0.6"
"uint8arrays": "^5.0.0"
}
},
"node_modules/@libp2p/keychain/node_modules/@libp2p/crypto": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-2.0.8.tgz",
"integrity": "sha512-8e5fh6bsJNpSjhrggtlm8QF+BERjelJswIjRS69aKgxp24R4z2kDM4pRYPkfQjXJDLNDtqWtKNmePgX23+QJsA==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-4.0.1.tgz",
"integrity": "sha512-lKGbX8TvQt4JbqlttdexEz2VtYJnTwY31kVBDQviwt0pMF+6Uy2hzNnEQ1FHZBwnow8BIlyb6UevHfgyOFlnkw==",
"dependencies": {
"@libp2p/interface": "^0.1.6",
"@libp2p/interface": "^1.1.2",
"@noble/curves": "^1.1.0",
"@noble/hashes": "^1.3.1",
"multiformats": "^12.0.1",
"node-forge": "^1.1.0",
"@noble/hashes": "^1.3.3",
"asn1js": "^3.0.5",
"multiformats": "^13.0.0",
"protons-runtime": "^5.0.0",
"uint8arraylist": "^2.4.3",
"uint8arrays": "^4.0.6"
"uint8arraylist": "^2.4.7",
"uint8arrays": "^5.0.0"
}
},
"node_modules/@libp2p/keychain/node_modules/@libp2p/interface": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-0.1.6.tgz",
"integrity": "sha512-Lzc5cS/hXuoXhuAbVIxJIHLCYmfPcbU0vVgrpMoiP1Qb2Q3ETU4A46GB8s8mWXgSU6tr9RcqerUqzFYD6+OAag==",
"dependencies": {
"@multiformats/multiaddr": "^12.1.5",
"abortable-iterator": "^5.0.1",
"it-pushable": "^3.2.0",
"it-stream-types": "^2.0.1",
"multiformats": "^12.0.1",
"p-defer": "^4.0.0",
"race-signal": "^1.0.0",
"uint8arraylist": "^2.4.3"
}
"node_modules/@libp2p/keychain/node_modules/multiformats": {
"version": "13.0.1",
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.1.tgz",
"integrity": "sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA=="
},
"node_modules/@libp2p/keychain/node_modules/@libp2p/logger": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.1.0.tgz",
"integrity": "sha512-qJbJBAhxHVsRBtQSOIkSLi0lskUSFjzE+zm0QvoyxzZKSz+mX41mZLbnofPIVOVauoDQ40dXpe7WDUOq8AbiQQ==",
"node_modules/@libp2p/keychain/node_modules/uint8arrays": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz",
"integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==",
"dependencies": {
"@libp2p/interface": "^0.1.6",
"@multiformats/multiaddr": "^12.1.5",
"debug": "^4.3.4",
"interface-datastore": "^8.2.0",
"multiformats": "^12.0.1"
}
},
"node_modules/@libp2p/keychain/node_modules/@libp2p/peer-id": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.6.tgz",
"integrity": "sha512-iN1Ia5gH2U1V/GOVRmLHmVY6fblxzrOPUoZrMYjHl/K4s+AiI7ym/527WDeQvhQpD7j3TfDwcAYforD2dLGpLw==",
"dependencies": {
"@libp2p/interface": "^0.1.6",
"multiformats": "^12.0.1",
"uint8arrays": "^4.0.6"
"multiformats": "^13.0.0"
}
},
"node_modules/@libp2p/logger": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-4.0.2.tgz",
"integrity": "sha512-J9UMtMU9BKXNp+3c5kcI7HyWOPYg2B2E6sn1gEQckiSexTaz0wKJSlgTZ89f9F8bkC3AaC8ybXYuHbFQhwpTIg==",
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-4.0.5.tgz",
"integrity": "sha512-cXETMNZINnxeQBlfQ2S4di92FDDU89R7RHagrpebGrM7oLl5nf/Mw6myc23kGaM3/2YG3ko2rl9sYjemu0azTA==",
"dependencies": {
"@libp2p/interface": "^1.0.2",
"@libp2p/interface": "^1.1.2",
"@multiformats/multiaddr": "^12.1.10",
"debug": "^4.3.4",
"interface-datastore": "^8.2.0",
"multiformats": "^12.1.3"
"multiformats": "^13.0.0"
}
},
"node_modules/@libp2p/logger/node_modules/multiformats": {
"version": "13.0.1",
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.1.tgz",
"integrity": "sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA=="
},
"node_modules/@libp2p/mdns": {
"version": "9.0.14",
"resolved": "https://registry.npmjs.org/@libp2p/mdns/-/mdns-9.0.14.tgz",
@@ -1616,12 +1605,12 @@
}
},
"node_modules/@libp2p/peer-id": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.0.2.tgz",
"integrity": "sha512-TkUA6MjLJ3CE82yyFOfGpH18eUkxouQC7FZcW4vMB1C6F1Y90sf0nPTcXPVZSabEcQxLeOzNk2oEqLgZw47E9w==",
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.0.5.tgz",
"integrity": "sha512-/J9U6I/CWSOsYrTpFZpRQrhOhi+bp9WFp7+9Gc7kVt/oevIYTapUEjpxevjViem9ddR5RbdYeCj4ZLHA04QOoQ==",
"dependencies": {
"@libp2p/interface": "^1.0.2",
"multiformats": "^12.1.3",
"@libp2p/interface": "^1.1.2",
"multiformats": "^13.0.0",
"uint8arrays": "^5.0.0"
}
},
@@ -1647,6 +1636,11 @@
"multiformats": "^12.0.1"
}
},
"node_modules/@libp2p/peer-id/node_modules/multiformats": {
"version": "13.0.1",
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.1.tgz",
"integrity": "sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA=="
},
"node_modules/@libp2p/peer-id/node_modules/uint8arrays": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.0.tgz",
@@ -1655,6 +1649,15 @@
"multiformats": "^12.0.1"
}
},
"node_modules/@libp2p/peer-id/node_modules/uint8arrays/node_modules/multiformats": {
"version": "12.1.3",
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz",
"integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==",
"engines": {
"node": ">=16.0.0",
"npm": ">=7.0.0"
}
},
"node_modules/@libp2p/peer-record": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-7.0.1.tgz",
@@ -3590,6 +3593,19 @@
"safer-buffer": "~2.1.0"
}
},
"node_modules/asn1js": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz",
"integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==",
"dependencies": {
"pvtsutils": "^1.3.2",
"pvutils": "^1.1.3",
"tslib": "^2.4.0"
},
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
@@ -8070,6 +8086,21 @@
"uint8arraylist": "^2.4.3"
}
},
"node_modules/helia/node_modules/@libp2p/keychain": {
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-3.0.8.tgz",
"integrity": "sha512-+WmW9bN9WE0uKqTG3DVk+zsd9Np63lLS+uYRhncwCGTvg0HKXq1t+i4Xd8KbZvUv7UVakE8aae1oMezW3nS+2g==",
"dependencies": {
"@libp2p/crypto": "^2.0.8",
"@libp2p/interface": "^0.1.6",
"@libp2p/logger": "^3.1.0",
"@libp2p/peer-id": "^3.0.6",
"interface-datastore": "^8.2.0",
"merge-options": "^3.0.4",
"sanitize-filename": "^1.6.3",
"uint8arrays": "^4.0.6"
}
},
"node_modules/helia/node_modules/@libp2p/logger": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.1.0.tgz",
@@ -15213,6 +15244,22 @@
"node": ">=6"
}
},
"node_modules/pvtsutils": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz",
"integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==",
"dependencies": {
"tslib": "^2.6.1"
}
},
"node_modules/pvutils": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz",
"integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/q": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
@@ -17593,6 +17640,11 @@
"json5": "lib/cli.js"
}
},
"node_modules/tslib": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
},
"node_modules/tsscmp": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz",
@@ -19447,15 +19499,23 @@
}
},
"@libp2p/interface": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.0.2.tgz",
"integrity": "sha512-z/3Yyg+7cVyzRXwzdrDkJd7YmNaLE9iZjQaixo5luI/n9uk5OFFjb9ulAsNqpq8V1xylCo2DXIC7f94KClwzVw==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.1.2.tgz",
"integrity": "sha512-uC4hxtEJuWiDiZfokkSNEEbCzdyZrqb5kp67Wc5PjZsySZ2IoImdIfie003yQXlB1xBp/XUJzdC6kVu4M7LUmg==",
"requires": {
"@multiformats/multiaddr": "^12.1.10",
"it-pushable": "^3.2.1",
"it-pushable": "^3.2.3",
"it-stream-types": "^2.0.1",
"multiformats": "^12.1.3",
"uint8arraylist": "^2.4.3"
"multiformats": "^13.0.0",
"progress-events": "^1.0.0",
"uint8arraylist": "^2.4.7"
},
"dependencies": {
"multiformats": {
"version": "13.0.1",
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.1.tgz",
"integrity": "sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA=="
}
}
},
"@libp2p/interface-internal": {
@@ -19586,84 +19646,67 @@
}
},
"@libp2p/keychain": {
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-3.0.8.tgz",
"integrity": "sha512-+WmW9bN9WE0uKqTG3DVk+zsd9Np63lLS+uYRhncwCGTvg0HKXq1t+i4Xd8KbZvUv7UVakE8aae1oMezW3nS+2g==",
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-4.0.7.tgz",
"integrity": "sha512-zWNv0SbHgFSFbvSqnK2uCIEmXGzk/HCGJtCUQCx3c0dWg/z/rPZD8oAx9rCA5eU1cjlfwXxrH1h4fDNlyBQt1w==",
"requires": {
"@libp2p/crypto": "^2.0.8",
"@libp2p/interface": "^0.1.6",
"@libp2p/logger": "^3.1.0",
"@libp2p/peer-id": "^3.0.6",
"@libp2p/crypto": "^4.0.1",
"@libp2p/interface": "^1.1.2",
"@libp2p/peer-id": "^4.0.5",
"interface-datastore": "^8.2.0",
"merge-options": "^3.0.4",
"multiformats": "^13.0.0",
"sanitize-filename": "^1.6.3",
"uint8arrays": "^4.0.6"
"uint8arrays": "^5.0.0"
},
"dependencies": {
"@libp2p/crypto": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-2.0.8.tgz",
"integrity": "sha512-8e5fh6bsJNpSjhrggtlm8QF+BERjelJswIjRS69aKgxp24R4z2kDM4pRYPkfQjXJDLNDtqWtKNmePgX23+QJsA==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-4.0.1.tgz",
"integrity": "sha512-lKGbX8TvQt4JbqlttdexEz2VtYJnTwY31kVBDQviwt0pMF+6Uy2hzNnEQ1FHZBwnow8BIlyb6UevHfgyOFlnkw==",
"requires": {
"@libp2p/interface": "^0.1.6",
"@libp2p/interface": "^1.1.2",
"@noble/curves": "^1.1.0",
"@noble/hashes": "^1.3.1",
"multiformats": "^12.0.1",
"node-forge": "^1.1.0",
"@noble/hashes": "^1.3.3",
"asn1js": "^3.0.5",
"multiformats": "^13.0.0",
"protons-runtime": "^5.0.0",
"uint8arraylist": "^2.4.3",
"uint8arrays": "^4.0.6"
"uint8arraylist": "^2.4.7",
"uint8arrays": "^5.0.0"
}
},
"@libp2p/interface": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-0.1.6.tgz",
"integrity": "sha512-Lzc5cS/hXuoXhuAbVIxJIHLCYmfPcbU0vVgrpMoiP1Qb2Q3ETU4A46GB8s8mWXgSU6tr9RcqerUqzFYD6+OAag==",
"requires": {
"@multiformats/multiaddr": "^12.1.5",
"abortable-iterator": "^5.0.1",
"it-pushable": "^3.2.0",
"it-stream-types": "^2.0.1",
"multiformats": "^12.0.1",
"p-defer": "^4.0.0",
"race-signal": "^1.0.0",
"uint8arraylist": "^2.4.3"
}
"multiformats": {
"version": "13.0.1",
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.1.tgz",
"integrity": "sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA=="
},
"@libp2p/logger": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.1.0.tgz",
"integrity": "sha512-qJbJBAhxHVsRBtQSOIkSLi0lskUSFjzE+zm0QvoyxzZKSz+mX41mZLbnofPIVOVauoDQ40dXpe7WDUOq8AbiQQ==",
"uint8arrays": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz",
"integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==",
"requires": {
"@libp2p/interface": "^0.1.6",
"@multiformats/multiaddr": "^12.1.5",
"debug": "^4.3.4",
"interface-datastore": "^8.2.0",
"multiformats": "^12.0.1"
}
},
"@libp2p/peer-id": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.6.tgz",
"integrity": "sha512-iN1Ia5gH2U1V/GOVRmLHmVY6fblxzrOPUoZrMYjHl/K4s+AiI7ym/527WDeQvhQpD7j3TfDwcAYforD2dLGpLw==",
"requires": {
"@libp2p/interface": "^0.1.6",
"multiformats": "^12.0.1",
"uint8arrays": "^4.0.6"
"multiformats": "^13.0.0"
}
}
}
},
"@libp2p/logger": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-4.0.2.tgz",
"integrity": "sha512-J9UMtMU9BKXNp+3c5kcI7HyWOPYg2B2E6sn1gEQckiSexTaz0wKJSlgTZ89f9F8bkC3AaC8ybXYuHbFQhwpTIg==",
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-4.0.5.tgz",
"integrity": "sha512-cXETMNZINnxeQBlfQ2S4di92FDDU89R7RHagrpebGrM7oLl5nf/Mw6myc23kGaM3/2YG3ko2rl9sYjemu0azTA==",
"requires": {
"@libp2p/interface": "^1.0.2",
"@libp2p/interface": "^1.1.2",
"@multiformats/multiaddr": "^12.1.10",
"debug": "^4.3.4",
"interface-datastore": "^8.2.0",
"multiformats": "^12.1.3"
"multiformats": "^13.0.0"
},
"dependencies": {
"multiformats": {
"version": "13.0.1",
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.1.tgz",
"integrity": "sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA=="
}
}
},
"@libp2p/mdns": {
@@ -19819,21 +19862,33 @@
}
},
"@libp2p/peer-id": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.0.2.tgz",
"integrity": "sha512-TkUA6MjLJ3CE82yyFOfGpH18eUkxouQC7FZcW4vMB1C6F1Y90sf0nPTcXPVZSabEcQxLeOzNk2oEqLgZw47E9w==",
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.0.5.tgz",
"integrity": "sha512-/J9U6I/CWSOsYrTpFZpRQrhOhi+bp9WFp7+9Gc7kVt/oevIYTapUEjpxevjViem9ddR5RbdYeCj4ZLHA04QOoQ==",
"requires": {
"@libp2p/interface": "^1.0.2",
"multiformats": "^12.1.3",
"@libp2p/interface": "^1.1.2",
"multiformats": "^13.0.0",
"uint8arrays": "^5.0.0"
},
"dependencies": {
"multiformats": {
"version": "13.0.1",
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.1.tgz",
"integrity": "sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA=="
},
"uint8arrays": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.0.tgz",
"integrity": "sha512-RWO7gR4x6syxnKDfZO8mDCsaaYs1/BqZCxlHgrcRge50E9GTnLmtoA4kwFSGIL4s3dQkryeTkvtG6oEFEya3yg==",
"requires": {
"multiformats": "^12.0.1"
},
"dependencies": {
"multiformats": {
"version": "12.1.3",
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz",
"integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw=="
}
}
}
}
@@ -21539,6 +21594,16 @@
"safer-buffer": "~2.1.0"
}
},
"asn1js": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz",
"integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==",
"requires": {
"pvtsutils": "^1.3.2",
"pvutils": "^1.1.3",
"tslib": "^2.4.0"
}
},
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
@@ -24789,6 +24854,21 @@
"uint8arraylist": "^2.4.3"
}
},
"@libp2p/keychain": {
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-3.0.8.tgz",
"integrity": "sha512-+WmW9bN9WE0uKqTG3DVk+zsd9Np63lLS+uYRhncwCGTvg0HKXq1t+i4Xd8KbZvUv7UVakE8aae1oMezW3nS+2g==",
"requires": {
"@libp2p/crypto": "^2.0.8",
"@libp2p/interface": "^0.1.6",
"@libp2p/logger": "^3.1.0",
"@libp2p/peer-id": "^3.0.6",
"interface-datastore": "^8.2.0",
"merge-options": "^3.0.4",
"sanitize-filename": "^1.6.3",
"uint8arrays": "^4.0.6"
}
},
"@libp2p/logger": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.1.0.tgz",
@@ -30376,6 +30456,19 @@
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="
},
"pvtsutils": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz",
"integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==",
"requires": {
"tslib": "^2.6.1"
}
},
"pvutils": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz",
"integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ=="
},
"q": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
@@ -32178,6 +32271,11 @@
}
}
},
"tslib": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
},
"tsscmp": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz",
+2
View File
@@ -30,6 +30,8 @@
"@libp2p/bootstrap": "10.0.7",
"@libp2p/circuit-relay-v2": "1.0.7",
"@libp2p/identify": "1.0.6",
"@libp2p/keychain": "4.0.7",
"@libp2p/logger": "4.0.5",
"@libp2p/tcp": "9.0.7",
"axios": "0.27.2",
"bcryptjs": "2.4.3",
+19
View File
@@ -26,6 +26,8 @@ import { webSockets } from '@libp2p/websockets'
import publicIp from 'public-ip'
import { multiaddr } from '@multiformats/multiaddr'
import { webRTC } from '@libp2p/webrtc'
// import { keychain } from '@libp2p/keychain'
// import { defaultLogger } from '@libp2p/logger'
// Local libraries
import config from '../../../config/index.js'
@@ -39,6 +41,10 @@ const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
const ROOT_DIR = `${__dirname}../../../`
const IPFS_DIR = `${__dirname}../../../.ipfsdata/ipfs`
// const keychainInit = {
// pass: 'very long, very secure password'
// }
class IpfsAdapter {
constructor (localConfig) {
// Encapsulate dependencies
@@ -109,6 +115,18 @@ class IpfsAdapter {
const blockstore = new FsBlockstore(`${IPFS_DIR}/blockstore`)
const datastore = new FsDatastore(`${IPFS_DIR}/datastore`)
// Create an identity
// let peerId
// const chain = keychain(keychainInit)({
// datastore,
// logger: defaultLogger()
// })
// const selfKey = new Key('/pkcs8/self')
// if (await datastore.has(selfKey)) {
// // load the peer id from the keychain
// peerId = await chain.exportPeerId('self')
// }
// Configure services
const services = {
identify: identify(),
@@ -146,6 +164,7 @@ class IpfsAdapter {
// libp2p is the networking layer that underpins Helia
const libp2p = await this.createLibp2p({
// peerId,
datastore,
addresses: {
listen: [