►
From YouTube: Lighthouse - Perpetual storage on Filecoin - Nandit Mehra & Ravish Sharma - FVM Dataverse Hackathon
Description
Lighthouse - Perpetual storage on Filecoin presented by Nandit Mehra & Ravish Sharma at the FVM Dataverse Hackathon Kickoff 2023.
A
B
A
Cool
okay,
so
yeah,
we'll
we'll
see
how
that
goes.
The
way
this
is
set
up.
We've
kind
of
I've
only
got
this
setup
for
having
one
guest
on
so
we
might
have
to
when
he
comes
on
it
might
kind
of
boot
you
off,
but.
A
See
how
it
goes,
but
anyway,
yeah
good,
see
you
and
it
and
yeah
take
it
away.
B
Cool
awesome,
yeah,
I'm
gonna
share
my
screen.
Now.
Oh
yeah
I
think
you
should
be
able
to
see
my
skin
right.
Yep.
B
Cool
awesome
welcome
everyone,
I
am
nanded
and
I'm
the
founder
of
Lighthouse
at
Lighthouse,
we're
building,
Perpetual
storage
on
filecoin,
and
what
does
that
mean?
So
Perpetual
storage
refers
to
storing
your
data
long
term,
but
just
one
time
free,
so
that
you
need
not
as
a
client
pay
again
and
again
and
maintain
your
deals
and
usually
the
file
coin.
Deals
on
average
are
have
to
be
renewed
every
six
to
eighteen
months,
so
they
are
not
so
permanent.
B
Although
the
proofs
are
permanent
on
chain
and
we
believe
with
the
concept
of
ownership
and
web
3,
the
file
coin
storage
should
be
permanent
and
that's
what
we
are
building
here
at
lighthouse.
B
So
underlying
here.
It's
an
interesting
model
that
we
call
as
growth
endowment
pool,
and
you
can
imagine
it
like
deployed
on
multiple
chains
or
smart
contracts
with
fileco
and
virtual
machine
as
the
core
chain
in
between
and
what
happens
is
when
you
pay
for
a
file
at
Lighthouse.
Some
portion
of
it
is
taken
and
made
storage
deals
with
me.
B
Various
miners
on
the
filecon
network
and
the
remaining
portion
goes
to
this
smart
contract
based
endowment
pool,
which
is
essentially
meant
to
be
governed
by
a
down
mechanism
and
lend
to
various
D5
protocols,
to
increase
the
pole
size
and
maintain
the
perpetuity
of
your
files,
so
that
the
clients
need
not
pay
again
and
again
or
follow
files.
So
this
is
the
underlying
mechanism
underlying
Lighthouse
to
maintain
long-term
storage
of
files
and
for
the
developers
we
have
four
products
in
our
suit.
B
First
is
Lighthouse
files
which
I'll
demo
today,
which
is
like
this
easy
to
use
interface,
built
on
our
own
SDK,
that
you
can
use
to
upload
files
encrypt
and
share
across
to
any
user
that
you
want,
and
the
second
is
our
Lighthouse
SDK,
which
is
this
JavaScript
based
npm
package
that
you
can
integrate
either
in
your
front-end
rear,
JS
or
in
backend
node.js.
B
B
So
before
making
your
file
coin
deals,
you
can
prepare
your
files
through
this
Lighthouse
CLI
as
well,
and
fourth
is
our
Lighthouse
coverage,
which
is
this
encryption
and
access
control,
SDK
that
can
be
used
to
store
private
data
and
build
token
gated
applications,
and
there
are
a
lot
of
use
case
possible
with
Lighthouse.
As
you
give
like.
B
We
are
already
saying
some
great
examples
with
data
dials,
so
just
to
give
an
example
like
SP
and
Dao
is
building
this
credit
score
of
datadaw
and
they
are
using
Lighthouse,
not
just
for
storage
but
also
for
Access
Control.
An
application
like
matter.
B
Work
is
used
in
Lighthouse
how
something
like
WhatsApp
uses,
Google
drive
to
store
all
their
chat,
images
and
data
and
like
to
encrypt
them
as
well,
and
then
we
saw
ocean
protocol,
they
have
integrated
to
Lighthouse
for
the
decentralized
back-end
service
and
essentially,
if
you
are
building
on
Ocean,
storing
data
nfts
and
like
building
excess
control,
Logics
around
that
you
can
use
Lighthouse
directly
through
ocean
protocol
as
well
right
now.
It's
live
and
V1
Sonic
file
live
peer,
demonstrating
couple
of
applications
on
filecoin
using
Lighthouse.
B
So
we
believe,
like
they're,
like
a
lot
of
plethora
of
applications,
that
developers
can
build
you,
ranging
from
data
dials
to
token
gated
applications.
Perpetual
storage
is
our
core
proposition
and
something
like
file.
Market
is
using
Lighthouse
for
storage
of
their
nft
collection,
and
then
you
can
even
backup
your
personal
data
as
well.
B
Now
the
cool
thing,
what
okay
contract
team
did
is
that
every
okay
contract
user
has
their
own
Lighthouse
account
so
imagine
like,
rather
than
everyone's
data
of
okay
contract
user
being
tied
to
their
single
API
key,
or
they
have
done
very
special
thing
with
Lighthouse,
where
every
okay
contract
user
gets
their
own
Lighthouse
account
and
in
turn,
guarantees
that,
even
if
someday
okay
contract
is
a
platform
go
away
or
we
still
have
the
data
in
their
users
hands
and
again,
as
I
highlighted
with
ocean
protocol.
B
If
you
are
using
ocean
as
a
user,
they
have
already
integrated
to
Lighthouse
to
store
data
on
filecoin
as
well,
and
this
is
something
we
are
seeing
a
very
interesting
application
and
we
love
even
like
some
somebody
would
love
to
you
know,
play
around
with
it
and
build
a
data
availability
service,
so
we
saw
with
ciscoin
they
are
now
storing
their.
B
B
They
identified
that,
oh
rather
than
bended
on
chain,
let's
store
it
on
file
coin
using
Lighthouse
and
then,
as
that
happens,
you
can
imagine
building
this
bridge
from
any
like
chain,
starting
with,
let's
say
the
ZK
roll
up
stains,
but
then
with
other
chains
as
well
and
back
up
all
the
state
chain,
data
on
Lighthouse,
and
maybe
somebody
we
might
be
interested
in
this
hack
it
on
to
build
a
data
availability
service
will
or
your
token
get
all
this
chain
data
stored
on
Lighthouse
and
then
there
could
be
like
some
fee
for
a
third
party
to
access
that
data
as
well
so
I'll
demo.
B
The
first
interface
that
we
have
here,
which
is
Lighthouse
files
and
the
URL
here
for
that
as
files.lighthouse
dot
storage.
So
yeah,
let's
head
out
to
that
directly.
B
So
this
is
our
website
and
to
find
Lighthouse
files.
You
can
click
here
on
this
login
option
and
you
can
log
in
through
whichever
login
method
that
you
prefer
be
it
email,
Google,
GitHub,
metamask
or
any
other
wallet
as
well
and
yeah
so
I
just
signed
in
for
my
wallet
and
I'm
able
to
login
into
it
and
to
upload
a
new
file.
B
Let
me
select
this
sample
image
file.
The
file
is
uploaded,
it's
uploaded
very
quickly
and.
B
Cool,
so
this
is
our
Lighthouse
files.
So
sorry
for
that,
I
thought
I
was
already
on
this
chat,
so
it's
files.lighthouse.storage
and
you
can
log
in
into
it
through
your
meta,
mask
which
I
just
did
right
now,
but
even
through
your
Google
and
GitHub
login
methods
as
well
and
I
can
like
upload
a
new
file
here
and
we
support
like
most
file
types.
You
can
upload
images,
videos,
csvs
any
kind
of
file
types
here
and
easily
view
the
file
as
well.
B
So
if
you
can
see
here
what
happened
here
is
this
file
just
got
uploaded?
And
it's
the
recent
time
step
here,
my
local
time
in
here-
and
this
is
the
ipfs
CID
of
the
file
and
very
soon
you
will
see
this
file
being
picked
up
by
storage
minus
on
the
filecon
network.
So
this
is
like
more
stronger
guarantees
that
not
just
the
file
is
instantly
retrievable
on
the
ipfs
network,
but
also
available
on
file
coin
Network
as
well
and
let's
say
you
wanna
upload,
load
encrypted
file.
B
B
So
let
me
upload
this
sample
file
of
my
colleague
ravesh,
who
will
be
demoing
today
itself,
so
to
upload
an
encrypted
file.
You
obviously
need
to
sign
which
I
just
did
and
to
view
this
file.
I
can
again
select
the
wallet
that
I
used
to
sign
in
which
is
like
evm
based
wallet
metamask
in
this
case
and
then
sign
and
boom.
The
file
is
decrypted.
B
The
cool
thing
with
this
is
this
decryption
and
encryption
happened
without
any
centralized,
Key
Management
so,
rather
than
the
key
to
the
file
being
stored
at
either
the
client
send
or
at
a
single
server.
B
We
use
some
interesting
set
of
cryptography
underneath
called
as
BLS
threshold
cryptography
to
make
this
happen
and
then
share
the
access
to
the
file
pricelessly,
so
imagine
building
an
excess
control
around
the
data
being
stored
here,
where
I
can
add
a
condition
like
I
want
a
particular
NFD
collection
owners
to
view
this
file,
so
I
can
select,
let's
say
of
virtual
machine
and
let's
have,
if
I
deployed
a
custom.
Nft
contract
in
there
I
can
select
the
contract
time.
B
Then
the
contract
address
and
then
put
up
a
comparator
that
I
want
only
users
who,
own
more
than
let's
say
one
pudgy
penguin
nft,
to
view
this
file
I
can
easily
create
this
excess
condition
and
these
excess
conditions
can
be
coupled
with
another
set
of
excess
conditions,
even
across
change.
So
this
logic
Works
multi-chain,
so
you
can
have
one
nft
on
Falcon,
Virtual,
Machine
and
then,
let's
say
1000
away
tokens
on
polygon
chain
and
then
only
you
can
access
the
file.
If
you
satisfy
these
two
conditions
in
your
wallet.
B
So
something
like
this
a
complex
logic.
You
can
build
on
top
of
Lighthouse
and
build
interesting
set
of
token
gated
applications,
but
you
have
to
start
off
as
a
developer.
You
can
like
come
here,
generate
a
new
API
key.
Let's
say:
I
can
name
it
E3
and
then
the
key
is
generated
here
and
then
go
to
our
documentation.
We
have
like
bunch
of
code
examples
here.
B
I
think
I
I'll
stop
in
here
and
then
let
my
colleague
ravish
takeover,
maybe
I,
should
also
leave
the
call
so
that
he'll
join
in
right
away
and.
A
Yeah,
just
a
second
I,
don't
know
if
you've
got
any
any
questions
specific
to
what
you
just
showed.
I
mean
I,
I
love
that
access
control
thing,
I,
love
the
fact
that
you
can
just
take
arbitrary
parameters
and
say:
okay,
if
somebody
has
this
nft
or
this
amount
of
token
or
whatever,
and
just
you
know,
build
them
together
with
a
set
of
you
know.
Predicates
I
think
is
that
that
is
really
awesome.
A
So
that's
cool
and
the
encryption
bit
a
lot
of
people
ask
about
encryption
on
on
falcoin
and
I
generally
Point
them
towards
Lighthouse
and
say
you
know
what
you
do.
Is
you
build
that
on
top
you
know
and-
and
you
know,
give
them
an
example
of
of
Lighthouse,
as
as
you
know
how
people
do
that,
so
that's
cool
okay,
I'm,
just
looking
I,
don't
think
we've
got
any!
Oh
there's
a
question
here.
Mega
make
asks
in
the
in
case
this
code
needs
to
be
adapted,
is
Lighthouse
files,
open
source,
yeah.
B
It
is
so
if
you
go
to
our
website
right
now
and
I'll
also
drop
in
the
link
here.
If
you
can
see
that
link,
but
if
you
go
to
our
website,
we
have
our
GitHub
there
and
then
you
can
find
this
repo
of
files
jab
and
play
around
with
it.
Let
me
drop
in
the
link
to
that
now
chat
message
in
here.
A
I
can
grab
that
one
second
here,
I
can
copy
that
link
and
put
it
here
in
the
chat
for
people
there
we
go.
There's.
A
Address
there
so
I've
put
that
in
for
that
cool,
okay,
yeah
I
think
you're
gonna
have
to
drop
off
your
colleague
to
then
join
and
it.
So,
if
you
do
that
and
then
he
can
join
and
listen.
A
Be
here,
okay,
great
to
see
you
so
yeah,
okay,
so
they're
just
switching
over
and
then
its
colleague
will
be
hopefully
back
in
a
second,
so
that
will
be
cool
but
yeah
I
I,
really
like
that
what
they,
what
they
do
there.
A
Okay,
we
have
him
back
again,
just
one
second,
however:
okay
ravish,
what
you're
going
to
need
to
do
sorry
about
this
is
when
you
joined
I,
think
it
gave
you
the
option
of
a
I
think
he's
disappeared
now
of
a
webcam
or
screen
share
you're
going
to
need
to
pick
webcam
first
and
then
add
screen
share
it's
a
little
bit
confusing.
A
Okay,
hopefully
he'll
be
back
again
in
a
in
in
a
sec.
One
of
the
things
about
doing
sort
of
producing
live
shows
like
this.
We
ran
out
of
time
to
get
people
kind
of
scheduled
in
for
tests
beforehand.
So
hopefully
he
will
be
back
shortly.
A
A
So
yeah
I,
don't
know.
If
you
just
wanted
to
introduce
yourself
rubbish
and
away
you
go.
C
A
Cool
yeah,
if
you
want
to
share
your
screen,
if
you
look
along
the
bottom
there,
it's
the
one
two
three,
four,
five,
six
icon
along
there's
a
picture
of
a
screen
there
and
if
you
click.
B
C
Yeah,
so
you
will
find
a
couple
of
code
examples,
so
these
are
like
copy
and
paste
code
example.
You
just
need
to
follow
these
steps.
In
case
you
are
using
react.js,
next.js
or
any
browser
environment.
You
can
use
the
browser
code
examples
and
in
case
you
are
using
on
the
server
side.
You
can
use
the
node.js
code.
Examples
also
to
mention
our
python.
Sdk
will
also
be
live
produce,
so
there
will
be
limited
functionalities,
but
you
will
have
upload
functionalities
and
view
your
file
functionalities
initially,
and
we
will
keep
adding
more
and
more
features.
C
So,
let's
start
with
a
quick,
let's
create
a
quick
application
where
we
will
be
uploading
our
encrypted
file
to
ipfs,
and
then
we
will
be
using
token
getting
to
decrypt
that
file.
So
for
that,
what
I
will
do
is
I
will
just
take
this
node.js
encryption
example.
I
have
already
copied
it
into
for
my
vs4
and
if
you
just
if
you
can
have
a
look
at
the
code,
this
is
the
path
to
the
file.
I
will
be
streaming
a
video
after
encryption.
C
I
have
the
API
key,
which
nandith
mentioned
in
the
presentation
you
generated
using
the
file
step.
You
can
place
that
API
key
in
the
environment.
Variable
third,
is
the
public
key.
A
private
key
of
the
wallet
will
be
required
in
this
server
side
environment,
to
sign
a
message
with
the
encryption
notes
so
and
in
the
browser
this
part
will
be
managed
by
any
of
your
browser
wallet,
and
this
is
a
quick
function
upload
encrypted.
That's
it
with
this.
You
can
upload
a
file
with
encryption,
so
if
I
just
run
the
code.
C
C
So
what
happens?
Is
it
downloads
me
binary?
So
I
don't
know
what
I
should
do
with
this
file.
Now,
let's
try
to
decrypt
this
file
so
for
decryption.
You
can
follow
two
routes.
First,
one
is
you
can.
If
you
want
to
create
your
custom
page,
you
can
follow
this
decrypt
script.
This
code
example
is
for
node.js
and
in
case
of
browser
you
can
use
this
particular
code
example.
We
have
already
implemented
it
into
a
URL
which
is
View.
C
C
C
C
Now
I
don't
have
the
access,
because
this
particular
wallet
is
not
granted
the
access
to
the
file.
So
now,
let's
deploy
a
contract
on
so
we
are,
we
will
be
creating
a
custom
condition,
but
what
you
can
play
around
is
num.
So
let
me
show
you
what
are
the
possible
conditions
which
you
can
apply
with
encryption?
So
suppose
you
want
to
Grant
access
to
the
file
to
a
user
who
owns
nft
of
a
particular
collection.
Then
you
can
follow
this
code
example.
C
So
suppose
this
is
for
for
a
wallaby
chain.
A
method
is
the
balance
of
from
the
ERC
721
contract,
and
this
is
the
contract
address
and
comparator
is
like
either
he
owns
one
or
more
than
one
nft.
If
these
conditions
are
satisfied,
then
the
user
will
get
access
to
that
file.
What
I
will
be
trying
around
here
will
be
this
Custom
Contract,
so
you
can
summon
any
of
the
function
of
your
contract.
C
I
will
be
using
get,
and
if
the
output
of
that
function
is
equal
to
1,
then
we
will
grant
access
to
that
file
to
our
user.
More
conditions
can
be
tried
out,
sir,
like
the
native
token
conditions.
So
if
a
person
has
this
much
file
coin
or
this
much
eth
in
this
wallet,
then
you
can
allow
access
or
a
Time
based
condition
where
you
can
have
a
birthday
kind
of
example.
Where
suppose
a
user
has
a
birthday,
so
you
can
define
a
condition
so
unlock
the
file
after
this
many
block
period.
C
C
I
now
I
am
going
to
try
this
access
condition
code
example
it's
in
the
dock.
You
can
just
copy
paste
this
one
and
it
will
work.
So
if
you
want
to
apply
one
more
than
one
condition,
you
can
just
keep
pasting
the
condition
and
you
can.
You
will
have
to
use
this
condition
ID.
So
this
is
condition
one.
Then
this
becomes
condition
two
and
you
can
just
play
around
like
this
one
and
two.
So
if
both
one
and
two
are
satisfied,
then
user
will
have
access
to
a
file.
So
let's
try
with
one
condition
so.
B
C
Okay,
it's
here,
yeah
I've,
already
deployed
it
actually.
So
this
is
the
wallet
address
means
the
contract
address,
so
I
will
just
paste
it.
C
C
C
C
A
Yeah,
it's
one
of
the
things
we're
doing
live
demos.
You
often
end
up,
especially
on
blockchains
waiting
for
waiting
for
blockchain
to
complete.
C
I
think
this
one
field-
maybe
it
was
deployed
because
oh
we
can
do
it
in
another
way.
Also,
so
let's
do
it
zero.
Last
time
the
value
was
1,
and
so,
if
I
run
this
access
condition
again
with
putting
it
0
what
it
will
do
is
it
will
overwrite
the
last
condition.
Now
it
got
confirmed,
let's
check
the
value.
C
C
A
Fantastic
thanks
a
lot
ravish
now,
I,
don't
know
if
there's
any
questions
that
are
coming
up.
If
people
have
any
questions,
we've
got
a
few
minutes
before
our
next
guest.
So
if
anybody
has
any.