<div dir="ltr"><div><font size="2" style="font-family:monospace">Hi Guys:<br></font></div><div><font size="2" style="font-family:monospace"><br></font></div><div><font size="2" style="font-family:monospace">One year ago, I introduced the Rings network on the Cryptography mailing
list (<a href="https://www.metzdowd.com/pipermail/cryptography/2022-October/037958.html" style="color:rgb(5,99,193);text-decoration:underline" target="_blank">https://www.metzdowd.com/pipermail/cryptography/2022-October/037958.html</a>),
and now I'm here to show what we have done in the past year.<span></span></font></div>
<p style="margin-right:0cm;margin-left:0cm"><font size="2" style="font-family:monospace">First, let me reintroduce my project.<span></span></font></p>
<p style="margin-right:0cm;margin-left:0cm"><font size="2" style="font-family:monospace">The Rings network (<a href="https://github.com/RingsNetwork/rings-node" style="color:rgb(5,99,193);text-decoration:underline" target="_blank">https://github.com/RingsNetwork/rings-node</a>) is a fully
decentralized peer-to-peer (P2P) network. I emphasize the word
"fully" because Rings nodes can run on arbitrary devices, especially
in web browsers. The code is written in Rust and can be compiled into
WebAssembly. The transport layer is also browser-friendly, based on the WebRTC
protocol, enabling direct connections between browsers (we have a demo
illustrating how the handshake works: <a href="https://rings.rs/rings-wasm-p2p/" style="color:rgb(5,99,193);text-decoration:underline" target="_blank">https://rings.rs/rings-wasm-p2p/</a>).<span></span></font></p>
<p style="margin-right:0cm;margin-left:0cm"><font size="2" style="font-family:monospace">Secondly, let me highlight what we have achieved this year.<span></span></font></p>
<p style="margin-right:0cm;margin-left:0cm"><font size="2" style="font-family:monospace">1.) Strong Rings DHT: The Distributed Hash Table (DHT) is based on the Chord
algorithm, and we have incorporated the work of Pamela Zave (<a href="https://arxiv.org/pdf/1502.06461.pdf" style="color:rgb(5,99,193);text-decoration:underline" target="_blank">https://arxiv.org/pdf/1502.06461.pdf</a>)
to enhance its robustness.<span></span></font></p>
<p style="margin-right:0cm;margin-left:0cm"><font size="2" style="font-family:monospace">2.) WASM and FFI Client: We now not only support WASM exports but also offer
support for Foreign Function Interface (FFI). This means that developers can
easily use our network in any environment or with any language, be it in a
browser or native, with languages like Python or Haskell.<span></span></font></p>
<p style="margin-right:0cm;margin-left:0cm"><font size="2" style="font-family:monospace">3.) dWeb / TcpProxy: A year ago, we had a simple HTTP proxy implementation
based on one-time string input/output. Now, we support TcpProxy, which is based
on DIDs (Decentralized Identifiers) and can establish a TCP tunnel between any
two nodes.<span></span></font></p>
<p style="margin-right:0cm;margin-left:0cm"><font size="2" style="font-family:monospace">4.) Services Store / Lookup: While our primary focus is not on storage, the
Rings Network has implemented basic storage functionality primarily for service
discovery and registration. For example, a service providing an IPFS forward
gateway can be registered as sha1("IPFS_GATEWAY").<span></span></font></p>
<p style="margin-right:0cm;margin-left:0cm"><font size="2" style="font-family:monospace">5.) Session and Abstract Account: Rings' design principle is to keep
programs from interacting with private keys directly. So, we achieve
authorization and abstract account by having users sign a delegated keypair. We
now support users to authenticate using various elliptic curve encryption
algorithms, including secp256k1, secp256r1, ed25519, and their variants.<span></span></font></p>
<p style="margin-right:0cm;margin-left:0cm"><font size="2" style="font-family:monospace">6.) Browser Extension: We now have a browser extension that essentially
works. You can find it at <a href="https://github.com/RingsNetwork/rings_ext_v2" style="color:rgb(5,99,193);text-decoration:underline" target="_blank">https://github.com/RingsNetwork/rings_ext_v2</a>. It launches a
node in the background and injects a "Rings" object into the window
object in the browser, allowing the node to stay online continuously.</font></p><p style="margin-right:0cm;margin-left:0cm"><font size="2" style="font-family:monospace"><span></span><br><span></span></font></p>
<p style="margin-right:0cm;margin-left:0cm"><font size="2" style="font-family:monospace">Third, I will introduce what is the next move of the Rings network.<span></span></font></p>
<p style="margin-right:0cm;margin-left:0cm"><font size="2" style="font-family:monospace">In the upcoming development process, we have three plans:<span></span><span><br></span></font></p><p style="margin-right:0cm;margin-left:0cm"><font size="2" style="font-family:monospace"><span>1.<span style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal"> </span></span>Continuously
improve the availability and user-friendliness of nodes, including providing
better TCPProxy tools, dweb tools. They should be well-documented.<span></span><span><br></span></font></p><p style="margin-right:0cm;margin-left:0cm"><font size="2" style="font-family:monospace"><span>2.<span style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal"> </span></span>Optimize
the browser extension; the current interface is not very appealing, and its
functionality is not very intuitive. We also plan to provide more demos based
on the extension.<span></span><span><br></span></font></p><p style="margin-right:0cm;margin-left:0cm"><font size="2" style="font-family:monospace"><span>3.<span style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal"> </span></span>Implement
the DRanking protocol. The DRanking protocol is a new sampling protocol
designed by us. It's inspired by the ranking protocol of eDonkey but work in decentralized way. If you're interested, you can take a look at our
draft paper: <a href="https://github.com/RingsNetwork/whitepaper/blob/master/pos.pdf" style="color:rgb(5,99,193);text-decoration:underline" target="_blank">https://github.com/RingsNetwork/whitepaper/blob/master/pos.pdf</a></font></p><div><font size="2" style="font-family:monospace"><br></font></div><p style="margin-right:0cm;margin-left:0cm"><font size="2" style="font-family:monospace">The Rings Network is a project that I am deeply passionate about and
committed to for the long term. It still has a long journey ahead.</font><font size="2" style="font-family:monospace"> We currently have only two or three full-time developers.<font> If anyone
has any ideas about the future of the Rings Network, please feel free to share
them. If you wish to become a contributor to the Rings Network, you are also
welcome to join us.</font></font></p><pre>Our repo is available at:
<a href="https://github.com/RingsNetwork/rings-node" target="_blank">https://github.com/RingsNetwork/rings-node</a>
And white paper:
<a href="https://github.com/RingsNetwork/whitepaper/blob/master/rings.pdf" target="_blank">https://github.com/RingsNetwork/whitepaper/blob/master/rings.pdf</a>
</pre>
<p class="MsoNormal" style="margin:0cm"><font size="2" style="font-family:monospace">Best Regards<span></span></font></p>
<p class="MsoNormal" style="margin:0cm"><font size="2" style="font-family:monospace">Yours Ryan</font></p><span style="font-family:monospace"></span><div dir="ltr"><div><p style="margin:0cm 0cm 0.0001pt;font-size:12pt"><font size="3" color="#000080" style="font-family:monospace"><span style="font-size:13px"></span></font></p><font size="3" color="#000080" style="font-family:arial black,sans-serif"><p style="margin:0cm 0cm 0.0001pt;font-size:12pt"><span style="font-family:monospace"><br></span></p><div><span style="font-family:monospace"><br></span></div></font></div></div></div>