Hi everyone - this is mxx
but since I’m a new user then I was rate limited to 3 consecutive posts, which I didn’t realise was a limitation, so I made a new account to share the update with you all. I have also had to make a few links into pseudo links due to the maximum of 2 links per post for new users.
Thanks for your patience when we’ve been getting this ready to show you all. I’m happy to annouce that the code for the Nym TCP Proxies - the code from the RPC and gRPC demos - is now part of the Rust SDK. This code involves a pair of components, a ProxyClient
and ProxyServer
which expose a localhost TCP port that applications up and downstream of the proxies can interact with without having to worry about the message-based nature of the Mixnet.
These components have also been exposed to Go via FFI(github[dot]com/nymtech/nym/tree/nym-binaries-v2024.12-aero/sdk/ffi/go) and I have created a pair of standalone proxy binaries which are used in a similar way to the previous demos, but might be fun / easier for people to initially play around with, and also might prove useful for server setups where several components are being run via init scripts, and the addition of a separate process is acceptable.
There is documentation for this code here(github[dot]com/nymtech/nym/blob/max/new-docs-framework/documentation/docs/pages/developers/rust/tcpproxy/architecture.mdx) for the moment, as we are also working on a v2 of the Nym docs which will be deployed soon, the developers section of which is almost completely revamped. The linked documentation includes some diagrams of the traffic flow and what exactly these abstractions are doing; message ordering and session management under the hood in order to account for the fact that the Mixnet guarentees delivery but not ordering, as well as framing messages either side of the Mixnet.
If you have questions about any of this new work, please let me know. Thanks