<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>HowTo Yggdrasil - en:yggdrasil:alt_clients</title>
        <description></description>
        <link>http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/</link>
        <lastBuildDate>Fri, 08 May 2026 02:59:12 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/_media/wiki:logo.png</url>
            <title>HowTo Yggdrasil</title>
            <link>http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/</link>
        </image>
        <item>
            <title>Alternative clients</title>
            <link>http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/en:yggdrasil:alt_clients:alt_clients?rev=1761120803&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;alternative_clients&quot;&gt;Alternative clients&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Articles inside the section:
&lt;/p&gt;

&lt;div&gt;&lt;div id=&quot;nojs_indexmenu_130620759169283bad780e8&quot; data-jsajax=&quot;%26group%3D1&quot; class=&quot;indexmenu_nojs&quot;&gt;
&lt;ul class=&quot;idx&quot;&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/en:yggdrasil:alt_clients:popura&quot; class=&quot;wikilink1&quot; title=&quot;en:yggdrasil:alt_clients:popura&quot; data-wiki-id=&quot;en:yggdrasil:alt_clients:popura&quot;&gt;An alternative client Popura&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/en:yggdrasil:alt_clients:riv-mesh&quot; class=&quot;wikilink1&quot; title=&quot;en:yggdrasil:alt_clients:riv-mesh&quot; data-wiki-id=&quot;en:yggdrasil:alt_clients:riv-mesh&quot;&gt;RiV-mesh&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 22 Oct 2025 08:13:23 +0000</pubDate>
        </item>
        <item>
            <title>An alternative client Popura</title>
            <link>http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/en:yggdrasil:alt_clients:popura?rev=1761120803&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;an_alternative_client_popura&quot;&gt;An alternative client Popura&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Popura is an alternative &lt;a href=&quot;http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/en:yggdrasil:yggdrasil&quot; class=&quot;wikilink1&quot; title=&quot;en:yggdrasil:yggdrasil&quot; data-wiki-id=&quot;en:yggdrasil:yggdrasil&quot;&gt;Yggdrasil&lt;/a&gt; Network client.
&lt;/p&gt;

&lt;p&gt;
Popura uses the same Yggdrasil&amp;#039;s core &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; internally, but adds some useful and experimental features which the original client lacks.
&lt;/p&gt;

&lt;p&gt;
Popura&amp;#039;s features:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  Automatic Internet peering&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  Advertising /64 prefix to &lt;abbr title=&quot;Local Area Network&quot;&gt;LAN&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  Meshname naming system&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  DHT crawling method in Admin &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
By default, it works just like the original yggdrasil client, all features must be enabled manually.
Popura adds new command line flags and config file sections to control those features.
&lt;/p&gt;

&lt;p&gt;
Download the most recent version of Popura here &lt;a href=&quot;https://github.com/popura-network/Popura/releases&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://github.com/popura-network/Popura/releases&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://github.com/popura-network/Popura/releases&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;An alternative client Popura&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;an_alternative_client_popura&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-681&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;autopeering&quot;&gt;Autopeering&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Popura has a built-in peer list. If there are no Internet peers configured, it picks a single random peer out of ten with least latency. 
If a picked peer goes offline, Popura picks another one, so it&amp;#039;s effectively “autohealing”.
To enable automatic Internet peering, run yggdrasil with -autopeer command line flag.
&lt;/p&gt;

&lt;p&gt;
By default, peer list is compiled from the public-peers repository &lt;a href=&quot;https://github.com/yggdrasil-network/public-peers/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://github.com/yggdrasil-network/public-peers/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://github.com/yggdrasil-network/public-peers/&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Autopeering&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;autopeering&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;682-1143&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;router_advertisement&quot;&gt;Router advertisement&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Popura is able to advertise a /64 prefix to &lt;abbr title=&quot;Local Area Network&quot;&gt;LAN&lt;/abbr&gt; clients for stateless IPv6 address autoconfiguration (&lt;a href=&quot;https://en.wikipedia.org/wiki/IPv6#Stateless_address_autoconfiguration_%28SLAAC%29&quot; class=&quot;interwiki iw_wp&quot; target=&quot;_blank&quot; title=&quot;https://en.wikipedia.org/wiki/IPv6#Stateless_address_autoconfiguration_%28SLAAC%29&quot; rel=&quot;noopener&quot;&gt;SLAAC&lt;/a&gt;).
&lt;/p&gt;

&lt;p&gt;
While it is generally encouraged that nodes run the software locally, to provide end-to-end cryptographic sessions and participate in routing, this is not always practical. Some network devices will inevitably be unable to run user code, but may still provide IPv6 connectivity. Users may also prefer to avoid running the software on an otherwise compatible system, perhaps to provide guest access or to avoid any overhead to battery powered devices. To that end, it is each node is assigned a /64 prefix in parallel to their address. A node acting as a router may advertise this prefix just as they would any other ordinary IPv6 network.
&lt;/p&gt;

&lt;p&gt;
This may be best illustrated by example. Suppose a node has generated the address: 200:1111:2222:3333:4444:5555:6666:7777. Then the node may also use addresses from the prefix: 300:1111:2222:3333::/64 (note the 200 changed to 300, a separate /8 is used for prefixes, but the rest of the first 64 bits are the same).
&lt;/p&gt;

&lt;p&gt;
This feature currently works on Linux systems. Support for other operating systems might be added later, if there will be a demand for it.
&lt;/p&gt;

&lt;p&gt;
Make sure to enable IPv6 packet forwarding:
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;sudo sysctl -w net.ipv6.conf.all.forwarding=1&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
An example &lt;a href=&quot;https://en.wikipedia.org/wiki/RAdv&quot; class=&quot;interwiki iw_wp&quot; target=&quot;_blank&quot; title=&quot;https://en.wikipedia.org/wiki/RAdv&quot; rel=&quot;noopener&quot;&gt;RAdv&lt;/a&gt; section in Popura&amp;#039;s config:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  RAdv:

  {
    Enable: true
    
    Interface: eth0
    
    SetGatewayIP: true
  }&lt;/pre&gt;

&lt;p&gt;
Interface is &lt;abbr title=&quot;Local Area Network&quot;&gt;LAN&lt;/abbr&gt; network interface, for example `wlan0` or `eth0`. 
&lt;/p&gt;

&lt;p&gt;
SetGatewayIP option automatically adds an &lt;abbr title=&quot;Internet Protocol&quot;&gt;IP&lt;/abbr&gt; address to the &lt;em&gt;Interface&lt;/em&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Router advertisement&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;router_advertisement&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1144-2840&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;meshname&quot;&gt;Meshname&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://github.com/zhoreeq/meshname/blob/master/protocol.md&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://github.com/zhoreeq/meshname/blob/master/protocol.md&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Meshname&lt;/a&gt; is a universal naming system for all IPv6-based meshnets, including CJDNS and Yggdrasil 
&lt;/p&gt;

&lt;p&gt;
Having a naming system is a common requirement for deploying preexisting decentralized applications. I.e., applications for e-mail, XMPP and ActivityPub require domain names for server to server communications.
&lt;/p&gt;

&lt;p&gt;
Self-organized networks like CJDNS and Yggdrasil Network use public-key cryptography for &lt;abbr title=&quot;Internet Protocol&quot;&gt;IP&lt;/abbr&gt; address allocation. Every network node owns a globally unique IPv6 address. Binary form of that address can be encoded with base32 notation for deriving a globally unique name space managed by that node.
&lt;/p&gt;

&lt;p&gt;
Since there is no need for a global authority or consensus, such a naming system will reliably work in any network split scenarios.
&lt;/p&gt;

&lt;p&gt;
Meshname implementation in Popura is a local &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; server that can both host and resolve “meshname” domains. 
It is recommended to configure meshname as an upstream &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; server for the regular &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; server, like &lt;a href=&quot;https://en.wikipedia.org/wiki/dnsmasq&quot; class=&quot;interwiki iw_wp&quot; target=&quot;_blank&quot; title=&quot;https://en.wikipedia.org/wiki/dnsmasq&quot; rel=&quot;noopener&quot;&gt;dnsmasq&lt;/a&gt; or &lt;a href=&quot;https://en.wikipedia.org/wiki/bind&quot; class=&quot;interwiki iw_wp&quot; target=&quot;_blank&quot; title=&quot;https://en.wikipedia.org/wiki/bind&quot; rel=&quot;noopener&quot;&gt;bind&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
To generate a sample meshname config for your Yggdrasil node, run:
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;yggdrasil -meshnameconf $(yggdrasil -useconffile /etc/yggdrasil.conf -address)&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
An example meshname section in Popura&amp;#039;s config:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  Meshname:
  {
    Config:
    {
      aicrxoqgun7siwm42akzfsox7m:
      [
        aicrxoqgun7siwm42akzfsox7m.ygg AAAA 205:1bba:6a3:7f24:599c:d015:92c9:d7fb
        _xmpp-client._tcp.aicrxoqgun7siwm42akzfsox7m.ygg. 86400 IN SRV 5 0 5222 xmpp.aicrxoqgun7siwm42akzfsox7m.ygg.
        _xmpp-server._tcp.aicrxoqgun7siwm42akzfsox7m.ygg. 86400 IN SRV 5 0 5269 xmpp.aicrxoqgun7siwm42akzfsox7m.ygg.
        xmpp.aicrxoqgun7siwm42akzfsox7m.ygg. AAAA 305:1bba:6a3:7f24::23
      ]
    }
    Enable: true
    Listen: &amp;quot;[::1]:53535&amp;quot;
  }&lt;/pre&gt;

&lt;p&gt;
An example dnsmasq configuration that uses meshname as an upstream server:
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;
port=53
domain-needed
bogus-priv
server=/meshname/::1#53535
server=/ygg/::1#53535
server=8.8.8.8
&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Meshname&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;meshname&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2841-4830&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;dhtcrawl&quot;&gt;DHTCrawl&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
A DHTCrawl method is added to the AdminAPI. It does a recursive DHTPing crawling over all known Yggdrasil nodes and collects their NodeInfo. 
To enable DHTCrawl method, run yggdrasil with `-dhtcrawler` command line flag.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DHTCrawl&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dhtcrawl&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;4831-5074&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit6&quot; id=&quot;references&quot;&gt;References&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Git repository: &lt;a href=&quot;https://github.com/popura-network/Popura&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://github.com/popura-network/Popura&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://github.com/popura-network/Popura&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;References&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;references&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;5075-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 22 Oct 2025 08:13:23 +0000</pubDate>
        </item>
        <item>
            <title>RiV-mesh</title>
            <link>http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/en:yggdrasil:alt_clients:riv-mesh?rev=1761120803&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;riv-mesh&quot;&gt;RiV-mesh&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt;RiV-mesh&lt;/strong&gt; — a &lt;a href=&quot;https://en.wikipedia.org/wiki/Fork_(software_development)&quot; class=&quot;interwiki iw_wp&quot; target=&quot;_blank&quot; title=&quot;https://en.wikipedia.org/wiki/Fork_(software_development)&quot; rel=&quot;noopener&quot;&gt;fork&lt;/a&gt; of &lt;a href=&quot;http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/yggdrasil:yggdrasil&quot; class=&quot;wikilink1&quot; title=&quot;yggdrasil:yggdrasil&quot; data-wiki-id=&quot;yggdrasil:yggdrasil&quot;&gt;Yggdrasil&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;RiV-mesh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;riv-mesh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-113&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;links&quot;&gt;Links&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
GitHub (EN): &lt;a href=&quot;https://github.com/RiV-chain/RiV-mesh&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://github.com/RiV-chain/RiV-mesh&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://github.com/RiV-chain/RiV-mesh&lt;/a&gt; &lt;br/&gt;

Documentation (EN): &lt;a href=&quot;https://riv-chain.github.io/RiV-mesh/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://riv-chain.github.io/RiV-mesh/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://riv-chain.github.io/RiV-mesh/&lt;/a&gt; &lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Links&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;links&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;114-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 22 Oct 2025 08:13:23 +0000</pubDate>
        </item>
    </channel>
</rss>
