<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Camouflage</title>
    <description></description>
    <link>https://blockchaincommons.github.io/Bitcoin-Camouflage//</link>
    <atom:link href="https://blockchaincommons.github.io/Bitcoin-Camouflage//feed.xml" rel="self" type="application/rss+xml" />
    <pubDate>Fri, 24 Sep 2021 05:39:58 +0000</pubDate>
    <lastBuildDate>Fri, 24 Sep 2021 05:39:58 +0000</lastBuildDate>
    <generator>Jekyll v3.9.0</generator>
    
      <item>
        <title>CJDNS</title>
        <description>&lt;p&gt;&lt;img src=&quot;/Bitcoin-Camouflage/images/posts/2021/02.png&quot; alt=&quot;meme&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Vasil Dimov created a &lt;a href=&quot;https://github.com/bitcoin/bitcoin/pull/23077&quot;&gt;pull request&lt;/a&gt; to add support for CJDNS in Bitcoin Core. Since I know less about CJDNS, I decided to do more research before reviewing the pull request in detail. Although I don’t think we need another network in Bitcoin Core considering ipv4,ipv6, Tor and i2p are good enouugh if we can use them without any issues.&lt;/p&gt;

&lt;h3 id=&quot;what-is-cjdns&quot;&gt;What is CJDNS?&lt;/h3&gt;

&lt;p&gt;CJDNS is an encrypted &lt;strong&gt;IPv6&lt;/strong&gt; network using cryptography for address allocation and DHT for routing. &lt;em&gt;What&lt;/em&gt;, &lt;em&gt;Why&lt;/em&gt; and &lt;em&gt;How&lt;/em&gt; is explained in the &lt;a href=&quot;https://github.com/cjdelisle/cjdns/blob/master/doc/Whitepaper.md&quot;&gt;Cjdns whitepaper&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Noticed something interesting in testimonials on github repository:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;00:36 &amp;lt; tester&amp;gt; man sites take so long to load on i2p
00:36 &amp;lt; tester&amp;gt; i value speed over anonymity any day&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If a project considers speed over anonymity I don’t think we need it in Bitcoin Core at this point. Although lets not jump to conclusions based on this.&lt;/p&gt;

&lt;p&gt;I understood its a distributed network that uses ipv6. Personal opinion: I don’t like &lt;em&gt;ipv6&lt;/em&gt;. Lets &lt;a href=&quot;https://github.com/cjdelisle/cjdns#how-to-install-cjdns&quot;&gt;try CJDNS&lt;/a&gt; and see how things work.&lt;/p&gt;

&lt;p&gt;Ubuntu:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Installed dependencies:&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt-get install nodejs git build-essential python2.7
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Run the commands to clone, compile and install as mentioned in &lt;a href=&quot;https://github.com/cjdelisle/cjdns/blob/master/doc/install/ubuntu-18.04.md&quot;&gt;doc/install/ubuntu-18.04.md&lt;/a&gt;. Unfortunately it didn’t work. I was getting error that Rust and Cargo are required even though are already installed. Tried running the commands in terminal from do.sh but terminal closed automatically after L10.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Tried to look for help in IRC channel for CJDNS on Libera. But nothing could resolve the issues. So decided to give up and try run CJDNS on other OS.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Windows:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Installed dependencies:&lt;/p&gt;

    &lt;p&gt;Rust: &lt;a href=&quot;https://win.rustup.rs/x86_64&quot;&gt;https://win.rustup.rs/x86_64&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;OpenVPN: &lt;a href=&quot;https://swupdate.openvpn.org/community/releases/OpenVPN-2.5.3-I601-amd64.msi&quot;&gt;https://swupdate.openvpn.org/community/releases/OpenVPN-2.5.3-I601-amd64.msi&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Run the commands to clone and compile (WSL) as mentioned in &lt;a href=&quot;https://github.com/cjdelisle/cjdns/blob/master/doc/install/windows.md&quot;&gt;doc/install/windows.md&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Error:&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;./do: 2: export: Files/WindowsApps/CanonicalGroupLimited.UbuntuonWindows_2004.2021.222.0_x64__79rhkp1fndgsc:/mnt/c/Program: bad variable name
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I think documentation about installing CJDNS needs to be updated. Not the best feeling wasting few hours and not able to run CJDNS. Anyway, time to look for alternatives and compare them with CJDNS. First thing that I found on &lt;a href=&quot;https://www.reddit.com/r/darknetplan&quot;&gt;r/darknetplan&lt;/a&gt; was GNUnet.&lt;/p&gt;

&lt;h3 id=&quot;what-is-gnunet&quot;&gt;What is GNUnet?&lt;/h3&gt;

&lt;p&gt;GNUnet is an alternative network stack for building secure, decentralized and privacy-preserving distributed applications. I like the things mentioned in philosophy section of &lt;a href=&quot;https://docs.gnunet.org/handbook/gnunet.html#Philosophy&quot;&gt;GNUnet handbook&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;GNUnet presented at the Decentralized Internet and Privacy devroom at FOSDEM20 in 2020: &lt;a href=&quot;https://git.gnunet.org/gnunet-videos-2020.git/plain/FOSDEM20/dip_gnunet.webm&quot;&gt;https://git.gnunet.org/gnunet-videos-2020.git/plain/FOSDEM20/dip_gnunet.webm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This presentation was interesting and the most important thing that he mentioned in the video was after 06:00:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/Bitcoin-Camouflage/images/posts/2021/03.png&quot; alt=&quot;layers&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You cannot build applications on top of a centralized network and expect them to be decentralized. Lets try to install GNUnet and see how it works.&lt;/p&gt;

&lt;p&gt;First thing that I noticed on the &lt;a href=&quot;https://gnunet.org/en/news/2021-08-0.15.0.html&quot;&gt;GNUnet 0.15.0&lt;/a&gt; download page:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;In terms of usability, users should be aware that there are still a number of known open issues in particular with respect to ease of use, but also some critical privacy issues especially for mobile users. Also, the nascent network is tiny and thus unlikely to provide good anonymity or extensive amounts of interesting information. As a result, the 0.15.0 release is still only suitable for early adopters with some reasonable pain tolerance.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I don’t think this can be used for Bitcoin Core. However, I like the project website, docs and presentation so will try to run it.&lt;/p&gt;

&lt;p&gt;Steps that I followed to install GNUnet:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ sudo apt-get install gnunet
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;One command and it is done! Now lets use it.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://gnunet.org/en/use.html&quot;&gt;How to use GNUnet&lt;/a&gt; - in a nutshell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ gnunet-arm -s

$ gnunet-arm -I

$ gnunet-core

$ gnunet-peerinfo
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;/Bitcoin-Camouflage/images/posts/2021/04.png&quot; alt=&quot;terminal&quot; /&gt;&lt;/p&gt;

&lt;p&gt;There are lot of other things mentioned in the docs which I won’t go through in this post however this stuff really works and I am happy with it. You can check other things on &lt;a href=&quot;https://gnunet.org/en/use.html&quot;&gt;GNUnet website&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Filesharing&lt;/li&gt;
  &lt;li&gt;Chat&lt;/li&gt;
  &lt;li&gt;Name resolution using GNS&lt;/li&gt;
  &lt;li&gt;Serving a website using VPN&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lets move on to another project which tries to solve similar problems.&lt;/p&gt;

&lt;h3 id=&quot;what-is-yggdrasil&quot;&gt;What is Yggdrasil?&lt;/h3&gt;

&lt;p&gt;Yggdrasil is end-to-end encrypted IPv6 mesh network. Yggdrasil does not require you to have IPv6 Internet connectivity - it also works over IPv4. There is a table on &lt;a href=&quot;https://yggdrasil-network.github.io/about.html&quot;&gt;Yggdrasil website&lt;/a&gt; which explains the difference between Yggdrasil and traditional networks like the internet.&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt; &lt;/th&gt;
      &lt;th style=&quot;text-align: center&quot;&gt;Traditional&lt;/th&gt;
      &lt;th style=&quot;text-align: right&quot;&gt;Yggdrasil&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;End-to-end encryption&lt;/strong&gt; for all traffic across the network&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;No&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;Yes&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Decentralised routing&lt;/strong&gt; information shared using a DHT&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;No&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;Yes&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Cryptographically-bound IPv6 addresses&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;No&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;Yes&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Node is aware of its &lt;strong&gt;relative location&lt;/strong&gt; to other nodes&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;No&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;Yes&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;IPv6 address&lt;/strong&gt; remains with the device even if moved&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;No&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;Yes&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Topology extends gracefully &lt;strong&gt;across different mediums&lt;/strong&gt;&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;No&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;Yes&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;&lt;br /&gt;
Yggdrasil is still an alpha project, early in development but actively maintained. I don’t think we can use this for Bitcoin Core yet but will surely check the progress in few months.&lt;/p&gt;

</description>
        <pubDate>Fri, 24 Sep 2021 00:00:00 +0000</pubDate>
        <link>https://blockchaincommons.github.io/Bitcoin-Camouflage//blog/cjdns/</link>
        <guid isPermaLink="true">https://blockchaincommons.github.io/Bitcoin-Camouflage//blog/cjdns/</guid>
        
        <category>bitcoin-core</category>
        
        <category>cjdns</category>
        
        <category>gnunet</category>
        
        <category>privacy</category>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Onlynet</title>
        <description>&lt;p&gt;&lt;img src=&quot;/Bitcoin-Camouflage/images/posts/2021/01.png&quot; alt=&quot;meme&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Last update: 9 September 2021&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;onlynet&lt;/code&gt; is a config option in Bitcoin Core that allows you to control outbound connections based on type of network (ipv4, ipv6, onion, i2p).&lt;/p&gt;

&lt;p&gt;Possible combinations (14):&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;ipv4&lt;/li&gt;
  &lt;li&gt;ipv6&lt;/li&gt;
  &lt;li&gt;onion&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;i2p&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;ipv4, ipv6&lt;/li&gt;
  &lt;li&gt;ipv4, onion&lt;/li&gt;
  &lt;li&gt;ipv4, i2p&lt;/li&gt;
  &lt;li&gt;ipv6, onion&lt;/li&gt;
  &lt;li&gt;ipv6, i2p&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;onion, i2p&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;ipv4, ipv6, onion&lt;/li&gt;
  &lt;li&gt;ipv4, ipv6, i2p&lt;/li&gt;
  &lt;li&gt;ipv4, onion, i2p&lt;/li&gt;
  &lt;li&gt;ipv6, onion, i2p&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What are the isssues with this option?&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Some users are not aware that &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;onlynet&lt;/code&gt; is only for outbound connections&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Outbound connections are still made to other networks in some cases which PR &lt;a href=&quot;https://github.com/bitcoin/bitcoin/pull/22651&quot;&gt;#22651&lt;/a&gt; was trying to fix. A new PR &lt;a href=&quot;https://github.com/bitcoin/bitcoin/pull/22834&quot;&gt;#22834&lt;/a&gt; was created to fix this issue based on suggestions by Wladimir van der Laan in a &lt;a href=&quot;https://github.com/bitcoin/bitcoin/pull/22648#discussion_r696535966&quot;&gt;comment&lt;/a&gt; while reviewing another related PR.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;More users have started experimenting and trying different combinations since i2p was added&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;An issues was also created to add checkboxes in GUI to select which networks to connect to: &lt;a href=&quot;https://github.com/bitcoin-core/gui/issues/413&quot;&gt;#413&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;related-links&quot;&gt;Related links&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://bitcoin.stackexchange.com/questions/103402/how-can-i-use-bitcoin-core-with-the-anonymous-network-protocol-i2p&quot;&gt;https://bitcoin.stackexchange.com/questions/103402/how-can-i-use-bitcoin-core-with-the-anonymous-network-protocol-i2p&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://bitcoin.stackexchange.com/questions/107060/tor-and-i2p-tradeoffs-in-bitcoin-core&quot;&gt;https://bitcoin.stackexchange.com/questions/107060/tor-and-i2p-tradeoffs-in-bitcoin-core&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/BlockchainCommons/Learning-Bitcoin-from-the-Command-Line/blob/master/15_0_Using_i2p.md&quot;&gt;https://github.com/BlockchainCommons/Learning-Bitcoin-from-the-Command-Line/blob/master/15_0_Using_i2p.md&lt;/a&gt;&lt;/p&gt;

</description>
        <pubDate>Sat, 28 Aug 2021 00:00:00 +0000</pubDate>
        <link>https://blockchaincommons.github.io/Bitcoin-Camouflage//blog/onlynet/</link>
        <guid isPermaLink="true">https://blockchaincommons.github.io/Bitcoin-Camouflage//blog/onlynet/</guid>
        
        <category>bitcoin-core</category>
        
        <category>tor</category>
        
        <category>i2p</category>
        
        <category>onlynet</category>
        
        
        <category>blog</category>
        
      </item>
    
  </channel>
</rss>
