Artifact Content
Not logged in

Artifact 13cc3c51b03ff881f74a1998d8c55625c7b1e54c:

Wiki page [Experiment: Routing Protocol Implementation v01] by martin_vahi on 2016-12-10 03:37:31.
D 2016-12-10T03:37:31.637
L Experiment:\sRouting\sProtocol\sImplementation\sv01
P 25e5aca7b8ac1d87224ccf8d03855f6836975346
U martin_vahi
W 2308
<p>This experiment is an attempt to implement the routing part of the&nbsp;</p>

<p><a href="http://longterm.softf1.com/specifications/experimental/silktorrent_v_1_0/">Silktorrent
Specification Version 1.0</a> and its sub-specification, the&nbsp;</p>

<p><a href="http://longterm.softf1.com/specifications/lightmsgp/v2/">LightMSGP_v2</a>.</p>

<p><br>
</p>

<h1>Overview</h1>

<p>Agents are operating system users that have their $HOME mounted to RAM file
system. The $HOME of an agent is cleared at the end of every session by a
special cleaner agent. At startup an agent might not be initialized from
scratch, but it might be loaded from RAM-disk by reading in Ruby VM dump <i>(the
<a href="https://ruby-doc.org/core-2.3.0/Marshal.html">Marshal module</a>)</i>.
Persistence (database, file storage, etc.) is handled by a custom-built special
agent that gives randomly generated access passwords <i>(cleartext)</i> only to
agent-god. Agent-god is an agent that kills and creates agents. Agent-god gets
the persistence agent access key, creates a new code-running agent, gives the
gives the persistence agent access key to the code-running agent only once and
if the code-running agent asks the key twice, the agent-god kills the
code-running agent, cleans its home folder, logs the incident. The idea is that
if the code-running agent is allowed to ask the persistence key only once, then
either only the trusted part of the code-running agent code gets it or the
agent gets killed. If the untrusted code region of the code-running agent asks
the key first, then it gets it and has access to the data that it should not
have. An idea is to start the agent by giving the access key as a console
parameter and have the trusted part of the code-running agent negotiate a new
access key with the persistence agent before the untrusted code is dynamically
loaded.&nbsp;</p>

<p><br>
</p>

<p>The trusted part of the code-running agents, their boot-up, and the
Agent-god and the persistence agent communication module should be written in
ParaSail. A gateways to the internet, hardware, essentially singletons, have
the same front-end as the persistence agents have. The routing calculation
ParaSail code is a separate module, which might be linked with the persistence
agent's agent interface.</p>

<p><br>
</p>

Z 3b4fefe170eb9c999f1ce03b3a187c06