Artifact Content
Not logged in

Artifact a73e2b391a8cedb19086b65d53a894f0a87ade51:

Wiki page [Application Example: Silktorrent Package Manager] by martin_vahi on 2016-10-09 19:33:53.
D 2016-10-09T19:33:53.072
L Application\sExample:\sSilktorrent\sPackage\sManager
P 063f5ae4db4f8eee1e4dc3a762de2ff8b734fe52
U martin_vahi
W 3828
<h1 style="text-align: left;">The Core Idea</h1>

<p>The silktorrent packet is a tar-file that contains folders&nbsp;</p>

<p><b>payload</b></p>

<p><b>header</b></p>

<p>In software projects and HTML pages &nbsp;the content of the folders <b>payload</b>
and <b>header</b> can be referenced by using the
<a href="http://bitrary.softf1.com/index.php?title=Art_:_Source_Code#Tree_Encoding">tree
encoding</a>:</p>

<p><b>&lt;tar-file name&gt;/payload/&lt;the file or folder relative to the
folder payload&gt;</b></p>

<p><b>&lt;tar-file name&gt;/header/&lt;the file or folder relative to the
folder header&gt;</b><br>
</p>

<p>The&nbsp;&lt;tar-file name&gt; can be the name of a local folder or some
folder at some publicly hosted web page. The include/require/src/uses
statements of various programming languages and configurations files, including
HTML, can be modified by changing the prefix of the &lt;tar-file name&gt;. That
allows an HTML-page to be switched from using JavaScript libraries from one
site to using the very same JavaScript libraries from another site.</p>

<p><b>http://www.first_site.com/</b>&lt;tar-file name&gt;/payload/the_JavaScript_library.js<br>
</p>

<p><b>http://www.second_site.com/</b>&lt;tar-file name&gt;/payload/the_JavaScript_library.js<br>
</p>

<p>Due to the possibility to use regular expressions, the proposed solution
does not require code generation. It might be usable with many existing IDE-s
without requiring any additional tools or plugins. The solution is also
programming language agnostic.</p>

<p><br>
</p>

<h1>Theory</h1>

<div>The Core Idea has an assumption that <b>backwards compatibility of
libraries does not exist, even if advertised</b>. Whenever a software component
dependency is declared by stating that the version of the dependency is
"newest" or "greater than X", a flaw is introduced. That is the reason, why
Linux/BSD/etc. package collections are "unstable" and NEVER WILL BE "stable".
For built/compiled software components <b>each combination of build parameters,
compiler, environment set-up is actually a separate version of the software
component</b>.&nbsp;</div>

<div><br>
</div>

<div><br>
</div>

<div><br>
</div>

<h1>Storage Allocation Policy</h1>

<div>To make the Silktorrent network of package/packet hosting servers &nbsp;more
reliable, the package/packet hosting servers should use <b>multiple storage
allocation policies simultaneously.</b> There is one allocation agent per
policy. Each allocation agent has its own, fixed, size of storage space, disk
space, which will be allocated to Silktorrent packets according to the policy
that the agent implements. Some agent, bot, may sell paid subscriptions like
the Dropbox and alike use. Some agent might run a mirroring service in favor of
some public library or operating system packages repository. Some agent might
store Silktorrent packets according to popularity. Some agent may offer
personal storage service to the owner of the server. Some agent may service
some Silktorrent based messaging service. Some agent might service Silktorrent
based "web" (PDF-files, LibreOffice files, all-in-one-HTML-documents, etc.)</div>

<div><br>
</div>

<div>To avoid duplicate copies of the same Silktorrent packet at the same
storage server, the agents of a single storage server may use a single "storage
engine" that keeps track of the storage space quotas of the agents and
physically deletes the Silktorrent packet only, if no agent on this sotorage
server wants to store that Silktorrent packet.</div>

<div><br>
</div>

<div><br>
</div>

<h1>Partial list of Similar Software</h1>

<div>
<ul>
<li><a href="http://www.toastball.net/toast/">toast</a> <i>(<a href="https://archive.is/uIRaz">archival
copy</a>, <a href="./ainfo/a99d7f95d0d8255e">source code</a>)</i></li>
</ul></div>

<div><br>
</div>

Z 7feab25c67786de6bd36883eb551db61