<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom" >
  <generator uri="https://jekyllrb.com/" version="3.7.4">Jekyll</generator>
  <link href="/author/fullmetalScience/feed.xml" rel="self" type="application/atom+xml" />
  <link href="/" rel="alternate" type="text/html" />
  <updated>2026-04-26T10:22:48+00:00</updated>
  <id>/author/fullmetalScience/feed.xml</id>

  
  
  

  
    <title type="html">fullmetal.science | </title>
  

  
    <subtitle>We gather and conserve valuable thoughts extracted from various types of media. As soon as we feel like it, we present them here in condensed form. Quotes are neither an endorsement nor an objection to the person quoted, their endeavors or associated parties.</subtitle>
  

  

  
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
  

  
  

  
    <entry>
      <title type="html">HAProxy configuration to load-balance Monero nodes</title>
      <link href="/haproxy-configuration-to-load-balance-monero-nodes" rel="alternate" type="text/html" title="HAProxy configuration to load-balance Monero nodes" />
      <published>2024-06-03T00:00:00+00:00</published>
      <updated>2024-06-03T00:00:00+00:00</updated>
      <id>/haproxy-configuration-to-load-balance-monero-nodes</id>
      <content type="html" xml:base="/haproxy-configuration-to-load-balance-monero-nodes">&lt;p&gt;To get an understanding of HAProxy&amp;#8217;s possibilities, I grabbed a list of nodes from &lt;a href=&quot;https://monero.fail&quot;&gt;monero.fail&lt;/a&gt; and created a configuration that load-balances connections among them.&lt;/p&gt;
&lt;p&gt;The configuration would allow you to connect Monero to HAProxy, which in turn takes care of selecting a remote node that responds fairly quickly.&lt;/p&gt;
&lt;p&gt;However, using HAProxy makes more sense in a scenario where you want to load balance multiple public nodes that you operate yourself.&lt;/p&gt;
&lt;p&gt;Note that there&amp;#8217;s also a project named &lt;a href=&quot;https://github.com/unyieldinggrace/monerod-proxy&quot;&gt;Monerod-Proxy&lt;/a&gt; that offers similar functionality.&lt;/p&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;c&quot;&gt;# HAProxy configuration file (stand-alone)&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# to load-balance among a list of public Monero nodes&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# /etc/haproxy/haproxy.cfg&lt;/span&gt;

global
  chroot /var/lib/haproxy
  user haproxy
  group haproxy
  &lt;span class=&quot;c&quot;&gt;# Enable to access information via socket file &lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;# See https://www.haproxy.com/blog/haproxy-apis&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;#stats socket /var/run/haproxy.sock mode 0600 level admin expose-fd listeners thread 1&lt;/span&gt;

defaults
  mode tcp
  &lt;span class=&quot;c&quot;&gt;# https://www.haproxy.com/blog/the-four-essential-sections-of-an-haproxy-configuration#timeout-connect-timeout-client-timeout-server&lt;/span&gt;
  timeout client  60s
  timeout connect  5s
  timeout server  60s

&lt;span class=&quot;c&quot;&gt;## Enable a status page at the given port&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;#frontend stats&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;#  mode http&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;#  bind *:8404&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;#  stats enable&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;#  stats uri /stats&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;#  #stats refresh 10s&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;#  stats admin if LOCALHOST&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# Have HAProxy listen for clients on the defined port&lt;/span&gt;
frontend frontend
  &lt;span class=&quot;nb&quot;&gt;bind&lt;/span&gt; :18081
  default_backend nodes

&lt;span class=&quot;c&quot;&gt;# Have HAProxy forward connections to this list of nodes&lt;/span&gt;
backend nodes
  &lt;span class=&quot;c&quot;&gt;# Approach the list of nodes least connected to in a roundrobin manner&lt;/span&gt;
  balance leastconn
  &lt;span class=&quot;c&quot;&gt;# https://www.haproxy.com/documentation/haproxy-configuration-tutorials/service-reliability/health-checks/#passive-health-checks&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;# https://www.haproxy.com/blog/how-to-enable-health-checks-in-haproxy#passive-health-checks&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;#&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;# &quot;Passive health checks always coexist with active health checks, with the latter&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;# doing its normal polling while also being responsible for reviving a server after&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;# it has been marked as down by a passive health check.&quot;&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;# &lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;# Active part:  Nodes will be checked every 10 minutes (inter), considered&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;#               &quot;down&quot; if connection fails once (fall 1) and &quot;up&quot; if available&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;#               upon the 2 further cheks (rise 2).&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;# Passive part: Nodes will be considered &quot;down&quot; if there are at least two&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;#               errors in ongoing connections (observe - error-limit 2).&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;#               Only an active check (explained above) can return it to &quot;up&quot;.&lt;/span&gt;
  default-server  check  inter 10m  observe layer4  error-limit 2  on-error mark-down  fall 1  rise 2
  server backend-1 node.moneroworld.com:18089
  server backend-2 uwillrunanodesoon.moneroworld.com:18089
  server backend-3 nodes.hashvault.pro:18081
  server backend-4 node1.xmr-tw.org:18081
  server backend-8 xmr-de-1.boldsuck.org:18081
  &lt;span class=&quot;c&quot;&gt;# ...&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;p&gt;You may append as many nodes as you want, but be aware that each one implies more health checks and slows down HAProxy-startup.&lt;/p&gt;
&lt;p&gt;Once HAProxy is running (&lt;code&gt;haproxy -W -f &amp;lt;path-to-config&amp;gt;&lt;/code&gt;) you can test the connection with Monero &lt;span class=&quot;caps&quot;&gt;RPC&lt;/span&gt; or &lt;span class=&quot;caps&quot;&gt;CLI&lt;/span&gt; (&lt;code&gt;monero-wallet-cli --daemon-host &amp;lt;haproxy-ip&amp;gt; --daemon-port 18081 &amp;lt;further-options&amp;gt;&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;The configuration surely has room for improvement. If you know any tweaks, please comment in our &lt;a href=&quot;https://monero.town/post/3357197&quot;&gt;thread on Monero Town&lt;/a&gt;.&lt;/p&gt;</content>

      
      
      
      
      

      <author>
          <name>fullmetalScience</name>
        
        
      </author>

      

      
        <category term="Articles" />
      

      
        <summary type="html">To get an understanding of HAProxy&amp;#8217;s possibilities, I grabbed a list of nodes from monero.fail and created a configuration that load-balances connections among them.</summary>
      

      
      
    </entry>
  
    <entry>
      <title type="html">Key-Setting Wrench “Umstellaktivator” for LaGard 3330/3390</title>
      <link href="/key-setting-wrench-umstellaktivator-for-lagard-3330-3390" rel="alternate" type="text/html" title="Key-Setting Wrench &quot;Umstellaktivator&quot; for LaGard 3330/3390" />
      <published>2022-02-28T00:00:00+00:00</published>
      <updated>2022-02-28T00:00:00+00:00</updated>
      <id>/key-setting-wrench-umstellaktivator-for-lagard-3330-3390</id>
      <content type="html" xml:base="/key-setting-wrench-umstellaktivator-for-lagard-3330-3390">&lt;p&gt;This wrench models a tool required to change the combination on LaGard 3330/3390 locks typically used in safes.&lt;/p&gt;
&lt;p&gt;Use this model as reference for crafting your own tool from a steel rod or allen wrench.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span class=&quot;caps&quot;&gt;IMPORTANT&lt;/span&gt;:&lt;/b&gt; &lt;em&gt;The torque required when using the tool exceeds the tensile strength of most 3D-printed filaments. Abstain from using a printed version in an actual lock to avoid the risk of the lock becoming unusable.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;You can find the source files at https://gitlab.com/fullmetalScience/printables and use OpenSCAD to interpret and convert them to &lt;span class=&quot;caps&quot;&gt;STL&lt;/span&gt; or download the necessary STL&amp;#8217;s directly from the &lt;a href=&quot;https://www.thingiverse.com/thing:5266688&quot;&gt;Key-Setting Wrench &amp;#8216;Umstellaktivator&amp;#8217; for LaGard 3330/3390&lt;/a&gt; Thingiverse page.&lt;/p&gt;</content>

      
      
      
      
      

      <author>
          <name>fullmetalScience</name>
        
        
      </author>

      

      
        <category term="Articles" />
      

      
        <summary type="html">This wrench models a tool required to change the combination on LaGard 3330/3390 locks typically used in safes.</summary>
      

      
      
    </entry>
  
    <entry>
      <title type="html">Caliberator 22LR - 3D-printable cartridge-holder for caliber .22 Long Rifle</title>
      <link href="/caliberator-22lr-3d-printable-cartridge-holder-for-caliber-22-long-rifle" rel="alternate" type="text/html" title="Caliberator 22LR - 3D-printable cartridge-holder for caliber .22 Long Rifle" />
      <published>2020-11-13T00:00:00+00:00</published>
      <updated>2020-11-13T00:00:00+00:00</updated>
      <id>/caliberator-22lr-3d-printable-cartridge-holder-for-caliber-22-long-rifle</id>
      <content type="html" xml:base="/caliberator-22lr-3d-printable-cartridge-holder-for-caliber-22-long-rifle">&lt;p&gt;The &amp;#8220;Caliberator 22LR&amp;#8221; is a box capable of holding up to 50 cartridges in caliber .22 Long Rifle (5.6×15mmR).&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;A &lt;b&gt;little ramp&lt;/b&gt; rises a row of five when the slide is pushed from the opposite side simplifying the act of extracting cartridges.&lt;/li&gt;
	&lt;li&gt;The box is compatible to the &lt;b&gt;slide&lt;/b&gt; that ships with certain &lt;span class=&quot;caps&quot;&gt;CCI&lt;/span&gt;-brand ammunition. This may spare you the task of having to print the slide.&lt;/li&gt;
	&lt;li&gt;On the top of the box above and below the &amp;#8220;.22 LR&amp;#8221; text there is &lt;b&gt;space for two labels&lt;/b&gt; of up to 11 characters (when using an embossing label maker).&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;Numbering on the side&lt;/b&gt; allows for quick calculation of remaining bullets in the box.&lt;/li&gt;
	&lt;li&gt;Of course the box sports &lt;a href=&quot;//xmr.id&quot;&gt;&lt;span class=&quot;caps&quot;&gt;XMR&lt;/span&gt;.ID&amp;#8217;s&lt;/a&gt; bullet mascot on both sides (pointing towards a brighter future :).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can find the source files at https://gitlab.com/fullmetalScience/printables and use OpenSCAD to interpret and convert them to &lt;span class=&quot;caps&quot;&gt;STL&lt;/span&gt; or download the necessary STL&amp;#8217;s directly from the &lt;a href=&quot;https://www.thingiverse.com/thing:4652073&quot;&gt;Caliberator 22LR page on Thingiverse&lt;/a&gt;.&lt;/p&gt;</content>

      
      
      
      
      

      <author>
          <name>fullmetalScience</name>
        
        
      </author>

      

      
        <category term="Articles" />
      

      
        <summary type="html">The &amp;#8220;Caliberator 22LR&amp;#8221; is a box capable of holding up to 50 cartridges in caliber .22 Long Rifle (5.6×15mmR).</summary>
      

      
      
    </entry>
  
    <entry>
      <title type="html">Monero fees: Transaction cost versus block size</title>
      <link href="/monero-fees-transaction-cost-vs-block-size" rel="alternate" type="text/html" title="Monero fees: Transaction cost versus block size" />
      <published>2020-07-04T00:00:00+00:00</published>
      <updated>2020-07-04T00:00:00+00:00</updated>
      <id>/monero-fees--transaction-cost-vs-block-size</id>
      <content type="html" xml:base="/monero-fees-transaction-cost-vs-block-size">&lt;p&gt;This chart shows how an increase in Moneros block size lowers the transaction costs for every participant of the network.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/transaction_cost_vs_block_size.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Note that current block sizes are below 100 kB, so an increase by several factors would still leave you at the leftmost point of the graph.&lt;/p&gt;</content>

      
      
      
      
      

      <author>
          <name>fullmetalScience</name>
        
        
      </author>

      

      
        <category term="Articles" />
      

      
        <summary type="html">This chart shows how an increase in Moneros block size lowers the transaction costs for every participant of the network.</summary>
      

      
      
    </entry>
  
    <entry>
      <title type="html">CORONA-Report - Verifiable Research for Educational Use</title>
      <link href="/corona" rel="alternate" type="text/html" title="CORONA-Report - Verifiable Research for Educational Use" />
      <published>2020-04-20T00:00:00+00:00</published>
      <updated>2020-04-20T00:00:00+00:00</updated>
      <id>/corona</id>
      <content type="html" xml:base="/corona">&lt;p&gt;Corona-Report is an extract from insights gathered about the current global situation.&lt;/p&gt;
&lt;h2&gt;Important update&lt;/h2&gt;
&lt;p&gt;This document was last updated in April 2020. A month later, three months into the scare, neither public health records nor scientific studies showed any evidence of a pandemic.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Furthermore, by October 2020 it was understood that not even the existence of a virus had been proven.&lt;/b&gt;&lt;/p&gt;
&lt;h3&gt;Background&lt;/h3&gt;
&lt;p&gt;Technically, what is being done instead, is using data templates (software) and applying selection bias to a biological sample discarding undesired fragments until the remains are similar, but not equal, to a &lt;em&gt;pre-defined&lt;/em&gt; virus model. This newly created data becomes the model of a &amp;#8220;new&amp;#8221; virus, which is as fictional as the previous one.&lt;/p&gt;
&lt;p&gt;In case of tests, real &lt;span class=&quot;caps&quot;&gt;DNA&lt;/span&gt; sequences (found or created) are matched against negligibly tiny &lt;em&gt;fractions&lt;/em&gt; of said models.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Effectively, all any interested party needs to know is that the illusion of viruses as invisible enemies has become a tool for misguiding people. It&amp;#8217;s really other things that make people sick.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Resources&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://odysee.com/@spacebusters:c9/Final-The-End-of-Germ-Theory:8&quot;&gt;The End of Germ Theory&lt;/a&gt; is a broad primer for understanding the issue at hand.&lt;/li&gt;
	&lt;li&gt;You may look for people listed on &lt;a href=&quot;http://endofcovid.com&quot;&gt;The End of &lt;span class=&quot;caps&quot;&gt;COVID&lt;/span&gt;&lt;/a&gt; (not affiliated). Many of them provide deep insights on their respective web-presences that may help you to master the topic.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Original document&lt;/h2&gt;
&lt;p&gt;For reference, here are the original documents. The misleading information referencing the effectively &lt;em&gt;disproven concept of pathogenic &amp;#8220;viruses&amp;#8221;&lt;/em&gt; will be removed when time permits:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/assets/pdf/corona-report-0.10.0.en.pdf&quot;&gt;&lt;b&gt;Corona-Report [English]&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/assets/pdf/corona-report-0.10.0.de.pdf&quot;&gt;&lt;b&gt;Corona-Report [German / Deutsch]&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/assets/pdf/corona-report-0.10.0.es.pdf&quot;&gt;&lt;b&gt;Corona-Report [Spanish / Español]&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Click any link above to read or download the current report in your preferred language.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Revision-History:&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;0.10.0 &amp;#8211; Moved Streeck to chapter 2 and added new chapter 3&lt;/li&gt;
	&lt;li&gt;0.9.6 &amp;#8211; &lt;em&gt;[German]&lt;/em&gt; Spelling corrections, &lt;em&gt;[English &amp;amp; Spanish]&lt;/em&gt; First-time translation &amp;#8211; (archived: &lt;a href=&quot;/assets/pdf/corona-report-0.9.6.en.pdf&quot;&gt;en&lt;/a&gt;, &lt;a href=&quot;/assets/pdf/corona-report-0.9.6.de.pdf&quot;&gt;de&lt;/a&gt;, &lt;a href=&quot;/assets/pdf/corona-report-0.9.6.es.pdf&quot;&gt;es&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Further reading (this website):&lt;/em&gt;&lt;br /&gt;
&lt;a href=&quot;/&quot;&gt;&lt;em&gt;fullmetal.science&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Article-image courtesy of Lubomir Arsov, from his visionary journey through the fragmented unconscious of the West, &lt;a href=&quot;https://www.inshadow.net/&quot;&gt;In Shadow.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</content>

      
      
      
      
      

      <author>
          <name>fullmetalScience</name>
        
        
      </author>

      

      
        <category term="Articles" />
      

      
        <summary type="html">Corona-Report is an extract from insights gathered about the current global situation.</summary>
      

      
      
    </entry>
  
    <entry>
      <title type="html">Monero Multisig Run-Through: Zero-to-MMS in an instant</title>
      <link href="/monero-multisig-run-through-zero-to-mms-in-an-instant" rel="alternate" type="text/html" title="Monero Multisig Run-Through: Zero-to-MMS in an instant" />
      <published>2020-02-22T00:00:00+00:00</published>
      <updated>2020-02-22T00:00:00+00:00</updated>
      <id>/monero-multisig-run-through--zero-to-mms-in-an-instant</id>
      <content type="html" xml:base="/monero-multisig-run-through-zero-to-mms-in-an-instant">&lt;p&gt;Monero multi-signatures are daunting. To show how quickly one can actually get set, I extracted the gist from &lt;a href=&quot;https://web.getmonero.org/resources/user-guides/multisig-messaging-system.html&quot;&gt;the corresponding user-guide&lt;/a&gt; and crafted what is likely the most concise Monero multisig-guide:&lt;/p&gt;
&lt;h2&gt;Install and configure PyBitmessage&lt;/h2&gt;
&lt;p&gt;Imagine the &lt;i&gt;Bitmessage&lt;/i&gt; protocol as a common chat room where your Monero clients get together to communicate the required information for each step. We set it up as a daemon that &lt;code&gt;monero-wallet-cli&lt;/code&gt; can use.&lt;/p&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;c&quot;&gt;# Install required applications (example for Arch Linux)&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;pacman &lt;span class=&quot;nt&quot;&gt;-S&lt;/span&gt; python2 openssl git

&lt;span class=&quot;c&quot;&gt;# Download PyBitmessage&lt;/span&gt;
git clone https://github.com/Bitmessage/PyBitmessage.git
&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;PyBitmessage

&lt;span class=&quot;c&quot;&gt;# Check if core dependencies are met.&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# You may disregard any warnings about missing Qt.&lt;/span&gt;
python2 checkdeps.py

&lt;span class=&quot;c&quot;&gt;# Install PyBitmessage&lt;/span&gt;
python2 setup.py install &lt;span class=&quot;nt&quot;&gt;--user&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# Execute PyBitmessage once to generate config files&lt;/span&gt;
python2 ~/.local/bin/pybitmessage &lt;span class=&quot;nt&quot;&gt;-h&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# Enable daemon mode and disable Dandelion&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-z&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$XDG_CONFIG_HOME&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;XDG_CONFIG_HOME&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$HOME&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;/.config&quot;&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'daemon = true\n[network]\ndandelion = 0'&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;XDG_CONFIG_HOME&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt;/PyBitmessage/keys.dat

&lt;span class=&quot;c&quot;&gt;# Execute PyBitmessage&lt;/span&gt;
python2 ~/.local/bin/pybitmessage

&lt;span class=&quot;c&quot;&gt;# Generate your Bitmessage address&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;python_code&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;'import xmlrpclib, json, time ;
api = xmlrpclib.ServerProxy(&quot;http://username:password@localhost:8442/&quot;) ;
print api.createRandomAddress(&quot;&quot;)'&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;transport_address&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;python_code&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt; | python2&lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;transport_address&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;p&gt;Maintaining the aforementioned chat-room analogy your &lt;i&gt;transport address&lt;/i&gt; can be thought of your Bitmessage chat handle. In the next step we make the Monero client aware of this handle.&lt;/p&gt;
&lt;h2&gt;Set up a Multisig-Wallet (Alice&amp;#8217;s Monero client)&lt;/h2&gt;
&lt;p&gt;The following commands have to be run in &lt;code&gt;monero-wallet-cli&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;Tell monero-wallet-cli to be less interactive&lt;/h3&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;nb&quot;&gt;set &lt;/span&gt;ask-password 0
&lt;span class=&quot;nb&quot;&gt;set &lt;/span&gt;inactivity-lock-timeout 0&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;h3&gt;Initialize Multisig&lt;/h3&gt;
&lt;p&gt;Declare your desired type of multisig and name the additional signers.&lt;/p&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;mms init 2/2 alice PUT_ALICES_TRANSPORT_ADDRESS_HERE
mms &lt;span class=&quot;nb&quot;&gt;set &lt;/span&gt;auto-send 1
mms signer 2 bob
mms start_auto_config&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;p&gt;With the last command you&amp;#8217;ll be shown a token in the format &lt;code&gt;mmsXXXXXXXX&lt;/code&gt;. Hand this token to Bob. He will need it in the following step.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 style=&quot;vertical-align:middle;&quot;&gt;Set up a Multisig-Wallet (Bob&amp;#8217;s side)&lt;/h2&gt;
&lt;p&gt;Just like Alice, Bob needs to &lt;strong&gt;set up &lt;i&gt;PyBitmessage&lt;/i&gt; (see above)&lt;/strong&gt; and then generate his Bitmessage address like so:&lt;/p&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;nv&quot;&gt;python_code&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;'import xmlrpclib, json, time ;
api = xmlrpclib.ServerProxy(&quot;http://username:password@localhost:8442/&quot;) ;
print api.createRandomAddress(&quot;&quot;)'&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;python_code&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt; | python2&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;h3&gt;Tell Bob&amp;#8217;s Monero client to be less interactive&lt;/h3&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;nb&quot;&gt;set &lt;/span&gt;ask-password 0
&lt;span class=&quot;nb&quot;&gt;set &lt;/span&gt;inactivity-lock-timeout 0&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;h3&gt;Initialize Multisig for Bob&lt;/h3&gt;
&lt;p&gt;Command the following, inserting the correct Bitmessage address and replacing &lt;code&gt;mmsXXXXXXXX&lt;/code&gt; with the token received from Alice.&lt;/p&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;mms init 2/2 bob   PUT_BOBS_TRANSPORT_ADDRESS_HERE
mms &lt;span class=&quot;nb&quot;&gt;set &lt;/span&gt;auto-send 1
mms auto_config mmsXXXXXXXX&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;hr /&gt;
&lt;h2 style=&quot;vertical-align:middle;&quot;&gt;Alice: Send necessary signer data to signers via Bitmessage&lt;/h2&gt;
&lt;p&gt;As soon as you see &lt;strong&gt;&lt;span class=&quot;caps&quot;&gt;MMS&lt;/span&gt; received new message&lt;/strong&gt; on Alice&amp;#8217;s Monero client, command &lt;code&gt;mms next&lt;/code&gt; there, twice:&lt;/p&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;mms next
mms next&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;p&gt;Upon the first invocation the &lt;em&gt;signer config&lt;/em&gt; will be sent. The second invocation sends the &lt;em&gt;key set&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;Bob: Send necessary data via Bitmessage&lt;/h2&gt;
&lt;p&gt;As soon as you see &lt;strong&gt;&lt;span class=&quot;caps&quot;&gt;MMS&lt;/span&gt; received new message&lt;/strong&gt; on Bob&amp;#8217;s Monero client, command &lt;code&gt;mms next&lt;/code&gt; there, three times:&lt;/p&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;mms next
mms next
mms next&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;p&gt;The first invocation processes the &lt;em&gt;signer config&lt;/em&gt;, the second sends the &lt;em&gt;key set&lt;/em&gt; and the third completes the multisig address creation for Bob.&lt;/p&gt;
&lt;h2&gt;Alice: Send necessary signer data to signers via Bitmessage&lt;/h2&gt;
&lt;p&gt;Execute &lt;code&gt;mms next&lt;/code&gt; once again:&lt;/p&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;mms next&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;p&gt;This completes the multisig address creation for Alice.&lt;/p&gt;
&lt;h2&gt;Your first multisig transaction&lt;/h2&gt;
&lt;p&gt;By now the Monero address displayed should have changed to a new one that is the same on Bob&amp;#8217;s and Alice&amp;#8217;s client.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Once you fund that account by sending some &lt;span class=&quot;caps&quot;&gt;XMR&lt;/span&gt; to it you can send money to others.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Use &lt;code&gt;mms transfer RECIPIENT_ADDRESS AMOUNT&lt;/code&gt; to initiate the transfer. Then proceed by commanding &lt;code&gt;mms next&lt;/code&gt; on either side until the command says that there&amp;#8217;s nothing left to do.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note that Bitmessage message delivery is typically delayed several minutes. When stuck, use &lt;code&gt;mms list&lt;/code&gt; to see if a message for a step has yet to arrive.&lt;/em&gt;&lt;/p&gt;</content>

      
      
      
      
      

      <author>
          <name>fullmetalScience</name>
        
        
      </author>

      

      
        <category term="Articles" />
      

      
        <summary type="html">Monero multi-signatures are daunting. To show how quickly one can actually get set, I extracted the gist from the corresponding user-guide and crafted what is likely the most concise Monero multisig-guide:</summary>
      

      
      
    </entry>
  
    <entry>
      <title type="html">Sealtag Thor - 3D-printed break-to-access enclosure for Cryptotag</title>
      <link href="/sealtag-thor-3d-printed-break-to-access-enclosure-for-cryptotag" rel="alternate" type="text/html" title="Sealtag Thor - 3D-printed break-to-access enclosure for Cryptotag" />
      <published>2020-01-19T00:00:00+00:00</published>
      <updated>2020-01-19T00:00:00+00:00</updated>
      <id>/sealtag-thor-3d-printed-break-to-access-enclosure-for-cryptotag</id>
      <content type="html" xml:base="/sealtag-thor-3d-printed-break-to-access-enclosure-for-cryptotag">&lt;p&gt;Just like our &lt;a href=&quot;/sealfodl-3d-printed-break-to-access-enclosure-for-billfodl&quot;&gt;seal for the Billfodl&lt;/a&gt;, the &amp;#8220;Sealtag Thor&amp;#8221; is a tightly-fit enclosure for your metal seed backup.&lt;/p&gt;
&lt;p&gt;The seal allows you to tell if someone gained access to its content and potentially compromised your secrets (keys, mnemonic, ssss, &amp;#8230;).&lt;/p&gt;
&lt;p&gt;Find the &lt;strong&gt;free download&lt;/strong&gt; with detailed print instructions at the &lt;a href=&quot;https://www.thingiverse.com/thing:4114158&quot;&gt;Sealtag Thor page on Thingiverse&lt;/a&gt;.&lt;/p&gt;</content>

      
      
      
      
      

      <author>
          <name>fullmetalScience</name>
        
        
      </author>

      

      
        <category term="Articles" />
      

      
        <summary type="html">Just like our seal for the Billfodl, the &amp;#8220;Sealtag Thor&amp;#8221; is a tightly-fit enclosure for your metal seed backup.</summary>
      

      
      
    </entry>
  
    <entry>
      <title type="html">Sealfodl - 3D-printed break-to-access enclosure for Billfodl</title>
      <link href="/sealfodl-3d-printed-break-to-access-enclosure-for-billfodl" rel="alternate" type="text/html" title="Sealfodl - 3D-printed break-to-access enclosure for Billfodl" />
      <published>2019-06-17T00:00:00+00:00</published>
      <updated>2019-06-17T00:00:00+00:00</updated>
      <id>/sealfodl-3d-printed-break-to-access-enclosure-for-billfodl</id>
      <content type="html" xml:base="/sealfodl-3d-printed-break-to-access-enclosure-for-billfodl">&lt;p&gt;This is a step forward in the safety- &amp;amp; inheritance-concept I am currently developing for Monero.&lt;/p&gt;
&lt;p&gt;Admittedly, branding this with it&amp;#8217;s own name might be a bit presumptuous, but heck &amp;#8230; I enjoy presenting things in a pleasant manner.&lt;/p&gt;
&lt;p&gt;The &amp;#8220;Sealfodl&amp;#8221; is really just a tightly-fit enclosure that draws its value from the possibility of telling if someone has gained access to its content and thus potentially compromised your secrets (keys, mnemonic, ssss, &amp;#8230;).&lt;/p&gt;
&lt;p&gt;A major part was finding a good and safe way to pause the print job and continue it from where it left off, allowing to hermetically seal the Billfodl in the process.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href=&quot;https://www.thingiverse.com/thing:3688625&quot;&gt;Sealfodl on Thingiverse&lt;/a&gt;&lt;/p&gt;</content>

      
      
      
      
      

      <author>
          <name>fullmetalScience</name>
        
        
      </author>

      

      
        <category term="Articles" />
      

      
        <summary type="html">This is a step forward in the safety- &amp;amp; inheritance-concept I am currently developing for Monero.</summary>
      

      
      
    </entry>
  
</feed>
