From d62a3289e717bd97f9aed8c860371f77e52fa677 Mon Sep 17 00:00:00 2001 From: Vanhala Antti Date: Tue, 13 May 2014 17:03:14 +0300 Subject: [PATCH] Connect all mappers to each other. --- mapper/start-mappers.sh | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/mapper/start-mappers.sh b/mapper/start-mappers.sh index ce422f2..cb0f12c 100755 --- a/mapper/start-mappers.sh +++ b/mapper/start-mappers.sh @@ -3,6 +3,20 @@ source conf_sh.py mkdir -p mapper-confs +# Generate configurations and collect their publick keys and ports +for i in $(seq 1 $num_of_nodes) +do + file=mapper-confs/node$i.conf + + $cjdns_path/cjdroute --genconf > $file + + # Get connecting info + publicKey=$(grep -oP -m1 '(?<="publicKey": ").*(?=",)' $file) + connectPort=$(grep -oP -m1 '(?<="0.0.0.0:).*(?=",)' $file) + connectToInfo[i]='"127.0.0.1:'"$connectPort"'":{"password":"'"$rpc_pw"'","publicKey":"'"$publicKey"'"},' +done + +# Modify configurations for i in $(seq 1 $num_of_nodes) do echo "Starting mapper node $i/$num_of_nodes" @@ -10,10 +24,18 @@ do file=mapper-confs/node$i.conf rpcport=$(($rpc_firstport + $i - 1)) - $cjdns_path/cjdroute --genconf > $file + # Connect to all mapper nodes except itself + connectInfo="" + for j in $(seq 1 $num_of_nodes) + do + if [[ $i != $j ]]; then + connectInfo+="${connectToInfo[j]}" + fi + done # Set peer credentials - sed -i 's/\/\/ Add connection credentials here to join the network/"'"${peer_ip}"':'"${peer_port}"'":{"password":"'"${peer_pw}"'","publicKey":"'"${peer_pk}"'"}/g' $file + sed -i 's/\/\/ Add connection credentials here to join the network/'"$connectInfo"'/g' $file + sed -i 's/\/\/ Ask somebody who is already connected./"'"${peer_ip}"':'"${peer_port}"'":{"password":"'"${peer_pw}"'","publicKey":"'"${peer_pk}"'"}/g' $file # Set admin rpc credentials sed -i 's/127.0.0.1:11234/'"${rpc_bind}"':'"${rpcport}"'/g' $file @@ -22,6 +44,7 @@ do # Disable tun interface sed -i 's/"type": "TUNInterface"/\/\/"type": "TUNInterface"/g' $file + # Start mappers if [[ $* == *-d* ]]; then # Log to stdout sed -i 's/\/\/ "logTo":"stdout"/"logTo":"stdout"/g' $file