►
Description
Lotus - an IPFS blockchain node - presented by @arajasek at IPFS bing 2022 - IPFS Implementations - https://2022.ipfs-thing.io
A
Good
afternoon,
everyone
in
lovely
iceland
coming
to
you
from
toronto,
canada.
My
name
is
aishwar
shakran,
I'm
from
the
lotus
team,
and
you
know
we
heard
from
juan
already
a
little
bit
about
lotus.
A
I
do
see
that
we're
running
a
little
late,
but
the
good
news
is
that
juan
and
I
touched
on
a
lot
of
the
same
themes,
so
I
can
maybe
go
a
little
bit
faster
if
you
are
watching
this
recording
after
and
have
an
additional
15
minutes,
I'd
suggest
watching
juan's
talk
first
because
they
do
connect
together
quite
well,
but
yeah.
I'm
excited
to
speak
about
lotus.
So
thank
you.
Thank
you
for
inviting
me
to
speak
today
and
thanks
to
everyone
who
helped
put
this
event
together.
A
I'm
sure
I'm
sure
it
wasn't
easy,
so
yeah,
let's
dive
right
into
it
in
the
interest
of
time.
I
have
a
somewhat
experimental
approach
to
this
talk
and
that
I've
structured
it
entirely
based
on
some
questions
that
we're
going
to
raise,
some
of
which
we'll
get
quick
answers
to
and
others
of
which
you
know,
we'll
just
try
to
unpack
a
little
bit,
and
it's
a
somewhat
open-ended.
A
Almost
philosophical
theme
that
I'm
trying
to
deliver
here
so
jumping
into
it:
okay,
so
here's
here's
some
here's
the
questions
that
we're
gonna,
try
and
tackle
today,
some
of
which
are
easy
and
we've
already
talked
about.
So
what
is
file
coin
and
what
is
lotus
and
some
of
which
are
less
easy.
In
particular,
I
want
to
ask
the
question
of
is
lotus
and
ipfs
implementation,
which
obviously
begs
the
question
of
what
is
an
ipfs
implementation,
and
I'm
not
going
to
tackle
that.
A
I'm
assuming
that
some
of
those
conversations
have
already
happened
today
and
will
happen
over
the
rest
of
the
week.
But
that's
not
what
I'm
here
to
talk
about
the
second
question
and
this
directly
you
bring
overlaps
with
what
juan
was
talking
about.
People
often
ask
whether
filecoin
and
ipfs
interoperate
and,
as
one
said,
this
is
not
really
a
well-formed
question.
Filecoin
and
ipfs
are
both
at
the
same
time
kind
of
protocols
and
products
and
networks,
and
so
asking
whether
or
not
they're
an
interoperator
just
really
isn't
doesn't
make
the
most
sense.
A
What
we
can
ask-
and
what
we
will
talk
about
is
whether
lotus
and
kubo,
which
are
implementations
of
falcon
and
ipfs
respectively
interoperate.
I
phrase
these
as
binary
questions.
We're
not
really
going
to
get
to
a
yes
or
no
answer
and
something
because
in
many
ways
it
comes
down
to
perspective.
A
I
would
kind
of
argue
the
answers
are
closer
to
yes,
but,
like
I
said
it's
somewhat
philosophical,
what
we
will
do
is
try
and
kind
of
pull
at
some
of
these
threads
and
explore
the
nature
between
between
the
pieces
of
software
a
little
bit
more.
So
what
is
file
coin
if
you've
watched
one
stock,
you
you've
gotten
a
better
overview
of
this,
but
it's
a
decentralized
storage
network
designed
to
store
humanity's
most
important
information.
A
It
is
crypto
powered
and
for
our
purposes
today,
we'll
really
split
firepoint
into
two
pieces,
which
is
filecoin.
The
blockchain
protocol,
which
kind
of
has
these
consensus
rules
and
this
distributed
ledger.
That's
a
series
of
blocks
on
a
blockchain
and
the
second
piece
is
filecoin
as
a
storage
network
which
leverages
that
blockchain
component
in
order
to
transact
storage
and
retrieval
deals-
and
these
are
two
kind
of
fairly
separate
things
and
they
lead
to
two
separate
use
cases
in
many
ways.
A
Really
filecoin
has
a
lot
more
than
just
those
two
pieces
as
you
can
see,
but
we
won't
dive
into
that.
We
already
saw
some
stats
about
filecoin
so
with
that
we'll
jump
into
what
is
lotus
and
to
give
a
little
bit
more.
The
most
common
answer
to
this
question
and
we're
just
going
to
reiterate
on
definitions
of
lotus.
A
For
for
this
talk,
the
most
common
answer
to
this
question
is
that
lotus
is
a
reference
reference
implementation
of
the
filecoin
protocol,
it's
built
by
the
pl
entrance
team,
and
so
what
this
means
or
what
it
means
to
be
an
implementation
of
any
blockchain
protocol
really
is
that
you
need
to
correctly
implement
the
detailed
the
rules
of
the
consensus
of
the
protocol,
and
you
need
to
have
some
way
to
connect
to
the
network
and
fetch
and
receive
data.
A
So,
in
our
case,
we
need
to
be
able
to
identify
peers
on
the
filecoin
network.
We
need
to
sync
the
filecoin
blockchain
by
fetching
those
blocks.
These
are
filecoin
blocks,
not
ipss
blocks,
so
these
are
blocks
from
the
blockchain
sets.
So
we
need
to
fetch
those
blocks
and
then
validate
them
using
those
rules.
A
quick
aside
here,
that's
not
super
relevant
to
the
stock,
but
that
it
to
me
is
why
I
like
working
on
file
coin.
A
This
means
that
if
you
are
running
a
lotus
node,
you
are
verifying
the
continued
storage
of
17
epibytes
of
data
17.8
bytes
of
data
every
single
day.
So
my
desktop
right
here,
that's
running
a
lotus.
Node
is
doing
that
every
day
and
to
me
that
is
miraculous
not
relevant
to
this
stock.
A
So,
and
so
so,
primarily,
those
are
the
two
things
that
it
that
you
have
to
do
if
you
are
a
reference,
implementation
of
file
point
or
any
implementation
of
file
coin,
it's
written
in
golang,
which
is
relevant
to
some
of
what
we'll
talk
about
today
and
just
as
juan
was
talking
about
how
file
coin
and
ipfs
interoperating
isn't
a
well-formed
question
and
that
lotus
and
file
coin
are
not
the
same
thing
and
the
kubo
and
go
ipfs
are
not
the
same
thing.
A
I
just
want
to
reiterate
as
well,
because
it
is
easy
to
have
a
misconception
here.
Lotus
is
not
file.
Coin
lotus
is
tied
to
the
rules
of
the
file
point
protocol.
We
need
to
implement
whatever
the
file
coin
protocol
is,
as
does
every
other
implementation,
and
there
are
many
others,
but
otherwise
we
are
free
to
kind
of
like
exchange
data
and
identify
peers
and
so
on
in
our
own
way.
A
Okay,
so
that
that's
our
starting
definition
of
lotus
and
now
we'll
get
to
one
of
the
potentially
naughtier
questions,
which
is
whether
lotus
is
an
ipfs
implementation
and
in
order
to
unpack
this,
we'll
go
back
to
that
definition.
That
we
just
had
of
what
is
lotus.
Well,
it's
identifying
peers,
it's
syncing,
the
blockchain.
So
how
is
it
doing
these
things?
Well
in
order
to
identify
peers
in
the
filecoin
network,
it's
using
the
p2p
in
order
to
sync
the
filecoin
blockchain.
A
It
uses
gossip
sub
bitswap
and
at
least
one
other
protocol
and
we'll
go
into
that
in
a
little
bit
more
detail,
and
given
that
it's
written
in
golang,
it's
using
the
golang
implementations
of
all
of
these
modules.
Okay,
so
that's
fine!
A
So
we
can
so
now
we
have
this
new
definition
of
lotus,
that's
potentially
moving
into
somewhat
more
familiar
territory
away
from
kind
of
the
blockchain
and
crypto
side
of
things
to
stuff-
that's
closer
closer
to
home
for
for
folks
here,
so
we
can
say
that
lotus
is
a
pdp
node
that
uses
gossip
sub
to
become
aware
of
new
blocks.
A
In
the
final
coin,
blockchain
uses
a
customer
p2p
protocol
that
we
call
chain
exchange
which
just
lives
within
lotus
to
fetch
file
coin
blocks
and
uses
bitswap
to
fetch,
missing,
filecoin
blocks
and
filecard
messages,
and
if
it
sounds
like
we're
doing
the
same
thing
in
three
different
ways
we
kind
of
are-
and
I
could
go
into
more
detail
but
like
and
the
basically
you
use
these
different
approaches
based
on
what
stage
of
syncing
you're
at.
A
If
we
have
time
at
the
end,
which
I
doubt
we
will,
we
can
go
into
more
detail
there,
but
that's
not
really
the
focus
of
this
talk.
So
that's
cool,
but
there's
one
missing
piece
here
that
that
we
already
heard
about
from
juan
as
well,
which
is
that
everything
on
the
file
coin
protocol
is
iple
data.
Any
block
on
the
file
point
blockchain
is
ipl
data.
A
Any
message
which
is
kind
of
filecoin's
term
for
a
transaction
in
ethereum
parliaments
is
ipld
data,
which
means
we
can
very
slightly
tweak
this
in
an
almost
mathematical
way.
To
get
to
this
statement
now
that
lotus
is
a
little
p2p
node,
that's
basically
using
gossip
sub
and
bitswap
to
fetch
ipl
date
and
because
it's
written
in
go,
we
can
come
to
kind
of
this
thesis
statement
if
you
will,
which
is
that
lotus
uses
the
golank
implementations
of
the
ipfs
stack
to
fetch
and
share
ipld
data.
A
That
is
a
true
statement,
as
we've
kind
of
just
walked
through
whether
or
not
that
makes
lotus
and
ipfs
implementation.
I
will
allow
the
folks
at
the
con
at
the
event
to
discuss.
I
think
the
answer
is
yes.
A
So
that's
cool-
and
this
is
this-
is
lotus
implementing
the
file
coin
proto
protocol
kind
of
the
file
coin
as
a
blockchain
protocol
side
of
things
when
you
view
lotus,
as
serving
that
purpose,
it's
using
the
ipfs
stack
to
fetch
and
share
ipld
data,
but,
as
we
discussed,
filecoin
isn't
just
a
blockchain
protocol.
It's
also
the
storage
market
for
clients
and
storage
providers
to
find
each
other
and
make
deals.
A
So
we
can
start
with
a
separate
definition
of
lotus,
which
is
really
a
second
function
entirely.
That
lotus
provides
in
many
different
ways.
It
just
happens
to
be
in
the
same
piece
of
software
and
using
that
second
definition
we'll
try
to
answer
this
question
about
whether
lotus
and
kubo
interoperate,
so
that
second
definition
is
that
lotus
is
something
is
a
piece
of
software.
A
That's
used
to
store
data
on
the
file
and
storage
network
store
and
retrieve
data,
but
for
the
scoped
purpose
of
this
talk
we'll
only
discuss
storage
because
it
gets
to
the
same
thing
in
order
to
do
that.
What
does
lotus
need
to
do?
Well,
it
needs
to
identify
storage,
clients
and
providers
on
the
file
coin
network.
It
needs
to
allow
these
clients
to
import
data.
A
It
needs
to
allow
these
clients
to
transfer
the
data
that
they've
imported
to
storage
providers,
and,
once
again
I
will
reinforce
that
once
that
happens,
storage
providers
create
and
provably
create
a
unique
replica
of
this
data
and
then
prove
every
24
hours
for
the
duration
of
the
storage
deal
that
they
are
continuing
to
store,
that
unique
replica
of
that
data
and
everyone
on
the
falcon,
blockchain
and
firecoin
network
is
validating
that
which
is
cool
and
as
discussed
it's
written
in
golang.
A
So
now
we'll
apply.
The
same
process
on
this
new
definition
of
lotus-
and
I
won't
belabor
the
point
much
if
we
won't
drag
it
on
as
much
as
I
did
the
first
time.
But
how
are
we
identifying
storage
clients
and
providers
we're
using
the
p2p
where,
if
we
allow
clients
to
import
data,
what
does
that
process?
Look
like
most
folks
here
are
probably
familiar
that
involves
chunking
the
data
you're
next,
specifying
it
and
so
on
we're
allowing
clients
to
transfer
this
iple
data
to
storage
providers.
A
We
use
graphsync
for
this
in
lotus.
Technically
we
use
go
data
transfer
which
is
built
on
top
of
graphsync,
I'm
not
as
plugged
into
the
ipfs
ecosystem
as
folks
here.
So
I
don't
know
exactly
where
graphic
fits
into
the
broader
ipfs
picture,
but
this
is
a
difference
from
kubo
which,
if
I
understand
correctly,
uses
the
swap
for
this
purpose.
And
yes,
given
that
it's
written
in
golang,
it's
using
the
golang
impulse,
implementations
of
the
p2p.
A
So
so
now,
having
looked
at
lotus's
kind
of
second
purpose,
which
is
as
a
piece
of
software
to
make
deals,
we
wind
up
getting
to
the
same
statement
that
we
got
to
for
the
first
time,
looking
at
lotus
blockchain
protocol,
which
is
that
lotus
uses
the
golang
implementations
of
the
ipfs
stack
to
fetch
and
share
ipld
data,
and
that's
pretty
much
it
please
for
the
time
we
made.
I,
I
don't
think
this,
isn't
this
isn't
a
big
aha
statement
in
which
it
all
kind
of
fits
together
magically.
A
But
I
personally
get
a
lot
of
questions
about
you
know
what
the
exact
nature
of
file
coin
and
ipfs
is
whether
one's
built
on
top
of
the
other,
whether
they
interoperate
and
so
on,
and
these
are
complicated
questions
so
and
I'm
sure
that
folks
come
from
the
ipfs
side
of
things,
get
the
same
questions
because
there's
interest
in
file
coin
as
well.
So
hopefully
this
kind
of
pulls
those
pieces
apart
together
a
little
bit
more
and
offers
suggestions
about
how
how
we
can
improve
interoperability
between
lotus
and
kubo.
A
I
don't.
I
don't
know
this
for
a
fact,
but
it
would
not
surprise
me
if
there
are
teams
out
there
right
now,
working
on
trying
to
for
lotus
to
be
able
to
wire
data
over
bitswap
or
for
for
kubo
to
be
to
use
graphsync
in
order
to
achieve
greater
interoperability
there,
but
yeah.
That's
that's
my
that's.
Basically,
my
pitch
is
yeah.
Lotus
lotus
is
fundamentally
an
implementation
of
the
filecoin
blockchain
protocol.
That
is
what
we
do.
A
Those
are
our
users,
but
all
of
this
stack
is
built
very
much
using
all
of
the
software
that
we
have
is
very
much
built
on
top
of
the
golang
implementation,
the
stack
of
golang
implementations
of
the
ipfs
tech,
so
the
stuff
that
I've
already
mentioned
from
the
p2p
and
ipld
we
shamelessly
plagiarize
go
ipfs
or
the
block
store
and
car
implementations
and
so
on.
We
are.
A
We
are
functioning
in
our
own
kind
of
bubble,
but
the
question
of
lotus,
kubo
interoperability,
I'm
sure,
is
one
that
that
we'll
continue
to
discuss
and
iterate
on.
But
that's
all
I
wanted
to
talk
about
and
you
know
we're
until
10
minutes
over,
but
we
reclaimed
some
of
our
time.
There
are
questions,
I'm
happy
to
take
them
so
long
as
I
can
hear
them,
because
I'm
not
sure
if
I
can
hear
folks
in
the
audience
there,
but
that's
my
spiel.