►
From YouTube: Steven Allen, Protocol Labs – IPLD data in Wasm
Description
Speaker: Steven Allen, Protocol Labs, IPLD
Topic: Operating on IPLD data in WASM
IPLD https://ipld.io/
Protocol Labs https://protocol.ai/
Wasm in Web3 workshop https://avive.github.io/wasm_on_the_blockchain_2021/#/
A
So
yeah
I'm
currently
working
on
trying
to
match
up
ipld,
which
is
the
interplanetary
link,
data
system
and
awesome.
Basically,
ipld
is
a
system
for
I
guess
it's
abstraction
over
merkel,
trees
or
working
like
data.
They
like
basically
allows
you
to
like
work
with
multiple
different
types
of
data
like
jet
or
ethereum
or
bitcoin
blocks,
or
even
like
just
arbitrary
dogs
of
json.
A
You
can
work
together
by
a
hash
in
a
standard
way,
so
we
use
this
to
like
have
standard
transports
to
operate
over
where
they
can
transfer
and
sync
trace
between
local
computers.
We
also
use
this
to
like
write
little
selectors
over
data,
where
you
can
actually
query
video
language.
We
also
have
languages
for
sorry.
We
also
have
languages
for
describing
different
resources
and
types
and
out
there
that
kind
of
stuff.
Okay,
so
that's
what
I
feel
deals.
A
A
Instead,
you
operate
over
ipl
data,
so
it's
actually
giving
these
structure
types,
but
it's
cool
because
it
actually
lets
you
sort
of
like
look
to
an
entire
like
tree
of
data,
which
is
not
something
that
you
using
otherwise
and
basically,
you
take
the
function
to
take
an
input
cid,
which
is
a
quantum
type,
and
you
have
an
output,
cid
or
an
output.
A
If
you
want
to
have
a
method
or
define
a
method,
you
would
take
in
an
input
state
and
an
input
parameters
as
again
objects,
and
then
you
spit
out
a
new
state
and
a
new
output.
So,
for
example,
we're
planning
on
using
this
to
define
a
virtual
machine
for
yeah
we're
also
planning
having
epm
support
yeah.
Can
you
actually
hear
me
where
is
it
yeah,
but
there
is
some
like
beeping
sound
on
the
background
and
it's
quickly
walking
down
the
street.
I'm
really
sorry,
no
worries.
A
That's
a
digital!
Nomad
live,
we
know
it
yeah.
Sorry,
this
is
going
to
be
live.
Okay
show
us
some
some
of
the
views
of
the
city.
Okay,
so
hopefully
it's
a
little
bit
better.
Let
me
go
I'm
running
okay.
A
Hopefully
that's
a
bit
better!
Now,
construction.
Okay,
again,
I'm
really
sorry
about
this
yeah.
So
so,
basically,
yeah
like
our
goal,
is
to
build
a
something
vm
on
top
of
this,
but
our
goal
is
also
to
be
able
to
use
this
for
like
like
happy
fest
in
general.
A
So
like
we
already
have
this
problem
and
I
think
that's
where,
like
we
have
to
like
you
kind
of
have
to
bake
everything
into
the
protocol
where
instead,
we
would
actually
shift
code
to
people,
so
our
goal
is
to
be
able
to
basically
ship
wasn't
modules
as
I
build
the
objects,
exactly
truths
and
transfer
them
with
function
or
dressing,
and
they
can
just
buy
things
later.
That's
not
entirely
the
point
of
this
talk,
which
is
next
slide.
Please.
A
Yeah,
so
this
is
trying
to
cover
like
why
we
want
to
do
this
again.
What
I
talk
about
here
is
like
with
ipld
data,
it's
all
network
transparent,
because
everything
is
always
serialized,
it's
a
bit
of
a
problem
as
well,
but
it
means
like
you,
can
have
these
functions
and,
like
your
methods
like
like
at
every
point,
you
always
have
the
serialized
data.
You
can
always
translate
between
nodes.
A
It's
also
recently
efficient
in
certain
cases
where,
for
example,
because
like
you
can
link
to
other
objects,
only
the
change
data
needs
to
be
transferred.
So,
like
you
can
have
you
can
point
to
a
very
large
things
same
with
ethereum.
You
can
point
to
your
state
tree.
If
you
only
actually
like
move
around
to
change
pieces,
the
other
cool
thing
is
like.
A
If
you
have
proper
support
in
your
vm,
you
could
laserly
load
code
so,
for
example,
a
module
that
makes
another
module
by
cid
and
it
can
lastly
load
the
code
on
demand
as
necessary.
A
Finally,
yeah
you
can
pass
on
large
databases
about
copying,
so
whatever
hopes
here
is
like
I
can
have
my
smart
contract.
My
smart
contract
can
call
someone
else's
smart
contract
and
like
pass
in
some
sub
dag
in
the
state
have
that
smart
contract
operate
on
the
subject
of
the
state
and
then
return
like
the
transform
tag.
A
The
evm
supports
right
now,
where,
like
I,
can
call
someone
with
a
delegate
call,
but
then
I
give
them
full
access
to
everything
where
I
can
send
them
data
and
then
receive
the
data
back,
but
then,
like
I
have
like
pay
for
sending
everything,
but
in
this
case
I
can
kind
of
say,
look,
there's
a
reference
to
all
of
my
data.
Do
what
you
want
for
it?
A
I
can
get
it
back,
then
I
can
verify
they
did
it
correctly
and
then
link
it
back
yeah,
it's
secure
because
everything's
content
addressed,
I
see
id
everything
is
also
structured.
Unlike
unstructured
data
like
like
digital
arbitrary
bytes,
so
you
can
actually
explore
the
data
understand.
It
depends
on
what
you're
calling
draw.
That's,
that's
really
why
next
slide
please,
but
why
not
is
inefficiencies?
Everything
is
always
serialized
and
always
hashed.
The
impact
of
this
depends
on
the
grain
of
literature
functions.
A
If
you
have
like
triangle
functions,
it's
not
going
to
work
if
you
have
to
sort
of
like
big
things
like
contracts,
it
works
better,
but
this
is
also
optimized
away
in
many
cases.
So
the
hope
really
is
that
we'll
be
able
to
find
ways
to
do
that,
but
yeah.
That
is
really
what
I
want
to
talk.