hi guys so yeah I'm Felix I work for a
third Foundation I'm one of the
maintainer of goethe room and I'm also
the maintainer of the deaf PDP
specifications so in this talk I'm just
gonna you know talk about things that
happened around FPTP in 2018 so yeah I
get to answer this question every year
so once def TV well it's a peer-to-peer
networking stack and it's a system that
if there am notes used to talk to each
other over the network so and it has all
the things that peer-to-peer networking
stacks usually have so it has a system
for finding nodes on the internet and it
has an encrypted transport protocol that
you even heard about a bit earlier it's
not the best but it does have one and
this is the protocol that the notes
actually use once they are exchanging
data I think the important thing to know
about this PDE
mostly is that it's an integrated
networking stack so all the components
work together in a predefined way and
this is great because it means that the
system has certain properties that we
can rely on and it's actually much
easier to evaluate the security this way
because if well if you know how exactly
this stuff is going to be used and it's
it's it's easy to to reason about so
there are around 10 implementations of
def PDP right now so you can see them
listed here most of these implements are
like most of the deputy implementations
are part of some kind of ethereum
blockchain client but it's not all block
chains so there's there are some
implementations that are incomplete or
they're just a library that implements a
certain part of it and their feet EP
isn't just useful the blockchain it's
also used by other projects like this
one distributed file system most of the
offshoots of
sois file system also use it and even
the status messenger abuse it for a long
time but I'm not sure whether they're
still using it or whether they switch to
something else
by now yeah so apart from these
implementations that are just you know
speaking the protocol there are a couple
of tools around specifically what we
have is a couple of DHT crawlers some of
them open-source some of them dot so the
most famous one is ether notes org which
you can visit and check stats and
basically so a DHT troller it explores
the note discovery system to see which
notes are around and then it lists those
on a webpage and then finally for
networking nerds this year consensus has
released Wireshark detectors for the
protocols and I'm actually really happy
about that because it means it's much
easier now to debug issues with a
protocol because I can just load it up
and in Wireshark and see what is the
note doing and it labels all the packets
that are being sent on the wire by name
and things like that so this is a really
helpful thing alright let's talk about
the live network for bit so we're still
alive I guess we have around 12,000 if
they remain had notes just like last
year at least that's what if a note says
and the number of tht participants is
actually quite a bit higher because when
you look at even notes would you what
you see on the front page is if there
are made out nodes which ether notes has
decided that you know this note is part
of the main that but actually in the
discovery you'll find a bunch more nodes
that are doing all kinds of stuff like
there are other block chains which which
have somehow imported FPTP there there's
there are swarm nodes there are all
kinds of nodes listed so you can
actually find a lot more nervous than
just those
oh right I forgot something yeah
actually we haven't in 2018 they haven't
been any new attacks so this is oh I'm
also happy about that so and in general
we're not seeing a lot of network level
attacks so most of the attacks on a
theorem have been on the consensus
protocol level but on on the network
level we haven't actually seen any
malicious activity as far as we know at
least in 2018 so there wasn't was none
like a major network disruption but what
we did see was that there was a research
paper was published in the beginning of
the year by researchers at the
University of Boston where they explored
the possibility of an Eclipse attack on
the etherium Discovery Network but
fortunately for us this this was
disclosed responsibly through the bounty
program so they sent the paper to us a
month in advance and we could actually
read it before it was published and we
could mitigate the issues and I'll talk
a bit about that later so yeah this is
now the section where we talk about you
know what happened in terms of
development in 2018 so the first new
thing is actually kind of old so all the
specs were rewritten and if you read the
old spec it was just one document maybe
you'll understand why so it was really a
lot to read it was incomplete at times
you couldn't really figure to figure out
what what the semantics of the protocol
were half of the document was stuff that
never got implemented which is the big
bunch of notes basically so yeah I'm a
bit proud to say that you know the specs
are now much more readable and they're
up to date and yeah just in general the
drive type I've split up the specs into
into into multiple parts so I feel like
it should it should all be a lot nicer
now and
[Music]
we never tested now so this is something
I'm very sad about Frank has joined the
Goya theorem team very recently and he
has created a peer-to-peer networking
testitude based on the high of tool so
hive is a tool that we use for testing
the consensus between clients and it's
also a it's also used for testing the
RPC interface - - - to the clients so
now we can test the peer-to-peer
networking as well and death parity LF
and ether MJ are hooked up to this test
suit and Trinity is being added well
it's you know been being added since a
couple months now so I think it's gonna
be done any any second but yeah it will
eventually also be there and really like
adding a client to to hive isn't all
that hard so it's I think this is a huge
success so in guess what what's happened
in gif so in the beginning of you we
were we were really busy implementing
the mitigation for the for the Eclipse
attack and basically the way that attack
works is that a node can be surrounded
on the discovery level with attacker
nodes and it won't be able to find any
any kind of honest node because all all
all it will know about is like these
these these attackers that were spawned
specifically to to to bring us know down
and the way we approach the mitigation
was to introduce IP limits on the
connectivity and so basically you you
can you have to have like a nice-looking
IP address to connect yeah something
like that and and we also we reworked
how the discovery tables work so that
the table can't be overrun by attackers
so easily and then later in the year
we've introduced support for Ian's are
throughout the gold p2p codebase I'll
have something about Ian or later if
that doesn't mean anything to you it's
fine
and and we've modularized the discovery
code in general so we're now ready to
actually plug in different pure
discovery mechanisms and this is
massively gonna help with adoption of
some of the new changes but most of the
changes so the PD code base haven't had
any kind of immediate impact on the
connectivity so you know as a user of
Kathy not gonna like see I don't know
any improvements basically it's only
especially it's mostly pin prep work and
then as you mentioned we found this
experiment to run to run deaf p2p
applications or let p2p so since you
already talked about it so much
evolution to skip it now so it was I
think the experiment was successful and
we have a pretty clear roadmap now of
how to integrate the p2p into the whole
deaf people thing okay so there are some
ongoing changes to the to the to the low
level protocols so independent of any
actual implementation and yeah so what
I've done this year is to just I've
published three eep drafts the first one
is EEP seven seven eight that's
aetherium note records and this is kind
of at the heart of it so if there are no
records or a new concept is like a small
document format about with note metadata
it's a bit like business cards for for
notes and in those business cards the
notes can declare transport capabilities
and application capabilities in all
these kinds of things and then they can
be relayed through some medium and then
Nick up next we have this
eight six eight which is a specific tiny
specification that integrates note
records into the existing discovery
protocol so this one's really short and
then finally we have something new which
is the last item and that one is a
entirely new mechanism for discovering
notes based on
on DNS so it basically allows you to
find node records behind a certain DNS
name and it's totally independent of the
of the distributed hash table so yeah
Ian's are so what's that about so I'll
maybe I'll it's when people look at the
e on our specification they can
sometimes well they come back to me and
they say well what can I use this for I
mean this is like you know there are
almost no details and the eep about you
know potential users and and it's it's
it's a document format I mean how does
that relate to to to to the grand scheme
of things so the thing about you know is
that is more like it's like a medium for
negotiating all kinds of capabilities
that nodes have and it can't be about
hard to imagine like which capabilities
are actually worth negotiating between
nodes so I'll just have a couple
examples for for for you guys now so the
one of the things that makes me excited
about E&R is that it gives us the option
to switch to a zero round-trip in skin
encryption scheme so if two nodes learn
about each other in some discovery
system what what the discovery system
can do for them is it can relay key
material which can be used to
pre-compute secrets for a connection and
this is actually really nice because it
means that as soon as a connection
between those two nodes is created the
the nodes can start sending data that's
relevant to the application pretty much
within the first bite because because
most of the secrets that are needed to
encrypt their communication are already
pre computed before the connection was
even created and yeah so I feel like
this is this is a pretty useful feature
but what we need for that obviously is a
way to like relay this initial key
material and this is where where where
you know can help the second thing is
well transport options so this is
something that also makes sense to into
to negotiate up front because
like Guillaume told you we have this
ambitious plan to use some of the lipid
EP transport offerings in our deaf p2p
stack but in order to make this work
well if you have a note that speaks the
p2p and have in it you have another that
wants to talk to it that other node
needs to know whether the p2p is
supported and this isn't really
something you can just sort of try I
mean you can poke the node and then see
it was not responding but that just
takes super long and the right solution
here is to just know that this node is
capable of speaking the p2p and so for
these kinds of things it's obviously
very useful if the node can declare
upfront in in some kind of system that
is compatible with with with with
whatever transport you want to speak and
then finally there's another thing which
is negotiating prices so what kind of
prices well so in systems like the
etherium like client or swarm you have
something called an incentive system so
in an incentive system on the network
level there are clients and there are
servers and the clients pay the servers
for whatever bandwidth they if they're
using and well that bandwidth comes at a
certain price and if you have an
incentive system set up then there's a
market for service obviously because
some servers have gonna have one price
and other server is gonna offer another
price and as a client you want to
connect to servers that are sort of like
in your price range right I mean you
don't have an infinite budget you you
need you you need a server that gives
you it like the most how do you say bang
for the buck I guess and so to make this
work if you if you can already know up
front that a certain server force a
swarm can offer you data at a certain
price that can influence your your your
connectivity decision as a client so
you're obviously gonna prefer the the
servers that are you know match your
your price expectations
right and let's just go and look a bit
at how the D&S discovery works because
this is like the new thing so the DNS
discovery is a bit different from the
others because it doesn't it doesn't
talk about improving any existing
protocol it's a totally new protocol and
we've come up with this scheme because
we want a replacement for bootstrap node
lists so in most clients what you'll
find is there's a there's a hard-coded
list of bootstrap nodes but usually it's
not that long and these nodes are the
initial entry point into the network so
when you want to talk to the blockchain
you've got to start somewhere so you
gotta find someone who's on that
blockchain more or less talk to them
first and then find all the others who
are also you know into this thing and
these maintaining these lists is you
know annoying because when we if we want
to add a note to it and we could just
put in a source code people can download
some releases and you release off the
client and then they'll have it but we'd
rather them much rather have a list
that's dynamic that can be updated on
the fly and the list is like very very
long right so we you know for initial
entry points you better give people some
some options so what we envisioned for
DNS discovery is a system that can
dynamically with the help of the
distributed hash table create a massive
list of nodes that have a certain of
time and that have certain capabilities
like say let's say like a big list of
many of meyneth nodes well then we
compile them into a certain format and
publish that at some DNS provider and
well and then clients would be able to
find them there and well that's DNS
discovery for you all right and there's
one more feature so the thing is the the
system also includes a certain it's a
bit like a web of trust so one node list
can actually refer to another node list
using the DNS name of the list and the
public key and this means that well
certainly the list can sort of authorize
each other and we can we can group them
into metal lists and things like that
right so
yeah the eeap's so if they're endowed
Records is implemented in gold Python
and JavaScript so far the extension is
implemented in gold but isn't isn't
merged in the master branch and no
discovery via DNS is implemented in go
in Python but the deployer tool that
that moves it to moves it to it to a DNS
provider isn't really done yet right and
now I had just have two more minutes so
I guess more or less it says two there
so I'm just look at this clock and so
I'll just talk about a bit about what's
next so we have an ongoing discussion
with the sharding team the the research
team about how we can how we can join
the efforts because the if they're I'm
shorting right now the networking is
based on the p2p
so I feel this is a good decision with
Lapita P because it gives them a lot of
options to try out obviously like I
myself want to like feed my improvements
that I'm working on you know on the
phone if your foundation payroll I want
to you know feed those improvements into
the shorting so I feel like the things
that that we're doing here to to improve
the FPTP
these things can actually benefit
shorting in the long run but right now
there isn't much overlap but like I said
we have an ongoing discussion and then
the the biggest challenge the charting
phases is just that they need a system
where peers can can can be switch really
quickly and we're trying to make that
work right I'm gonna skip this part and
I'm gonna just quickly say before I have
to go that there's a big plan for 2019
to our offered FPTP as a web assembly
module so that you guys if you ever want
to use def PDP you don't have to use go
or like another good implementation but
probably that's gonna be go so this is a
plan that we have and thanks
you