►
Description
This talk was given at IPFS Camp 2022 in Lisbon, Portugal.
A
Hello,
my
name
is
Matt
Hamilton
and
I'm.
A
developer
Advocate
at
protocol
Labs
part
of
the
fem
team,
as
David
you've
said
so,
yes,
I'm,
going
to
explain
the
differences
between
fvm
and
back
allow
and,
where
kind
of
what
how
they
differ.
The
different
kind
of
use
cases
but
I'm
going
to
dive
quite
a
bit
into
fem
in
this
talk
so
can
I.
First
of
all,
ask:
can
you
put
your
hands
up
if
you
have
ever
written
and
deployed
an
ethereum
or
ethereum
style
solidity,
smart
contract
on
a
blockchain
before
a
few
okay?
Great?
A
So
that's
about
10
20
of
the
room,
so
that's
great!
So
for
those
people
hopefully,
what
you
will
see
here
is
how
easy
it
is
to
use
filecoin
as
a
Target
to
deploy
your
solidity
contracts.
For
those
of
you
who
did
not
put
your
hands
up.
You'll,
hopefully
see
exactly
the
same
thing
right
so
I'm
going
to
walk
this
right.
The
way
through
from
start
to
end.
A
So
in
this
talk,
I'm
going
to
be
switching
between
slides
and
explaining
what
the
fem
is
and
I'm,
also
going
to
demo
Gremlins
on
my
side
be
doing
a
complete
live
demo
of
deploying
an
ethereum
smart
contractor
So.
Currently,
falcoin
is
known
for
being
a
decentralized
storage
and
retrieval
Network,
providing
about
17
exabytes
of
storage
capacity
and
over
several
thousand
nodes.
But
that's
really
just
the
start.
Storage
is
just
the
start,
and
this
has
been.
A
A
That
is
where
the
likes
of
battle
come
into
play,
which
is
when
you're
dealing
with
the
actual
data
off
chain,
and
that
is
the
the
actual
data
sort
on
ipfs
and
or
potentially
on
on
filecoin
Via
services
like
S3,
for
example,
so
fem
provides
the
ability
to
interact
with
the
state
of
the
data.
Now
David
presented
a
slide
earlier
on.
A
That's
again
been
sort
of
mentioned
by
people
like
Juan
Benet
earlier
on
talking
about
how
far
coin
layer
one
can
be
a
really
useful
place
to
then
start
building
layer,
2
networks
on
top
and
a
lot
of
those
layer.
2
networks
could
be
built
on
top
of
filecoin
built
on
top
of
the
the
filecoin
virtual
machine.
A
So
what
sort
of
things
might
you
want
to
build
with
regards
to
this
there's
a
number
of
ideas,
just
kind
of
shown
up
here
that
may
give
you
some
ideas
of
the
sort
of
things
that
you
could
build,
but
it
could
be
things
like
data
dowels,
where
people
contribute
together
to
a
Smart
contract,
to
fund
the
storage
of
data
that
may
even
then
lead
into
things
like
paying
for
off-chain
computation
via
bacalal,
for
example.
A
So
a
smart
contract
could
be
used
to
automatically
renew
that
storage
deal
or
provide
additional
replication.
So
you
might
say,
I
want
this.
Data
stored
in
five
different
locations
and
a
smart
contract
might
monitor
that
notice
that
one
of
them's
gone
off
and
renegotiate
another
one
to
bring
you
back
up
to
the
replication
you
so
desired.
A
Thank
you.
So,
on
the
technical
front,
when
fem
was
first
envisaged,
it
was
designed
to
be
a
kind
of
host
multiple
run
times
and
it
was
inspired
by
things
like
hypervisors
virtual
machines,
the
Unix
kernel,
the
actor
model,
so
actually
smart
contracts
on
Falcon
are
actually
called
actors.
A
And
this
is
what
the
fem
looks
like
at
the
moment.
It's
a
wasm
base
a
webassembly
based
polyglot
designed
runtime,
so
you
can
write
smart
contracts
in
various
languages
like
rust,
go
web
assembly
script
that
compile
down
to
webassembly
to
run
natively
or
you
can
use,
for
example,
what
I'm
going
to
demonstrate
today,
which
is
the
filecoin
ethereum
virtual
machine,
fevm
fevum
that
allows
you
to
run
solidity.
Smart
contracts
and
we've
got
certain
things
on
here.
A
All
data
is
stored,
for
example,
ipld
native
we
have
foreign
addressing
support,
so
you'll
see
in
a
bit
how
we
address
and
map
ethereum
addresses
to
file
coin
addresses
and
we've
got
things
like
resource
metering.
So
we
instrument
the
wasm
code
in
order
to
calculate
the
amount
of
gas.
That's
needed
the
amount
of
currency
that's
needed
to
pay
for
that
execution.
A
So,
in
terms
of
a
bit
of
a
roadmap
here
so
shipping,
the
fem
is
a
is
a
is
a
hard
task.
It
transforms
the
entire
execution
layer
of
filecoin
and
so
we're
doing
this
in
stages.
Earlier
in
July,
there
was
a
skier
upgrade
which
we
deemed
as
M1
Milestone,
one
which
is
a
non-programmable
fem
and
that's
installed
in
the
mainnet.
So
yes,
you
heard
that
right.
Fdm
is
actually
running
in
production
at
the
moment
on
the
main
net
of
falcoin.
A
A
So
then,
the
thing
that
we're
working
on
now
is
Milestone
M
2.1,
which
is
the
ethereum
the
evm
runtime
on
fem.
We
have
a
test
net
online
testing,
it's
called
wallaby
and
we
have
a
hackathon
with
several
hackathons
going
on.
We've
actually
got
a
hack
day.
I'll
talk
a
little
bit
about
this
actually
going
on
right
now
and
we
have
a
hackathon
in
in
November,
and
the
plan
is
for
mainnet
to
launch
estimated
February
next
year.
A
So
the
whole
idea
of
this
is:
we
have
implemented
evm
compatibility
for
filecoin,
so
that
means
you
can
use
all
of
the
ethereum
tooling
or
the
same
tooling.
That's
used
for
ethereum
development,
the
same
Ides,
the
same
development
tools,
the
same
programming
language
and
deploy
to
filecoin.
So
again
this
goes
back
to-
and
this
reiterates
on
this
on
the
same
kind
of
topic
that
David
was
talking
about
about
meeting
users
where
they
are
right.
A
So,
and
just
before
we
arrived
in
Lisbon
literally
a
few
days
ago,
the
very
first
transaction
was
completed
on
falcoin,
using
metamask
and
I'm,
going
to
demo
that
as
well.
For
those
that
don't
know,
metamask
is
a
web-based
wallet.
That's
used
pretty
much
ubiquitously
throughout
the
ethereum
ecosystem.
A
So,
whilst
we're
there
I'm
going
to
demo
demo
this
and
what
I'm
going
to
start
with
is
so
we
start
with
metamask.
I
have
actually
installed
this
and
you
see
a
little
metamask
icon
up
here
in
my
browser
and
all
I've
done
is
just
straightforward,
installed,
metamask
and
as
far
as
it's
concerned,
we're
looking
at
an
ethereum
Network.
A
So
the
first
thing
we
need
to
do
is
configure
it
to
look
at
wallaby
our
filecoin
test
net.
There's
a
website
called
chain
list
chain
list.org
and
it
lists
a
whole
bunch
of
different
blockchains.
So
I
can
go
into
here
and
I
can
type
in
filecoin
and
I
can
enable
test.
Nets
and
I
can
pick
wallaby
from
there.
So
I
hit,
connect,
wallet
and
metamask
comes
up
and
asks
me
to
approve
it.
A
I
say
yes,
I
say
connect
and
it
connects
and
we
go
back
to
here
and
I
can
click
add
to
metamask,
and
it
has
found
it's
a
little
small
there
to
see.
But
it's
found
all
the
details
about
the
wallaby
Network,
so
what's
called
The
Chain
ID,
which
tells
you
which
blockchain
you're
referring
to
the
network
URL.
A
A
I
need
to
go
to
the
Explorer
and
paste
that
address
in
there
and
convert
it
a
little
small
here,
but
convert
it
to
a
filecoin
address
which
is
down
there.
So
we're
just
going
to
copy
that
and
go
to
What's
called
the
test
net
faucet.
So
this
is
a
service
that
will
deliver
me.
Some
filecoin
tokens
in
order
to
execute
I
have
to
prove
I
am
a
human.
A
A
A
If
anybody
was
here
at
the
retrieval
Summit
a
few
days
ago,
there's
some
companies
there's
a
company
called
magmo
who
are
there
demonstrating
what
talking
about
what
they're
doing
with
building
payment
State
channels
on
top
of
the
filecon
virtual
machine
and
talking
to
George
knee
from
magmo,
he
said
they're
an
ethereum
house,
and
this
makes
it
easy
for
them
to
basically
take
everything,
they've
developed
in
ethereum
and
just
Port
it
straight
over
to
filecoin.
A
And
all
of
this
is
made
possible
by
the
fem
team,
so
this
is
this:
is
them
here
I'm
standing
on
the
shoulder
of
giants
here?
I
just
get
to
demo
all
the
cool
stuff
that
they
have
they
have
built.
So
let's
go
back
to
our
our
Network
here,
let's
go
back
to
and
we
will
see.
Hopefully,
yes,
we
have
5000
t-fills,
so
that
has
delivered
some
currency
to
us.
So
we
now
have
some
currency
to
pay
for
the
deployment
of
the
smart
contract.
We're
going
to
deploy
so
there's
a
tool
called
remix.
A
It's
a
web-based
IDE
for
developing
smart
contracts
on
ethereum,
and
so
this
is
all
just
bog
standard,
ethereum
stuff,
there's
nothing
filecoin
specific
here.
What
I'm
going
to
do
is
create
a
new
workspace.
I
choose
a
template
and
I'm
going
to
choose:
what's
called
an
erc20
contract.
That
is
the
type
of
contract
that
is
used
to
represent
tokens
on
the
network.
A
So
you
might
have
heard
things
like
usdc
represented
on
on
networks
or
other
other
cryptocurrency
tokens
we're
going
to
create
an
erc20
token
on
our
Network,
so
I
click
OK,
and
it
gives
me
a
bunch
of
boilerplate
here
so
I
probably
should
have
tried
to
get
a
lavalier
mic,
but
there's
a
few
things
we
need
to
change
here
before
I
deploy
this
first
of
all
I'm
going
to
create
a
new
token
and
make
it
bigger
yep
there
we
go
so
I'm
going
to
create
a
token
here
and
I'm
going
to
call
it
my
c
o
d
token
and
I'm
going
to
give
it
the
currency
symbol
Cod,
because
this
is
a
token
we're
going
to
use
to
pay
in
future
David
for
your
Cod
jobs
right,
for
example.
A
Maybe
who
knows
but
I'll
go.
Do
that
and
I
hit
the
compile
button
and
one
of
the
things
it's
going
to
do
is
pull
in
a
bunch
of
dependencies.
Now
I
said
this
is
just
box
standard,
vanilla,
ethereum
solidity.
We
support
most
things.
There
there's
two
things:
we
do
not
yet
support
as
of
this
exact
moment
in
time,
but
possibly
will
do
by
the
time.
Well
the
speed
that
the
team
are
going,
possibly
by
the
time.
A
I
finish
speaking,
but
probably
you
know
in
a
week
or
two
time-
and
that
is
events
and
logging
are
the
two
things
we
don't
support.
So
in
order
to
get
this
to
work,
I've
just
got
to
go
in
and
find
the
lines
of
code
that
emit
an
event
and
just
delete
them.
So
there
are
four
occurrences
in
this
file.
A
A
A
A
Sorry
I'm
on
the
wrong
screen,
so
it's
currently
selected
to
use
a
like
a
dummy
environment,
I'm
going
to
choose
to
inject
the
provider
from
metamask,
because
we've
configured
metamask
already
for
filecoin
I
click.
Next
I
click
connect
that
connects
and
we're
now
pointing
to
filecoin.
As
you
can
see,
it
says,
we've
got
five
thousand,
it
thinks
it's
ether,
it's
not
it's
t-fill,
but
we've
got
5000
tokens
there
and
I'm
going
to
hit
deploy
to
deploy
a
contract.
A
A
So
that'll
take
a
couple
of
moments:
I'll
come
back
and
show
you
the
lovely,
fantastic
fem
team
that
have
been
building
everything
that
are
great
and
they're
here.
Actually
at
the
event,
if
you
want
to
have
a
chat
to
them,
they'll
be
around
most
of
the
next
week
or
two
and
we're
actually
having
an
event
running
right
now,
a
hack
day
at
another
location,
I'm
going
to
be
going
straight
from
here
over
to
to
there,
but
there's
a
I
think
it's
in
the
program.
A
There's
the
fem
open
hack
day,
if
anybody's
interested
in
coming
along
to
that
and
meanwhile,
while
that's
running
as
well
I'm
going
to
talk
about
there's
a
starter
kit,
so
I
showed
you
remix
just
then
the
web-based
ID
another
popular
tool
that
people
use
is
hard
hat
and
my
colleague
Zach
has
created
a
hard
hat
starter
kit.
So
there's
a
starter
kit
there
on
GitHub
that
you
can
clone
and
you
can
then
deploy
there
and
there's
a
QR
code.
That'll.
Take
you
there.
Let's
see
how
we're
getting
on
is
this
still
going?
A
We
also
have
a
forum,
fem
forum,
and
you
can
go
to
that.
Forum
there
and
QR
code
will
take
you
there.
Fdm
hyphen
form
dot
filecoin.io.
If
you
have
any
sort
of
questions
and
discussions,
I
mean
I
can
answer
stuff
after
this
or
maybe
while
some
things
are
running,
but
there's
some
place,
you
can
go
as
well
there
right.
This
has
completed
down
the
bottom
here,
there's
a
message
saying
it's
completed
and
if
I
go
to
the
left
and
scroll
down,
we
see
deployed
contract
and
when
I
open
that
up.
A
What
I
have
here
are
all
of
the
methods
I
can
call
on
my
contract.
So
the
first
thing
I
want
to
do
is
I
want
to
mince
some
of
these
tokens.
So
I'm
going
to
Mint
I
want
an
address
to
send
it
to
so
I'm.
Just
going
to
copy
my
address
here
again
and
paste
that
in
there
and
now
there
are
I
believe
18
decimal
places
of
precision
here.
So
I've
got
to
specify
this
one,
two
three
four
five:
six,
seven,
eight,
nine
ten
18
and
then
a
couple
more
because
I
want
100.
A
Metamask
comes
up
to
allow
me
to
sign
it
and
I'm
paying
for
the
transaction
in
the
native
currency
in
the
filecoin
token
or
TT
filter
test
Falcon
token,
and
that
is
now
submitting
that
to
the
network.
So
I'll
have
just
another
little
weight,
while
that
is
actually
generating
those
tokens
so
minting
those
tokens
on
the
network
as
an
initial
process
and
sending
them
to
my
account
now.
A
My
metamask
account
here
doesn't
know
what
tokens
it
wants
to
look
at,
because
on
the
on
a
blockchain
there
could
be
a
effectively
a
you
know,
an
infinite
number
of
tokens,
so
I
need
to
tell
it
which
tokens
I'm
interested
in
and
if
I
click
on
assets.
A
Unfortunately,
I
can't
make
this
bit
bigger,
but
hopefully
you
can
see
click
on
assets
here,
and
it
says:
I
have
499
000
and
change
t-fill,
because
I've
just
spent
a
bit
to
run
my
contract
now,
I
want
to
I,
have
to
click
down
the
bottom
Imports
token
and
I
need
the
contract
address,
so
I'm
actually
going
to
copy
that
from
remix
as
a
contract
address.
There
just
need
to
go
back
to
there
assets
import
and,
if
I
paste,
that
in
it's
already
found
it
Cod.
So
it's
looked
on.
A
The
network
found
the
Cod
token
18
decimal
places
and
I'm
going
to
hit
add
custom
token
and
the
transaction
is
already
completed
so
I
have
our
100
Cod.
So
we've
minted
we've
compiled
deployed
a
smart
contract,
ethereum
smart
style
solidity,
smart
contract
to
the
network,
we've
created
a
custom
token
Cod
that
we've
now
minted,
and
we
have
now
done
there
now,
there's
certain
things
we
can
do
with
that.
So
I'm
going
to
hit
import
here.
A
A
A
A
And
it
says
we
have
88
Cod
so
that
transaction
just
completed
so
we've
gone
right.
The
way
through
from
creating
a
smart
contract
deploying
a
smart
contract
minting
a
token
and
then
actually
transferring
the
token
from
one
account
to
another.
So
I
kind
of
give
you
a
rundown
of
what
you
can
do
with
smart
contracts.
It's
a
very
simple
example,
but
it's
using
just
a
straightforward
erc20
contract
from
ethereum.
A
These
are
the
same
things
that
are
used
all
over
ethereum
for
for
tokens,
for
example,
and
you
could
build
a
lot
more
on
top
of
that,
you
could
build
things
like
decentralized
exchanges.
You
could
build
things
like
I
said
data
dowels,
where
you
have
funds
coming
in
from
multiple
different
places
that
are
used
to
maybe
collectively
fund
storage,
for
example.
A
So
there
we
go
so
I
mentioned
a
couple
of
things
coming
up
the
Falcon
Virtual
Machine
fem,
open
hack
day.
That
is
happening
right
at
this
exact
instance
at
neinda
Abril
and
there's
also
an
eth
Global
hackathon.
That
is
happening
on
November,
the
18th,
so
20th
it's
over
a
weekend
and
if
you
check
the
youth
Global
website,
you'll
find
out
more
details
about
that
coming
up
very
shortly,
so
there
we
go.
Thank
you
very
much.