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