[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[www] branch master updated (8fbf9218 -> 2fcf427b)
From: |
gnunet |
Subject: |
[www] branch master updated (8fbf9218 -> 2fcf427b) |
Date: |
Fri, 25 Aug 2023 20:48:29 +0200 |
This is an automated email from the git hooks/post-receive script.
marshall pushed a change to branch master
in repository www.
from 8fbf9218 update formatiing
new 00d474c5 GSoC news: add some things
new 2fcf427b quic writeup: add more
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
template/news/2023-08-GSoC-QUIC.html.j2 | 34 +++++++++++++++------------------
1 file changed, 15 insertions(+), 19 deletions(-)
diff --git a/template/news/2023-08-GSoC-QUIC.html.j2
b/template/news/2023-08-GSoC-QUIC.html.j2
index 24afeccb..a88e63a9 100644
--- a/template/news/2023-08-GSoC-QUIC.html.j2
+++ b/template/news/2023-08-GSoC-QUIC.html.j2
@@ -3,37 +3,33 @@
<main id="maincontent">
<h1>GSoC Work Product: GNUnet over QUIC</h1>
<p>
- FIXME add an introduction. Possibly simply move goals up here.
+ Hi, my name is Marshall and throughout the summer of 2023 I worked on
developing a new communicator for the GNUnet transport service. I learned a lot
about GNUnet through my development experience. Here are some details about the
journey!
</p>
-<h2>A short description of the goals of the project.</h2>
+<h2>Goals of the Project.</h2>
<p>
- The goal of this project was to develop a new transport, QUIC, for the
Transport Next Generation (TNG) service.
+ The goal of this project was to develop a new transport, QUIC, for the
Transport Next Generation (TNG) service. TNG is a successor to the previous
transport plugins and will be running in the fall 2023 GNUnet release. At the
time of writing, there currently only exists transports over TCP, UDP, and UNIX
sockets. I chose to implement a QUIC transport communicator due to the rising
popularity and speed of this protocol.
</p>
-<h2>What you did (also include quiche packaging).</h2>
+<h2>What I completed.</h2>
<p>
-First, I had to decide on a library that can process QUIC packets and would be
available to users running different operating systems.
-We chose to go with Cloudflare's Quiche library because the C API seemed
simpler than other available libraries. Installing cloudflare-quiche via the
Homebrew package manager (MacOS) did not actually install the libraries
properly for linking with other C programs so I made a pull request in the
Homebrew repository and fixed the formula.
-After this, I worked on handling the receiving functionality of the
communicator. This involved reading from the socket then processing the QUIC
packets using the Quiche library. Then I implemented the ability to send
messages in a similar manner. One of the last steps involved connecting
everything together with the transport service so that the communicator can
receive information about peers and relay messages.
-</p>
-<p>
- FIXME: Add link to code,packages, issues etc
+One of the first steps was deciding on a library that can process QUIC packets
and would be available to users running different operating systems.
+We chose to go with <a
href="https://github.com/cloudflare/quiche">Cloudflare's Quiche library</a>
because the C API seemed simpler than other available libraries. Installing
cloudflare-quiche via the Homebrew package manager (MacOS) did not actually
install the libraries properly for linking with other C programs so I made a
pull request in the Homebrew repository and <a
href="https://github.com/Homebrew/homebrew-core/commit/227fa616059fdb2157628535b85a801bbb5613f5">fixed
the formula</a>.
+After this, I worked on handling the receiving functionality of the
communicator. This involved reading from the socket then processing the QUIC
packets using the Quiche library. Then I implemented the ability to send
messages in a similar manner. One of the last steps involved connecting
everything together with the transport service so that the communicator can
receive information about peers and relay messages.
+Once I finished these tasks, the QUIC communicator got merged upstream and is
currently an experimental feature. This is due to the packaging situation with
Quiche as it is difficult for some users to install the library, and there
still may be bugs lingering in the QUIC communicator. More testing and
refinement is needed to offer a truly robust and reliable communicator.
+
+Link to source code: <a
href="https://git.gnunet.org/gnunet.git/tree/src/transport/gnunet-communicator-quic.c">QUIC
communicator</a>
</p>
<h2>The current state.</h2>
<p>
-The QUIC communicator currently functions and passes basic communicator tests.
That being said, there are some latency issues that need to be addressed.
+The QUIC communicator currently functions and passes basic communicator tests.
That being said, there are some latency issues that need to be addressed.
Mentioned below are some other things that have yet to be implemented, but will
be fixed in the future.
</p>
-<h2>What's left to do.</h2>
+<h2>Future Work.</h2>
<p>
We still need to develop a more robust solution to the certificate generation
so that the Quiche API functions properly. Currently, we are using static,
example certificates. Adding timers to each connection so that a timeout will
trigger a connection to close also needs to be done. Finally, we should look
into lowering the latency by finding where the code is too slow and optimizing
it.
</p>
-<h2>What code got merged (or not) upstream.</h2>
-<p>
-The QUIC communicator got merged upstream and is currently an experimental
feature. This is because the packaging situation with Quiche makes it difficult
for some users to install the library and there still may be bugs lingering in
the QUIC communicator. More testing is needed.
-</p>
-<h2>Any challenges or important things you learned during the project.</h2>
+<h2>Challenges I Encountered</h2>
<p>
-Something challenging about the project was reverse engineering the Quiche C
API because it has such limited documentation. I learned how to make use of the
API by looking at the very simple example client and server that is provided in
the Quiche repository. There is documentation for the Rust API which seems to
operate pretty similarly, so this was helpful too at times. I overcame this
challenge with the help and guidance of my mentor Martin Schanzenbach.
+One of the challenges was reverse engineering the Quiche C API because it has
such limited documentation. I learned how to make use of the API by looking at
the very simple example client and server examples that are provided in the
Quiche repository. There is documentation for the Rust API which seems to
operate pretty similarly, so this was helpful too at times. I overcame this
challenge with the help and guidance of my mentor Martin Schanzenbach.
</p>
<h2>Final notes</h2>
-Overall, my experience with GNUnet was fantastic. My mentors were friendly and
consistently available when I needed help. I plan to continue contributing to
GNUnet in the future.
+Overall, my experience with GNUnet was fantastic. My mentors were friendly and
consistently available when I needed help, and I thank them for that. I'm
thankful for the GNUnet community for being welcoming and understanding to new
open source developers. I had a lot of fun learning how GNUnet works while
developing my project. I am looking forward to contributing to GNUnet in the
future!
{% endblock body_content %}
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [www] branch master updated (8fbf9218 -> 2fcf427b),
gnunet <=