Mwixnet community TEST

Community testing is crucial to preserving open-source software’s dependability, security, and quality. It fosters a cooperative atmosphere where users and developers may contribute to ongoing progress in addition to aiding in the early identification of problems.
In the end, this results in a Grin blockchain that is more secure, resilient, and reliable.
Grin is an open-source, decentralized blockchain run by a grassroots community, thus gather around to test ツ !
We welcome any and all contributions!

‘‘We’d like to see people from the community focus on getting a mwixnet up, think that would be more useful to the core experience.’’

Mwixnet Testing

Also for help and feedback contact keybase

3 Likes

For those on Debian/Ubuntu the required packages are:

pkg-config
libssl-dev
curl

You will also need to run the following:

sudo apt autoremove rustc
curl --proto ‘=https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh
. “$HOME/.cargo/env”

This will update Rust past V1. 63

And to make things easier once compiled:

sudo install ~/mwixnet/target/release/mwixnet /usr/local/bin/

4 Likes

Sorry for noob questions, what is the ‘right’ procedure to test? What is the expected result that it should be? how to know if something goes wrong?.. etc

(on Linux) You just download and compile, then run mwixnet init-config, grin-wallet owner_api, and finally mwixnet and it’ll tell you it’s starting mwixnet.

I was able to get it running pretty easily on the 2 public Grinminer.net testnet nodes.

The post compilation instructions can be found at GitHub - mimblewimble/mwixnet: Implementation of the Mimblewimble CoinSwap proposal..

And check my posts above if running on Linux for tips.

1 Like

I wrote an Ansible playbook for automated deploying of node+wallet+mwixnet hosts on Debian/Ubuntu. Before running make sure there are no new releases on Github & replace [sha-512 hash] with the desired password for the ‘grin’ user, then set your [target]. Once it’s run mwixnet is compiled and ready to run once you’ve set up the TOML configuration files of each.

I highly recommend using screen (for console detaching) & tmux (for console viewing) to run both wallet listeners + node + mwixnet.

2 Likes

I can work on getting it installed, but I have this same question. it’s still not clear to me what testing looks like. Can we make transactions? What is success. What is failure?

Mwixnet is an automatic coinswap so there are no transactions to make. We just need more nodes running so testing at meaningful scale with mining attacks and other tests can occur.

This is what success looks like:
Screenshot from 2024-12-12 23-00-43

My understanding from the posts on Mwixnet is that a specific loop of Mwixnodes will be defined of which only one has to be honest for us to mathematically know that the mix is valid (not quite trust-less but pretty close). However, doesn’t that mean that when I send coins to a Mwixnet, I need to agree to a specific sequence of Mwixnodes?

I will get a mix node running all the same… just trying to understand it better.

1 Like

hello, I would like to run a mwixnet node but my fear is it will be found to be criminal like tornadoe cash. what assurance can you give that it will not be traceable?

3 Likes

For testing its not relevant, test Grin has no value.
Not sure if it is possible to run a mwixnode via tor, for now we need to test basic functionality.

The case of Tornado cash is profoundly disturbing. If I am not mistaken, Pertsev did earn fees with theTornado cash smart contract, mwixnodes do not earn a mixing fee but they can be said to “facilitate” the process of decentralised anonimization of transactions. Also, mwixnets are part of a network, it can be argued that no single node holds responsibility since if only one node is true and honest, the output linkability could not be determined even if all others are not honest. Still, for now I would not advice running a mwixnode on mainnet if you do not trust the regulators in your country from overstepping. As the Tornado cash example shows, the right rugalations and boundaries for regulators not to overstep are not yet in place.

3 Likes

Ok thank you for the time. I will run a grin regular node now and revisit mwixnet in the future time.

They do. Quoting from https://forum.grin.mw/t/mimblewimble-coinswap-proposal :

The contributed fees should then match the coinswap relay fee plus n mixfees. In Grin this gives the identity (with FB being the fee base of half a millicent):

|Out| * fee = (|Out| + n) * (1 + 21) * FB + n * 3 * FB + n * mixfee, or
mixfee = |Out| * (fee - 22 * FB) / n - 25 * FB.

For simplicity, we could require a fee of (22 + n) * FB, resulting in a mixfee of (|Out| - 25) * FB. In that case, for a mixnode to earn 10 grin-cents a day requires 225 daily self spends.

Thx, I learned something new today. Do I understand correctly one cannot forfeit this mixing fees since its inherent to the mixing process?

I also pondered the Tornado cash and running a mwixnote. I am not feeling confident that regulators will not overstep in the country where I live, especially if I would be receiving an economic insentive.

1 Like

Mixfees are not seen by the users; they just pay their regular fees required for self-spends. Rather, mixfees are something left over from the combined user fees since the aggregation saves on kernel fees. So the mixnodes have to take the mixfees to balance the equation.

2 Likes

Wow, that is a very ellegant way to share fees/insentives. Nice to understand MWixnet a bit better💛

I have successfully set up mwixnet. Are there any special tests or tools I can use?