►
Description
Join Zak Ayesh from Filecoin for a talk titled "Making Storage Deals on Filecoin-EVM".
As new users flock to web3, critical infrastructure advancements are needed to scale. Scaling Ethereum is your chance to shape the future of Ethereum. Join us March 10th-29th for three weeks of hacking and summits featuring teams like Gnosis Chain, Scroll, Hyperlane, UMA, IPFS/Filecoin, and more.
-----------------
Follow us: https://twitter.com/ETHGlobal
Check us out: https://ethglobal.com
Email us at: hello@ethglobal.com
A
C
You
might
have
seen
me
around
on
a
couple
of
other
file:
coin
coding,
demos,
I'm,
a
developer
Advocate
with
the
file
coin,
virtual
machine
team
at
protocol
labs
and
today
I'm,
going
to
go
over
programming
on
the
fevm,
and
you
know
you
might
have
seen
this
talk
from
me
before
I
previously
Global
events,
but
on
this
talk,
we're
going
to
do
something
a
little
bit
new
we're
going
to
go
over
towards
the
end,
how
to
make
storage
deals
with
smart
contracts
on
the
follow
coin
virtual
machine.
C
So
this
is
a
really
cool
new
functionality.
We've
been
working
on
for
a
long
time.
The
engineers
have
been
hard
at
work
and
so
I'm
excited
to
go
through
this.
D
C
Yeah
so
quick
Story,
one
of
my
very
first
projects,
interacting
with
any
of
the
file
coin.
C
Ipfs
protocols
was
creating
a
dynamic
nft
and
essentially
it
was
like
this
nerdy
shooting
Jersey
cat
reference,
where
you
would
mint
an
nft
box
and
it
would
use
the
chain
link
vrf
and
randomly
pick
when
you
minted
the
cat
to
either
be
this
attack
cat
or
a
sleeping
cat
right-
and
this
was
probably
two
years
ago
or
so
now,
and
little
did
I
know
I'd
be
working
this
closely
with
the
final
coin
stack
and
helping
push
things
forward.
C
So
today
we're
actually
going
to
be
using
this
photo
to
store
on
the
with
filecoin
storage
providers
using
solidity,
smart
contracts
you
can
find
this
is
the
actual
photo
of
me
trying
to
get
this
demo
working.
We
actually
first
got
this
demo
working
for
East,
Denver
and
I
presented
at
the
filecoin
hacker
base.
It
was
quite
the
experience
working
with
Engineers
late
into
the
night.
They
put
such
a
phenomenal
amount
of
effort
into
getting
this
working
and
so
yeah
it
was
it
was.
C
It
was
quite
the
Herculean
task,
but
I'm
happy
to
be
a
little
bit
more
well
rested
and
presenting
to
you
today
and,
if
you've
seen
any
of
my
other
presentations.
You
know
I
like
to
talk
about
imposter
syndrome
and
a
lot
of
my
talks
and
I
just
want
to
briefly
mention
that
here
like
this
is.
This
is
like
me,
working
with
the
engineers
trying
to
figure
out
how
all
of
this
works,
I'm
still
figuring.
All
this
out
too
so
like
don't
feel
bad.
C
If
any
of
this
is
confusing
to
you
or
feels
overwhelming,
it
is
for
everybody
I
just
like
to
put
that
in.
In
all
of
my
talks.
C
All
right
so
today
we're
going
to
be
going
through
just
a
short
introduction
on
the
final
coin.
Virtual
machine
I
want
to
focus
more
on
the
coding
side
of
things.
We'll
do
a
demo
and
remix
deploying
a
very
basic
like
solidity.
C
Contract
doesn't
use
anything
special
file
coin
related
in
it
then
we'll
you
we'll
show
an
example
using
the
file
coin,
solidity:
libraries
that
gives
you
filecoin
specific
functionalities
and
then
we'll
move
on
to
hard
hat
and
making
a
deal
on
a
storage
deal
on
using
smart
contracts,
which
is
kind
of
the
special
thing
we're
demoing
in
this
talk.
C
C
So
the
filecoin
virtual
machine
is
actually
made
in
webassembly,
but
it
was
built
to
support
multiple
runtimes
right.
So
you
might
have
you'll
hear
me
talking
about
the
F
evm
right
and
that
isn't
running
on
ethereum
or
anything
like
that.
That
is
running
on
file
and
how
it
works
is
at
the
base
layer.
You
have
the
filecoin
virtual
machine
like
running
on
top
of
file
coin
nodes
written
in
webassembly,
and
that
was
designed
specifically
to
be
able
to
virtualize
other
runtimes
on
top
of
it
right.
C
So
the
first
runtime
the
team
targeted,
was
the
ethereum
virtual
machine
because
everyone
knows
how
to
work
with
Lydia.
At
this
point
in
web
3,
at
least
you
know
it's
the
most
common
language
to
use.
There's
tons
of
tooling
You
Know
Remix
hard
hat
metamask
everything
supports
it,
so
the
ethereum
virtual
machine
is
actually
virtualized
on
top
of
the
fvm
and
this
ethereum
virtual
machine
when
you're
interacting
with
it
interact,
acts
like
any
other
evm
chain.
C
You
may
be
used
to
whether
it's
ethereum
or
or
polygon
or
Avalanche
or
or
what
have
you
and
so
to
you.
It
shouldn't
look
any
different
and
you
should
be
able
to
use
all
all
of
your
tools
in
the
future.
This
could
be
extended
to
other
runtimes
if
they
are
developed
and
there
is
a
roadmap
for
the
team
to
develop
what
we
call
native
actors
or
the
ability
to
compile
smart
contracts
to
wasm
and
deploy
those
directly
to
the
chain
as
well.
C
If
you
know
you
like
to
program
in
any
language
that
compiles
tawasm
webassembly,
which
is
a
lot.
C
So
yeah,
this
is
the
new
thing.
This
is
the
big
New
Deal
is
creating
a
contract,
creating
a
storage
deal
via
Smart
contracts.
This
is
a
relatively
new
development,
even
on
the
sem
and
we'll
kind
of
go
over
how
it
works.
Essentially,
you
know
we'll
be
emitting
a
event,
a
solidity
event
that
boost
storage
providers
can
listen
to
and
store
your
store,
your
data
for
you.
But
you
know
this
is
the
FIP
file
coin
Improvement
protocol.
You
can
find
it
in
the
file
coin.
Github.
C
If
you
want
to
read
up
more
on
a
little
lower
detail
on
how
it
works
all
right.
So
let's
go
ahead
and
let's
just
dive
into
the
coding.
Well
again
we're
going
to
start
with
remix
and
we're
going
to
deploy
a
very
basic
contract
called
Simple
coin.
You
can
think
of
it
as
as
a
simplified
erc20
contract
very
basic
and
yeah.
This
is
just
going
to
show
off.
You
know
the
evm
compatibility,
so
let's
start
out
first,
of
course,
you're
going
to
need
to
download
metamask.
You
can
get
this
at
metamask.io.
C
It
is
one
of
the
most
popular
ethereum
wallets.
You
can
get.
You
know
I
use
it
as
a
hot
wallet
for
testing
development
yeah.
So
you
can.
You
can
download
it
on
metamask.io
and
you
see
I
already.
Have
it
downloaded
right
here
right
and
once
you
have
metamask,
it
doesn't
know
about
the
final
coin
chain.
C
It
has
some
default
chains,
it
knows
about,
you,
know
ethereum
and
its
test
Nets,
but
it
doesn't
default,
know
about
the
final
coin
chain
and
so
we're
actually
going
to
point
it
to
hyperspace,
which
is
the
filecoin
test
net,
similar
to
sepolia
or
Gurley.
Before
it,
you
know,
became
a
whole
for-profit
thing
on
ethereum
right
so
to
add
hyperspace
to
metamask.
C
And
you'll
see
here,
like
all
of
the
different
file
coin
test:
Nets
mainnet
as
well
we're
gonna
click
on
add
to
minimask
for
hyperspace.
Since
that's
what
we'll
be
using
for
the
remainder
of
this
demo,
mainnet
for
fevm
support
comes
out
on
March
14th,
so
no
evm,
yet,
but
very
close
on
mainnet.
C
So
yeah,
you
just
click,
add
to
metamask.
You
know
a
pop-up
will
come
up
for
metamask
I
already.
Have
it
added
right
here,
but
yeah
that'll,
add
hyperspace
to
your
meta
mask.
C
And
finally,
you're
going
to
need
to
get
some
test
net
fill
just
like
ethereum
and
any
other,
almost
any
other
blockchain
you
work
with.
You
need
to
have
currency
to
interact
with
that
chain.
You
know
to
prevent
spam
prevention
and
to
pay
the
node
operators
for
running
all
this
computation
right,
but
on
a
test
net.
You
can
just
get
this
from
a
faucet
right,
because
test
Nets
have
no
value.
C
Most
tests,
National
I,
have
to
add
so
we'll
click
on
hyperspace
dot,
yoga
right-
and
this
is
the
faucet
you
can
use
now.
Filecoin
has
its
own
address,
address
scheme
which
you'll
see
as
like
key
addresses
so
like
T4,
yada,
yada,
yada
or
T1
yada
yada,
but
everything
is
actually
compatible
with
ethereum
addresses
right.
So,
if
I
just
copy,
my
account
address
and
I
paste
it
in
there
just
the
ethereum
address
we
get
to
go
through
this
awesome
captcha,
which
is
always
a
fun
challenge
to
do
live
now.
C
It
takes
about
a
minute
to
get
to
my
wallet,
we'll
kind
of
go
over
transactions
on
filecoin
in
a
second
all
right,
but
with
that
you
have
metamask,
you
have
some
t-fill
and
we're
ready
to
move
on
and
deploy
some
contracts
on.
Remix
and
I
already
have
remix
open.
So
that's
nice!
C
So
once
you
come
into
remix
You
Know
Remix
is
an
online
IDE,
integrated
developer
environment.
Basically
just
a
quick
and
easy
way
for
devs
to
test
and
interact
with
smart
contracts.
C
Some
people
use
it
for
the
whole
Dev
flow,
we'll
go
over
some
hard
hat
a
bit
more
complex
tool
later,
but
for
now
we're
gonna
go
and
remix
and
you'll
see
on
the
left.
Here
we
have
a
little
file
explorer
and
you'll.
You
should
get
some
pre-built
smart
contracts,
storage,
outsole,
but
I've
imported.
These
smart
contracts,
simple
coin,
is
one
of
them
and
you
can
see
it
here.
Right
and
all
simple
coin
does.
Is
it's
a
very
simple
coin?
It
takes
the
Constructor.
C
All
right.
So
we're
going
to
come
to
the
compiler
tab,
click
compile
simplecoin.soul
and
everything
is
good.
I
have
Auto,
compile,
turned
on
to
make
my
life
easier
and
we'll
go
to
the
deploy
tab
right,
you're
going
to
want
to
make
sure
that
injected
provider
metamask
is
chosen
when
you
come
in,
it
will
default
to
remix
VM.
That
is
a
local
VM
within
metamask
and
it
doesn't
interact
with
any
blockchain
anywhere.
C
Just
this
like
virtualized
chain
on
your
browser
injected
provider,
metamask
will
tell
it
to
send
all
transactions
through
metamask
and
because
my
metamask
is
pointed
to
hyperspace
it
it
is
going
to
go
to
hyperspace
and
it
looks
like
I
got
my
5T
film
added.
So
that's
awesome
right.
C
So
then,
you're
going
to
want
to
make
sure
that
the
contract
you're
pointing
to
is
the
one
you
want
to
deploy.
I
want
to
deploy
simple
coin
and
we're
going
to
put
put
in
the
Constructor,
since
that
has
to
be
filled
out
before
we
deploy
it
to
1200
tokens.
That's
how
many
I'm
going
to
Mint
for
simple
coin,
and
they
will
be
assigned
to
me
again
if
I
click
deploy
we'll
see.
Metamask
comes
up
with
a
transaction.
It's
going
to
estimate
gas
fees,
we're
going
to
click
confirm.
C
So
if
you're
used
to
gas
on
ethereum
gas
on
file
coin
is
actually
calculated
a
bit
different
and
it
does
use
file
coin
gas
and
not
the
traditional
evm
gas,
so
the
gas
calculations,
you
can
find
more
detail
in
the
docs,
but
they're
based
on
wasm
time,
run
times
for
all
these
computations,
as
opposed
to
the
hard
coded
gas
values
that
you'll
find
in
most
ethereum
run
times
right,
and
so
that's
going
to
take
about
a
minute
to
deploy
it's
going
to
take
some
time.
So
I
have
a
pre-deployed
contract.
C
We
can
look
at
all
that
goes
through,
so
you
can
load
any
contract
right
here
as
long
as
you
have
the
ABI
and
the
address
is
deployed
at
which
remix
has
the
API.
Since
we
have
the
contract
in
here
and
we'll
just
click
add
address,
oh
and
it
turns
out
my
contract
deployed
at
the
same
time.
So
that's
convenient,
we'll
just
go
ahead
and
look
at
the
contract.
We
just
deployed.
C
C
But
now
I
know
that
that's
cool,
but
why
evm
on
filecoin
right?
There's
a
million
other
evm
chains
out
there
and
remember
the
history
of
filecoin
is
that
it
was
designed
primarily
for
decentralized
storage.
Storing
the
internet's
data
and
I
find
that
this
is
a
very
important
part
of
the
web.
3
stack
right.
A
lot
of
front-ends
for
web3
dapps
are
actually
hosted
on
centralized
servers
and
so
filecoin
is
kind
of
there
for
Cold
Storage
right,
which
is
a
very
important
like
sector
right.
C
So
we
don't
have
to
trust
on
any
like
one
centralized
entity
right
and
so
the
Falcon
blockchain
actually
monitors.
The
storage
deals
right,
the
metadata
for
these
for
for
the
storage
providers
right,
and
so
how
can
you
access
these
storage
deals?
You
can
do
them
through
these
file
coins.
Solidity
libraries
created
by
our
friends
with
the
team
zondex
right.
So
let's
take
a
look
at
them
right
here
and
what
I'm
about
to
go
into
some
more
detail
about
storage
deals
in
a
second.
C
Right
so
you
know
these
are
basically
solidity
apis.
You
can't
use
these
on
any
other
chain,
because
these
are
specifically
for
the
fevm
and
they
take
again
take
advantage
of
these
native
actors.
We
call
them
for
interacting
with
storage
deals.
C
It
is
in
beta
at
the
moment
it
is
being
audited
as
we
speak.
It
should
be
ready
very
soon,
but
I
just
need
to
put
that
disclaimer
and
yeah.
You
see
the
readme
kind
of
explains
some
things.
If
we
look
in
the
contracts
directory
you'll
see
here,
we
have
apis
that
these
represent
apis
that
were
already
open
to
filecoin,
but
this
opens
them
up
to
be
used
in
solidity.
C
So
if
we
look
at
the
market
API
solidity
contract,
this
actually
opens
apis,
like
a
bunch
of
apis
for
getting
information
about
a
specific
deal
on
chain,
getting
the
actual
pcid
getting
the
client
who
asked
for
the
deal
getting
the
provider,
the
address
of
the
provider,
who's,
storing
the
deal
and
so
on
right.
So
these
these
really
using
these
in
your
dapps,
really
opens
up
the
world
of
the
fevm,
would
compare
to
other
evm
chains.
B
Hey
Zach,
when
you're
in
remix,
could
you
zoom
in
a
little
bit
as
well.
C
Oh
yeah
sure
yeah
right,
no
problem
I'll
make
sure
to
do
that
when
we
go
to
the
next
contract.
Okay,
yeah
appreciate
that
cool,
so
I'm
mentioning
these
deals
right.
So
let's
talk
a
little
bit
more
about
them
and
how
they're
created
in
the
past
and
how
we're
going
to
create
them
later
on
in
the
demo
right.
So
if
we
go
to
Phil
Fox,
which
is
a
block
Explorer
for
filecoin,
you
can
click
on
the
blockchain
tab
here
and
click
on
Deal
list
right
and
these
are
actually.
C
C
The
data
that
are
stored
here
and
this
deal
is
started
to
gigabytes
and
you
can
see
when
it
was
stored
and
the
pcid
AKA.
Basically,
you
can
think
of
it
as
the
root
hash
of
the
data
that's
stored
there
right.
C
So
we're
going
to
talk
a
little
bit
more
about
that
that
root
hash.
That
I
mentioned
earlier
right,
also
known
as
the
pcid
or
the
com
P
right.
So
you'll
see
this
big
graphic.
It
may
look
confusing,
but
it
really
isn't
much.
Essentially,
you
take
a
file.
Let's
say
it's
that
that
cat
photo
that
I
showed
earlier
right
and
you
want
to
prepare
it
to
be
stored
in
a
fire
coin.
C
Storage
deal
right
well,
one
of
the
first
steps
is
you're,
going
to
turn
it
into
a
car
file
right,
a
compressed
version
of
the
of
the
actual
file
and
then
you're
going
to
want
to
compute
what
we
call
the
ipld,
dag
directed
acyclic
graph,
confusing
it's
just
like
a
tree.
If
you're
familiar
with
like
the
inner
workings
of
ethereum
or
Merkle
tree
or
a
binary
history,
that's
essentially
what
it
is
right.
So
it's
going
to
take
that
data.
It's
gonna!
C
It's
gonna
take
that
file
that
compressed
files,
kind
of
split
it
up
into
chunks,
and
then
it's
going
to
Hash
each
of
those
trunks
and
then
create
a
tree
hash
all
the
way
up
until
you
get
your
root
hash,
and
this
allows
you
to
get
like
a
hash
that
represents
the
whole
data
and
so
that
kind
of
just
represents
the
raw
file
or
the
raw
compressed
file.
C
We
actually
are
gonna
You're,
Gonna
Wanna
pad
the
file
to
make
sure
it
fits
and
there's
tools
that
do
all
of
this
we're
going
to
use
one
later
in
the
demo,
with
some
zeros
and
essentially,
when
you
send
this
to
a
storage
provider,
you're
going
to
send
this
padded
compressed
file,
along
with
the
ipld
graph
or
dag
to
the
source
provider
and
they're,
going
to
confirm
that
you
know
your
file
does
in
fact
hash
to
that
pcid
or
that
root
root
hash
and
that's
going
to
be
what
represents
your
deal
on
chain
right
here
right.
C
C
So
this
is
how
deal
making
works
at
the
protocol
level
and
how
it
worked
specifically
before
the
fem
was
a
thing
right.
Essentially
you
you,
the
client
or
whoever
wants
to
store
the
data,
would
would
decide
what
data
you
want
to
store.
You
would
use
a
tool
of
your
choice
to
compress
it
and
create
that
file
that
we
talked
about
earlier
say:
look,
you
would
do
some
research
on
storage
providers
and
what
deals
they're
offering.
C
C
You
send
what's
called
a
deal
proposal
to
the
storage
provider
right
and
the
storage
provider
will
look
it
over
and
make
sure
that
that's
what
y'all
negotiated
or
what
they
deem
as
a
fair
deal,
the
storage
provider
would
then
say:
okay,
this
looks
good
we're
ready
to
accept
this
and
publish
the
deal.
So
then
you
need
to
actually
transfer
the
data
to
the
storage
provider
right
and
all
of
these
steps.
There
were
tools
to
do
this.
There's
marketplaces,
you
can
look
to
find
storage
providers,
but
yeah
this.
C
This
is
a
quite
a
manual.
You
know
process.
There
was
also
things
like
web3.,
storage
and
nst.storage
that
do
all
of
these
steps
for
you
and
make
it
a
lot
easier,
but
yeah
you
would
transfer
the
data
over.
You
know
they
would
make
that
check
to
make
sure
the
data
is
actually
what
the
pcid
that's
in
the
deal
and
then
they
would
call
a
function
on
the
filecoin
API.
It's
called
publish,
storage
deal
and
that
would
actually
you
know,
prepare
them
for
storing
the
data.
C
And
so
that's
kind
of
the
traditional
way
of
making
the
deals
and
how
everything
will
work
with
the
fvm
I
know
that
was
a
lot
of
information,
so
I'm
going
to
go
ahead
and
check
the
chat
to
see.
If
there's
any
questions
about
any
of
that
before
I
move
on.
C
B
Yeah
there
was
one
question
from
harsh
how
seven
maynett
would
lead
to
burning
Phil.
C
Yeah,
so
file
coin,
just
like
ethereum
has
a
similar
implementation
for
EIP
1559,
so
every
transaction
that's
sent
to
the
file
coin
blockchain.
Some
of
that
fill
is
burned
right
and
so,
with
the
final
coin,
virtual
machine
live.
You
would
expect
more
transactions
to
be
coming
through
now,
because
there's
more
utility-
and
you
know-
that'll-
probably
increase
the
burn
of
Phil.
D
C
So
I
think
that
answers
all
the
questions
right
now
so
yeah.
So
we
kind
of
talked
about
the
traditional
way
to
make
deals.
You
can
still
totally
make
deals
that
way
by
the
way.
None
of
this
deprecates
that
you
know,
file
coin,
still
works
that
way.
This
is
just
adding
on
functionality
and
new
ways
to
make
deals
using
smart
contracts
now
right
and
so
one
of
the
first
ways
we
demoed
how
to
do.
C
This
was
what
we
call
the
bounty,
hunting,
Bounty,
Hunter
method
and
there's
a
contract
you'll
see
in
my
hard
hat
later
that
that
does
this,
but
essentially
like
it's
just
a
smart
contract
where
you
take
that
pcid,
you
know
again
that
piece
of
data
that
represents
it
and
the
size
of
data
you
want
to
store,
and
you
just
create
a
bounty
in
a
smart
contract
for
that
right,
and
so
this
is
a
very
useful
tool.
C
I
would
say
for
like
Dows,
like
maybe
you're
a
decentralized
science,
a
d
side
down,
and
you
want
to
crowdfund
for
a
specific
piece
of
data
to
be
stored
on
the
file
coin.
Network.
You
can
use
this
flow
to
say
hey.
This
is
the
pcid
for
the
data.
This
is
the
size
of
the
data
that
we
want
stored,
let's
crowdfund
and
see
who
can
actually
get
this
data
stored
on
chain
for
us
and
we'll
reward
them,
and
it
actually
uses
the
follow
coin.
C
C
This
is
what
we're
going
to
demo
in
this
later
on
is
an
even
more
automated
flow
for
making
a
deal
which
now,
like
you
know,
let's
say:
I
have
some
data
I
want
to
store,
I
generate
the
car
file
and
the
dag
and
I
want
in
part
of
my
smart
contract
flow.
I
want
to
be
able
to
call
a
method
to
store
this,
this
data
right,
and
so
we
can
actually
call
a
function
in
salinity
as
long
as
it
emits
that
event.
C
I
talk
about
I
talked
about
earlier,
create
deal
proposal.
Boost
storage
providers
can
listen
for
that
event
to
be
emitted
from
the
evm
and
read
the
data
from
it
and
use
that
as
the
deal
proposal
right
and
actually
store
your
data
from
that
you
know
so
we're
going
to
tell
them
hey.
We
have
this
already
pre-prepared
data
and
a
server
somewhere
here
is
like
the
deal
proposal.
Here's
how
much
I'm
willing
to
pay
here's.
C
You
know
the
collateral,
here's,
how
much
collateral
I
expect
from
you
and
how
much
this
is
all
going
to
cost
per
block
and
send
that
into
a
function
in
our
smart
contract
that
functioned
in
a
mince
an
event.
C
The
Boost
storage
provider
sees
that
event
and
says:
hey
that
looks
like
a
fair
deal,
takes
it
up
and
stores
your
data
right
and
a
core
thing
I
do
want
to
point
out
here
is
that
when
the
storage
providers
actually
store
your
data,
they
are
writing
proofs
to
the
final
coin,
blockchain
that
they
are
storing
your
data.
Like
that's,
super
important
right.
That's
how
that
how
we
keep
this
all
decentralized.
Is
that
we're
not
just
trusting
the
storage
providers
to
keep
your
data?
C
So
we're
going
to
first
go
through
a
demo
and
remix
again
using
the
file
coin
example:
contract
I
call
the
file
coin,
Market
consumer.
It
just
uses
that
zondax
file
coins,
literally
library,
and
gets
data
for
a
specific
deal
on
hyperspace
right.
It's
all
the
same
things
we're
just
going
to
go
here
back
to
remix
and
I'll
zoom
in.
Hopefully
that
is
better
and
we're
not
going
to
do
simple
coin.
We're
going
to
come
back
here
and
we're
going
to
do
this
file
coin
Market,
consumer
right,
really
basic
contract.
C
We
just
have
a
bunch
of
State
variables
and
a
bunch
of
functions
to
call
those
getter
functions
and
the
Market
API
for
the
zondax
right.
So
we're
just
calling
all
these
getter
functions
and
storing
the
data
in
our
smart
contract
in
these
State
variables
here
right
and
then
I
have
one
function
that
calls
all
of
these.
Many
functions
store
all.
C
So
yeah
I
see
a
question
for
repos,
with
showcase
to
file.
Coin
storage
deals
working,
yep
we're
going
to
get
to
it
right
after
this
demo,
so
yeah
we're
just
going
to
compile
it.
You
know
here
we
are
calling
the
zondex
libraries
and
just
like
everything
else,
make
sure
it's
injected
provider
metamask
up
here
supporting
your
Falcon
Market
consumer.
You
can
hit
deploy
again
to
save
us
some
time,
I'm
going
to
pull
in
a
pre-deployed
contract.
C
C
C
And
go
to
remix:
you
know
you
can
store
deal.
1011
click
store,
all
we'll
confirm
our
metamask
transaction
go
through
again.
You
know
we
are
paying
gas
fees.
It
is
going
through
with
that
EIP
1559,
like
structure
where
some
of
the
fees
are
getting
burned,
but
yeah.
This
should
update
with
our
information
for
that
specific
deal.
C
If
we
look
here,
we
actually
have
this
old
deal
with
old
information
in
it,
since
this
is
a
pre-deployed
contract
and
when
this
transaction
goes
through
we'll
come
in
and
we
can
see
that
like
hey,
like
this
deal,
matched
with
that,
but
it's
going
to
take
some
time
for
the
transaction
to
go
through,
so
actually
why
transactions
take
time
on
the
file
coin.
C
Blockchain
is
because
there's
what's
called
a
delayed
execution
model
where
it
takes
about
30
seconds
for
your
transaction
to
be
actually
included
in
the
chain
and
another
30
trans
30
seconds
for
your
transaction
to
actually
be
executed
right
and
yeah.
So
that's
why
it
takes
about
a
minute
on
average,
so
our
transaction
has
gone
through
and
let's
look
at
some
of
the
information
here
right,
so
our
size
is
262..
C
Let's
look
at
here
yep,
so
256
kilobytes,
that's
about
where
we're
at
on
there,
and
this
is
actually
that
PC
ID
but
serialized
and
represented
as
ethereum
bytes
right.
So
if
we
convert
it
to
the
representation,
CID
representation
which
leaves
base
64.,
it
can
be
represented
as
a
CID
that
we
see
on
chain.
C
You
know
the
price
per
epic,
which
is
zero
since
it's
on
test
net,
the
deal
provider,
actor
ID
1036,
which
is
their
deal
ID
right
there
right.
So
we
got
the
information
from
that
deal
in
our
smart
contract
and
you
can
use
this
to
create
all
kinds
of
cool
logic.
C
You
know
other
applications
that
you
may
have
heard
earlier,
like
data
dials
or
Perpetual
storage
contracts,
all
kinds
of
things
we're
excited
about
to
be
built
right,
Okay.
So
now
we're
going
to
move
on
to
the
new
cool
part
right
and
we're
going
to
actually
create
storage
deals
with
that
method.
I
talked
about
earlier
on
hyperspace
and
we're
going
to
do
it
via
hard
hat
right.
So
you
can
find
this
Nifty
hard
hat
starter
kits
under
the
file
corn
project
GitHub
right
and
here
you'll
see.
C
If
we
go
into
contracts,
you'll
see
the
basic
solidity
examples.
There's
a
simple
coin:
we
deployed
earlier
you'll
see
the
Bounty
contract
I
talked
about
in
the
market
consumer
we
just
interacted
with,
but
we're
actually
going
to
be
dealing
with
basic
deal
client
today
and
deal
client.soul
specifically
right.
C
C
C
There
we
go
all
right,
cool,
we'll,
open
a
terminal
in
here
right
and
one
of
the
first
things
you're
going
to
want
to
do
is
type
in
yarn
to
download
packages.
C
Right
and
this
will
get
all
the
packages
that
we
need
into
our
project
and
while
that's
going
on
we'll
just
kind
of
talk
about
how
this
works
right
so
again,
just
like
I
showed
you
in
that
repo.
We
have
all
of
those
contracts,
including
the
deal
client.soul
contract,
and
it's
going
to
give
us
some
problems
just
because
some
downloading
the
yarn,
but
it's
fine.
C
So
if
we
go
to,
for
instance,
the
market
consumer,
we
have
a
task
that
calls
that
store
all
function
right
and
sends
it
on
chain.
But
the
what
we're
going
to
focus
on
here.
C
Calling
this
function
make
deal
proposal
right,
so
it
takes
in
this
struct
called
deal,
and
you
know,
stores
a
bunch
of
information
on
chain
does
a
lot
of
stuff,
but
the
most
important
thing
is
it
emits
this
event.
Deal
proposal
create
right
and
that's
the
event
that
storage
providers
know
to
look
out
for,
and
if
you
want
to
see
that
struct
here's
our
deal
request
we're
going
to
pass
in
a
PC
ID
a
peace
size.
C
It's
a
deal
verified
on
fill
Plus
the
label,
which
is
usually
the
raw,
the
raw
CID
before
we
do
any
padding
or
anything
to
the
car
file.
C
When
we
want
the
deal
to
actually
start
the
Epic,
we
want
to
start
when
the
deal
will
end
how
much
we're
going
to
pay
per
Epic
the
collateral
that
the
provider
puts
up
in
case
they
need
to
be
slashed.
The
collateral
the
client
puts
up
are
you.
The
client
puts
up
to
prove
to
the
provider
that
you
can
continuously
pay
them
for
their
services,
and
these
extra
params
here
are
where
some
interesting
magic
happens
right.
C
So
this
is
where
we're
saying
you
know
the
the
the
booth
storage
provider
sees
that
there
is
an
event
committed
emitted
in
ethereum
and
that
they
want-
and
they
say,
okay,
this
this
proposal
looks
good
I
want
to
store
that
data,
but
they
need
to
retrieve
that
data
from
somewhere
right.
So
we
need
to
have
that
in
some
kind
of
open
server
somewhere
else
right.
C
So
yeah
see
there's
still
some
maybe
issues
with
reading
it.
So
hopefully
this
makes
it
a
little
bit
more
clear.
C
C
And
then
to
deploy
you
just
type
in
yarn,
hard
hat,
deploy
in
the
console
hit,
enter
and
I'll
run.
It
run
the
script
and
actually
start
deploying
our
contract.
Oh
of
course,
one
specific
thing
I
missed
here
is:
we
need
to
add
our
private
key
in
a
DOT
EMV
file
right,
so
you're
actually
going
to
want
to
create
a
DOT
EMV
and
then
put
your
wallet
private
key
in
there.
So
Hard
Hat
knows
what
wallet
to
send
this
transaction
with
right
and
you
can
do
that.
C
By
going
into
metamask
and
again,
I
always
have
to
put
this
disclaimer
never
ever
show
you
a
private
key
to
anyone
and
never
ever
check
this
into
git.
If
someone
gets
your
private
key
and
you
have
mainnet
funds
in
that
wallet,
they
can
and
most
likely
will
steal
the
funds
right.
This
is
a
dummy
account,
I
use
just
for
demos,
so
there's
no
real
money
associated
with
this
and
I
want
to
show
you
the
steps.
C
But
again
you
know
this
is
not
advised
to
ever
be
shown
right,
so
you're
going
to
go
here,
I'm
going
to
type
in
our
password
and
metamask
and
we're
going
to
copy
our
private
key
over.
C
So
please
don't
don't
steal
my
my
poor
test
net
fill
they
just
type
in
private
key
private,
key
and
I'll
put
it
in
some
quotes.
Paste
save
now
we'll
type
in
yarn,
hard
hat
deploy
and
our
deploy.
Script
will
start
and
start
deploying
our
it's
going
to
compile
our
solidity
files
and
it's
going
to
start
deploying
them
right.
C
C
All
right
so
in
this,
in
this
repo
we've
already
deployed
the
contracts.
Everything
is
good
there.
You
know,
we've
done
the
yarn,
I
have
the
dot
EMV
file
and
so
we're
almost
ready
to
call
the
method.
The
last
thing
we
need
to
do
here
is
we
need
to
take
a
file
and
we
need
to.
C
So
let
me
make
sure
this
is
big.
There's.
C
Big
so.
C
All
right,
so,
if
I
just
go
to
my
pictures
right
here,
you'll
see
I
have
my
cat
photo.
He
attack
dot
jpeg
as
opposed
to
he
sleep,
and
so
that's
the
the
file
we're
going
to
turn
into
a
car
file
right
and
how
we're
going
to
do
this
is
we're
going
to
use
this
tools.
Go
generate
car
tool
right
here
right.
So,
if
I
see
the
into
tools
and
I
see
D
into
go
generate
car,
you
can
type
make
I've
already
made
it.
This
will
compile
it.
C
This
tool
is
written
in,
go,
hopefully
we'll
write
this
tool
in
JavaScript,
so
it'll
be
a
little
bit
more
native
to
hard
hat,
but
for
now
it's
written
in
go
so
make
will
actually
compile
the
program
and
we
can
call
it
from
this
directory
right.
So
if
we.
C
What
we're
going
to
do
is
we're
going
to
and
just
to
save
time,
I'm
going
to
put
the
script
in
here.
We're
going
to
call
in
this
directory
generate
car,
we're
just
going
to
say:
hey
it's
a
single
file,
and
this
is
where
the
file
is
right
and
see
attack.jpg,
and
this
will
actually
generate
the
car
file
right
and
and
the
IPL
dag
that
goes
with
it.
So,
if
I
hit
enter
you'll
see
we
have
all
these
cids
are
generated.
C
C
Now,
if
I
LS.
C
You'll
see
here
this
is
that
cid.car
and
this
is
the
size
of
the
file
we're
going
to
store
right.
So
we've
generated
the
car
file.
Now
we
know
the
size
of
the
car
file.
We
want
to
actually
put
this
somewhere
that
the
storage
provider
can
store
right.
C
This
could
be
anywhere
right.
This
could
be
any
open
service,
but
an
easy
one.
We're
going
to
go
to
today
is
web3.
storage,
all
right,
so
we're
just
going
to
type
in.
We
have
three
dot
storage.
C
Right
and
I
already
have
my
logged
in
and
we're
going
to
click
Start
now,
and
here
you
can
just
upload
upload
files,
and
you
know,
web3.
storage
will
actually
go
through
that
traditional
deal,
making
flow
and
make
deals
for
you.
But
what
we're
actually
using
this
for
is
they
actually
just
store
your
data
and
their
ipfs
Gateway,
and
anyone
can
kind
of
pull
it
up
that
way
right,
and
so
that's
what
we're
going
to
use
right.
So
you
know
I've
uploaded
the
raw
file
here,
but
here
is
that
generated
car
file.
C
C
C
C
So
this
is
the
task
we're
running
so
yarn,
hard
hat,
tells
it
okay
and
then
make
deal
proposals
the
name
of
the
task
and
we're
pointing
it
at
this
contract
I've
pre-deployed
and
we're
giving
it
that
PC
ID
of
the
data
that
we
have
stored
the
size
of
the
data.
C
You
know
the
verified
deal
is
false
and
we're
passing
in
all
this
information
in
and
where
it
can
actually
find
the
data
to
store.
So
that's
the
actual
full
task,
I'm
running.
C
We'll
hit
enter,
and
this
is
going
to
take
a
second
to
go
through
again.
You
know
it's
making
the
deal
proposal,
Network,
hyperspace
and
we'll
look
at
something
cool,
because
I'm
actually
assh
into
a
boost
storage
provider
right,
and
so
hopefully
we
can
see
it
pick
it
up
live
right.
C
So
here
is
a
GUI
for
the
Boost
storage
provider
and
hopefully
once
the
steel
goes
through
once
the
transaction
goes
through.
We'll
actually
see
a
new
deal
added
on
here
that
the
deal
proposal
picks
up
the
the
storage
provider
picks
up
like
so
we'll.
Just
give
this
a
second
to
go
through.
C
You
know
we
can
kind
of
look
here
at
the
GUI
for
the
Boost
storage
provider.
So
boost
is
just
a
kind
of
helper
binary.
You
can
run
the
storage
providers
typically
run
to
make
it
easy
to
deal
with
storage
deals
and
visualize
them
with
this
convenient
GUI,
so
they
usually
run
alongside
a
file
coin
node
like
a
Lotus,
node
right
so
yeah.
So
this
task
is
going
to
go
through.
C
You
know
it
passes
everything
in
and
then
actually
listens
for
the
event
right
and
boom.
You
see
our
transaction
went
through
it
emitted
the
event
and
right
here
the
storage
provider
has
seen
that
event
and
it's
actually
pulling
in
the
data
right.
C
It's
saying
transfer
installed
that
may
be
because
of
like
a
HTTP
Gateway
it'll
try
to
redo
that
right
and
boom.
There
we
go
so
it's
transferred
the
data.
You
know
it's
made
all
the
checks
that
the
pcid
matches
the
file
and
it's
saying
hey
this
deal
is
good
to
go.
Everything
looks
good
and
we're
ready
to
publish
the
storage
deal.
C
So
after
that
you
know,
if
I
was,
you
know,
this
SP
I
can
just
come
here
and
click
publish
now,
and
you
know
it's
going
to
publish
that
deal
on
chain
for
me
and,
of
course,
this
SPS
probably
have
automated
systems
to
do
this.
This
is
just
a
very
automate
manual
way
to
demo
how
this
works
right
and
again,
the
data
they're
storing
is
that
picture
of
my
cat
right
all
done
through
smart
contracts.
So
very
excited
about
this.
You
know
if
we
click
on
the
deal
here.
C
You'll
see
that
the
client
address
is
like
a
file.
Coin.
Client
address
a
T4
address.
Right
but
if
we
actually
copy
this.
C
Oop,
it's
not
actually
gonna,
we'll
just
open
it
up
and
we'll
copy
it
right
here.
You
could
copy
this
and
you
go
to
like
a
translator
tool.
There
is
one
in
the
hard
hat
kit
script
that
will
actually
translate
addresses
for
you.
You
type
it
right
here,
no
because
it's
just
converting
okay,
we'll
just
put
it
in
here,
oh
and
we
need
to
put
it
on
hyperspace.
That's
the
issue
here.
C
So
if
we
do
that,
you
will
see
that
this
is
the
eth
address
of
the
contract
that
we
admitted.
So
if
you
use
the
contract
itself
as
the
client
of
the
event
right-
and
you
know,
we
can
also
look
up
this
contract
on
Phil
Fox
on
hyperspace
we
could
put
in
the
ethereum
address
or
the
T4
address.
Either
one
works
see
it's
going
to
say
actor
evm
and
it's
going
to
show
these.
C
This
is
the
transaction
we
made
with
the
mcdeal
proposal
and
amid
the
events
we
admitted
right
and
so
yeah
this
is
the
full
workflow.
This
is
how
you
create
storage
deals
on
filecoin
and
I'm,
going
to
blast
you
with
a
bunch
of
resources.
Now,
before
I
save
a
couple
of
minutes
for
Q
a
right,
so
let
me
see
here.
C
Again,
here
is
the
hard
hat
starter
kit.
If
you
missed
it,
you
can
find
it
in
the
GitHub
for
the
file
corn
project
fpvm,
hard
hat
kit,
and
if
you
go
within
hard
hat
kit,
you'll
actually
see
if
you
scroll
all
the
way
down,
I
link
to
Foundry
kits
for
each
of
the
the
client
contract
and
the
Bounty
contract.
That's
where
they're
being
developed
currently
under
the
Lotus
project.
We
are
going
to
kind
of
bring
all
of
this
together.
C
And
I
also
want
to
shout
out
a
Community
Driven,
Foundry
starter
kit
right,
so
a
great
Community
member,
very
active
shinghan
developed
this
Foundry
kit
right
here
and
he's
very
active
Community
member
he's
active
on
the
East
Global
Discord,
as
at
Peep,
and
you
know,
yeah
I'm,
just
like
super
proud
that
this
is
getting
made,
he's
updating
it
constantly
very
knowledgeable,
Community,
member
and
yeah.
You
know
we're
gonna
work
on
getting
this.
C
You
know
completely
up
to
par,
and
this
will
probably
become
the
official
Foundry
starter
kit
that
we
push
everyone
to.
So.
Thank
you
very
much
for
such
an
awesome
job
job
and
my
colleagues,
Matt
and
Sarah
are
actually
doing
twitch
streams.
Now
twitch.tv
slash
Phil
Builders.
The
next
two
streams
will
be
March,
16th
and
23rd
at
9.
00
a.m,
PST
12
p.m,
EST,
5,
PM,
UTC
right
so
feel
free
to
go
jump
on
those
streams.
Ask
questions
you'll
find
me
there
for
some
of
the
streams
for
sure.
C
But
you
know
we're
excited
to
launch
these.
These
twitch
streams.
C
C
And
finally,
all
of
this
was
done
on
hyperspace
testnet,
but
this
will
be
launched
March
14th
next
week.
We
are
super
excited
on
Pi
Day.
Of
course
we
are
all
nerds
over
here
and
we
love
it.
So
you
can
watch
the
event
for
the
fbm
mainnet
launch
on
the
final
coin.
Youtube
and
please
go
there.
Subscribe,
wait,
it'll,
be
a
big
deal
and,
finally,
for
everything
else.
My
colleague
Sarah
has
made
this
awesome
link
tree.
C
That
just
has
a
bunch
of
other
resources
on
it.
You
know
an
about
page.
The
docs,
this
hackathon
cheat
sheet
is
really
convenient.
If
you're
going
to
be
on
the
hackathon,
it
really
combines
all
of
these
resources
that
we've
talked
about
it's.
You
know
up
to
date
now
and
yeah
super
useful
resource.
C
And
finally,
we
have
our
mainnet
cohort,
which
you
can
apply
for
as
well,
which
is
just
a
combination
of
teams
that
are
all
looking
to
deploy
to
mainnet
and
are
ready
to
go
and
become
active
members
of
the
filecoin
evm
launch.
C
So,
thank
you.
So
much
for
listening
to
my
talk,
looks
like
I
have
just
a
couple
of
minutes
to
address
any
questions
in
the
chat
and
I
see
there
are
some
so
I
will
try
to
answer
them.
C
There
may
be
there
might
be
a
JavaScript
library
out
there
somewhere
I'm,
not
sure
if
it's
up
to
date
and
how
well
it
works
right
now
we're
using
this,
but
we
are
working
on
making
more
libraries
and
we're
actually
working
on
with
the
community
to
make
a
front
end.
That
will
do
all
of
this,
for
you
right
so
just
a
convenient
web
app
where
you
can
go
in
upload
a
file
or
generate
the
car.
C
C
Yeah,
that's
that's
a
great
question,
so
the
ipf
scid
is
actually
just
kind
of
the
raw
called
the
com.
D
CID,
where
you
just
take
the
file
turn
into
you
know
you
generate
the
IPL
dag
for
it
and
you
generate
that
the
pcid
is
very
specific.
Since
storage
providers
want
these
specific
formats,
so
we
turn
it
into
a
DOT
car
file.
We
do
that
padding
and
then
that's
the
ID
that
we
get
is
the
PC
ID
right.
C
So
it's
just
a
very
specific
CID,
but
they
look
identical
right
and
if
you
were
to
put
that
car
file
with
the
padding
and
everything
on
ipfs
I
believe
that
might
be
the
same
CID
that
you
would
get.
But
don't
quote
me
on
that.
Thank.
B
Harsh
asked
how
to
access
the
data
once
stored,
like
via
ipfs
only.
C
Yeah,
so
that's
like
the
retrievability
side
of
things,
there's
a
lot
of
cool
projects
working
on
that
you
can
go
to
the
I
believe
it's
the
Lotus
stocks
has
a
section
on
retrievability
on
here.
You
can
also
use
a
service
like
file
coin
Saturn,
which
is
new,
so
this
is
basically
a
I.
Don't
think
this
works
with
filecoin
like
it
works
with
ipfs,
but
now
filecoin
just
yet,
but
it
is
working.
So
this
is
a
CDN
that,
like
caches
ipfs,
requests
and
makes
them
super
available.
C
Anyone
can
run
a
node,
you
can
go
to
saturn.network
and
they
are
working
on
being
compatible
with
filecoin
as
well.
To
make
you
know,
data
available
on
file,
coin
retrievable
right!
So
there's
a
lot
of
options.
You
know
search
up
file,
coin
retrievability
and
it's
being
made
easier
every
day.
B
And
what
are
the
key
advantages?
Over
ipfs
Stephen
asked
that
fantastic.
C
Question
so
ipfs,
you
know,
is
its
own.
Peer-To-Peer
Network
for
file
sharing,
I
can
pin
data
on
ipfs
I
do
all
the
time
and
it's
there,
but
there's
no
guarantees
that
your
data
on
ipfs
will
stay
there
right
like
if
someone.
If
everyone
stops
spinning
that
data
it's
gone
right
and
someone
could
always
repin
it,
but
there's
no
guarantees
right
file
coin.
C
We
have
very
strong
guarantees
that
the
data
will
still
be
stored
because
the
storage
providers
have
to
provide
those
proofs
on
chain
that
they
have
it
or
else
they
risk
slashing.
So
they
directly
incentivize
to
keep
your
data
right.
So
filecoin
is
really
used
for,
like
cold
storage
of
data
data
that
you
want.
Very
strong
guarantees
will
be
stored
and
available.
B
Awesome,
okay,
and
that
was
all
the
questions
in
the
chat
awesome
a
little
bit
over
so
yeah
I
just
want
to
thank
you
for
joining
us.
Today,
everybody
and
thanks
Zach,
for
the
great
presentation
I'm
going
to
drop
in
the
just
the
Discord,
the
filecoin
Discord
Channel.
If
anybody
else
has
any
other
questions
feel
free
to
reach
out
there.
C
Do
and,
and
thanks
so
much
for
for
having
us
this
was
this
was
awesome,
so
I
hope,
I
hope.
All
of
you
found
it
helpful
feel
free
to
reach
out
to
us
on
the
follow
con
slack
on
the
global
Discord
and
anywhere
we
can
be
found
and
we'll
we'll
try
to
reply
and
Happy
hacking.