|Page Name:||Experiment: Routing Protocol Implementation v01|
This experiment is an attempt to implement the routing part of the
Silktorrent Specification Version 1.0 and its sub-specification, the
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 (the Marshal module). Persistence (database, file storage, etc.) is handled by a custom-built special agent that gives randomly generated access passwords (cleartext) 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.
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.