<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.snowblossom.org/index.php?action=history&amp;feed=atom&amp;title=Future-Plans</id>
	<title>Future-Plans - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.snowblossom.org/index.php?action=history&amp;feed=atom&amp;title=Future-Plans"/>
	<link rel="alternate" type="text/html" href="https://wiki.snowblossom.org/index.php?title=Future-Plans&amp;action=history"/>
	<updated>2026-05-24T17:23:59Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://wiki.snowblossom.org/index.php?title=Future-Plans&amp;diff=186&amp;oldid=prev</id>
		<title>Fireduck at 19:30, 18 July 2019</title>
		<link rel="alternate" type="text/html" href="https://wiki.snowblossom.org/index.php?title=Future-Plans&amp;diff=186&amp;oldid=prev"/>
		<updated>2019-07-18T19:30:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 19:30, 18 July 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;These things aren't necessarily going to be included, they are just ideas.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;These things aren't necessarily going to be included, they are just ideas.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;See [[Road Map]] for more up to date.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Mining Next Generation - Jean-Luc ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Mining Next Generation - Jean-Luc ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l16&quot; &gt;Line 16:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 20:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A thread working on a layer reads the needed spot, advances the pow calculation and if more calculations are needed puts the work on the appropriate queue. If the queues have too many things, the worst items are pruned (last by priority order).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A thread working on a layer reads the needed spot, advances the pow calculation and if more calculations are needed puts the work on the appropriate queue. If the queues have too many things, the worst items are pruned (last by priority order).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This was implemented as [[Arktika]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Parameters ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Parameters ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki:diff::1.12:old-8:rev-186 --&gt;
&lt;/table&gt;</summary>
		<author><name>Fireduck</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.snowblossom.org/index.php?title=Future-Plans&amp;diff=8&amp;oldid=prev</id>
		<title>Fireduck: migration</title>
		<link rel="alternate" type="text/html" href="https://wiki.snowblossom.org/index.php?title=Future-Plans&amp;diff=8&amp;oldid=prev"/>
		<updated>2018-10-30T06:00:12Z</updated>

		<summary type="html">&lt;p&gt;migration&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;These things aren't necessarily going to be included, they are just ideas.&lt;br /&gt;
&lt;br /&gt;
== Mining Next Generation - Jean-Luc ==&lt;br /&gt;
&lt;br /&gt;
This mining plan involves an ordered list of locations/layers where snowfield data can be found. Snowfields will be split into 1gb chunks, named snowblossom.&amp;lt;field_no&amp;gt;.snow.&amp;lt;chunk_number&amp;gt;. In the ordered list of locations, the first location that has a given chunk will be used for that chunk. Decks will be used wherever they are founds, who cares. They are only needed to build proofs so doesn't matter much.&lt;br /&gt;
&lt;br /&gt;
One of the locations will be a special one that means in memory. The memory will be populated with chunks from the last location.&lt;br /&gt;
&lt;br /&gt;
Each location will have its own thread pool to process requests waiting on IO from that location.&lt;br /&gt;
&lt;br /&gt;
Each location will have a priority queue ordered by:&lt;br /&gt;
&lt;br /&gt;
block_number (highest block first), pow pass number (closest to end of pow wins)&lt;br /&gt;
&lt;br /&gt;
When the work unit monitor gets a work unit with a new block, it clears all the queues for all layers.&lt;br /&gt;
&lt;br /&gt;
A thread working on a layer reads the needed spot, advances the pow calculation and if more calculations are needed puts the work on the appropriate queue. If the queues have too many things, the worst items are pruned (last by priority order).&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
* threads Ordered list of threads to use on each layer &amp;lt;code&amp;gt;threads=256,32,32&amp;lt;/code&amp;gt;&lt;br /&gt;
* snow_path Ordered list of locations to use for each layer &amp;lt;code&amp;gt;snow_path=loc_a,loc_b,loc_c&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
==== Memory precache ====&lt;br /&gt;
&lt;br /&gt;
Imagine a 64gb machine with an ssd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;snow_path=mem_50gb,/var/ssd&lt;br /&gt;
threads=256,32&lt;br /&gt;
&lt;br /&gt;
or on linux, using /dev/shm rather than java memory:&lt;br /&gt;
snow_path=/dev/shm/snow,/var/ssd&lt;br /&gt;
threads=256,32&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Two equal SSDs ====&lt;br /&gt;
&lt;br /&gt;
Put half of the chunks on ssd_a, other half on ssd_b.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;snow_path=/var/ssd_a,/var/ssd_b&lt;br /&gt;
threads=64,64&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Small SSD, then HDD ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;snow_path=/dev/shm/snow,/var/ssd,/var/hdd&lt;br /&gt;
threads=256,64,64&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Time shifted multisig ==&lt;br /&gt;
&lt;br /&gt;
Although Snowblossom already implements [https://www.yours.org/content/bitcoin-cash--bch--is-effectively-quantum-computing-attack-resistant-adbcd22b87b9 FSFA] it would be nice to have a further protection. In an environment where private keys can be derived from any visible public keys, a user would be counting on their transaction being adopted into the mempool and nodes rejecting any double spends.&lt;br /&gt;
&lt;br /&gt;
The idea here is to in some way announce a transaction without revealing the public keys and signatures yet. That would be easy, a transaction would be broadcast without public keys or signatures but then the network wouldn't be able to tell if it was a legit transaction likely to be signed and confirmed or spam.&lt;br /&gt;
&lt;br /&gt;
So the idea is to have a multisig address and initially sign it with just a subset of the needed signatures. Then after that transaction is provisionally accepted (utxos marked as used, transaction goes into a block as an incomplete transaction). Then some time later, the sender can sign the transaction the rest of the way and the transaction gets included all the way.&lt;br /&gt;
&lt;br /&gt;
This way, we eliminate the race of depending on FSFA in a quantum broken world. There are some problems, for example with Snowblossom's current address spec structure we can't claim an address without revealing all the public keys. This is easily solvable by changing the hashing format of the spec structure. This would also complicate a bunch of UTXO code, but that isn't too terrible. We would also need a threshold to expire an incomplete transaction and open the UTXOs up for use again if it is isn't fully signed in some defined number of blocks.&lt;/div&gt;</summary>
		<author><name>Fireduck</name></author>
		
	</entry>
</feed>