Class MultiRouter


  • public class MultiRouter
    extends Object
    Fire up multiple routers in the same VM, all with their own RouterContext (and all that entails). In addition, this creates a root I2PAppContext for any objects not booted through one of the RouterContexts. Each of these contexts are configured through a simple properties file (where the name=value contained in them are used for the context's getProperty(name)).

    Usage:

      MultiRouter numberRouters
     
    Each routerContext specified is used to boot up a single router. It is HIGHLY recommended that those context files contain a few base env properties:
    • loggerFilenameOverride=rN/logs/log-router-#.txt
    • router.configLocation=rN/router.config
    (where "rN" is an instance number, such as r0 or r9). Additionally, two other properties might be useful:
    • i2p.vmCommSystem=true
    • i2p.encryption=off
    The first line tells the router to use an in-VM comm system for sending messages back and forth between routers (see net.i2p.transport.VMCommSystem), and the second tells the router to stub out ElGamal, AES, and DSA code, reducing the CPU load (but obviously making the router incapable of talking to things that need the encryption enabled). To run a client app through a router that has i2p.encryption=off, you should also add that line to the client's JVM (for example, java -Di2p.encryption=off -jar lib/i2ptunnel.jar).

    To make the router console work, either run from a directory containing lib/, webapps/, docs/, etc., or point i2p.dir.base to a directory containing the above. The multirouter waits until all of the routers are shut down (which none will do on their own, so as before, you'll want to kill the proc or ^C it).

    • Constructor Detail

      • MultiRouter

        public MultiRouter()
    • Method Detail

      • main

        public static void main​(String[] args)