►
From YouTube: Core Implementations Working Group 2020 Recap
Description
Jacob Heun gives an account of all the things the JavaScript and Go IPFS devs were able to accomplish in 2020.
For more information on IPFS
- visit the project website: https://ipfs.io
- or follow IPFS on Twitter: https://twitter.com/IPFS
Sign up to get IPFS news, including releases, ecosystem updates, and community announcements in your inbox, each Tuesday: http://eepurl.com/gL2Pi5
A
Hi
I'm
going
to
be
talking
today
about
core
implementations.
Hopefully
you
can
all
see
see
my
screen.
This
has
been
a
big
year
as
molly
kind
of
talked
about
dht,
obviously
a
huge
thing
there,
but
so
much
else
went
on
going
back
and
just
reading
through
the
blog
to
see
where
we
were
at.
I
realized
that,
like
earlier
this
year,
let's
see
the
async
weight
refactor
landed
in
javascript,
which
was
a
huge
undertaking
in
2019.
It
took
a
very
long
time
and
usability
there
was
was
huge
for
javascript.
A
One
of
the
biggest
things
for
me
personally
is
debugability
that
that
helped
improve.
I
don't
know
if
you've,
if
you've
worked
in
the
javascript
environment
before
in
js
I
ipfs
or
lippy
to
p,
you
might
have
seen
these
like
nightmare
stack
traces
trying
to
debug.
What's
going
on
that,
has
improved
a
lot
just
because
of
the
refactor
here
and
what's.
Nice
is
also
in
the
part
of
that
release.
Of
that
we
did
a
big
reflection
on
what
what
does
it
take
to
do?
A
large
refactor
like
this?
A
What
did
we
do
wrong,
and
so
you
can
check
out
that
blog
post
on
on
big
refactors
there
that
alan
posted
earlier
this
year
and
try
to
avoid
doing
these
large
things
in
in
the
future,
but
we
definitely
want
to
make
sure
that
we're
doing
refactors
as
we
go
from
there.
A
Another
thing,
a
big
goal
in
the
first
half
of
the
year
was
to
work
on
developer
improvement
in
addition
to
improving
the
dht
or
developer
enablement,
and
one
of
the
things
that
js
ipfs
has
done
really
well.
This
year
is
streamlining
that
release
pipeline.
So
now
every
merge
to
master
is
in
rc,
so
you
can
npm
install
next
and
always
get
the
latest
and
greatest
and
test
that
out
with
that.
We've.
Also,
really
this
nasty
mind
map
of
repositories
going
on
here,
doing
a
like
getting
a
feature
change
out.
A
The
door
sometimes
would
take
pr's
across
multiple
repositories
and
those
would
all
have
to
get
landed
together
and
it
was
a
nightmare
to
deal
with.
We've
really
coalesced
a
lot
of
that
to
make
it
easier
in
the
ipfs
repo
and
now
we've
kind
of
been
able
to
release
a
lot
of
those
dependencies,
all
together,
kind
of
moving
to
a
monorepo
for
all
of
those
things
that
that
don't
really
make
sense
to
be
separated,
then
dht
and
bit
swap
improvements.
So
really
all
of
this
stuff
from
0.5
through
0.7.
A
So
much
work
went
into
this.
We'll
kind
of
talk
about
the
dhc
performance
improvements
a
little
bit
more
and
then
bitswap
as
well,
but
this
was
a
huge
undertaking
that
took
a
good
part
of
the
first
quarter
well
into
the
second
quarter,
and
then
we've
had
a
trickling
of
updates
since
then.
So
talking
a
little
bit
about
the
dht
and
bit
swap
improvements,
so
the
dht
right
was
was
not
very
performant
and
I'll
kind
of
walk
through
some
of
these
initial
metrics
here.
A
So
what
we
did
is
we
got
together
with
test
ground
as
test
ground
was
being
built.
We
were
kind
of
doing
these
things
in
parallel,
which
was
really
huge,
and
here
you
can
see
kind
of
some
of
the
test
ground
benchmarks
that
we
put
in
place.
So
these
aren't
based
on
the
live
network
in
this.
This
is
everything
that
we've
pulled
directly
from
test
ground,
so
we've
had
huge
gains
in
go
from
ipfs0423
to
ipfs
0.5
and
it's
continued
to
get
better
such
significant
improvements
there.
A
So
a
lot
of
work,
a
lot
of
benefit.
It's
been
really
great.
Looking
at
these
these
fine
times
over
time
like
finding
content
on
the
network,
so
we
go
back
to
ipfs0423.
You
can
probably
hard
to
see
here,
but
in
the
95th
percentile
our
find
times
were
at
45
seconds,
and
so
this
was
like.
We
were
running
this.
Our
metrics
are
being
collected
on
the
live
network.
A
What
we
do
is
we,
we
have
a
cron
job
where
we
will
spin
up
some
nodes,
we'll
provide
some
content,
we'll
query
the
content-
and
this
is
where
this
coming
from
this
is
coming
from
the
live
network-
we're
not
pulling
from
other
people's
queries
at
this
point
in
time,
because
privacy,
yay
and
so
in
ipfs
0.5.
It
was
a
huge
gain
coming
from
45
seconds
to
an
average
about
5.4
seconds
week
over
week
in
0.6,
as
we
continue
to
make
like
tweaks
and
improvements
and
as
people
just
upgraded.
A
The
network,
like
the
big
gain
here
from
0.6
to
0.7,
going
from
5.4
to
3.8
to
1.5
seconds
like
we're,
seeing
pretty
pretty
consistently
1.5
seconds
and
100
success
in
fine
time.
This
is
just
being
because
people
are
are
upgrading
from
o4
23
to
0.6
and
0.7.
So
tell
all
your
friends
upgrade
get
the
latest
bit
swap
improvements,
also
as
part
of
a
collaboration
with
netflix.
A
So
here
on
the
left,
you
can
kind
of
see
some
graphs
of
the
various
levels
of
previously
in
in
master,
which
was
our
old
bit
swap,
and
then
the
poc
which
is
now
live,
you'll
see
that
when
you
have
more
seeders,
it's
now
much
more
effective,
which
is
really
really
great
and
additionally
in
jsipf
s
like
such
big
gains
there
in
data
transfer
speeds
like
you're.
Looking
at
you
know,
over
50
percent
gains
in
throughput
there
for
just
doing
some
small
tweaks,
so
really
great
stuff
molly
talked
a
bit
about
hardening.
A
This
was
a
big
focus
this
year.
Obviously
large
networks
eth2
launching
this
year,
filecoin
launching
this
year,
like
it's
very
important
for
these.
These
networks
to
have
a
lot
of
integrity,
and
so
with
that
we
took
two
endeavors
here.
One
is
gossip
sub
one
one,
and
so
we
we
spent
some
time.
A
lot
of
thought
went
into
this
with
the
little
p2p
team,
our
research
team,
working
with
our
collabs
to
figure
out.
A
You
know
what
what
do
we
need
to
do
to
to
make
this
make
this
hardened
and
secure
on
the
network
and
so
working
with
test
ground?
Again
to
test
out
attacks
to
go
through
various
harding
techniques,
you
can
read
more
about
it
in
the
blog
post,
a
lot
of
improvements
there
and
we
were
able
to
land
that
in
both
go
and
javascript
thanks
to
the
folks
at
chain,
safe
landing
in
javascript.
So
that's
huge,
huge
ones
there
for
the
dht
hardening.
A
You
can
kind
of
read
about
this
blog
post,
but
we
some
researchers
reached
out
earlier
this
year
and
like
hey,
we
found
some
vulnerabilities
and
we
collaborated
with
them
for
the
the
o.5
release
like
it
actually
used
to
be
fairly
easy
to
eclipse
a
node
and
evict
people
from
the
routing
table.
A
Now,
that's
significantly
harder
again,
we
leveraged
test
ground
to
do
this
and
we
actually
ran
some
like
24-hour
attacks
against
some
of
our
own
bootstrap
nodes
without
any,
like
any
consequence,
low
eviction
rates.
It's
been
really
really
great,
so
awesome,
stuff.
There,
then
noise,
quick
and
more
so
yeah.
We
replace
secio
with
noise.
Noise
is
in
the
all
seven
implementations
of
lippy
to
p
it's
the
the
standard
protocol
for
the
ethernet
work
as
well.
Big
wins
there.
A
Switching
over
to
quick
has
saved
us
in
round
trips,
which
is
why
you're
seeing
additionally
some
improvements
there
in
the
dht
query
times
just
reducing
the
the
amount
of
latency
that
we
have
backbone
connections
and
then
a
whole
slew
of
other
stuff
custom
dac
formats
and
jsi
bfs.
You
can
now
peer
nodes
in
in
go
ipfs,
which
has
been
super
valuable
for
clusters
and
then
last
but
not
least,
something
that
we're
working
on
right
now.
Jsipfest
has
already
released
this
pinning
improvements
so
moving
pinning
into
the
datastore
out
of
the
dag.
A
You
can
see
here
kind
of
in
this
graph
of
where
jsi
pfs
used
to
be
this
blue
line.
On
top
the
more
pins
you
have,
the
slower
and
slower
it
gets
go.
Ipfs
is
the
yellow
line
in
the
middle
after
the
fix,
js
is
has
been
level
and
the
go
ipfs
0.8
rc
is
out
just
launched
this
week.
So
if
you
want
to
test
out
the
pinning
service
performance,
please
do
we
would
like
to
make
sure
that
is
fully
functioning
before
we
fully
release,
make
sure
everything's
good
to
go.
A
We've
done
testing
on
rn
testing
out
our
services.
We
want
to
get
as
much
testing
there
as
possible
and
then
I
think
lida
will
probably
talk
about
this
a
little
bit
later
on,
but
remote
pinning
services
are
going
to
be
landing,
and
this
is
going
to
be
really
valuable
for
people
who
want
to
leverages
services
like
pinata
or
infuria
to
be
able
to
offload
say:
hey,
can
you
hang
on
to
this?
For
me,
you'll
be
able
to
configure
remote
pinning
services
in
go
ipfs
and
js.
A
Ipfs
will
also
be
releasing
with
this,
and
what
that'll,
let
you
do
is
those
services
can
then
pin
it
on
your
behalf,
and
you
can
do
that
directly
from
the
ipfs
clients.
So
again,
this
is
in
the
go.
Ipfs
1.8
rc
so
feel
free
to
play
around
with
it,
and
I
think
that's
it
don't
forget
to
update,
don't
forget
to
upgrade
when
0.8
comes
out
upgrade
and
thanks.