On Friday 01 August 2008 21:45, nextgens at freenetproject.org wrote:
> Author: nextgens
> Date: 2008-08-01 20:45:14 +0000 (Fri, 01 Aug 2008)
> New Revision: 21569
> 
> Modified:
>    trunk/freenet/src/freenet/node/Node.java
>    trunk/freenet/src/freenet/node/NodeStarter.java
> Log:
> Pass the weakRandom in the Node's constructor so that both PRNGs can be set 
to the same source for simulation purposes

Are you planning to create a separate MT for each node externally for 
simulations (for locking reasons)? Should we?
> 
> Modified: trunk/freenet/src/freenet/node/Node.java
> ===================================================================
> --- trunk/freenet/src/freenet/node/Node.java  2008-08-01 20:37:10 UTC (rev 
21568)
> +++ trunk/freenet/src/freenet/node/Node.java  2008-08-01 20:45:14 UTC (rev 
21569)
> @@ -611,10 +611,12 @@
>        * @param random The random number generator for this node. Passed in 
because we may want
>        * to use a non-secure RNG for e.g. one-JVM live-code simulations. 
> Should 
be a Yarrow in
>        * a production node. Yarrow will be used if that parameter is null
> +      * @param weakRandom The fast random number generator the node will 
> use. 
If null a MT
> +      * instance will be used, seeded from the secure PRNG.
>        * @param the loggingHandler
>        * @throws NodeInitException If the node initialization fails.
>        */
> -      Node(PersistentConfig config, RandomSource r, LoggingConfigHandler lc, 
NodeStarter ns, Executor executor) throws NodeInitException {
> +      Node(PersistentConfig config, RandomSource r, RandomSource weakRandom, 
LoggingConfigHandler lc, NodeStarter ns, Executor executor) throws 
NodeInitException {
>               // Easy stuff
>               logMINOR = Logger.shouldLog(Logger.MINOR, this);
>               String tmp = "Initializing Node using Freenet Build 
#"+Version.buildNumber()+" r"+Version.cvsRevision+" and freenet-ext Build 
#"+NodeStarter.extBuildNumber+" r"+NodeStarter.extRevisionNumber+" 
with "+System.getProperty("java.vendor")+" JVM 
version "+System.getProperty("java.version")+" running 
on "+System.getProperty("os.arch")+' '+System.getProperty("os.name")+' 
'+System.getProperty("os.version");
> @@ -698,13 +700,17 @@
>                       entropyGatheringThread.start();
>                       this.random = new Yarrow();
>                       DiffieHellman.init(random);
> +                     
>               } else // if it's not null it's because we are running in the 
> simulator
>                       this.random = r;
>               isPRNGReady = true;
>               toadlets.getStartupToadlet().setIsPRNGReady();
> -             byte buffer[] = new byte[16];
> -             random.nextBytes(buffer);
> -             this.fastWeakRandom = new MersenneTwister(buffer);
> +             if(weakRandom == null) {
> +                     byte buffer[] = new byte[16];
> +                     random.nextBytes(buffer);
> +                     this.fastWeakRandom = new MersenneTwister(buffer);
> +             }else
> +                     this.fastWeakRandom = weakRandom;
>  
>               nodeNameUserAlert = new MeaningfulNodeNameUserAlert(this);
>               recentlyCompletedIDs = new LRUQueue();
> 
> Modified: trunk/freenet/src/freenet/node/NodeStarter.java
> ===================================================================
> --- trunk/freenet/src/freenet/node/NodeStarter.java   2008-08-01 20:37:10 UTC 
(rev 21568)
> +++ trunk/freenet/src/freenet/node/NodeStarter.java   2008-08-01 20:45:14 UTC 
(rev 21569)
> @@ -149,7 +149,7 @@
>               SSL.init(sslConfig);
>  
>               try {
> -                     node = new Node(cfg, null, logConfigHandler, this, 
> executor);
> +                     node = new Node(cfg, null, null, logConfigHandler, 
> this, executor);
>                       node.start(false);
>                       System.out.println("Node initialization completed.");
>               } catch(NodeInitException e) {
> @@ -396,7 +396,7 @@
>               
>               PersistentConfig config = new PersistentConfig(configFS);
>  
> -             Node node = new Node(config, random, null, null, executor);
> +             Node node = new Node(config, random, random, null, null, 
> executor);
>  
>               //All testing environments connect the nodes as they want, even 
> if the 
old setup is restored, it is not desired.
>               node.peers.removeAllPeers();
> 
> _______________________________________________
> cvs mailing list
> cvs at freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
> 
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20080802/fb62558c/attachment.pgp>

Reply via email to