libp2p-delegated-content-routing

Leverage other peers in the libp2p network to perform Content Routing calls.

Usage no npm install needed!

<script type="module">
  import libp2pDelegatedContentRouting from 'https://cdn.skypack.dev/libp2p-delegated-content-routing';
</script>

README

js-libp2p-delegated-content-routing

Discourse posts Dependency Status

Leverage other peers in the network to perform Content Routing calls.

Requires access to /api/v0/dht/findprovs and /api/v0/refs HTTP API endpoints of the delegate node.

Lead Maintainer

Jacob Heun

Requirements

libp2p-delegated-content-routing leverages the ipfs-http-client library and requires an instance of it as a constructor argument.

npm install ipfs-http-client libp2p-delegated-content-routing

Example

const DelegatedContentRouting = require('libp2p-delegated-content-routing')
const ipfsHttpClient = require('ipfs-http-client')

// default is to use ipfs.io
const routing = new DelegatedContentRouting(peerId, ipfsHttpClient.create({
  // use default api settings
  protocol: 'https',
  port: 443,
  host: 'node0.delegate.ipfs.io' // In production you should setup your own delegates
}))
const cid = new CID('QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv')

for await (const { id, multiaddrs } of routing.findProviders(cid)) {
  console.log('found peer', id, multiaddrs)
}

await routing.provide(cid)
console.log('providing %s', cid.toBaseEncodedString())

License

MIT