►
Description
An Introduction to IPFS, its key features, and benefits.
A
That's
why
we
believe
they
must
be
safeguarded,
open
and
in
the
hands
of
the
people,
but
they
are
in
the
current
model.
So,
let's
start
with
that
problem.
Currently
the
Web
2.0
model
is
centralization
Amazon,
Google
fastly.
If
any
of
these
fail-
and
they
do
occasionally-
entire
Services
can
go
down
as
you
get
decentralized
and
further
and
further
distributed
your
services
resilience
increases
as
the
users
themselves
are.
What
are
powering
the
service
on
the
right
in
the
distributed
web?
Each
user
is
also
providing
a
piece
of
the
network
itself.
A
A
So
what's
the
solution,
how
do
we
build
a
web
that
is
distributed?
Well,
the
key
part
of
ipfs
is
that
it's
distributed.
Ipfs
is
not
the
answer
to
all
the
problems
of
the
web,
but
it
is
the
answer
to
some,
particularly
when
it
comes
to
removing
borders
and
silos
for
data
over
the
course
of
this
Workshop.
We'll
see
that
ipfs,
a
peer-to-peer
hypermedia
protocol
for
Content
addressing
is
an
important
building
block
in
this
new
web
3
generation
files
and
folders
might
sound,
boring,
but
really
they're.
Not
so
ipfs
is
the
interplanetary
file
system.
A
The
idea
being
that,
if
you're
sitting
on
Mars,
it
may
take
one
hour
for
a
request
to
go
to
and
come
back
from
Earth.
But
if
that
content
was
already
fetched
by
someone
else
on
Mars,
then
the
request
should
not
travel
all
the
way
back
to
Earth
for
it,
and
that
feature
should
be
provided
transparently
by
the
network
protocol
rather
than
by
something
on
top.
A
A
A
A
A
A
The
difference
is
just
that
they
need
to
be
downloaded
from
a
remote
location,
and
we
do
that
using
a
browser
which
will
print
pretty
things
on
our
screens
with
ipfs
we're
also
obtaining
files
from
remote
location.
However,
the
key
difference
here
is
that
we
don't
need
to
know
the
location
of
the
contact,
but
instead
what
is
called
a
Content
identifier.
A
Next,
let's
look
at
the
key
Technologies
making
this
possible
in
order
to
be
able
to
have
content
addressing.
We
need
to
create
content
identifiers
for
each
piece
of
information
that
we
want
to
put
on
the
network.
Think
of
this
as
a
kind
of
cryptographic
fingerprint
of
that
piece
of
content,
every
piece
of
content
produces
a
different
fingerprint.
A
A
This
means
that
we
can
represent
a
folder
or
even
a
full
file
system
using
a
Content
address
structure,
let's
bring
it
to
life.
As
you
see
here
on
the
left
side,
our
top
level
folder
has
a
root
content.
Id
has
two
entries
corresponding
to
two
folders
and
those
folders
have
other
entries
corresponding
to
files.
A
A
These
Merkel
dags,
used
by
ipfs,
allow
us
to
move
from
location
based
addressing
to
content,
addressing
in
a
single
step
we're
just
replacing
locations
with
the
root
CID
of
their
content.
The
subpaths
stay
the
same
one
characteristic
of
content,
addressing
that
I
mentioned
is
that
the
fingerprints
are
unique
for
any
type
of
content.
A
So
what
would
happen
if
we
wanted
to
copy
file.txt
to
the
folder
of
the
second
user?
It
means
two
things.
Firstly,
we
don't
have
to
actually
copy
the
file.
We
just
have
to
modify
the
folder
to
reference.
The
content,
two
copies
of
the
same
content
have
the
same
identifier
so
to
ipfs.
They
are
the
same
thing.
There
is
no
notion
that
the
same
content
can
be
duplicated
in
different
folders
in
ipfs,
because
it's
actually
the
same
thing
with
the
same
CID.
A
Secondly,
since
we
changed
a
folder,
the
fingerprint
of
that
folder
changed,
so
we
had
to
update
the
upper
folder
too
to
reference
the
new
fingerprint.
This
means
that
the
fingerprint
from
that
folder
changed,
resulting
in
a
new
root
CID
the
moment
something
changes.
You
get
a
completely
different
CID.
Your
previous
CID
still
references
your
previous
version
of
the
content,
which
has
not
been
changed.
A
A
So
the
first
step
when
adding
content
to
the
ipfs
network
is
to
obtain
the
content
identifiers
for
that
content.
This
can
happen
offline
at
any
moment.
Once
we
have
those
cids.
The
next
step
is
to
in
announce
them
to
the
ipfs
network,
so
they
can
be
retrieved
by
other
ipfs
peers.
But
what
is
up
here
and
what
does
it
do
so?
Peers
in
peer-to-peer
systems
are
nodes
that
are
connected
to
other
peers,
to
form
a
network
or
swarm
forget
for
a
moment
about
ipfs
and
think
about
a
group
of
people.
A
If
I
want
to
address
a
person
and
communicate,
it
helps
if
I
can
identify
them,
for
example
by
their
name.
If
we
share
a
common
language,
so
we
can
communicate
and
if
we
have
ways
to
verify
that
we
are
who
we
claim
to
be
same
with
ipfs
and
the
peers
in
the
network.
Each
peer
has
a
unique
identifier,
their
peer
ID.
This
identifier
is
linked
to
a
cryptographic
identity
which
allows
each
peer
to
communicate
securely
through
an
encrypted
Channel.
A
The
peers
in
the
ipfs
network
are
peers
which
support
a
set
of
services
or
protocols.
One
of
them
serves
to
request
certain
content
by
its
CID
from
a
different
peer
and
download
it,
but
in
order
to
get
there,
it
means
the
peers
need
to
be
able
to
discover
each
other.
The
network
transports
they
support,
be
that
TCP,
Bluetooth
UDP
and
the
services
they
can
understand.
A
This
step
is
called
content
and
peer
routing
and
is
achieved
using
something
called
a
distributed.
Hash
table,
also
known
as
a
DHT,
the
DHT
or
the
distributed
hash
table,
is
a
critical
service
that
each
peer
runs.
You
can
think
of
a
distributed
hash
table
like
a
phone
book,
except
that
everybody
helps
maintain
it.
A
It's
effectively
a
series
of
keys
paired
to
values,
kind
of
like
names
paired
to
phone
numbers
in
order
to
get
the
value
Associated
to
a
key.
For
example,
a
Content
ID,
a
peer
will
need
to
find
some
other
peer
that
is
storing
it.
The
process
consists
of
asking
other
peers
in
the
network,
who
has
the
value
for
this
key,
but
not
in
a
random
fashion.
Remember
that
not
every
peer
is
connected
to
every
other
peer
peers
with
certain
names
or
peer
IDs
are
more
likely
to
store
certain
key
value
pairs.
A
A
Id
provides
specific
cids
and
B
how
to
connect
with
their
peer
ID
peers
can
then
query
the
DHT
to
find
which
peer
ID
is
providing
which
content
IDs
peers
can
also
query
the
DHT
to
find
information
how
to
connect
to
that
peer.
Id
publishing
this
row
involves
finding
a
peer
ID,
similar
enough
to
the
content
ID
to
store
the
row.
A
In
short,
any
peer
that
wants
to
download
some
content
will
have
to
do
two
things.
First,
query
the
DHT
to
find
which
peer
ID
is
providing
the
content.
They're.
Looking
for
second
query:
the
DHT
again
to
find
information
on
how
to
connect
to
that
peer
ID
at
the
end
of
the
DHT
queries,
a
peer
knows
who
has
the
content
it
wants
and
where
to
get
it.
A
A
Once
content
is
downloaded,
the
local
peer
will
advertise
itself
as
a
provider
for
that
content
on
the
DHT,
making
it
available
to
other
peers
for
download
the
protocol.
We
use
to
download
files
is
called
bit
Swap
and
also
works
for
quick
Discovery
by
asking
all
other
neighbors
whether
they
have
the
content,
for
example,
if
they
can't
find
it
in
the
DHT
well
bit
swap
is
incredible
for
fast
distributed
transfers.
It's
generally
only
used
from
an
ipfs
node.
Sometimes
you
want
to
share
something.
A
A
A
For
example,
if
you
created
an
app
that
just
accessed
ipfs
content
over
a
single
Gateway
and
that
Gateway
goes
down,
then
your
app
is
broken
until
the
Gateway
comes
back.
Additionally,
if
you
used
a
malicious
Gateway,
you
might
not
even
know
that
you're
receiving
the
correct
data.
So
there
is
a
solution
that
was
recently
released
to
resolve
verifiability
via
car
files,
which
are
content
addressed
archives.
But
that's
for
a
deeper
talk
gateways
are
very
convenient
but
less
resilient.
It's
up
to
you
to
decide
what
works
best
for
you.
A
Well,
this
is
near
the
end,
so
come
join
our
ecosystem
to
learn
and
build.
We
have
an
awesome
Community
comprised
of
Builders
who
help
us
Foster
a
positive
and
productive
environment.
I
highly
encourage
you
to
check
out
a
resource
we
compiled
of
several
tutorials
currently
available
at
tinyurl.com,
learn
Dash
ipfs
filecoin
as
well.