►
From YouTube: Data Transfer: Track Introduction - Hannah Howard
Description
This talk was given at IPFS Camp 2022 in Lisbon, Portugal.
A
My
name
is
Hannah
I
work
on
the
protocol,
Labs
on
Bedrock
team
I,
help
enable
retrieval
on
filecoin
as
well
as
interrupt
between
ipfs
and
file
coin
generally.
I
spend
my
time
thinking
about
how
to
move
data
around
our
networks.
Better
and
I've
worked
on
some
of
the
core
transfer
protocols
that
and
I'm
excited
today
to
help
you
understand
the
space.
A
It's
gonna
be
a
little
bit
funky
with
the
internet
and
we'll
also
hear
about
bit
swap
from
dig
on
the
iro
team
did
just
finish.
Writing
the
newest
implementation
of
bit
swap
and
he's
going
to
share
some
highs,
and
possibly
some
lows
of
ipfs's
oldest
data
transfer
protocol.
Finally,
in
the
third
hour,
we'll
look
at
the
future
of
decentralized
data
transfer
we're
going
to
hear
from
jaropo
on
the
Kubo
team,
who's
working
on
a
new
client
for
bit
Swap
and
other
protocols.
A
Our
resident
ipld
expert
Rob
is
going
to
be
talking
digging
in
with
us
into
some
of
the
more
complex
content,
addressed
data
structures
and
talking
about
their
implications
for
data
transfer
and,
finally,
we'll
close
with
some
of
my
own
thoughts
and
ramblings
about
how
this
could
all
work
even
better
and
more
awesomer
than
it
does
today,
because
it's
very
awesome
anyway,
yeah
sorry,
diving,
deeper
future
of
data
transfer.
A
Sorry
about
that,
we
got
a
really
wonderful
lineup
of
some
of
the
smartest
folks
working
in
this
ecosystem,
I
hope
by
the
end
of
this
track,
you
will
be
as
interested
in
the
challenges
that
they
all
face,
as
I
am
as
I
personally
am,
maybe
in
the
future.
Someone
in
this
room
will
contribute
to
solving
data
transfer
on
content,
address
Networks,
so
yeah,
cool,
okay,
since
you
all
are
the
future.
A
I
would
like
to
know
a
little
bit
more
about
you,
so
a
prefix
on
this
track.
It
was
originally
planned
in
my
head
to
operate
in
a
small
room
with
about
five
to
ten
people,
as
it
turns
out
we're
in
a
a
wee
bit
bigger
room,
so
we
can't
quite
go
around
and
do
all
do
introductions
so
we're
gonna
have
to
do
a
selective
volunteering
system.
A
So
what
I
would
love
for
you
to
do
is
if
you
want
to
volunteer
and
I'm,
probably
going
to
do
maybe
five
to
ten
people
just
keep
it
reasonable
is
maybe
start
by
saying
your
name
then
tell
us
something
you
like.
That
starts
with
the
same
letter
as
your
name
starts
with
your
alliterative
Affinity.
If
you
will,
this
will
help
us
remember
who
you
are.
A
You
can
maybe
tell
us
where
you're
coming
from
and
finally
what
you
hope
to
get
out
of
this
track,
and
for
those
of
you
guys
who
just
love
your
introductions,
warning
you
got
30
seconds
total,
maybe
six!
It's
60,
I'm
gonna,
just
like
tell
our
wonderful
AV
support
folks
to
take
the
microphone
out
of
your
hands,
so
cool
yay
who
wants
to
volunteer
and
talk
to
a
room
of
100
people.
A
I
mean
I,
say
it
that
way
because,
like
let's
all
chill
out
and
be
cool
with
each
other,
and
you
know
yeah
say
hello,
raise
your
hand.
Wow
I'll
go
I'm,
Hannah
I
like
Halloween,
because
it's
coming
up
I'm
from
Los,
Angeles
California
and
what
I'm
hoping
to
get
out
of
this
track
today
is
I.
Would
love
for
someone
else
to
solve
the
problems
that
I
can't
solve.
So
this
is
sort
of
a
Outsourcing,
the
work
presentation
so
yeah,
who
else
raise
your
hand,
yay
cool?
B
Oh
so
I'm
rudiger
I,
like
rust,
I,
am
originally
from
Frankfurt
and
now
I
live
near
CBO
in
Romania,
and
I
would
like
to
get
out
of
this
track.
That
there's
something
like
this
world,
but
much
much
faster.
A
C
A
D
My
name
is
Ian
and
I
have
two
alliter
of
affinities.
Ipfs
I
feel
like
I
have
to
pick
that
one,
but
I'm
I,
like
sir
Ian
as
well.
Wonderful
actor,
I'm
coming
from
San,
Francisco
and
I
am
really
excited
to
learn
all
about
ipld
yay.
E
A
F
Everyone
I
am
Albion
I,
come
from
Kosovo
prison
I'm,
a
community
person
devrel
in
general
I
am
here
for
the
first
time
in
the
ipfs
community
and
I'm
a
volunteer
today
so
I'm
here
for
connecting
with
people.
I
would
like
to
get
to
know
more
people
who
are
doing
work
in
community
and
Engineering.
At
the
same
time,
yay.
A
A
That's!
Okay,
all
right!
Thank
you
all!
Yay,
sorry,
I,
just
hate
talking
to
faceless
rooms,
so
cool
data
transfer
and
ipfs
super
easy,
barely
an
inconvenience,
so
data
transfer
itself
is
a
concept
that
is
older
than
even
the
web.
Okay,
you
probably
can
think
of
some
ways.
We've
transferred
data
in
the
past
and
today,
HTTP
is
a
protocol
that
moves
data
around
web2.
A
There
are
so
many
other
ways
to
move
data,
though,
and
it
goes
way
back,
there's
FTP
any
version
and
if
you
know
FTP,
okay,
yay
I'm,
not
as
old
as
I,
think
I
am
a
bit
torrent.
A
Usb
thumb
drives,
anybody
remembers,
zip
disks,
yes,
floppy
disks,
yeah,
all
right,
cool,
US,
Post,
there's
lots
of
ways
to
move
data
around
so
so,
if,
if
there's
tons
of
ways
to
move
data
around
what
makes
data
transfer
unique
in
ipfs,
so
to
answer
that
I
think
we
need
to
ask
a
more
fundamental
question,
which
is
what
is
ipfs?
A
Okay
has
have
any
of
the
workshops
answered
this
so
far,
I
don't
even
know
like
I've
I've
had
to
be
working
on
my
track,
but
like
it's
kind
of
a
complicated
question
like
presumably
the
interplanetary
file
system
means
something
because
you
all
came
to
Lisbon
for
a
conference
about
it.
But
what
makes
ipfs
an
ipfs
right
so
I
could
I
could
think
of
some
things
that
are
part
of
ipfs
some
components.
A
You
tend
to
see
in
ipfs
implementations,
you've
heard
of
lib
P2P,
the
peer-to-peer
networking
stack,
Unix
FS,
the
the
a
Content
addressed
file
system.
You
might
have
heard
of
ipld
a
data
model,
maybe
bit
swap
a
transport
ipns,
a
naming
system,
maybe
you've
heard
of
the
ipfs
gateways.
Maybe
you've
heard
a
d
of
a
DHT
right.
A
You
could
say
that
ipfs
is
just
the
sum
total
of
all
these
components,
but
then,
if
you
look
around
at
the
different
implementations,
you'll
see
that
they
actually
pick
and
choose
many
of
them
try
to
support
as
many
as
they
can,
but
not
all
of
them
support
all
all
these
components
and,
in
fact,
there's
a
number
of
implementations
that
maybe
only
support
one
or
two
right.
A
So
this
is
when
you
want
to
look
to
an
authority
on
this.
Unfortunately,
our
founder
Juan
offered
a
really
good
answer
at
at
ipfs
thing.
Last
June.
He
basically
said
that
ipfs
must
work
with
content
address
data
right
in
ipfs
content.
Is
you
always
uniquely
identified
by
a
unique
cryptographic,
identifier
right
by
a
cryptographic,
identifier
that
can
verify
the
data
you're
fetching's
authenticity
with
no
additional
information
right?
This
is
this
is
known
as
content
addressing
and
it's
the
Baseline
of
ipfs.
A
If
it's
not
content
address,
it's
not
ipfs
right
by
the
way.
This
is
possible.
This
is
not
the
direct
quote,
but
you
should
feel
free
to
spread
it
around
as
if
it
is
I
like
quoting
one
misquoting
one
so
yeah.
A
So
that's
so
so
that's
so
ipfs
is
content,
address
data,
and
so
what
we're
really
talking
about
when
we
say
data
transfer
in
ipfs
we're
I
want
to
offer
a
clearer
view
that
we're
really
talking
about
content,
address
data
transfer
right
we
mean
data
transfer
for
Content,
address
data
and
what
the
and
that's
actually
pretty
important
right.
So
content
address.
How
does
content
addressing
affect
data
transfer?
To
answer
that
I
want
to
talk
for
a
minute
about
the
way
we
currently
get
data
on
the
internet
right?
A
A
Theoretically,
I
could
ask
for
I
can
ask
for
my
login
on
gmail.com,
but
if,
for
some
reason
someone
were
to
intercept
that
request,
they
could
send
me
something
back
that
looks
like
Gmail,
but
will
actually
steal
my
password
right
now.
I
have
a
piece
of
assurance
and
that's
where
that
most
websites
of
any
size
have
this,
this
certificate
of
authenticity.
We
call
it
an
SSL
certificate,
and
this
tells
me
and
also
I
can
only
get
like
you
know.
The
URL
is
a
little
bit
of
assurance
right.
A
That's
the
the
the
that
I
have
some
Assurance
in
DNS
that
the
DNS
records
point
to
the
right
place.
A
So
all
that
tells
me
and
I
is
that
I
got
my
gml
login
form
from
Google,
but
this
introduces
a
lot
of
limitations
in
how
I
request
data.
If
I
want
a
Wikipedia
article,
there's
only
one
place,
I
can
request
it
from
right
and
that's
Wikipedia's
own
website,
and
the
reason
is
because
I
have
no
other
way
to
verify
if
it
doesn't
come
from
wikipedia.com.
How
do
I
know
it's
Wikipedia
right?
A
So
when
we
transfer
content
address
data,
we
ask
for
data
via
this
cryptographic,
hash
that
uniquely
identifies
the
data
right.
We
say,
I
just
want
the
data
that
matches
this
hash
in
the
case
of
ipfs.
We
call
this
identifier,
a
sid
or
content
identifier
and
the
data
we're
downloading.
We
tend
to
call
it
a
block.
A
What
that
means
is
when
you
get
the
data
back,
no
matter
where
you
whom
you
got
it
from
you
can
verify
its
authenticity
using
the
crypto
cryptographic
hash.
We
use
to
find
it
right.
Essentially,
content
address
data
verifies
itself,
you
don't
need
anything
else,
and
this
opens
up
a
ton
of
possibilities,
particularly
around
multi-party
data
transfer.
This
is
the
potential
superpower
of
content,
address
data
transfer.
We
can
unlock
transfer
speeds
and
latency
that
are
not
just
as
fast
as
web2,
but
potentially
faster,
because
we
don't
care
where
our
data
comes
from.
A
We
can
download
from
multiple
parties
at
once,
because
the
addresses
we
use
to
get
the
data
automatically
verify
that
data,
and
we
can't
do
that
with
traditional
web.
Addressing
we
even
have
concrete
evidence
that
this
is
true
there
is.
There
is
a
an
example
of
faster
multi-party
data
transfer
that
is
faster
than
google.com
or
any
of
the
super
high
bandwidth
websites
that
are
out
there
and
that's
BitTorrent
right
in
BitTorrent.
A
You
download
movies,
obviously
legally
from
multiple
home
computers,
not
fast
computers
right,
but
you
get
it
super
fast,
because
you're
downloading
from
many
people
at
once,
and
even
in
though
individual
nodes
in
BitTorrent
are
not
that
fast.
Are
there
much
more
underpowered
than
a
high
power
server?
You
get
an
overall,
faster
speed
right,
so
we're
20
minutes
in
and
you
may
have
noticed.
I
haven't
mentioned
either
bit
swap
or
graph
sync.
A
Why
I
didn't
mention
bit
swap
very
briefly,
but
if
you're
familiar
with
data
transfer
on
ipfs,
you
know
that
these
are
the
two
most
commonly
oh
oops,
sorry
hope
I'm,
not
spending
too
much
should
yeah
go
ahead.
Sorry,
you
know
these
are
the
two
most
commonly
used.
Data
transfer
protocols
and
I
haven't
addressed
them
yet
because
I
want
you
to
think
broadly
right,
content
address.
Data
transfer
is
actually
in
its
infancy.
A
We're
just
learning
about
this
stuff
and
we
shouldn't
be
locked
into
the
solutions
we
have
already,
even
though
they're
they're
pretty
well
developed
I
think
there
are
way
better
options
out
there.
Eventually,
maybe
the
minimum
standard
to
be
content
address
data
transfer
is
simply
that
you
ask
for
the
data
by
its
Sid
and
ideally
you
should
run
some
code
to
verify
the
data
against
the
city
you
requested.
A
So
could
HTTP
be
a
Content
address
protocol?
Do
you
need
lip
P2P
to
be
a
Content
address
data
transfer
protocol
I
would
actually
argue
that
it
can
I
know.
This
is
a
bit
controversial
if
you
hit
up
any
website
and
in
that
website
either
in
the
path
or
the
subdomain
is
the
Sid
right
and
then
you
transfer
back
a
block
or
maybe
even
a
car
file.
Then
you
can
run
some
code
and
then
you
run
some
code
to
verify
what
you
got
back.
You
have
now
got
content
address
data
transfer.
A
Now,
if
you
ask
for
data
from
the
ipfs
Gateway
it
is,
is
it
content
address
data
transfer
in
a
it's
current
state?
Not
completely
because
what
you
do
is
you
ask
for
a
sid,
but
then
you
trust
the
ipfs
gateway
to
to
send
you
back
the
right
stuff,
and
you
know
that
means
you're.
Trusting
you
know,
I,
don't
know
somebody
us
protocol,
Labs,
I'm,
not
sure
I,
don't
you
know
I'm.
We
could
be
stealing
your
stuff
anyway.
A
So
so,
but
you
can
you
we're
almost
there
if,
instead
of
downloading
a
file
directly,
you
download
a
car
file,
you
can
actually
verify.
You'd
have
to
run
some
code
on
your
own
machine,
but
but
even
the
Gateway
could
be
a
Content
addressed
interface.
So
that's
the
minimum.
A
But
what
about
for
the
overachievers
right,
who
wants
to
write
the
best
data
transfer
protocol
and
get
into
like
I?
Don't
know
the
fancy
programmer
school?
If
you
want
to
write
the
best
content
address
data
transfer
system,
what
should
it
include
if
you're
making
an
implementation?
What
should
you
consider
so
this
is
where
the
mess
happens.
This
is
everything's
going
great
and
you
realize
the
oven
is
off
and
in
10
minutes,
Paulie
Paul
Hollywood
is
going
to
spit
out
your
signature
bake
and
give
you
a
give.
A
You
a
good
Talking
Tool
right,
writing.
Good
content
address
data
transfer
is
actually
quite
hard,
and
these
are
the
things
that
you're
going
to
need
to
do
to
do
it
well.
A
So,
first
of
all,
good
content
address
data
address
protocols
shouldn't
leave
verification
until
the
very
end.
Basically,
what
this
means
is
like
I
shouldn't
accept
10
gigs
onto
a
home,
computer's
hard
drive
before
checking
to
see
if
it's
the
data
that
the
user
asks
for,
and
this
changes
with
context
right.
If
I'm
I've
transferred
huge
amounts
of
data
between
data
centers,
maybe
that
that
number
could
be
much
larger.
But
generally
we
shouldn't
be
like
just
messing
around
with
you
know,
throwing
unverified
data
all
over
storage
over
hard
drives
and
other
user
storage
systems.
A
The
next
thing
you
probably
want
to
do
is
you
want
to
think
about
how
you
make
content
address,
transfer
requests.
Implementations
should
think
about
how
to
get
the
data
fast
right.
This
is
what
we
care
about,
and
it
should
figure
out
how
to
split
a
large
request
into
smaller
requests
across
multiple
parties,
ideally
avoiding
duplicate
data
and
using
maybe
locally
cached
data.
A
One
more
thing:
one
more
Pitfall:
this
is
really
more
of
a
pitfall
than
anything.
Is
that
that
that
you
can
sort
of
break
a
data
transfer
protocol
with,
is
that
both
sides
have
to
understand
the
data
you're
transferring
and
they
have
to
understand
it.
A
On
the
same
level,
this
will
become
more
clear
once
you
know
a
little
more
about
ipld
which
you'll
get
in
the
next
talk,
but
basically,
if
you
don't
both
understand
the
data
you're
transferring
and
in
the
exact
same
way,
you
may
not
be
able
to
to
move
that
data
right,
and
this
comes
up
a
lot,
especially
if
you're
trying
to
work
with
data
at
higher
and
higher
levels
of
abstraction.
Well,
you
can't
rely
on
the
other
peer
to
understand
all
of
those
levels
right.
A
Finally,
a
second
to
last,
a
good
implementation
of
content.
Address
data
transfer
should
protect
the
side
that
is
sending
the
data.
This
looks
very
similar
to
the
kinds
of
concerns
you
would
encounter.
When
writing
HTTP
servers,
you
need
to
keep
data
moving,
you
need
to
protect
resources
and
you
probably
should
try
to
figure
out
how
you're
going
to
protect
against
DDOS
attacks
and
then,
lastly,
you
need
a
plan
for
when
things
go
wrong
and
man
things
can
go
wrong.
A
Connections
can
get
dropped.
Remotes
can
be
missing
data
that
they
said
they
have.
You
can
end
up
with
all
kinds
of
race
conditions
and
consisting
consistency
issues
if
you're
doing
multi-party
transfer
and
you've
got
a
plan
for
that.
So
here
we
are
and
suddenly
things
aren't
looking
so
easily.
This
is
basically
my
expression
over
the
last
few
years
after
I
volunteered
to
write
some
transfer
protocols
for
our
stack,
but
I
believe
that
you
all
are
smarter
than
me
and
you're
going
to
figure
it
out
again.
A
So
I'm
gonna
so,
but
but
to
help
you
figure
out,
I'm
gonna,
ask
all
of
you
who
just
really
want
to
talk
about
bit
swab
and
that's
why
you
came
and
you're
like
what
the
heck
is.
All
this
meta
philosophy,
philosophical
crap,
just
wait
a
little
longer.
It's
coming.
There
will
be
lots
of
it
and
I
and
and
I
want
you
to
help
me
solve
these
problems.
So
I
want
you
to
understand
them.