Revised Nym for ZCash Network-level Privacy

@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.

2 Likes

Hi, is there an update on the code / submission review? If you need any other info from us let me know and I can get it done asap. Thanks!

1 Like

Hi Max, Iā€™m late to the party here.

Are these the things on the following post that you need reviewed?

Hi @pacu ,

Currently the list stands as such:

  • I have created a module in our SDK which can be imported into crates or via Go FFI (if lightwalletd wanted to use it)
  • FFI docs
  • Module docs
  • 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.

7 Likes

finally had some time to explore Nym project
wow it is serious
and going live in a month

8 Likes

I reviewed this code:

and these docs:

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.

9 Likes

Thank you for the review!

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 :slight_smile:

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.

7 Likes

Thank you Daira-Emma for your review!

5 Likes

I think they were either added after my review or they werenā€™t rendering correctly for me. The ones that are there now look good.

1 Like