@jelly5649 a bit more information with regards to your sudo question I got back from one of our mac developers: it is needed because we are not using network extensions but instead tapping into the network adapter through sudo in order to get a higher level of control and to help mediate the leaks, which there are plenty of, when using network extension.
Right now there is no alternative to this with the NymVPN app unfortunately.
I have also created a pair of CLI binaries (docs) which can be used as standalone processes to easily test sending zcash traffic through the Mixnet - I have been using the zingocli wallet on a local machine with the TcpProxyClient binary to send traffic through the Mixnet to a VPS Iām running a testnet zcashd & lightwalletd instance on via the TcpProxyServer binary. The TcpProxyServer binary is also there so it could be e.g. added to the lightwalletd Helm setup. If you want to use these to test, I suggest using the conn-pool-update branch: this is a branch I have been working on a speedup on which is waiting to go into our next release, which involves a Client Pool abstraction.
There are also the videos further up in this channel which were demonstrating the WIP versions of this work.
These components allow for Mixnet integration into ZCash codebases and can be used currently to use ZCash through the Mixnet.
Happy to help with any other questions you might have.
With the caveat that I havenāt tried to run the code, it looks well-written and useful for the purpose described in the docs:
The motivation behind the creation of the TcpProxy module is to allow developers to interact with the Mixnet in a way that is far more familiar to them: simply setting up a connection with a transport, being returned a socket, and then being able to stream data to/from it, similar to something like the Tor arti client.
These might be an easy way for developers to start proxying their traffic throught the mixnet and understanding the sort of latency they should expect, and whether their application can currently tolerate it.
There is obviously a lot more design and integration work that would need to be done in order to use Nym more exensively in Zcash (in particular I donāt know whether weād want to hook into the TCP-like abstraction or something more low-level), but this looks like a good start.
What sort of diagrams do you think are missing here / arenāt covered by the Sessions and Message Ordering section? Something more like an architecture diagram of how the Proxies take incoming traffic, frame it, etc? Always happy to hear feedback on the docs and what else can be added to make them better
We are currently working on some protocol upgrades which will make the SDK Client interface a lot nicer to work with. This should remove the need for the localhost port exposed by the TcpProxy and allow for whatever code consumes the SDK to pipe bytes directly to the Client (also removing the need for the bytecodec shuffling in this abstraction), as well as doing stuff like multiplexing (removing the need for a lot of the accounting work this abstraction is currently doing). I will update this forum when we have something to share with regards to this upgrade - that should allow for lower-level integration work to take place.