From 5d4c02c22b6906d5cb6df7b58cf15e9e1c01aee1 Mon Sep 17 00:00:00 2001 From: Jeff Becker Date: Thu, 7 Feb 2019 08:20:03 -0500 Subject: [PATCH] update testnet docs and add more tuneable paramters --- Makefile | 6 +++++- contrib/testnet/genconf.py | 12 ++++++++++-- testnet_readme.md | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 testnet_readme.md diff --git a/Makefile b/Makefile index 806eeaf43..a307ec3b0 100644 --- a/Makefile +++ b/Makefile @@ -31,6 +31,10 @@ TESTNET_EXE=$(REPO)/lokinet-testnet TESTNET_CLIENTS ?= 50 TESTNET_SERVERS ?= 50 TESTNET_DEBUG ?= 0 +TESTNET_IFNAME ?= lo +TESTNET_BASEPORT ?= 1900 +TESTNET_IP ?= 127.0.0.1 +TESTNET_NETID ?= loopback ANDROID_NDK ?= $(HOME)/Android/Ndk ANDROID_SDK ?= $(HOME)/Android/Sdk @@ -152,7 +156,7 @@ testnet-build: testnet-configure testnet: cp $(EXE) $(TESTNET_EXE) mkdir -p $(TESTNET_ROOT) - $(PYTHON) contrib/testnet/genconf.py --bin=$(TESTNET_EXE) --svc=$(TESTNET_SERVERS) --clients=$(TESTNET_CLIENTS) --dir=$(TESTNET_ROOT) --out $(TESTNET_CONF) --connect=4 + $(PYTHON) $(REPO)/contrib/testnet/genconf.py --bin=$(TESTNET_EXE) --svc=$(TESTNET_SERVERS) --clients=$(TESTNET_CLIENTS) --dir=$(TESTNET_ROOT) --out $(TESTNET_CONF) --connect=4 --ifname=$(TESTNET_IFNAME) --baseport=$(TESTNET_BASEPORT) --ip=$(TESTNET_IP) --netid=$(TESTNET_NETID) LLARP_DEBUG=$(TESTNET_DEBUG) supervisord -n -d $(TESTNET_ROOT) -l $(TESTNET_LOG) -c $(TESTNET_CONF) $(TEST_EXE): debug diff --git a/contrib/testnet/genconf.py b/contrib/testnet/genconf.py index 4c4de2fca..8afcb2eb2 100644 --- a/contrib/testnet/genconf.py +++ b/contrib/testnet/genconf.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python # # this script generate supervisord configs for running a test network on loopback # @@ -28,8 +28,9 @@ def main(): ap.add_argument('--bin', type=str, required=True) ap.add_argument('--out', type=str, required=True) ap.add_argument('--connect', type=int, default=10) + ap.add_argument('--ip', type=str, default=None) ap.add_argument('--ifname', type=str, default='lo') - + ap.add_argument('--netid', type=str, default=None) args = ap.parse_args() if args.valgrind: @@ -46,6 +47,13 @@ def main(): 'worker-threads': '4', 'nickname': svcNodeName(nodeid) } + if args.netid: + config['router']['netid'] = args.netid + + if args.ip: + config['router']['public-ip'] = args.ip + config['router']['public-port'] = str(args.baseport + nodeid) + config['bind'] = { args.ifname: str(args.baseport + nodeid) } diff --git a/testnet_readme.md b/testnet_readme.md new file mode 100644 index 000000000..4f5dcd7c4 --- /dev/null +++ b/testnet_readme.md @@ -0,0 +1,37 @@ + +# loopback testnet + + +requirements: + + * python 2.7 + * supervisord + +Build the testnet binary in testnet mode `(required only if running on loopback network)` + + $ make testnet-build + +generate configs and run the testnet with default parameters: + + $ make testnet + +generate configs with different parameters and run testnet: + + $ make testnet TESTNET_BASEPORT=1900 TESTNET_SERVERS=100 TESTNET_CLIENTS=200 TESNET_IFNAME=eth0 + + +environmental variables: + +* `TESTNET_SERVERS` number of service nodes to spin up `(default 20)` + +* `TESTNET_CLIENTS` number of clients to spin up `(default 200)` + +* `TESTNET_IFNAME` interface to bind all nodes to `(default lo)` + +* `TESTNET_BASEPORT` starting udp port number to start at for servers `(default 1900)` + +* `TESTNET_DEBUG` set to 1 to enable debug logging `(default 0)` + +* `TESTNET_IP` explicit ip to use `(default 127.0.0.1)` + +* `TESTNET_NETID` explicit netid to use `(default 'loopback')`