-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

> In the original Freenet simulation each node was treated as a class
> which had a receive() method (which took a message as a parameter), and
> could call a send() method in a Network object which again, took a
> parameter.
> 
> The network object maintained a stack of messages, when a message was
> sent it would be added to the top of this stack.  The network object
> would simply keep taking messages off the bottom of the stack and call
> the receive() method of the destination node with the message.  When the
> stack was empty, the simulation could be considered complete.
This was the idea I had in mind when I started the simulator too, but this
gets us a workable system now.  Oskar, I'd like to start work on a
timestep sim with you in a week or two (after I get the crypto done).  I
expect it'll be about a two week job.

> This could then be extended to simulate different sending times between
> nodes by associating each message with a received time (calculated by
> the network object when the message is sent) and they are then placed in
> the stack of messages just behind whatever message has a received time
> before it.  This treats each message as being discrete and
> instantaenous, however messages could also be split into two events
> which are placed in this queue, message start and message complete.

In my proposal, the entire network is a finite state machine, stepped as a
whole.  The network is simulated with these steps, one can hold back
packets to simulate latency, deliver chunks per step to simulate
bandwidth.  I'm building it on top of another project of my design, Gamora
(http://gamora.org).  Its essentially a self-organizing event routing
framework that pretty much makes this an academic excercise.  I just need
help to mimic the node behavior (as far as what it does when it receives
messages, and the like).

The nice thing about the system is you can transparently insert components
without affecting the rest of the system or doing any extraneous
coding.  You can insert a monitor along a link to intercept messages or
dynamically affect network conditions.  Or you can insert an
"attacker" into the system at any point, at run time.

I envision the frontend looking like the GUI currently checked into
Freenet.sim now, plus windows where one can "be a client" to insert a new
message, and then follow that UniqueID through the system, watching each
node light up when it receives it, as well as get timing
statistics.  Because its a timestep simulator, one can pause, fast
forward, play in real time, perhaps even rewind the simulator. 

        scott


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE5DhohpXyM95IyRhURAprzAKCn8u1NBW81/0BqCDP+04UtC5pFGwCdFhCs
ZNOiZxytVWnEXtE8LyeSz44=
=M2EA
-----END PGP SIGNATURE-----


_______________________________________________
Freenet-dev mailing list
Freenet-dev at lists.sourceforge.net
http://lists.sourceforge.net/mailman/listinfo/freenet-dev

Reply via email to