gnunet-svn
[Top][All Lists]
Advanced

[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&#39;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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]