diff --git a/router/java/src/net/i2p/router/MultiRouter.java b/router/java/src/net/i2p/router/MultiRouter.java index 0dc19fa5d80be1343a36731669d6785946f217d8..18a802dc69cbd10c4f8880e68e4628270aff6bde 100644 --- a/router/java/src/net/i2p/router/MultiRouter.java +++ b/router/java/src/net/i2p/router/MultiRouter.java @@ -30,12 +30,16 @@ import net.i2p.router.Router; * <li>router.configLocation=rN/router.config</li> * </ul> * (where "rN" is an instance number, such as r0 or r9). - * Additionally, two other properties might be useful:<ul> - * <li>i2p.vmCommSystem=true</li> - * </ul> - * 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). + * + * Optionally, i2p.vmCommSystem=true can be enabled. * + * i2p.vmCommSystem=true tells the router to use an in-VM comm system for sending + * messages back and forth between routers (see net.i2p.transport.VMCommSystem). + * + * However, the default comm system implementation is usually preferred since + * enabling the VMCommSystem will bypass UDP and TCP, and therefore will not + * provide a test bed for many important I2P systems. + * * 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. diff --git a/router/java/src/net/i2p/router/dummy/VMCommSystem.java b/router/java/src/net/i2p/router/dummy/VMCommSystem.java index 1eb5078dd2acbf318ea3aca8b473362dffc49d58..0436730971eddc172f35083a3c18ea8698238726 100644 --- a/router/java/src/net/i2p/router/dummy/VMCommSystem.java +++ b/router/java/src/net/i2p/router/dummy/VMCommSystem.java @@ -20,10 +20,23 @@ import net.i2p.router.transport.crypto.X25519KeyFactory; import net.i2p.util.Log; /** - * Hacked up in-VM comm system for talking between contexts. It doesn't even - * generate any routerAddresses, but instead tracks the peers through a singleton. + * Hacked up in-VM comm system for talking between contexts within the same Java + * virtual machine. It doesn't generate any routerAddresses, but instead tracks + * the peers through a singleton. It cannot connect to anything outside of its + * own Java VM. It does not implement TCP, UDP, and therefore no NTCP or SSU. * Currently, the comm system doesn't even inject any lag, though it could (later). - * It does honor the standard transport stats though, but not the TCP specific ones. + * It does honor the standard transport stats though, but no TCP or UDP specific + * ones (since UDP and TCP are not implemented). + * + * Typically, VMCommSystem is enabled by developers when it is desirable to + * test the router without enabling a real comm system. For a variety of + * testing purposes, it can be advantageous to start the router in a mode + * where contact with the actual network is disabled. + * + * VMCommSystem can be enabled with the following setting in the + * router.config file: + * + * i2p.vmCommSystem=true * * FOR DEBUGGING AND LOCAL TESTING ONLY. */