►
From YouTube: Browsers 3000: P2P Web with the Agregore Browser - Mauve
Description
Browsers 3000 is a six-week virtual event to explore and accelerate the development of web3 in the browser through experimentation and challenge prizes of up to $20,000 worth of Filecoin (FIL). Learn more at https://events.protocol.ai/2021/browsers3000.
Like all IPFS Community events, Browsers 3000 expects all speakers and participants to follow the IPFS Community Code of Conduct (https://github.com/ipfs/community/blob/master/code-of-conduct.md).
A
Hello,
I'm
move,
and
today
I'm
going
to
be
talking
about
ipfs
in
agricore.
I'm
mostly
going
to
be
talking
about
my
love
of
the
web
peer-to-peer
networks
and
how
I've
combined
these
in
a
web-like
interface.
A
A
A
When
I
was
first
learning
to
program,
it
was
actually
a
huge
deal
to
actually
share
my
code
with
anybody
and
once
I
got
into
web
development
suddenly
I
didn't
have
to
worry
about
what
platforms
people
were
running,
whether
they
even
wanted
to
install
my
binary
or
not.
I
could
just
create
my
content
and
the
web
would
do
the
distribution
for
me,
which
is
great.
A
Sadly,
the
web
is
tightly
coupled
with
these
things
called
web
servers,
and
I
think
that
web
servers
are
kind
of
bad,
or
at
least
not
as
good
as
they
could
be.
Oh,
let
me
just
fix
the
formatting.
A
And
you
know
this
is
better
than
having
no
web,
since
you
know
at
least
we
have
a
web,
but
having
web
servers
actually
introduces
some
new
problems
that
we
didn't
have
with
just
you
know,
native
software.
So,
for
example,
if
you
want
to
actually
get
your
software
to
scale
really
well,
it's
really
hard.
You
need
to
have
a
whole
bunch
of
engineers
doing
a
whole
bunch
of
work
to
get
a
whole
bunch
of
servers
to
do
a
whole
bunch
of
stuff
at
once,
which
you
know
is
expensive
as
well.
A
It
makes
security
harder,
because
now
you
have
these
large
databases
of
people's
data
and
if
there
is
a
leak
or
if
some
programmer
doesn't
do
something
right.
Suddenly
everything
is
exposed
which
is
not
really
great
as
well.
You
now
need
all
of
these
concepts
to
learn,
whereas
before
you
can
have
like,
I
don't
know,
a
visual
basic
script
and
that
could
give
you
like
a
super
basic
gui
on
a
computer.
A
Now
you
need
to
know
not
just
the
code
for
rendering,
but
you
also
need
to
know
how
to
do
databases,
how
to
do
servers
and
how
to
make
all
of
this
stuff
interop
with
devops,
which
is
not
super
accessible
to
a
lot
of
smaller
groups
as
well.
You
know
this
might
be
a
little
hard
to
think
about,
but
you
need
the
internet
now
to
author
content
to
load
contents
and
if
you
want
anything
to
work
offline
without
the
internet,
it's
super
hard.
A
Similarly,
if
I
want
to
load
a
file
or
share
a
file
with
somebody
else,
I
suddenly
need
to
not
just
connect
to
them
and
send
it.
I
need
to
connect
to
a
server
who
knows
where
and
then
they
need
to
connect
to
that
server
and
this
file
that
could
have
been
sent
over.
My
local
wi-fi
now
needs
to
do
a
trip
around
the
whole
world,
which
adds
latency
and
just
general
waste
as
well
with
server
based
stuff.
You
need
to
constantly
pump
money
into
it
to
keep
it
going.
A
So
that
means
that
you
need
a
credit
card
and
an
address.
That
means
that
if
you
don't
have
the
ability
to
set
up
your
own
hardware,
you
need
to
now
rely
on
some
third
party
and
make
sure
that
they
never
go
down
or
they
never
change
anything
from
under
you.
So
that's
kind
of
hard,
because
suddenly
you
have
a
lot
less
control
over
what
you
can
do.
A
However,
there
is
this
cool
thing
called
peer-to-peer
and
it's
good.
So
it's
been
getting
a
bit
more
popular
lately
to
think
about
how
things
can
work
without
servers.
A
So
peer-to-peer
software
is
really
interesting
in
that,
rather
than
having
everything
aggregated
in
a
central
place,
we
can
instead
have
everything
spread
out
across
all
users,
and
this
comes
with
some
cool
trade-offs
that
we
didn't
have
before
everything
now
works
offline
first.
So
if
I
publish
a
little
blog
with
my
cat
photos
or
whatever
if
anyone's
downloaded
it,
they
now
have
a
copy
of
it.
That's
available
offline,
and
I
didn't
need
to
do
any
crazy
engineering
with
service
workers
or
like
complex
stuff.
A
Everything
just
works
by
default
and
you
don't
need
the
extra
setup
for
servers
unless
you
really
need
to
in
fact
authoring.
A
peer-to-peer
app
is
a
little
more
simple
in
that
you
can
have
some
files
in
a
folder
and
that
folder
is
some
sort
of
peer-to-peer
archive
or
peer-to-peer
thing
say
on
ipfs
or
made
safe
or
bittorrent
or
hypercore
protocol.
You
know
whatever
you're
using
and
suddenly
that
could
be
an
app
and
that
can
be
transmitted.
A
The
same
way
that
you
transmit
data
say
like
linux,
iso
image,
because
that's
what
people
use
torrents
for
and
also
what's
interesting,
is
this
stuff
could
work
without
any
sort
of
third
party
mediating
your
access
to
data
and
publishing.
A
So,
instead
of
me
having
to
rely
on
google
to
host
my
blog
spot
or
whatever,
I
can
rely
on
just
my
computer
being
online
or
having
like
a
little
cell
phone
sitting
in
the
corner.
That
is
now
my
website
or
keeping
my
website
online
as
well.
It
all
works
without
needing
the
internet,
but
potentially
over
local
networks.
So
imagine
you're
trying
to
go
on
a
camping
trip
with
your
friends
and
suddenly
absolutely
nothing
works
anymore,
because
you're
just
out
of
range
of
cell
towers
and
all
of
the
software
you
have.
A
Even
if
you
have
battery
power,
it's
kind
of
useless
because
it
all
relies
on
the
internet
and
the
cloud.
But
if
your
software
was
built
on
peer-to-peer,
suddenly
you
don't
have
to
care
about
the
internet
or
the
cloud
or
whatever
else,
because
any
device
that's
within
networking
range
could
enable
you
to
communicate.
A
So
that's
super
cool,
but
what?
If
we
went
one
step
past
having
peer-to-peer
apps
that
are
native
and
thought
about
peer-to-peer
web?
So
what
would
it
look
like
if,
instead
of
having
server
serving
web
content
or
peer-to-peer
apps
that
are
natively
installed?
What
if
we
instead
had
our
web
browser
that
could
just
load
content
and
there's
been
some
stuff
already
around
providing
javascript
apis
in
web
browsers
to
interact
with
peer-to-peer
content?
But
what?
If,
instead
of
having
these
javascript
apis,
we
thought
about
what
would
the
http
peer-to-peer
web
look
like?
A
So,
let's
just
quickly
go
over
what
http
looks
like
we've
got,
urls,
which
everyone
loves.
We've
got
some
methods
on
what
we
can
do
with
the
urls
like
we
can
get
something
from
a
url
post,
something
to
a
url
delete,
something
and
with
http
we
can
load
content.
So
we
can
load
web
pages.
We
can
load
images
scripts,
all
that
good
stuff
and
we
have
javascript
apis
for
reading
and
writing
stuff
from
web
servers.
A
So
what
if
the
peer-to-peer
web
was
the
same
thing,
but
instead
of
using
http
urls,
we
could
use
ipfs
and
ipns
urls.
So,
for
example,
what
if
we
could
get
data
from
ipfs
and
some
sort
of
hash
or
path
to
get
content
from
ipfs
or
similarly
with
ipns
or
what?
If
we
could
post
to
ipfs
the
protocol
itself
and
say,
give
me
back
a
hash
that
I
can
share
with
somebody
as
well.
A
So
initially,
I'd
been
working
on
some
electron
based
apps
for
clients,
and
I
created
some
protocol
handlers
and
I
was
looking
at
it
and
I
was
like
wow.
This
is
actually
super
easy,
and
so
the
thing
that
I
wanted
didn't
exist.
Yet
I
didn't
have
a
browser
that
could
do
all
the
protocols
I
wanted.
There
was
nothing
that
was
you
know
as
minimal
that
I
wanted,
and
nothing
had
support
for
extensions
that
I
could
see.
So
I
set
out
to
make
that
so.
A
Agrigore
is
an
electron
based
peer-to-peer
web
browser,
which
has
support
for
a
whole
bunch
of
protocols.
We
have
ipfs
ipns,
of
course,
hypercore
protocol.
We
have
support
for
weird
things
like
gemini
and
in
fact
we
have
support
for
bittorrent,
so
any
bittorrent
magnet
or
you
know,
infohash
out,
there
is
actually
already
a
peer-to-peer
website
which
is
exciting
and
as
well,
rather
than
trying
to
pack
as
many
features
as
possible
into
the
browser.
Instead,
we
use
web
extensions
so
the
same
way
that
you
can
extend
a
regular
web
browser.
A
So
I'm
gonna
open
up
my
console
for
those
of
you
that
haven't
done
much
of
this
console
stuff
before
it's
kind
of
like
the
back
door
to
doing
stuff
with
websites
so
with
the
built-in
web
apis.
A
A
A
All
right
bam,
so
I
just
downloaded
the
ipfs
or
yeah
the
ipfs.io
homepage,
and
I've
got
it
out
as
a
javascript
string.
So
in
your
application,
you
could
see
this
fetching
things
like
users,
profiles
from
their
urls
or
something
to
do
with
these
decentralized
identities
or
some
sort
of
data
that
you
might
want
to
aggregate
in
say
a
social
application.
A
Similarly,
if
your
application
wants
to
post
something
to
ipfs
and
get
back
an
infohash
rather
than
using
the
ipfs
global
or
importing
some
sort
of
libraries,
you
can
use
the
built-in
browser
fetch
api
and
instead
of
doing
a
fetch
to
an
ipfs
url,
I'm
going
to
fetch
an
ip
f
set
of
ipns
ipfs
url
and
I'm
going
to
give
some
sort
of
file
name.
For
example,
I'm
going
to
say
I
want
to
create
example.html
and
I
am
going
to
post.
A
Some
data
and
the
contents
will
be
the
body
which
just
has
a
header
that
says
hello
world.
A
So
now
I
posted
that
and
it
uploaded
to
my
local
ipfs
node
and
if
I
copy
this
link,
I
don't
have
anywhere
good
to
post
this
in
the
chats.
But
if
I
post
it
in
the
url
up
here,
I
just
created
my
website
with
hello
world
up
here,
and
so
with
that
I
can
publish
arbitrary
things
to
ipfs
say
I
wrap
this
in
a
marquee
tag,
and
now
I
get
a
new
url.
A
But
what's
cool
is
with
pretty
much
very
little
changes.
I
can
now
publish
this
into
an
ipns
domain.
So
again
I'll
do
I'll
use
fetch,
but
now,
instead
of
fetching
an
ipfs
url,
I'm
going
to
fetch
to
ipns
and
make
up
a
name
for
a
website,
for
example.
Example:
under
the
hood,
this
will
generate
a
public
private
key
pair
and
it'll
generate
a
new
ipfs
public
key
url,
and
instead
of
using
the
post
method,
I'm
going
to
say,
publish
and
instead
of
some
html,
I'm
going
to
post
the
ipfs
url.
A
I
want
to
publish
more
specifically
I'm
going
to
publish
the
root
folder
rather
than
the
example
page.
A
A
A
I
think
next
thursday,
where
I'm
going
to
be
showing
people
in
depth
how
to
actually
make
something
with
this
and
doing
a
bit
of
a
workshop
where
you
can
play
around
I'm
going
to
be
giving
out
some
stickers
as
prizes
for
people
that
do
interesting
things
with
aggregor
or
with
combining
multiple
protocols
together
and
if
you're
ever
interested
in
learning
more
about
this,
or
have
some
questions,
I'm
going
to
be
in
the
discord
for
the
browser,
browsers,
3000
channel
or
you
can
join
the
agricore
channel,
which
I
will
link
somewhere
through
my
slides
but
yeah.
A
I
hope
this
is
giving
you
some
ideas
on
new
ways
to
interact
with
the
web
and
with
peer-to-peer
protocols.
I
hope
you
can
make
stuff
you
can
make
stuff
simple.
You
can
make
stuff
that's
resilient.