►
Description
w3name: IPNS republishing as a service - presented by @alanshaw at IPFS þing 2022 - Connecting IPFS - https://2022.ipfs-thing.io
A
So
this
is
a
talk
about
w3
name:
it's
our
ipns
republishing
service,
that's
currently
available
on
web3.storage.
This
is
just
how
it
works.
At
the
moment,
it's
been
like
that
for
a
while,
but
yeah
you
can.
You
can
go
on
a
web
3.storage,
look
at
the
docs
and
use
it
use
it
right
now,
if
you
like,
I'm
just
going
to
tell
you
a
little
bit
about
it,
so
yeah
ips,
it's
a
way
of
adding
kind
of
mutability
to
ipfs.
A
Ipfs
does
immutable
really
well,
and
it
even
has
like
to
add
this
mutability.
It
has
a
thing
called
mfs,
which
is
essentially
this
thing
which
allows
you
to
sort
of
manipulate
a
dag,
as
you
add
new,
add
new
things
to
it
or
take
things
away
from
it
and
that
kind
of
gives
you
the
illusion
of
kind
of
mutability.
But
what
it's
doing
is
creating
a
new
thing
each
time
and
you
get
a
different
cid.
A
So
if
you
share
like
a
cid
of
a
dag
with
someone
and
then
you
change
it
and
you
get
a
new
cid
you're
gonna
have
to
share
that
new
cid
for
them
to
see
those
updates
that
you
made,
and
so
wouldn't
it
be
cool.
If
there
was
like
a
cid
that
you
didn't
have
to
kind
of
ch
that
didn't
change
when
you
changed
the
the
dag.
Well,
that's
ipns
so
kinda!
A
So
here
we
go
a
little
bit
background
on
ips.
If
you
don't
don't
know
about
it
like
it
all
starts
with
kind
of
cryptographic,
keys,
public
key
and
a
private
key.
The
public
key
is
the
old
looking
one
and
the
private
key
is
the
shiny
gold,
one
which
is
a
special
one,
which
you
shouldn't
share
with
anyone.
A
And
so
just
clear,
this
is
the
same
sort
of
keys
that
you
that
you
kind
of
typically
work
with
in
with
ipfs.
So
when
you
iqfs
in
it
you'll
get
a
key
generated
for
you
and
you
can
list
it
out
like
that
and
it's
called
called
self
by
default.
And
then
you
can
generate
your
own
key
and
call
it
my
key
and
you
get
a
new
one,
and
just
these
are
just
the
same
sort
of
keys.
You
work
with
with
ipfs
just
to
be.
B
A
And
so
ipns
records,
how
do
you
create
them?
Well,
you've
got
some
data
and
what
you
do
is
you
just
sign
it
with
the
private
key?
But
what
is
what
is
the
data?
Well,
the
data
is
like
a
cid,
a
sequence
number
expiry
information,
some
other
junk.
A
No,
I
can't
remember,
but
it's
not
really
important
but,
like
you
can
think
of
an
ips
record
as
a
mapping
between
like
a
cid
or
an
it's
actually
like
an
ipfs
path
and
a
c
so
a
public
key
and
a
and
a
cid.
So
this
is
the
public
key.
This
is
the
cid
and
the
cool
thing
about
ipns
records
is
that
they
can
change
over
time.
A
You
can
revise
them,
so
you
can
basically
say
this
key
now
points
at
this
new
cid
a
little
bit
later
in
time,
so
yeah,
that's
that
so,
typically
in
ipfs,
you'd
publish
your
your
ipns
records
to
the
dht
or
over
gossip
sub.
A
What
we
have
in
web3.storage
is
this
a
simple
kind
of
simple
mutability
kind
of
api
which
allows
you
to
create
your
ipns
records
and
and
post
them
off
to
the
api,
and
so
you
create
them
and
post
them
off,
and
it
means
you
don't
have
to
run
your
own
ipfs
node,
which
can
be
good
in
like
web
applications,
maybe
in
like
mobile
when
you've
got
like
resource
constraints
or
iot
kind
of
situations
stuff
like
that.
A
So
what
you
do
is
you
create
your
record
and
you
post
it
off
to
the
url
that
corresponds
to
your
public
key,
so
that
guy
and
then
yeah
once
you've
posted
it
off
to
web3.storage.
A
You
can
get
the
latest
revision
using
like
a
http
get
and
it
will
give
you
back
the
current
ips
record
for
that
public
key,
that's
kind
of
cool
because,
like
you
know
it
might
have
changed
since
the
last
time
you
asked,
or
you
might
have
not
got
it
yet
so
it's
good
to
be
able
to
get
the
resolve
the
current
version.
So
so
that's
good!
But
how
do
you
know
when
the
record
changes?
A
Well,
because
you
might
not
be
the
one,
that's
actually
publishing
that
change
to
someone
else,
you're
just
kind
of
consuming
it,
maybe
well.
We
have
a
websocket
for
that.
So
you
can
listen
on
the
websocket
for
on
particular
keys
and
get
pushed
an
update
or
the
new
ips
record
as
it
gets
published.
So
that's
cool!
You
know.
The
record
is
good.
A
That
comes
down
the
line
because
it's
been
signed
by
the
author
and
you
can
also
like
validate
newness
based
on
like
if
you
have
an
existing
one,
you
can
compare
them
and
make
sure
the
sequence
number
is
greater
and
expiry
date,
et
cetera,
yeah.
So
does
that
that's
rad?
And
if
that's
not
enough,
then
what
we
also
do.
Is
we
publish
these
records
that
we
receive
to
the
dht?
A
So
these
names
are
resolvable
by
anyone
running
an
ip
ipfs
node
and
even
at
ipfs
gateways,
which
is
kind
of
cool.
You
can
just
type
ips.I,
o
slash,
ipns,
slash
key
and
it
will
resolve
the
name
to
the
latest
version.
Get
that
ipns
record
and
also
resolve
that
cid
to
whatever
data
it
is
and
serve
it
back
to
you,
which
is,
which
is
super
useful
cool.
So
this
is
a
that's
it
by
the
way.
That's
the
that's
the
that's
the
simple
mutability
api
that
we
have.
A
This
is
a
demo
of
a
like
a
dram
relay,
and
so
drand
is
a
distributed.
Randomness
beacon
every
30
seconds
it
emits
new
randomness
for
people
to
consume.
They
have
multiple
nodes,
collaborating
together
to
generate
this
randomness
and-
and
so
all
this
demo
is
is.
This
is
a
relay
that
updates
an
ips
record
with
the
new
randomness
value
as
it
gets
emitted
from
from
dram.
So
how
does
that
work?
A
Well,
all
we
have
is
this
kind
of
relays
vm,
just
it's
just
a
script,
that's
listening
to
dram
randomness
and
every
30
seconds
it
will
receive
that
randomness
and
it
kind
of
looks
like
this.
Every
randomness
has
like
a
round
number
which
is
sort
of
the
id
for
the
randomness,
the
randomness
value,
which
is
this
and
the
signature
which
typically
the
client
you're
using,
will
validate
that
for
you.
But
it
means
that
you
can
ensure
that
the
randomness
came
from
the
chain
that
you
expect
it
to
be
coming
from.
A
So
that's
good.
So
anyway,
once
we've
got
some
new
randomness
every
30
seconds.
What
the
relay
does
is
actually
puts
that
data
on
web3.storage
and
when
web3.storage
does
it
gets
it,
it
does
what
it
normally
does
and
it
creates
a
deal
on
filecoin
stores
that
data
it
puts
it
on
elastic
ipfs,
and
then
we
have
a
cid
for
that
new
randomness.
A
Once
we've
got
that
cid,
we
can
create
a
new
revision
of
our
ipns
record,
saying
that
this
key
now
points
to
this
new
random
value,
and
once
we've
created
that
record,
we
placed
it
off
poof
into
wherefree.storage
and
it
does
what
it
does
and
it
takes
it
puts
it
into
the
ipfs
network
so
that
it's
resolvable
by
any
node
on
the
network
and.
A
So
yeah,
that's
it
that's
how
it
works
and
it's
actually
running
so
we
can
take
a
look
if
we
open
up
this.
Oh
no,
my.
A
Yeah
it's
so
it's
open
source
on
github,
so
you
can
just
check
it
out.
I've
got
a
key
running
in
production,
it's
a
demo
so
for
this
key
you
can
actually
go
and
ask
web3.storage
api
for
the
current
ips
record
for
this
key,
and
if
I
make
that
a
little
bit
bigger
here,
we
go
so
the
value
here
is
just
for
convenience,
because
if
you
want
to
pick
it
out,
this
is
this
record.
Here
is
the
actual
ips
record.
You
can
pick
out
that
value
from
the
record.
A
This
particular
cid,
and
it
should
return
me
the
randomness.
A
So
sometimes
the
gateway
is
not
too
happy.
So
here
we
go
this.
This
is
the
current
round.
Seven,
so
you've
got
790..
So
I'm
going
to
try
this
out.
So
if
you
go
to
d
dram,
dot
love,
this
is
the
official
dram
website.
Oh
hello,.
A
There
we
go
yeah,
so
seven
night,
793,
okay,
so
that
was
reasonably
that's
my
mouse
gone.
Is
there
here
there
we
go.
So
this
is
the
current
the
current
value
I
think
we
just
put
in
790,
so
we
were
like
free
off
okay
so
anyway,
but
the
cool
thing
is,
I
think,
is
if
we,
if
we
actually
take
that
ips
key,
we
should
be
able
to
do
the
same
thing.
A
B
A
Go
and
it
will
resolve
that
current
current
value
for
the
ips
record.
It's
like
one
behind,
but
I
don't
know
how
ips
resolution
works.
We
need
quorum
and
anyway.
A
So
that's
that
that's
that's
ipns
publishing
over
api
and
putting
it
in
ipfs
network
and
then
resolving
it
and
also
resolving
ipns
records
from
ipfs,
and
so
you
can
do
that
also
from
like
any
ipfs
mode
that
you've
got
running
and
that's
my
talk.
Thank
you
for
listening.
A
In
so
we
have
a
js
client
for
this,
which,
which
is
useful
information.
I
didn't
tell
you,
and
so
it
adds
like
a
far
future
expiry
date.
It's
like
a
year
or
something
we
do
republish
these,
the
the
I
can
s
records
to
account
for
like
network
churn
and
so
yeah,
it's
kind
of
your
no.
I
don't
have
a
specific
like
recommendation.
I
think
the
the
default
is
like
24
hours
or
something
in
ipfs,
but.
B
A
Seconds
I
should
shorten
the
expiration
yeah,
that's
a
good
point,
but
yeah
like
essentially
it's
kind
of
your
responsibility
to
put
a
good
exploration
on
it.
I
guess.
A
Yeah
future
stuff
is
kind
of
you
can't
perhaps
there's
also
like.
I
saw
the
other
day
that
there's
this
new
reframe
protocol
that
has
ips
methods
which
would
be
cool
to
support
as
well
as
what
we
have.
A
Has
anyone
used
this
yet,
like
I
don't
know,
we've
got
like
500
or
so
I
can
s
records
that
and
that's
just
individual
records
but
like
they
can
get
obviously
updated
with
new
sequence
numbers
every.
So
often
I
don't
know
how
many
actual
updates
we've
had
off
the
top
of
my
head,
but
I
think
we've
got.
A
A
B
B
A
The
in
the
republisher
node,
I
can't
remember,
is
it
on
by
default
in
in
go
nodes
right,
yeah
yeah,
so
we
should
turn
it
on.
B
A
B
A
B
Whenever
you're,
like
just
run
a
server,
people
aren't
gonna
use
it
so
like
okay,
if
we
could
host
these
and
then
there's
like
a
consensus
mechanism
because
you're
sending
it
to
this
one
service,
then
maybe
people
will
use
it
and
then,
after
you've
been
building
it
out.
It's
like
there's
some
other
issues
like
even
once.
You
have
the
service.
B
A
I
mean
it's
super
because
of
because
of
the
local
cache
that
we
have
in
web
3d
stories
that
the
centralized
thing
is
super
reliable.
I
guess,
as
far
as
centralized
things
are
the
ips
thing
I
mean
we
haven't,
made
any
progress
in
making
that,
like
we
haven't,
done
any
changes
or
fixes
to
make
that
more
reliable.
As
it
is
aware,.
B
A
I,
like
I
know
the
ips
resolution
like
has
from
talking
to
erdeen,
that
that
that
process
has
got
a
lot
faster
since
a
while
ago,
so
yeah
there
have
been
improvements
there.
I
think
I
don't
know
exactly
what
they
are.
B
A
A
If
you
have
a
long
expiration
time,
then
I
like
the
the
only
danger,
I
think,
is
that
you
can't
just
publish
it
and
forget
about
it
because
of
like
the
the
peers
that
you
put,
that
information
on
might
drop
out
the
network
and
then
no
one
will
be
able
to
resolve
it.
So
like
it's,
it's
that,
like
balance
of
like
how
he's
gonna
actually
be
able
to
send
it
back
to
you
yeah.
I
don't
know
if
there's
any
other.