Merge pull request #185 from Permissionless-Software-Foundation/ct-unstable

fix(helia-coord): Updating to v1.10.0 with DHT
This commit is contained in:
Chris Troutner
2026-02-10 17:22:54 -07:00
committed by GitHub
3 changed files with 80 additions and 69 deletions
+48 -63
View File
@@ -12,11 +12,14 @@
"@chainsafe/libp2p-gossipsub": "14.1.0",
"@chainsafe/libp2p-noise": "16.0.1",
"@chainsafe/libp2p-yamux": "7.0.1",
"@helia/block-brokers": "4.0.4",
"@helia/routers": "3.0.0",
"@helia/unixfs": "4.0.2",
"@libp2p/bootstrap": "11.0.26",
"@libp2p/bootstrap": "11.0.20",
"@libp2p/circuit-relay-v2": "3.2.2",
"@libp2p/config": "1.1.0",
"@libp2p/identify": "3.0.22",
"@libp2p/kad-dht": "14.2.3",
"@libp2p/keychain": "5.0.14",
"@libp2p/logger": "5.1.8",
"@libp2p/ping": "2.0.22",
@@ -30,7 +33,7 @@
"datastore-fs": "10.0.2",
"glob": "7.1.6",
"helia": "5.2.1",
"helia-coord": "1.9.7",
"helia-coord": "1.10.0",
"jsonrpc-lite": "2.2.0",
"jsonwebtoken": "8.5.1",
"jwt-bch-lib": "1.3.0",
@@ -1405,24 +1408,23 @@
}
},
"node_modules/@helia/block-brokers": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/@helia/block-brokers/-/block-brokers-4.2.4.tgz",
"integrity": "sha512-Xz7JyRIprbldi5bxfvuj5xTDijkfndgLPKoK/AUVeFOBD0n04Cb6RzqYGVQN6of8a6hfL6tD0fO4RVUFh/Jl6A==",
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/@helia/block-brokers/-/block-brokers-4.0.4.tgz",
"integrity": "sha512-J9Oh5KSMJUYg+WZCted73QfU4iAqRPXULTRSorzJ/iyFsONQwvY1nvlL8rcupt5uSi3ZHdHOBHPGagR61ZVu/A==",
"license": "Apache-2.0 OR MIT",
"dependencies": {
"@helia/bitswap": "^2.2.0",
"@helia/interface": "^5.4.0",
"@helia/utils": "^1.4.0",
"@helia/bitswap": "^2.0.4",
"@helia/interface": "^5.2.0",
"@helia/utils": "^1.2.1",
"@libp2p/interface": "^2.2.1",
"@libp2p/utils": "^6.2.1",
"@multiformats/multiaddr": "^12.3.3",
"@multiformats/multiaddr-matcher": "^2.0.1",
"@multiformats/multiaddr-matcher": "^1.6.0",
"@multiformats/multiaddr-to-uri": "^11.0.0",
"interface-blockstore": "^5.3.1",
"interface-store": "^6.0.2",
"multiformats": "^13.3.1",
"progress-events": "^1.0.1",
"uint8arraylist": "^2.4.8"
"progress-events": "^1.0.1"
}
},
"node_modules/@helia/delegated-routing-v1-http-api-client": {
@@ -1464,16 +1466,16 @@
}
},
"node_modules/@helia/routers": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/@helia/routers/-/routers-3.1.3.tgz",
"integrity": "sha512-BPbzN3WCe6EF3yXjeORJbbb5hZjv0PKaJri1sSPHRZX6sKUCvRzwAc0AkQKUMHeMzTLrrAcl0yAz5x1r8z3Ynw==",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@helia/routers/-/routers-3.0.0.tgz",
"integrity": "sha512-WtbH+qam4YtcJfeQpteJ9o9By4TniUeltkClouoDkXpRoshjyTT0MowzpCOBRS0hS8gK3aX+kA3h1kU3qeR35Q==",
"license": "Apache-2.0 OR MIT",
"dependencies": {
"@helia/delegated-routing-v1-http-api-client": "^4.2.1",
"@helia/interface": "^5.4.0",
"@helia/interface": "^5.2.0",
"@libp2p/interface": "^2.2.1",
"@libp2p/peer-id": "^5.0.8",
"@multiformats/uri-to-multiaddr": "^9.0.1",
"@multiformats/uri-to-multiaddr": "^8.0.0",
"ipns": "^10.0.0",
"it-first": "^3.0.6",
"it-map": "^3.1.1",
@@ -2009,14 +2011,14 @@
"license": "Apache-2.0 OR MIT"
},
"node_modules/@libp2p/bootstrap": {
"version": "11.0.26",
"resolved": "https://registry.npmjs.org/@libp2p/bootstrap/-/bootstrap-11.0.26.tgz",
"integrity": "sha512-Q2r3RsedwpgUv8gtsapsegs8wxGAbm2rUTjEuTK3wasQoixZ2Q6Kjw4hq+cq4SlbH3XaAO2UXqUEhGT2KLhfoQ==",
"version": "11.0.20",
"resolved": "https://registry.npmjs.org/@libp2p/bootstrap/-/bootstrap-11.0.20.tgz",
"integrity": "sha512-ci5bdMdT29zyP0GCFsHEaQdU+0YxO6nOVl/BHDLLygvss9sXvLTM2iqO1Gg2NdOzaBg640xa55ZRE87M2H9m4Q==",
"license": "Apache-2.0 OR MIT",
"dependencies": {
"@libp2p/interface": "^2.6.0",
"@libp2p/interface-internal": "^2.3.4",
"@libp2p/peer-id": "^5.0.13",
"@libp2p/interface": "^2.5.0",
"@libp2p/interface-internal": "^2.3.0",
"@libp2p/peer-id": "^5.0.12",
"@multiformats/mafmt": "^12.1.6",
"@multiformats/multiaddr": "^12.3.3"
}
@@ -2281,25 +2283,25 @@
}
},
"node_modules/@libp2p/kad-dht": {
"version": "14.2.15",
"resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-14.2.15.tgz",
"integrity": "sha512-iARZsaKrm9LlOE0nRTsqMasYGfWbh+zw1TAMWOY/QHTszFGb9ol7FZoI9WUzoif9ltKLu3BjJpy00b8CVofCBw==",
"version": "14.2.3",
"resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-14.2.3.tgz",
"integrity": "sha512-kwHf6nClBXqEHgtaKsqZa6yXPUxBq3ZE9ySb1FNdJu+3Yl3nezHie1edWlawNcW2ET101dmCUdPRFeG8QkS5OA==",
"license": "Apache-2.0 OR MIT",
"dependencies": {
"@libp2p/crypto": "^5.0.15",
"@libp2p/interface": "^2.7.0",
"@libp2p/interface-internal": "^2.3.9",
"@libp2p/peer-collections": "^6.0.25",
"@libp2p/peer-id": "^5.1.0",
"@libp2p/record": "^4.0.5",
"@libp2p/utils": "^6.6.0",
"@libp2p/crypto": "^5.0.11",
"@libp2p/interface": "^2.5.0",
"@libp2p/interface-internal": "^2.3.0",
"@libp2p/peer-collections": "^6.0.17",
"@libp2p/peer-id": "^5.0.12",
"@libp2p/record": "^4.0.4",
"@libp2p/utils": "^6.5.1",
"@multiformats/multiaddr": "^12.3.3",
"any-signal": "^4.1.1",
"interface-datastore": "^8.3.1",
"it-all": "^3.0.6",
"it-drain": "^3.0.7",
"it-length": "^3.0.6",
"it-length-prefixed": "^10.0.1",
"it-length-prefixed": "^9.1.0",
"it-map": "^3.1.1",
"it-merge": "^3.0.5",
"it-parallel": "^3.0.8",
@@ -2312,29 +2314,12 @@
"p-event": "^6.0.1",
"progress-events": "^1.0.1",
"protons-runtime": "^5.5.0",
"race-signal": "^1.1.2",
"race-signal": "^1.1.0",
"uint8-varint": "^2.0.4",
"uint8arraylist": "^2.4.8",
"uint8arrays": "^5.1.0"
}
},
"node_modules/@libp2p/kad-dht/node_modules/it-length-prefixed": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-10.0.1.tgz",
"integrity": "sha512-BhyluvGps26u9a7eQIpOI1YN7mFgi8lFwmiPi07whewbBARKAG9LE09Odc8s1Wtbt2MB6rNUrl7j9vvfXTJwdQ==",
"license": "Apache-2.0 OR MIT",
"dependencies": {
"it-reader": "^6.0.1",
"it-stream-types": "^2.0.1",
"uint8-varint": "^2.0.1",
"uint8arraylist": "^2.0.0",
"uint8arrays": "^5.0.1"
},
"engines": {
"node": ">=16.0.0",
"npm": ">=7.0.0"
}
},
"node_modules/@libp2p/keychain": {
"version": "5.0.14",
"resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-5.0.14.tgz",
@@ -2649,16 +2634,16 @@
}
},
"node_modules/@libp2p/utils": {
"version": "6.7.2",
"resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-6.7.2.tgz",
"integrity": "sha512-yglVPcYErb4al3MMTdedVLLsdUvr5KaqrrxohxTl/FXMFBvBs0o3w8lo29nfnTUpnNSHFhWZ9at0ZGNnpT/C/w==",
"version": "6.7.1",
"resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-6.7.1.tgz",
"integrity": "sha512-x3WImvw4unmx1ZeAedj8AkRe4UImUlkw0ZItYAiKiekElMNUXwv+Yt48dI/LmB38JIof8sng29XvUeCVU3F6OA==",
"license": "Apache-2.0 OR MIT",
"dependencies": {
"@chainsafe/is-ip": "^2.1.0",
"@chainsafe/netmask": "^2.0.0",
"@libp2p/crypto": "^5.1.8",
"@libp2p/interface": "^2.11.0",
"@libp2p/logger": "^5.2.0",
"@libp2p/crypto": "^5.1.7",
"@libp2p/interface": "^2.10.5",
"@libp2p/logger": "^5.1.21",
"@multiformats/multiaddr": "^12.4.4",
"@sindresorhus/fnv1a": "^3.1.0",
"any-signal": "^4.1.1",
@@ -2906,9 +2891,9 @@
}
},
"node_modules/@multiformats/uri-to-multiaddr": {
"version": "9.0.2",
"resolved": "https://registry.npmjs.org/@multiformats/uri-to-multiaddr/-/uri-to-multiaddr-9.0.2.tgz",
"integrity": "sha512-2TCQR5Y2unG2s9Jm1BdBMTSFmmfgHy8D0777PRT+U2D+IXC1E9JkKF1OS0QlHtGyKUA0IRIk8T0JV4D3v5iOyQ==",
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/@multiformats/uri-to-multiaddr/-/uri-to-multiaddr-8.1.0.tgz",
"integrity": "sha512-NHFqdKEwJ0A6JDXzC645Lgyw72zWhbM1QfaaD00ZYRrNvtx64p1bD9aIrWZIhLWZN87/lsV4QkJSNRF3Fd3ryw==",
"license": "Apache-2.0 OR MIT",
"dependencies": {
"@multiformats/multiaddr": "^12.1.14",
@@ -10210,9 +10195,9 @@
}
},
"node_modules/helia-coord": {
"version": "1.9.7",
"resolved": "https://registry.npmjs.org/helia-coord/-/helia-coord-1.9.7.tgz",
"integrity": "sha512-EVlbg6FjpkYwVH4LRT/n/r6DQVh7opNIClYbFP2ZQqx8V9d3YE+z2d+TigvGmh0xMpIAbQtRVj+C3amPs+r35g==",
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/helia-coord/-/helia-coord-1.10.0.tgz",
"integrity": "sha512-aN0zO0fe2Zyctie7UAf/R48SFwa6OE+TK6AzbStI7el7ru3QfjfOX9Ksq9pg1j7DqG6zM2pfVbQjIsKD5kMTTA==",
"license": "MIT",
"dependencies": {
"@chris.troutner/retry-queue": "1.0.10",
+7 -3
View File
@@ -28,11 +28,14 @@
"@chainsafe/libp2p-gossipsub": "14.1.0",
"@chainsafe/libp2p-noise": "16.0.1",
"@chainsafe/libp2p-yamux": "7.0.1",
"@helia/block-brokers": "4.0.4",
"@helia/routers": "3.0.0",
"@helia/unixfs": "4.0.2",
"@libp2p/bootstrap": "11.0.26",
"@libp2p/bootstrap": "11.0.20",
"@libp2p/circuit-relay-v2": "3.2.2",
"@libp2p/config": "1.1.0",
"@libp2p/identify": "3.0.22",
"@libp2p/kad-dht": "14.2.3",
"@libp2p/keychain": "5.0.14",
"@libp2p/logger": "5.1.8",
"@libp2p/ping": "2.0.22",
@@ -46,7 +49,7 @@
"datastore-fs": "10.0.2",
"glob": "7.1.6",
"helia": "5.2.1",
"helia-coord": "1.9.7",
"helia-coord": "1.10.0",
"jsonrpc-lite": "2.2.0",
"jsonwebtoken": "8.5.1",
"jwt-bch-lib": "1.3.0",
@@ -113,6 +116,7 @@
},
"libp2p": {
"@multiformats/multiaddr": "12.5.1"
}
},
"@libp2p/utils": "6.7.1"
}
}
+25 -3
View File
@@ -10,6 +10,8 @@
// Global npm libraries
import { createHelia } from 'helia'
import { libp2pRouting } from '@helia/routers'
import { bitswap } from '@helia/block-brokers'
import fs from 'fs'
import { FsBlockstore } from 'blockstore-fs'
import { FsDatastore } from 'datastore-fs'
@@ -17,9 +19,10 @@ import { createLibp2p } from 'libp2p'
import { tcp } from '@libp2p/tcp'
import { noise } from '@chainsafe/libp2p-noise'
import { yamux } from '@chainsafe/libp2p-yamux'
// import { bootstrap } from '@libp2p/bootstrap'
import { bootstrap } from '@libp2p/bootstrap'
// import { identifyService } from 'libp2p/identify'
import { identify, identifyPush } from '@libp2p/identify'
import { kadDHT } from '@libp2p/kad-dht'
import { circuitRelayServer, circuitRelayTransport } from '@libp2p/circuit-relay-v2'
// import { circuitRelayServer } from '@libp2p/circuit-relay-v2'
import { gossipsub } from '@chainsafe/libp2p-gossipsub'
@@ -139,7 +142,11 @@ class IpfsAdapter {
identifyPush: identifyPush(),
pubsub: gossipsub({ allowPublishToZeroTopicPeers: true }),
ping: ping(),
keychain: keychain(keychainInit)
keychain: keychain(keychainInit),
dht: kadDHT({
protocol: '/psf/kad/1.0.0',
clientMode: false
})
}
if (this.config.isCircuitRelay) {
console.log('Helia (IPFS) node IS configured as Circuit Relay')
@@ -191,6 +198,15 @@ class IpfsAdapter {
streamMuxers: [
yamux()
],
peerDiscovery: [
bootstrap({
list: [
'/ip4/78.46.129.7/tcp/4001/p2p/12D3KooWEBzgK8a5TpMfLotuj7jJnEK41gbD9LZK6qCpxNrX43E9',
'/ip4/5.78.70.29/tcp/4001/p2p/12D3KooWSREJ6x2DJSYrA1xRD2Qs6D4DHncsHmNnTHuMKHnqpG2i',
'/ip4/143.198.134.59/tcp/4101/p2p/12D3KooWHogx3RcyNiSuY6SzS8GxzTAqtDCYzy17yQ1StWaLvX9j'
]
})
],
services
})
@@ -198,7 +214,13 @@ class IpfsAdapter {
const helia = await this.createHelia({
blockstore,
datastore,
libp2p
libp2p,
routers: [
libp2pRouting(libp2p)
],
blockBrokers: [
bitswap()
]
})
// Attach IPFS file system.