Interface Routing

interface Routing {
    findPeer(peerId, options?): Promise<PeerInfo>;
    findProviders(cid, options?): AsyncIterable<Provider>;
    get(key, options?): Promise<Uint8Array>;
    getClosestPeers(key, options?): AsyncIterable<PeerInfo>;
    provide(cid, options?): Promise<void>;
    put(key, value, options?): Promise<void>;
}

Methods

  • Searches the network for peer info corresponding to the passed peer id.

    Parameters

    Returns Promise<PeerInfo>

    Example

    // ...
    const peer = await peerRouting.findPeer(peerId, options)
  • Find the providers of the passed CID.

    Parameters

    Returns AsyncIterable<Provider>

    Example

    // Iterate over the providers found for the given cid
    for await (const provider of contentRouting.findProviders(cid)) {
    console.log(provider.id, provider.multiaddrs)
    }
  • Retrieves a value from the network corresponding to the passed key.

    Parameters

    Returns Promise<Uint8Array>

    Example

    // ...

    const key = '/key'
    const value = await contentRouting.get(key)
  • Search the network for peers that are closer to the passed key. Peer info should be yielded in ever-increasing closeness to the key.

    Parameters

    Returns AsyncIterable<PeerInfo>

    Example

    // Iterate over the closest peers found for the given key
    for await (const peer of peerRouting.getClosestPeers(key)) {
    console.log(peer.id, peer.multiaddrs)
    }
  • The implementation of this method should ensure that network peers know the caller can provide content that corresponds to the passed CID.

    Parameters

    Returns Promise<void>

    Example

    // ...
    await contentRouting.provide(cid)
  • Puts a value corresponding to the passed key in a way that can later be retrieved by another network peer using the get method.

    Parameters

    Returns Promise<void>

    Example

    // ...
    const key = '/key'
    const value = uint8ArrayFromString('oh hello there')

    await contentRouting.put(key, value)