►
From YouTube: Lightning Demos - window.IPFS - Alan Shaw
Description
Originally recorded during the Berlin Developers Meetings from July 9-13, 2018.
Since then we moved to on-demand API under window.ipfs.enable
Latest docs can be found at: https://github.com/ipfs-shipyard/ipfs-companion/blob/master/docs/window.ipfs.md
A
So
I've
talked
about
winded
ifs
a
little
bit
already,
and
it's
this
way
of
talking
to
an
external
ipfs,
node
and
I
just
wanted
to
talk
a
little
bit
about
how
that
works
and
what
it
can
do
and
why
it
works.
The
way
it
does
so
I
haven't
prepared.
This
orifice
is
a
little
bit
disjointed,
but
what
it
essentially
does
is
it
puts
an
IP
FS
object
on
your
window,
so
you
should
just
be
able
to
sorry
be
a
girl.
A
Ok,
you
should
be
able
to
cool,
write,
regular
API
stuff
in
companion.
We
have
this
idea
of
like
ACLs
and
just
not
allowing
anybody
to
just
access
your
your
ipfs
node.
So
when
you
try
and
when
a
website
tries
to
use
your
ipfs
node,
it
comes
out
with
a
CL
dialog
to
say:
do
you
want
Google
to
access
your
things
and,
of
course
you
can
deny
that
or
you
can
allow
it
and
if
I
allow,
then
basically
I
should
be
able
to
cool
my
IP
first
node
and
I'm
currently
talking
to
a
go
up.
A
A
A
So
I
can
do
stuff
like
it's
good,
because
it
it
works
and
the
the
like
technical
challenge
with
challenges
with
it
is
that,
like
the
web,
browser
extension
runs
in
its
own
process.
So,
like
the
ipfs
node
or
like
like,
if
we're
running
Jeff
ipfs,
we
basically
want
to
share
our
node
between
lots
of
websites
because
it
has
advantages
such
as
like
it
doesn't
take
time
to
download
it.
A
It
will
already
have
connected
to
a
whole
bunch
of
peers
and
stuff
like
that,
so
that
sort
of
has
to
run
in
a
separate
process,
and
we
can't
just
share
that
that
process
or
that
object
with
a
web
browser
like
that's
just
not
how
it
works,
and
if
you
look
at
like
iframes
in
the
web
or
anything,
if
you
want
to
ever
talk
to
a
different
web
page,
you
always
have
to
do
it
over.
Like
a
postmessage
api,
you
have
to
pass
messages
basically,
and
so
what
we're
doing
to
implement
this
window.I
PFS
is.
A
We
are
talking
over
a
postmessage
api
to
another
process
which,
where
the
ipfs
node
is
running,
so
when
we're
talking
to
go,
we're
actually
talking
over
post
message
to
GFI
PFS
api,
which
is
talking
to
go
when
we're
talking
to
Jay
when
we've
got
an
actual
JSI
profess
instance
running
in
the
web,
browser
we're
talking
over
post
message
directly
to
a
jfif
s,
so
that's
kind
of
RAD,
and
so
this
this
some
like
to
be
able
to
talk
over
that
and
that
boundary.
We
need
to
do
things
like
this.
There
are.
A
A
And
so
this
is
why
the
library
called
hyperfest,
postmessage
proxy
exists
and
yeah,
so
you've
basically
got
a
whole
bunch
of
cool
stubs
that
make
like
RPC
calls
over
window
dot,
fossa
post
message
to
like
the
exposed
api
you
choose,
which
kind
of
what
methods
of
your
API
you
can
you
expose,
but
and
that
and
being
able
to
choose
which
methods
allows
us
to
add
things
in
like
a
CL
in
front
of
it
on
the
slide
where
it
matters
where.
So.
A
This
is
like
web
page
side,
and
this
is
the
side
where,
where
the
web
extension
is
where
like,
where
it
should
make
decisions
and
then
what
we're
doing
to
check
the
are
like
this
module
is
doing.
A
good
job
is
we're
using
the
interface
IVFs
core
tests
to
make
sure
that
what
what
it's
doing
is
working
so
we've
got
tests
said
well,
this
does
it
actually
runs
spins
up
a
browser,
puts
an
iframe
in
it
and
then
runs
a
GFI
PFS
in
the
iframe
uses.
A
The
interface
IP
FS
core
tests
to
test
the
call
stubs
which
talk
to
Jo,
scipy
FS
and
if
everything
passes,
then
we're
doing
a
good
job,
and
so
that's
kind
of
what
it's
doing
and
so
to
talk
a
little
bit
about.
So
this.
This
module
itself
doesn't
like
implement
the
the
access
control
stuff-
that's
kind
of
implemented
in
companion,
but
it
allows
you
to
kind
of
put
that
layer
in
between
and
then
we've
got
stuff
like
for
NFS
access.
A
We
scoped
each
website
into
its
own
folder,
so
you
transparently
use
NFS
as
you
normally
would,
but
that
gets
mapped
onto
like
dap
slash
your
domain
name,
so
each
website
isn't
overwriting
each
other's
files.
Basically,
so
again
we
do
that
in
in
companion
and
then
just
show
you
so
the
the
like
companion,
you
can
drill
into
the
permissions
dialog
and
you
can
see
what
has
been
granted
like
I
just
granted.
A
You
saw
the
dialog
come
off
and
I
just
granted
this
here
and
I
can
hopefully
toggle
this
off
to
deny
it
or
remove
it
entirely
and
go
back
and
I
should
just
not
be
able
to
call
that
now.
Yes,
I
got
denied
access
to
call
ID
and
if
I
remove
the
permission
entirely,
then
I.
Don't
it
should
ask
me
again
if
I
want
to
allow
it
cool,
yeah,
cool.