View Source ExIpfsIpns (ex_ipfs_ipns v0.0.5)

Interplanetary Name System commands

Summary

Functions

Publish IPNS names.

Resolve IPNS names.

Types

@type t() :: %ExIpfsIpns{name: binary(), value: binary()}

Functions

Link to this function

publish(path, opts \\ [])

View Source
@spec publish(Path.t(), list()) :: {:ok, any()} | ExIpfs.Api.error_response()

Publish IPNS names.

Parameters

path - Path to be published.

Options

https://docs.ipfs.io/reference/http/api/#api-v0-name-publish

[
  resolve: <bool>, # Resolve given path before publishing.
  lifetime: <string>, # Time duration that the record will be valid for.
  allow-offline: <bool>, # Run offline.
  ttl: <string>, # Time duration this record should be cached for (caution: experimental).
  key: <string>, # Name of the key to be used or a valid PeerID, as listed by 'ipfs key list -l'.
  ipns-base: <string>, # IPNS key base.
]

Example

iex(1)> ExIpfsIpns.Key.gen("foo")
{:ok,
  %ExIpfsIpns.Key{
    name: "foo",
    id: "k51qzi5uqu5dhxwb3x7bjg8k73tlkaqfugy217mgpf3vpdmoqn9du2qp865ddv"
  }}
iex(2)> ExIpfsIpns.Name.publish("/ipfs/QmWGeRAEgtsHW3ec7U4qW2CyVy7eA2mFRVbk1nb24jFyks", key: "foo")
{:ok,
  %ExIpfsIpns.Name{
    name: "k51qzi5uqu5dhxwb3x7bjg8k73tlkaqfugy217mgpf3vpdmoqn9du2qp865ddv",
    value: "/ipfs/QmWGeRAEgtsHW3ec7U4qW2CyVy7eA2mFRVbk1nb24jFyks"
  }}

Then open your browser and browser to ipns://k51qzi5uqu5dhxwb3x7bjg8k73tlkaqfugy217mgpf3vpdmoqn9du2qp865ddv/

Your browser does support IPFS, doesn't it? :-)

Link to this function

resolve(path, opts \\ [])

View Source
@spec resolve(Path.t(), list()) :: {:ok, any()} | ExIpfs.Api.error_response()

Resolve IPNS names.

Parameters

name - IPNS name to resolve.

Options

https://docs.ipfs.io/reference/http/api/#api-v0-name-resolve

[
  recursive: <bool>, # Resolve until the result is not an IPNS name.
  nocache: <bool>, # Do not use cached entries.
  dht-record-count: <int>, # Number of records to request for DHT resolution.
  dht-timeout: <string>, # Maximum time to collect values during DHT resolution eg "30s".
  stream: <bool>, # Stream the output as a continuous series of JSON values.
]