564 lines
36 KiB
HTML
564 lines
36 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<meta name="description" content="">
|
||
<meta name="author" content="">
|
||
<link rel="shortcut icon" href="../../../../../../assets/img/favicon.png">
|
||
|
||
<title>Haveno DEX Direct Fiat to Monero transactions</title>
|
||
|
||
<!-- Bootstrap core CSS -->
|
||
<link href="../../assets/css/bootstrap.css" rel="stylesheet">
|
||
<link href="../../assets/css/xt256.css" rel="stylesheet">
|
||
|
||
|
||
|
||
<!-- Custom styles for this template -->
|
||
<link href="../../assets/css/main.css" rel="stylesheet">
|
||
|
||
|
||
|
||
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||
<!--[if lt IE 9]>
|
||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
|
||
<![endif]-->
|
||
</head>
|
||
|
||
<body>
|
||
|
||
<!-- Static navbar -->
|
||
<div class="navbar navbar-inverse-anon navbar-static-top">
|
||
<div class="container">
|
||
<div class="navbar-header">
|
||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||
<span class="icon-bar"></span>
|
||
<span class="icon-bar"></span>
|
||
<span class="icon-bar"></span>
|
||
</button>
|
||
<a class="navbar-brand-anon" href="\index.html">The Nihilism Blog</a>
|
||
</div>
|
||
<div class="navbar-collapse collapse">
|
||
<ul class="nav navbar-nav navbar-right">
|
||
|
||
<li><a href="/about.html">About</a></li>
|
||
<li><a href="/blog.html">Categories</a></li>
|
||
<li><a href="https://blog.nowhere.moe/donate.html">Donate</a></li>
|
||
<li><a href="/contact.html">Contact</a></li>
|
||
</ul>
|
||
</div><!--/.nav-collapse -->
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<!-- +++++ Posts Lists +++++ -->
|
||
<!-- +++++ First Post +++++ -->
|
||
<div id="anon2">
|
||
<div class="container">
|
||
<div class="row">
|
||
<div class="col-lg-8 col-lg-offset-2">
|
||
<a href="../index.html">Previous Page</a></br></br><p><img src="../../assets/img/user.png" width="50px" height="50px"> <ba>nihilist@mainpc - 2024-05-14</ba></p>
|
||
<h1>Haveno DEX Direct Fiat to Monero transactions</h1>
|
||
<img src="0.png" style="width:250px">
|
||
<p>In this tutorial we're going to cover how to do a Fiat to Monero trade from the brand new (and long awaited!) <b>Haveno Decentralised Exchange</b>, using the Face-to-Face (F2F) payment method.</p>
|
||
<img src="0.1.png" class="imgRz">
|
||
<p><u>Sidenote</u>: i don't recommend face-to-face as a payment option of choice, this is just to try out how a basic trade Haveno DEX works!</p>
|
||
<p>Before reading through this tutorial, <b>make sure you understand why Decentralised Exchanges are the next step in Decentralised Finances</b> in this <a href="../finances/index.html">blogpost</a> i previously made, so that you have all the context.</p>
|
||
<p>As we are covering a DEX (Decentralised Exchange), <b>it means we are not covering how to use a website onto which you are purchasing monero</b> (like the now defunct Localmonero (RIP)), <b>we are covering a software that you install on your computer</b> (hence the Decentralisation in "DEX"), <b>to trade Peer to Peer (P2P) with the other users.</b></p>
|
||
<img src="28.png" class="imgRz">
|
||
<p>The resilliency of Haveno is on multiple levels: First of all the more Seed nodes there are, the harder to take down the Haveno network is. The anonymity provided by the Tor network of Haveno for all nodes (which is on by default), also adds up to the resiliency.</p>
|
||
<p>Clientside, the more peers (users) there are, the more diverse and bigger the exchange will be, and so will the decentralised market be at large. <b>The sooner the Monero market moves to Decentralised Exchanges, the more unstoppable it will become.</b> </p>
|
||
<p>Lastly if the Haveno network is completely taken down (let's say if all the seed nodes are taken down somehow), all that's left is for another administrator to spin up a new haveno network since the code is all open source, to repeat the cycle again. </p>
|
||
<p>You can check out my quick coverage of Haveno DEX on Monero Topia <a href="https://iv.nowhere.moe/watch?v=hWcwin8bDpc&t=1h9m11s">here</a>. (Definitely check out MoneroTopia for the latest news in the Monero world, awesome show!)</p>
|
||
<p><b>DISCLAIMER: THERE ARE NO OFFICIAL HAVENO NETWORK INSTANCES, THERE ARE ONLY THIRD PARTY HAVENO NETWORKS LIKE <a href="https://monero.town/post/3143272">HAVENO RETO</a>. </b></p>
|
||
<p><b> IF YOU SEE A HAVENO CLAIM TO BE THE OFFICIAL NETWORK <a href="https://monero.town/post/3260716">LIKE THIS ONE</a>, DONT FALL FOR THEIR SCAM!</b></p>
|
||
<p><img src="haveno-reto.png" style="width:200px"></br>You can check out the Reto team over at their official website at <a href="https://haveno-reto.com">https://haveno-reto.com</a></p>
|
||
|
||
<p><h2><u>OPSEC Recommendations:</u></h2></p>
|
||
<ol>
|
||
<li><p>Hardware : (Personal Computer / Laptop)</p></li>
|
||
<li><p>Host OS: <a href="../linux/index.html">Linux</a></p></li>
|
||
<li><p>Hypervisor: <a href="../hypervisorsetup/index.html">libvirtd QEMU/KVM</a></p></li>
|
||
<li><p>Virtual Machine: <a href="../hypervisorsetup/index.html">Linux</a> or <a href="../whonixqemuvms/index.html">Whonix</a> or <a href="../tailsqemuvm/index.html">Tails</a> </p></li>
|
||
</ol>
|
||
<p>I recommend using this setup into one of the above mentionned VMs, either for <a href="../privacy/index.html">Private use</a>, or <a href="../anonymityexplained/index.html">Anonymous use</a>, as per the <a href="../opsec4levels/index.html">4 basic OPSEC levels</a>. (Note that Deanonymization will happen during the Fiat transaction, but it is minimized as you're revealing your identity to an other peer, rather than to a centralised exchange)</p>
|
||
|
||
|
||
</div>
|
||
</div><!-- /row -->
|
||
</div> <!-- /container -->
|
||
</div><!-- /grey -->
|
||
|
||
<!-- +++++ Second Post +++++ -->
|
||
<div id="anon3">
|
||
<div class="container">
|
||
<div class="row">
|
||
<div class="col-lg-8 col-lg-offset-2">
|
||
<h2><b>How to install Haveno ? </b></h2>
|
||
<p>First, we need to find a Haveno Network, <a href="https://monero.town/post/3143272">Haveno Reto</a> being one of the first ones to show up, we're going to try them out:</p>
|
||
<p>Let's get the Haveno binaries from <a href="https://github.com/retoaccess1/haveno-reto/releases">Reto's github repository</a>, (which was forked from the <a href="https://github.com/haveno-dex/haveno">original Haveno repository</a>, maintained by <a href="https://github.com/woodser">Woodser</a>)</p>
|
||
<!--<p>You can just pick the latest successful CI build from <a href="https://github.com/retoaccess1/haveno-reto/actions">here</a>, for example from this successful <a href="https://github.com/retoaccess1/haveno-reto/actions/runs/9081479642">build</a>:</p>-->
|
||
<h2><b>For Debian Users</b></h2>
|
||
<p>Here, we are on a debian machine, so we download the "haveno_amd64_deb-latest.zip" package (which contains the .deb file)</p>
|
||
<img src="110.png" class="imgRz">
|
||
<p>Then unpack the zipfile wherever you want:</p>
|
||
<pre><code class="nim">
|
||
[ mainpc ] [ /dev/pts/5 ] [~]
|
||
→ apt install unzip -y
|
||
|
||
[ mainpc ] [ /dev/pts/17 ] [~/.mullvad-browser/Downloads]
|
||
→ ls
|
||
haveno_amd64_deb-latest.zip
|
||
|
||
[ mainpc ] [ /dev/pts/17 ] [~/.mullvad-browser/Downloads]
|
||
→ unzip haveno_amd64_deb-latest.zip
|
||
Archive: haveno_amd64_deb-latest.zip
|
||
inflating: haveno_1.0.11-1_amd64.deb
|
||
|
||
[ mainpc ] [ /dev/pts/17 ] [~/.mullvad-browser/Downloads]
|
||
→ sudo dpkg -i haveno_1.0.11-1_amd64.deb
|
||
[sudo] password for nihilist:
|
||
(Reading database ... 226388 files and directories currently installed.)
|
||
Preparing to unpack haveno_1.0.11-1_amd64.deb ...
|
||
Unpacking haveno (1.0.11-1) over (1.0.10-1) ...
|
||
Setting up haveno (1.0.11-1) ...
|
||
|
||
#if it fails, run "apt install -f" to install the missing dependencies and then dpkg -i haveno.deb again.
|
||
|
||
</code></pre>
|
||
<p>Haveno then creates dotfiles in <b>~/.local/share/Haveno-reto</b> containing your wallet infos, along with the .onion data. <b>You shouldn't need to remove that folder accross haveno updates</b>, unless if instructed to do so by the developers or the network owners themselves.</p>
|
||
<pre><code class="nim">
|
||
[ mainpc ] [ /dev/pts/17 ] [.local/share/Haveno-reto]
|
||
→ ls -lash ~/.local/share/Haveno-reto
|
||
total 74M
|
||
4.0K drwxr-xr-x 3 nihilist nihilist 4.0K Aug 4 10:04 .
|
||
4.0K drwx------ 26 nihilist nihilist 4.0K Oct 6 09:32 ..
|
||
11M -rw-r--r-- 1 nihilist nihilist 11M Aug 4 09:57 haveno_1.log
|
||
3.1M -rw-r--r-- 1 nihilist nihilist 3.1M Oct 4 21:06 haveno.log
|
||
4.0K -rw-r--r-- 1 nihilist nihilist 56 Oct 2 19:35 haveno.properties
|
||
25M -rwxr--r-- 1 nihilist nihilist 25M Jul 9 21:17 monerod
|
||
30M -rwxr--r-- 1 nihilist nihilist 30M Jul 9 21:17 monero-wallet-rpc
|
||
6.3M -rw------- 1 nihilist nihilist 6.3M Oct 4 21:06 monero-wallet-rpc.log
|
||
4.0K -rw-r--r-- 1 nihilist nihilist 6 Oct 2 19:34 version
|
||
4.0K drwxr-xr-x 6 nihilist nihilist 4.0K May 20 18:21 xmr_mainnet
|
||
|
||
</code></pre>
|
||
<p>if you want to see the haveno logs from the CLI as you use it, you can do as follows:</p>
|
||
<pre><code class="nim">
|
||
[ mainpc ] [ /dev/pts/6 ] [.local/share/Haveno-reto]
|
||
→ tail -f haveno.log
|
||
May-29 20:55:23.829 [pool-16-thread-5] INFO h.c.t.TaskRunner: Run task: SendOfferAvailabilityRequest
|
||
May-29 20:55:23.830 [pool-16-thread-5] INFO h.c.o.a.t.SendOfferAvailabilityRequest: Send OfferAvailabilityRequest with offerId mqbtqDh-1ec9fa64-e5e7-4766-9936-519951bc5f36-106 and uid d85caa9c-840c-45eb-8642-4cb12828fc93 to peer rlrsc6nfqbvqhly3qjcb36qzvw44xnxqhcht3nqndy324ewg4dut4iqd.onion:9999
|
||
May-29 20:55:23.930 [JavaFX Application Thread] INFO h.c.o.a.t.SendOfferAvailabilityRequest: OfferAvailabilityRequest arrived at peer: offerId=mqbtqDh-1ec9fa64-e5e7-4766-9936-519951bc5f36-106; uid=d85caa9c-840c-45eb-8642-4cb12828fc93
|
||
May-29 20:55:25.292 [JavaFX Application Thread] INFO h.d.c.c.c.PopOver: hide:200.0 ms
|
||
May-29 20:55:25.903 [pool-48-thread-1] INFO h.c.o.a.OfferAvailabilityProtocol: Received OfferAvailabilityResponse from rlrsc6nfqbvqhly3qjcb36qzvw44xnxqhcht3nqndy324ewg4dut4iqd.onion:9999 with offerId mqbtqDh-1ec9fa64-e5e7-4766-9936-519951bc5f36-106 and uid 986ee04a-47d2-4303-a9fc-12d18cc158ce
|
||
May-29 20:55:25.905 [pool-48-thread-1] INFO h.c.t.TaskRunner: Run task: ProcessOfferAvailabilityResponse
|
||
May-29 20:55:25.905 [pool-48-thread-1] INFO h.c.o.a.OfferAvailabilityProtocol: Send AckMessage for OfferAvailabilityResponse to peer rlrsc6nfqbvqhly3qjcb36qzvw44xnxqhcht3nqndy324ewg4dut4iqd.onion:9999 with offerId mqbtqDh-1ec9fa64-e5e7-4766-9936-519951bc5f36-106 and sourceUid 986ee04a-47d2-4303-a9fc-12d18cc158ce
|
||
May-29 20:55:25.907 [JavaFX Application Thread] INFO h.c.o.a.OfferAvailabilityProtocol: AckMessage for OfferAvailabilityResponse arrived at makersNodeAddress rlrsc6nfqbvqhly3qjcb36qzvw44xnxqhcht3nqndy324ewg4dut4iqd.onion:9999. offerId=mqbtqDh-1ec9fa64-e5e7-4766-9936-519951bc5f36-106, sourceUid=986ee04a-47d2-4303-a9fc-12d18cc158ce
|
||
May-29 20:55:26.108 [pool-48-thread-1] INFO h.c.o.OpenOfferManager: Received AckMessage for OfferAvailabilityRequest with offerId mqbtqDh-1ec9fa64-e5e7-4766-9936-519951bc5f36-106 and uid d85caa9c-840c-45eb-8642-4cb12828fc93
|
||
May-29 20:55:27.427 [JavaFX Application Thread] INFO h.d.c.c.c.PopOver: hide:200.0 ms
|
||
|
||
</code></pre>
|
||
<p>next just launch Haveno as it should have been added to your system:</p>
|
||
<img src="3.png" class="imgRz">
|
||
|
||
<h2><b>For Whonix Users: use tor bridges to make Haveno connect!</b></h2>
|
||
<p>Next, haveno is going to connect to Tor. WHONIX USERS: If it is facing issues connecting wait for the client to ask you to set the tor settings:</p>
|
||
<img src="4.png" class="imgRz">
|
||
<p>then just get a torbridge from torproject.org:</p>
|
||
<img src="5.1.png" class="imgRz">
|
||
<p>and add them inside haveno, and restart it:</p>
|
||
<img src="5.2.png" class="imgRz">
|
||
<p>Then it should connect just fine:</p>
|
||
<img src="4.png" class="imgRz">
|
||
<p>you may need to wait a bit for your haveno node to sync up initially: (probably 1-2 minutes)</p>
|
||
<p>and once it finishes synchronising, you're in Haveno!</p>
|
||
<img src="8.png" class="imgRz">
|
||
|
||
<h2><b>For Arch Linux Users</b></h2>
|
||
<p>You can either extract the .rpm (which is originally intended for Fedora users) package and run the haveno binary yourself, or use the <a href="https://aur.archlinux.org/packages/haveno-reto">AUR package maintained by duje</a></p>
|
||
<h2><b>For Windows Users </b></h2>
|
||
<p> If you are a windows user (know that windows cant be trusted as <a href="../closedsource/index.html">it's not an open source operating system</a>, so <a href="../linux/index.html">install linux</a> instead): </p>
|
||
<!-- <h2><b>For Tails OS Users: Use BrandyJson's Script!</b></h2>-->
|
||
<h2><b>For Tails OS Users: (as of 3rd November 2024)</b></h2>
|
||
<p>If you want to have a TailsOS VM running, check out my latest tutorial on it <a href="../tailsqemuvm/index.html">here</a>.</p>
|
||
<p>Then make sure you have the admin password enabled:</p>
|
||
<img src="100.png" class="imgRz">
|
||
<p>Then make sure you have the persistant storage enabled, with the dotfiles enabled:</p>
|
||
<img src="101.png" class="imgRz">
|
||
<p>Then, to install it at the current latest version (as of the 6th of october 2024, version 1.0.12) you need to run the following commands:</p>
|
||
<pre><code class="nim">
|
||
amnesia@amnesia:~$ curl -x socks5h://127.0.0.1:9050 -fsSLO https://github.com/haveno-dex/haveno/raw/master/scripts/install_tails/haveno-install.sh && bash haveno-install.sh https://github.com/retoaccess1/haveno-reto/releases/download/v1.0.12/haveno-linux-deb.zip DAA24D878B8D36C90120A897CA02DAC12DAE2D0F
|
||
|
||
amnesia@amnesia:~$ ./Persistent/haveno/App/utils/exec.sh
|
||
|
||
</pre></code>
|
||
<!--<pre><code class="nim">
|
||
amnesia@amnesia:~$ cd Persistent
|
||
amnesia@amnesia:~/Persistent$ wget -e use_proxy=yes -e http_proxy=127.0.0.1:9050 https://github.com/retoaccess1/haveno-reto/releases/download/v1.0.12/haveno-linux-deb.zip
|
||
|
||
amnesia@amnesia:~/Persistent$ unzip haveno-linux-deb.zip
|
||
Archive: haveno-linux-deb.zip
|
||
inflating: desktop-1.0.12-SNAPSHOT-all.jar.SHA-256
|
||
inflating: haveno-v1.0.12-linux-x86_64-installer.deb
|
||
|
||
amnesia@amnesia:~/Persistent$ wget -e use_proxy=yes -e http_proxy=127.0.0.1:9050 https://raw.githubusercontent.com/BrandyJSon/haveno-install-tails/refs/heads/main/haveno-install.sh
|
||
|
||
</pre></code>
|
||
<p>Here we basically need to edit the script to make sure it uses the correct haveno .deb file that we unzipped above:</p>
|
||
<pre><code class="nim">
|
||
amnesia@amnesia:~/Persistent$ sed -i s'/haveno_1.0.7-1_amd64.deb/haveno-v1.0.12-linux-x86_64-installer.deb/gi' haveno-install.sh
|
||
|
||
amnesia@amnesia:~/Persistent$
|
||
amnesia@amnesia:~/Persistent$ sudo ./haveno-install.sh
|
||
[sudo] password for amnesia:
|
||
Installing dpkg from persistent, (1.07-1, if this is out of date change the deb path in the script or manually install after running
|
||
(Reading database ... 150142 files and directories currently installed.)
|
||
Preparing to unpack .../haveno-v1.0.12-linux-x86_64-installer.deb ...
|
||
Unpacking haveno (1.0.12-1) over (1.0.12-1) ...
|
||
Setting up haveno (1.0.12-1) ...
|
||
Allowing amnesia to read tor control port cookie, only run this script when you actually want to use haveno
|
||
|
||
!!! not secure !!!
|
||
|
||
Updating apparmor-profile
|
||
Adding rule to iptables to allow for monero-wallet-rpc to work
|
||
Updating torsocks to allow for inbound connection
|
||
Restarting onion-grater service
|
||
Everything is set up just run
|
||
|
||
source ~/.bashrc
|
||
|
||
Then you can start haveno using haveno-tails
|
||
amnesia@amnesia:~/Persistent$ source ~/.bashrc
|
||
amnesia@amnesia:~/Persistent$ haveno-tails
|
||
|
||
|
||
</pre></code>-->
|
||
<!--<pre><code class="nim">
|
||
# Install Haveno like any other `.deb` file
|
||
amnesia@amnesia:~$ cd Persistent
|
||
amnesia@amnesia:~/Persistent$ wget -e use_proxy=yes -e http_proxy=127.0.0.1:9050 https://github.com/retoaccess1/haveno-reto/releases/download/v1.0.12/haveno-linux-deb.zip
|
||
amnesia@amnesia:~/Persistent$ unzip haveno-linux-deb.zip
|
||
amnesia@amnesia:~/Persistent$ sudo apt update -y
|
||
amnesia@amnesia:~/Persistent$ sudo dpkg -i ./haveno*.deb
|
||
|
||
# Disable Tor Cookie Authentication
|
||
amnesia@amnesia:~/Persistent$ echo "CookieAuthentication 0" | sudo tee -a /etc/tor/torrc
|
||
|
||
# Reload Tor Service
|
||
amnesia@amnesia:~/Persistent$ sudo systemctl reload tor
|
||
|
||
# Run Haveno with Built-in Tor and saving the data on the persistent storage
|
||
amnesia@amnesia:~/Persistent$ /opt/haveno/bin/Haveno --torControlPort=9051 --torStreamIsolation --socks5ProxyXmrAddress=127.0.0.1:9050 --useTorForXmr=ON --userDataDir=/home/amnesia/Persistent
|
||
|
||
</pre></code>-->
|
||
<!--<pre><code class="nim">
|
||
amnesia@amnesia:~$ curl --socks5-hostname socks5://127.0.0.1:9050 -fsSLO https://github.com/haveno-dex/haveno/raw/master/scripts/install_tails/haveno-install.sh && bash haveno-install.sh "https://github.com/retoaccess1/haveno-reto/releases/latest/download/haveno_amd64_deb-latest.zip" "DAA2 4D87 8B8D 36C9 0120 A897 CA02 DAC1 2DAE 2D0F"
|
||
|
||
Installing dependencies ...
|
||
[sudo] password for amnesia:
|
||
|
||
[...]
|
||
|
||
137 packages can be upgraded. Run 'apt list --upgradable' to see them.
|
||
[sudo] password for amnesia:
|
||
|
||
[...]
|
||
|
||
|
||
</pre></code>
|
||
<p>Let it run, it may take 10 minutes to install depending on the tor connection speeds.</p>
|
||
<pre><code class="nim">
|
||
Creating desktop menu icon ...
|
||
Downloading Haveno from URL provided ...
|
||
% Total % Received % Xferd Average Speed Time Time Time Current
|
||
Dload Upload Total Spent Left Speed
|
||
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
|
||
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
|
||
100 266M 100 266M 0 0 442k 0 0:10:17 0:10:17 --:--:-- 522k^[[A
|
||
Downloading Haveno signature ...
|
||
% Total % Received % Xferd Average Speed Time Time Time Current
|
||
Dload Upload Total Spent Left Speed
|
||
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
|
||
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
|
||
100 119 100 119 0 0 37 0 0:00:03 0:00:03 --:--:-- 69
|
||
Downloading signing GPG key ...
|
||
% Total % Received % Xferd Average Speed Time Time Time Current
|
||
Dload Upload Total Spent Left Speed
|
||
100 668 100 668 0 0 912 0 --:--:-- --:--:-- --:--:-- 912
|
||
Importing the GPG key ...
|
||
gpg: key 0xCA02DAC12DAE2D0F: public key "reto" imported
|
||
gpg: Total number processed: 1
|
||
gpg: imported: 1
|
||
Verifying the signature of the downloaded file ...
|
||
Archive: haveno_amd64_deb-latest.zip
|
||
inflating: haveno_1.0.11-1_amd64.deb
|
||
Haveno binaries have been successfully verified.
|
||
Files moved to persistent directory /home/amnesia/Persistent/haveno/Install
|
||
Haveno installation setup completed successfully.
|
||
|
||
</pre></code>-->
|
||
<!--<img src="102.png" class="imgRz">-->
|
||
<img src="103.png" class="imgRz">
|
||
<img src="104.png" class="imgRz">
|
||
<!--<p>Download the latest haveno package just like on debian, then put it in the persistant storage:</p>
|
||
<pre><code class="nim">
|
||
amnesia@amnesia:~$ mv ~/Tor\ Browser/haveno_1.0.7-1_amd64.zip ~/Persistent/
|
||
amnesia@amnesia:~$ cd Persistent/
|
||
amnesia@amnesia:~/Persistent$ ls -lash
|
||
total 266M
|
||
4.0K drwx------ 3 amnesia amnesia 4.0K Jun 14 09:58 .
|
||
0 drwx------ 24 amnesia amnesia 600 Jun 14 09:19 ..
|
||
266M -rw-r--r-- 1 amnesia amnesia 266M Jun 14 09:57 haveno_1.0.7-1_amd64.zip
|
||
|
||
amnesia@amnesia:~/Persistent$ sudo apt install unzip
|
||
|
||
amnesia@amnesia:~/Persistent$ unzip haveno_1.0.7-1_amd64.zip
|
||
Archive: haveno_1.0.7-1_amd64.zip
|
||
inflating: desktop-1.0.7-SNAPSHOT-all.jar.SHA-256
|
||
inflating: haveno_1.0.7-1_amd64.deb
|
||
|
||
</pre></code>
|
||
|
||
<p>Then we can use <a href="https://github.com/BrandyJSon/haveno-install-tails/tree/main">BrandyJson's script</a> to install haveno on tails:</p>
|
||
<pre><code class="nim">
|
||
amnesia@amnesia:~/Persistent$ wget https://raw.githubusercontent.com/BrandyJSon/haveno-install-tails/main/haveno-install.sh
|
||
--2024-06-14 10:29:07-- https://raw.githubusercontent.com/BrandyJSon/haveno-install-tails/main/haveno-install.sh
|
||
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.111.133
|
||
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.111.133|:443... connected.
|
||
HTTP request sent, awaiting response... 200 OK
|
||
Length: 3393 (3.3K) [text/plain]
|
||
Saving to: \u2018haveno-install.sh\u2019
|
||
|
||
haveno-install.sh 100%[=====================================================================================================================>] 3.31K 14.3KB/s in 0.2s
|
||
|
||
2024-06-14 10:29:09 (14.3 KB/s) - \u2018haveno-install.sh\u2019 saved [3393/3393]
|
||
|
||
amnesia@amnesia:~/Persistent$ vim haveno-install.sh #review the script, and change the dpkg -i line with the correct haveno version if it has changed
|
||
|
||
</pre></code>
|
||
<p>Be aware that this is not an official way of installing haveno on Tails, it's going barbaric on apparmor and the security model of tails, later on, there will be a better way to install haveno on Tails OS </p>
|
||
<pre><code class="nim">
|
||
#if the bashscript contains '\r' characters , do the following:
|
||
amnesia@amnesia:~/Persistent$ tr -d '\r' <<b></b> haveno-install.sh > haveno-install.sh
|
||
|
||
#then install it:
|
||
amnesia@amnesia:~/Persistent$ sudo bash haveno-install.sh
|
||
[sudo] password for amnesia:
|
||
|
||
Selecting previously unselected package haveno.
|
||
(Reading database ... 148641 files and directories currently installed.)
|
||
Preparing to unpack .../haveno_1.0.7-1_amd64.deb ...
|
||
Unpacking haveno (1.0.7-1) ...
|
||
Setting up haveno (1.0.7-1) ...
|
||
Allowing amnesia to read tor control port cookie, only run this script when you actually want to use haveno
|
||
|
||
!!! not secure !!!
|
||
|
||
Updating apparmor-profile
|
||
Adding rule to iptables to allow for monero-wallet-rpc to work
|
||
Updating torsocks to allow for inbound connection
|
||
Restarting onion-grater service
|
||
Everything is set up just run
|
||
|
||
source ~/.bashrc
|
||
|
||
Then you can start haveno using haveno-tails
|
||
|
||
amnesia@amnesia:~/Persistent$ source ~/.bashrc
|
||
amnesia@amnesia:~/Persistent$ haveno-tails
|
||
Jun-14 10:52:51.099 [main] INFO haveno.common.util.Utilities: System info: os.name=Linux; os.version=6.1.0-21-amd64; os.arch=amd64; sun.arch.data.model=64; JRE=21.0.2+14-LTS (BellSoft); JVM=21.0.2+14-LTS (OpenJDK 64-Bit Server VM)
|
||
Jun-14 10:52:51.120 [main] INFO haveno.common.app.AsciiLogo:
|
||
|
||
|
||
|
||
|
||
0X
|
||
OOdolcck
|
||
KXKNN0occcccccck: :Kxxk0d
|
||
klccccccccccccccccck0xcccccccxK'
|
||
xccccccccccccccclOKKOocccccccccclxK
|
||
.xccccccccccccccclWMMMMMd:::::::::ccco
|
||
'dccccccc:::cccccclWMMMMMo:::::::::::cc;
|
||
,occccc:::::::::::::cxO0kl:::::::::::::cd
|
||
;occccc:::::cddddddc;;;;;;;;:ddddddl:::::coldOK
|
||
:occccc::::::xMMMMMMo,,,,,,,,cMMMMMMk::::::cccccoOc
|
||
llccccc:::::;;dMMMMMMo,,,,,,,,cMMMMMMk:::::::cccccc,
|
||
'cccccc::::;,,dMMMMMMl'''''',,cMMMMMMk::::::::ccccc.
|
||
.cccccc::::,,,dMMMMMMo'''''',,cMMMMMMk::::::::ccccc
|
||
:ccccc:::::;;dMMMMMM0xxxxxxxxOMMMMMMk::::::::ccc'
|
||
;ccccc:::::::xMMMMMMMMMMMMMMMMMMMMMMk::::::ccccco
|
||
'ccccc:::::::xMMMMMMMMMMMMMMMMMMMMMMk:::::ccccccco
|
||
.ccccccc:::::xMMMMMMd::::::::oMMMMMMk:::::ccccccc
|
||
:cccccccc:::xMMMMMMo,,,,,,,,cMMMMMMk:::::cccccc
|
||
cccccccccc:xMMMMMMo,,,,,,,,cMMMMMMk::::cccccc
|
||
:ccccccccccxMMMMMMo,,,,,,,,cMMMMMMO:cccccccc
|
||
ccccccccccxMMMMMMd;;;;;;;:lMMMMMMOcccccccc
|
||
ccccccclooooooc::::::::cddddddlcccccc:
|
||
.ccccc::::::::::::::ccccccccccccccc
|
||
:cccc:::::::::::ccccccccccccc
|
||
.cccc:::::::ccccccccccc,
|
||
'ccccccccccccc.
|
||
;ccccc:
|
||
|
||
|
||
|
||
|
||
.XXX. .XXX. .XXXk dXX0 ;XXX.KXXXXXX, xXX0 :XX0 ,XK000KK
|
||
.ccc. .ccc. xccccc ;cco .occ. ccccccc. :cccdo ;cc: oxlccccccco0.
|
||
.ccc. .ccc. dcc'ccl. :ccl dcc. ccc' :cccccO. ;cc: lccc 'ccd
|
||
.ccclllllccc. ccc: .ccx .ccl,dcc' cccllll. :cc, ccox;cc: :cc: .ccc.
|
||
.ccc ccc. 'lccl0kcccd .cclcc, ccc. :cc; .ccocc: .ccco kcc:
|
||
.ccc. .ccc. dcc. :ccl .ccc; cccd000' :cc; cccc: cccxO0kocc,
|
||
:ccc.
|
||
</pre></code>-->
|
||
|
||
</div>
|
||
</div><!-- /row -->
|
||
</div> <!-- /container -->
|
||
</div><!-- /white -->
|
||
|
||
<div id="anon2">
|
||
<div class="container">
|
||
<div class="row">
|
||
<div class="col-lg-8 col-lg-offset-2">
|
||
<h2><b>Fiat for Monero, Face to Face Trade</b></h2> </br> </br>
|
||
<p>First step is to setup your account for Face to Face Trades:</p>
|
||
<img src="9.png" class="imgRz">
|
||
<p>Here we specify that we want to do face to face trades in Berlin (Germany) as an example, we will use our FIAT currency, Euros (in cash), you can also specify alternative ways to get contacted if you don't like the built in chat in Haveno DEX, such as email or phone number, etc. Then hit the "save new account" button:</p>
|
||
<img src="10.png" class="imgRz">
|
||
<p>Make sure you read carefully what a face-to-face fiat->XMR trade is, and what are it's risks, if you're fine with it, click "i understand". Now that your account is created, head over to the "Buy" section, as you want to buy monero:</p>
|
||
<img src="11.png" class="imgRz">
|
||
<img src="12.png" class="imgRz">
|
||
<p>Then you can publish a Fiat->XMR face to face trade offer like so:</p>
|
||
<img src="13.png" class="imgRz">
|
||
<p>So here we want to purchase 0.10 XMR, for the current market price, which amounts to 12 euros. then hit next step:</p>
|
||
<p>Now here is when we get introduced to the <a href="https://github.com/haveno-dex/haveno/blob/master/docs/trade_protocol/trade-protocol.pdf">trade protocol</a>'s security deposit system as <a href="https://haveno.exchange/faq/#what-are-the-differences-in-the-trade-protocol">detailed in the Haveno FAQ</a>. I'll make a simple diagram to explain the situation:</p>
|
||
<pre><code class="nim">
|
||
Quote from Haveno's FAQ: (https://haveno.exchange/faq/#what-are-the-differences-in-the-trade-protocol)
|
||
|
||
[...]
|
||
|
||
Bisq recently adopted a protocol based on 2/2 multisig, while Haveno will use their previous protocol: 2/3 multisignature. In a 2/3 multisignature trade, each trader owns one key; this key will be paired with the key of the other trader and will be used to unlock funds and deposits. It’s a 2 of 3 (2/3) protocol because you need only two out of three keys to move funds from the multisignature wallet.
|
||
|
||
If everything goes fine, the two traders will use their keys to complete the transfer process. If something goes wrong, one of the two parties won’t use their key to complete the transaction, and this is where the arbitrator comes to action.
|
||
|
||
Arbitrators are inherited from Bisq’s 2/3 protocol. They are a trusted role and have the duty of releasing the funds to one of the two parties in case of a conflict. To do so, they use the third key of the 2/3 multisig protocol.
|
||
|
||
[...]
|
||
|
||
</pre></code>
|
||
<img src="15.png" class="imgRz">
|
||
<p>To make it short, you (Bob) in this case, want to trade Fiat, for Alice's XMR, in person. <b>BOTH you and Alice need to put in some monero into the trade, as a security deposit.</b> That is so in case if you try to scam Alice, you will loose something in the process, preventing you from trying to repeatedly scam people, and vice versa.</p>
|
||
<img src="xmrbazaar_logo_beta.png" style="width:200px">
|
||
<p><u>Sidenote:</u> <b>if you want to get your first monero</b> and you don't have any crypto / fiat to start with, <b>check out the <a href="https://xmrbazaar.com/search/earn-xmr/">"earn XMR"</a> section in xmrbazaar.com.</b> For example, i offer monero to whoever contributes new blogposts to the OPSEC section of my blog in this offer <a href="https://xmrbazaar.com/listing/UsWA/">here</a>.</p>
|
||
<p>Due to the 2/3 multisig nature of the trade, <b>there needs to be at least 2 agreeing parties to complete the trade</b>. If all goes well, you and Alice agree on the trade, and the security deposit monero is released. If not, the Arbitrator will step in to punish the wrongdoer (by not giving him the security deposit back), and give the security deposit to the honest party.</p>
|
||
<p>The following example will cover a successful trade between you and Alice. If you want to see a trade dispute, check out <a href="../haveno-arbitrator/index.html">this tutorial</a>.</p>
|
||
<img src="14.png" class="imgRz">
|
||
<p>So here, you need to send the security deposit to be able to post your buying offer, just send it from your monero wallet like so:</p>
|
||
<img src="14.1.png" class="imgRz">
|
||
<p>Once you've sent the monero to your haveno trade for the security deposit, you need to wait approx 20 minutes for the transaction to be confirmed by the network</p>
|
||
<img src="15.1.png" class="imgRz">
|
||
<p>Approx 20 mins later, the trade shows up as enabled:</p>
|
||
<b>Bob: puts 0.1005 XMR into the trade for the security deposit, </b>
|
||
<img src="16.png" class="imgRz">
|
||
<p>You (and the other haveno peers) can see it from the Sell tab:</p>
|
||
<img src="17.png" class="imgRz">
|
||
<p>Here you just need to wait for someone to accept the trade. Once they do, they will need to send their share of the security deposit too just like we previously did. Once they do it will show up on your end as an initiated trade:</p>
|
||
<b>Alice puts 0.1005 XMR into the trade for the security deposit. Then the trade is secured</b>
|
||
<img src="18.png" class="imgRz">
|
||
<p>Same as before, you need to wait for the security deposit to be validated by the network (approx 20 mins again). In the meantime you can chat with the trader by clicking the "Open Trader Chat" button.</p>
|
||
<img src="19.png" class="imgRz">
|
||
<p>Once the security deposit has been validated by the network for the other party, you will get a notification that the trade can begin:</p>
|
||
<img src="20.png" class="imgRz">
|
||
<p>Next step is for you to go and give the 12 Euros to Alice, and once you do, you confirm that the Payment has been sent like so:</p>
|
||
<img src="22.png" class="imgRz">
|
||
<p>Then, you wait for Alice to confirm that she has recieved the 12 Euros (it will show up as "Peer confirmed message receipt"):</p>
|
||
<img src="21.png" class="imgRz">
|
||
<b> Alice can then send the 0.10 XMR to Bob, after Bob Pays her in Euros. </b>
|
||
<p>Then here, you just wait for the Monero to arrive in your Haveno monero wallet, it will first show up as Pending on the top right corner:</p>
|
||
<img src="23.png" class="imgRz">
|
||
<p>Wait another 20 minutes for the transaction to be validated by the network, and it will show up in your Haveno monero wallet as Available balance:</p>
|
||
<b> The trade is successful, the security deposit is now released, Bob gets his 0.1005 XMR back, and Alice too. (minus the transcation fees and arbitrator fees) </b>
|
||
<img src="24.png" class="imgRz">
|
||
<p>And that's it, you can now pop the Champagne as you completed your first Fiat -> XMR transaction on a Decentralised exchange! 🥂</p>
|
||
|
||
</div>
|
||
</div><!-- /row -->
|
||
</div> <!-- /container -->
|
||
</div><!-- /white -->
|
||
|
||
|
||
<!-- +++++ Second Post +++++ -->
|
||
<div id="anon1">
|
||
<div class="container">
|
||
<div class="row">
|
||
<div class="col-lg-8 col-lg-offset-2">
|
||
<h2><b>Withdrawing your Monero from Haveno to another Wallet</b></h2> </br> </br>
|
||
<p>Now all that's left is to withdraw your monero from your Haveno monero wallet to your other Monero Wallet:</p>
|
||
<img src="25.png" class="imgRz">
|
||
<p>Head over to Funds > send funds, tick the "Amounts includes mining fee" option, and select the amount of monero you want to withdraw, in this case i'm withdrawing all of it.</p>
|
||
<img src="26.png" class="imgRz">
|
||
<p>Then confirm that you want to withdraw the funds, and check your monero wallet for the incoming transaction:</p>
|
||
<img src="27.png" class="imgRz">
|
||
<p>And that's it! you just withdrew your funds to your other monero wallet!</p>
|
||
|
||
<p>Check out my other tutorials on Decentralised Finances below:</p>
|
||
<ol>
|
||
<li><a href="../monero2024/index.html">✅ How to acquire and use Monero </a></li>
|
||
<li><a href="../chainalysisattempts/index.html">✅ Why can't I trust Centralised Exchanges, and random Monero nodes ?</a></li>
|
||
|
||
<li><a href="../haveno-client-f2f/index.html"><b>✅ Haveno Decentralised Exchange direct Fiat -> XMR transaction ⭐</b></a></li>
|
||
<li><a href="../haveno-arbitrator/index.html">✅ Haveno DEX Dispute resolution (Fiat -> XMR) </a></li>
|
||
<li><a href="../haveno-sepa/index.html">✅ Haveno DEX Bank Transfer (ex: SEPA) -> XMR transaction </a></li>
|
||
<li><a href="../haveno-cashbymail/index.html">✅ Haveno DEX Cash By Mail -> XMR transaction ⭐</a></li> </ol></br>
|
||
|
||
</div>
|
||
</div><!-- /row -->
|
||
</div> <!-- /container -->
|
||
</div><!-- /white -->
|
||
|
||
<!-- +++++ Footer Section +++++ -->
|
||
|
||
<div id="anonb">
|
||
<div class="container">
|
||
<div class="row">
|
||
<div class="col-lg-4">
|
||
<h4>Nihilism</h4>
|
||
<p>
|
||
Until there is Nothing left.</p></br></br><p>Creative Commons Zero: <a href="../../../../opsec/runtheblog/index.html">No Rights Reserved</a></br><img src="\CC0.png">
|
||
|
||
</p>
|
||
</div><!-- /col-lg-4 -->
|
||
|
||
<div class="col-lg-4">
|
||
<h4>My Links</h4>
|
||
<p>
|
||
|
||
<a target="_blank" rel="noopener noreferrer" href="http://blog.nowhere.moe/rss/feed.xml">RSS Feed</a><br/><a target="_blank" rel="noopener noreferrer" href="https://simplex.chat/contact#/?v=2-7&smp=smp%3A%2F%2FL5jrGV2L_Bb20Oj0aE4Gn-m5AHet9XdpYDotiqpcpGc%3D%40nowhere.moe%2FH4g7zPbitSLV5tDQ51Yz-R6RgOkMEeCc%23%2F%3Fv%3D1-3%26dh%3DMCowBQYDK2VuAyEAkts5T5AMxHGrZCCg12aeKxWcpXaxbB_XqjrXmcFYlDQ%253D&data=%7B%22type%22%3A%22group%22%2C%22groupLinkId%22%3A%22c3Y-iDaoDCFm6RhptSDOaw%3D%3D%22%7D">SimpleX Chat</a><br/>
|
||
|
||
</p>
|
||
</div><!-- /col-lg-4 -->
|
||
|
||
<div class="col-lg-4">
|
||
<h4>About nihilist</h4>
|
||
<p style="word-wrap: break-word;"><u>Donate XMR:</u> 8AUYjhQeG3D5aodJDtqG499N5jXXM71gYKD8LgSsFB9BUV1o7muLv3DXHoydRTK4SZaaUBq4EAUqpZHLrX2VZLH71Jrd9k8</p></br><p><u>Contact:</u> nihilist@contact.nowhere.moe (<a href="https://nowhere.moe/nihilist.pubkey">PGP</a>)</p>
|
||
</div><!-- /col-lg-4 -->
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<!-- Bootstrap core JavaScript
|
||
================================================== -->
|
||
<!-- Placed at the end of the document so the pages load faster -->
|
||
|
||
</body>
|
||
</html>
|