github.com/halybang/go-ethereum@v1.0.5-0.20180325041310-3b262bc1367c/networkScript/nodesSetup.sh (about) 1 #!/bin/sh 2 3 4 # __ ___ _ _ ____ _ _ ____ 5 # \ \ / / \ | \ | |/ ___| |__ __ _(_)_ __ | _ \ _____ __ 6 # \ \ /\ / / _ \ | \| | | | '_ \ / _` | | '_ \| | | |/ _ \ \ / / 7 # \ V V / ___ \| |\ | |___| | | | (_| | | | | | |_| | __/\ V / 8 # \_/\_/_/ \_\_| \_|\____|_| |_|\__,_|_|_| |_|____/ \___| \_/ 9 # 10 11 nodesNum=$1 12 13 if [ $nodesNum -lt 0 ]; then 14 return 15 fi 16 17 cd .. 18 19 SRCDIR="$(pwd)" 20 21 gethFile="$SRCDIR/build/bin/geth" 22 if [ ! -x $gethFile ]; then 23 make all 24 fi 25 26 containerPrefix="wanchainContainer" 27 nodeDirPrefix="$SRCDIR/networkScript/node" 28 ethbase="0x8b179c2b542f47bb2fb2dc40a3cf648aaae1df16" 29 30 allEndNodes="" 31 port1=8746 32 port2=3803 33 34 for ((i=0;i<$nodesNum;i++)); 35 do 36 containerName=$containerPrefix$i 37 nodeName="node$i" 38 39 let port1++ 40 let port2++ 41 42 echo $port1 $port2 43 44 cd $SRCDIR/build/bin/ 45 46 mkdir $SRCDIR/networkScript/$nodeName/ 47 48 bootnode -genkey $SRCDIR/networkScript/$nodeName/nodekey 49 pubHash=`bootnode -nodekey $SRCDIR/networkScript/$nodeName/nodekey -writeaddress` 50 51 if [ ! -x $nodeDirPrefix$i ]; then 52 mkdir $nodeDirPrefix$i 53 fi 54 55 echo "wl" | sudo -S rm $nodeDirPrefix$i/data-loadScript/geth 56 echo "wl" | sudo -S chmod 777 $nodeDirPrefix$i -R 57 58 docker stop $containerName 59 docker rm $containerName 60 docker inspect $containerName > /dev/null 2>&1 61 if [ $? -eq 1 ]; then 62 docker run --restart always --name $containerName -itd -v $SRCDIR:/wanchain/src -p $port1:8545 -p $port2:17717 -p $port2:17717/udp registry.cn-hangzhou.aliyuncs.com/wanglutech/wanchaindev /bin/sh 63 fi 64 65 ip=$(docker exec $containerName ifconfig | grep "inet addr" | grep -v 127.0.0.1 | awk '{print $2}' | awk -F ':' '{print $2}') 66 endnodeurl="enode://$pubHash@$ip:17717" 67 68 if [ $i -eq 0 ]; then 69 allEndNodes="$endnodeurl" 70 else 71 allEndNodes="$allEndNodes,$endnodeurl" 72 fi 73 74 echo $allEndNodes 75 76 cd $SRCDIR 77 78 docker exec -it $containerName /wanchain/src/build/bin/geth --datadir "/wanchain/src/networkScript/$nodeName/data-loadScript" init /wanchain/src/genesis_example/genesis.json 79 80 if [ $i -eq 0 ]; then 81 echo " start $i" 82 docker exec -d $containerName /wanchain/src/build/bin/geth --datadir "/wanchain/src/networkScript/$nodeName/data-loadScript" --networkid 314590 --ipcdisable --gasprice 20000 --mine --minerthreads 1 --rpc --rpcaddr 0.0.0.0 --rpcapi "eth,personal,net,admin,wan" --etherbase $ethbase --nodekey "/wanchain/src/networkScript/$nodeName/nodekey" 83 else 84 echo " start $i" 85 86 docker exec -d $containerName /wanchain/src/build/bin/geth --datadir "/wanchain/src/networkScript/$nodeName/data-loadScript" --networkid 314590 --ipcdisable --gasprice 20000 --mine --minerthreads 1 --rpc --rpcaddr 0.0.0.0 --rpcapi "eth,personal,net,admin,wan" --etherbase $ethbase --nodekey "/wanchain/src/networkScript/$nodeName/nodekey" --bootnodes $allEndNodes 87 88 fi 89 90 done 91