Advertisement
Guest User

Untitled

a guest
Jul 12th, 2018
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var http = require("http");
  2. var rpcuser= "user";
  3. var rpcpass = "user";
  4. var options = {
  5.   "method": "POST",
  6.   "hostname":
  7.     "localhost"
  8.   ,
  9.   "port": "5555",
  10.   "headers": {
  11.     "Authorization": "Basic dXNlcjp1c2Vy",
  12.     "Cache-Control": "no-cache",
  13.     "Postman-Token": "778adbde-d07b-446a-98fe-d80caa1a1a50"
  14.   }
  15. };
  16.  
  17. var req = http.request(options, function (res) {
  18.   var chunks = [];
  19.  
  20.   res.on("data", function (chunk) {
  21.     chunks.push(chunk);
  22.   });
  23.  
  24.   res.on("end", function () {
  25.     var body = Buffer.concat(chunks);
  26.     var output = body.toString();
  27.     var jsondata = JSON.parse(output);
  28.    
  29.     var output = Object.keys(jsondata.result)[0];
  30.     var index = jsondata.result[Object.keys(jsondata.result)[0]];
  31.     console.log(output);
  32.     console.log(index);
  33.   });
  34. });
  35.  
  36. req.write("{\"jsonrpc\":\"2.0\",\"method\":\"masternode\",\"params\":[\"outputs\"],\"id\":25}");
  37. req.end();
  38.  
  39. //ssh begin
  40. var initvars= "CONFIG_FILE='akula.conf'\r\nCONFIGFOLDER='\/root\/.akula'\r\nCOIN_DAEMON='akulad'\r\nCOIN_CLI='akula-cli'\r\nCOIN_PATH='\/usr\/local\/bin\/'\r\nCOIN_TGZ='https:\/\/github.com\/zoldur\/Akula\/releases\/download\/v2.0.0.3\/akula.tar.gz'\r\nCOIN_ZIP=$(echo $COIN_TGZ | awk -F'\/' '{print $NF}')\r\nCOIN_NAME='Akula'\r\nCOIN_PORT=46782\r\nRPC_PORT=33000\r\n" + " NODEIP=$(curl -s4 api.ipify.org)\r\n\r\n\r\nRED='\\033[0;31m'\r\nGREEN='\\033[0;32m'\r\nNC='\\033[0m'";
  41. var preparesystem = "function prepare_system() {\r\necho -e \"Prepare the system to install ${GREEN}$COIN_NAME${NC} master node.\"\r\napt-get update >\/dev\/null 2>&1\r\nDEBIAN_FRONTEND=noninteractive apt-get update > \/dev\/null 2>&1\r\nDEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::=\"--force-confdef\" -o Dpkg::Options::=\"--force-confold\" -y -qq upgrade >\/dev\/null 2>&1\r\napt install -y software-properties-common >\/dev\/null 2>&1\r\necho -e \"${GREEN}Adding bitcoin PPA repository\"\r\napt-add-repository -y ppa:bitcoin\/bitcoin >\/dev\/null 2>&1\r\necho -e \"Installing required packages, it may take some time to finish.${NC}\"\r\napt-get update >\/dev\/null 2>&1\r\napt-get install -y -o Dpkg::Options::=\"--force-confdef\" -o Dpkg::Options::=\"--force-confold\" make software-properties-common \\\r\nbuild-essential libtool autoconf libssl-dev libboost-dev libboost-chrono-dev libboost-filesystem-dev libboost-program-options-dev \\\r\nlibboost-system-dev libboost-test-dev libboost-thread-dev sudo automake git wget curl libdb4.8-dev bsdmainutils libdb4.8++-dev \\\r\nlibminiupnpc-dev libgmp3-dev ufw pkg-config libevent-dev unzip >\/dev\/null 2>&1\r\nif [ \"$?\" -gt \"0\" ];\r\n  then\r\n    echo -e \"${RED}Not all required packages were installed properly. Try to install them manually by running the following commands:${NC}\\n\"\r\n    echo \"apt-get update\"\r\n    echo \"apt -y install software-properties-common\"\r\n    echo \"apt-add-repository -y ppa:bitcoin\/bitcoin\"\r\n    echo \"apt-get update\"\r\n    echo \"apt install -y make build-essential libtool software-properties-common autoconf libssl-dev libboost-dev libboost-chrono-dev libboost-filesystem-dev \\\r\nlibboost-program-options-dev libboost-system-dev libboost-test-dev libboost-thread-dev sudo automake git curl libdb4.8-dev \\\r\nbsdmainutils libdb4.8++-dev libminiupnpc-dev libgmp3-dev ufw pkg-config libevent-dev unzip\"\r\n exit 1\r\nfi\r\nclear\r\n}\r\n";
  42. var download_node = "function download_node() {\r\n  echo -e \"Prepare to download ${GREEN}$COIN_NAME${NC}.\"\r\n  cd $TMP_FOLDER >\/dev\/null 2>&1\r\n  wget -q $COIN_TGZ\r\n  compile_error\r\n  tar xvzf $COIN_ZIP -C $COIN_PATH >\/dev\/null 2>&1\r\n  cd - >\/dev\/null 2>&1\r\n  rm -rf $TMP_FOLDER >\/dev\/null 2>&1\r\n  clear\r\n}\r\n";
  43. var getip = "function get_ip() {\r\n  declare -a NODE_IPS\r\n  for ips in $(netstat -i | awk '!\/Kernel|Iface|lo\/ {print $1,\" \"}')\r\n  do\r\n    NODE_IPS+=($(curl --interface $ips --connect-timeout 2 -s4 api.ipify.org))\r\n  done\r\n\r\n  if [ ${#NODE_IPS[@]} -gt 1 ]\r\n    then\r\n      echo -e \"${GREEN}More than one IP. Please type 0 to use the first IP, 1 for the second and so on...${NC}\"\r\n      INDEX=0\r\n      for ip in \"${NODE_IPS[@]}\"\r\n      do\r\n        echo ${INDEX} $ip\r\n        let INDEX=${INDEX}+1\r\n      done\r\n      read -e choose_ip\r\n      NODEIP=${NODE_IPS[$choose_ip]}\r\n  else\r\n    NODEIP=${NODE_IPS[0]}\r\n  fi\r\n}";
  44. var compile_error = "function compile_error() {\r\nif [ \"$?\" -gt \"0\" ];\r\n then\r\n  echo -e \"${RED}Failed to compile $COIN_NAME. Please investigate.${NC}\"\r\n  exit 1\r\nfi\r\n}";
  45. var checks = "function checks() {\r\nif [[ $(lsb_release -d) != *16.04* ]]; then\r\n  echo -e \"${RED}You are not running Ubuntu 16.04. Installation is cancelled.${NC}\"\r\n  exit 1\r\nfi\r\n\r\nif [[ $EUID -ne 0 ]]; then\r\n   echo -e \"${RED}$0 must be run as root.${NC}\"\r\n   exit 1\r\nfi\r\n\r\nif [ -n \"$(pidof $COIN_DAEMON)\" ] || [ -e \"$COIN_DAEMOM\" ] ; then\r\n  echo -e \"${RED}$COIN_NAME is already installed.${NC}\"\r\n  exit 1\r\nfi\r\n}";
  46. var createsystemd = "function configure_systemd() {\r\n  cat << EOF > \/etc\/systemd\/system\/$COIN_NAME.service\r\n[Unit]\r\nDescription=$COIN_NAME service\r\nAfter=network.target\r\n[Service]\r\nUser=root\r\nGroup=root\r\nType=forking\r\n#PIDFile=$CONFIGFOLDER\/$COIN_NAME.pid\r\nExecStart=$COIN_PATH$COIN_DAEMON -daemon -conf=$CONFIGFOLDER\/$CONFIG_FILE -datadir=$CONFIGFOLDER\r\nExecStop=-$COIN_PATH$COIN_CLI -conf=$CONFIGFOLDER\/$CONFIG_FILE -datadir=$CONFIGFOLDER stop\r\nRestart=always\r\nPrivateTmp=true\r\nTimeoutStopSec=60s\r\nTimeoutStartSec=10s\r\nStartLimitInterval=120s\r\nStartLimitBurst=5\r\n[Install]\r\nWantedBy=multi-user.target\r\nEOF\r\n\r\n  systemctl daemon-reload\r\n  sleep 3\r\n  systemctl start $COIN_NAME.service\r\n  systemctl enable $COIN_NAME.service >\/dev\/null 2>&1\r\n\r\n  if [[ -z \"$(ps axo cmd:100 | egrep $COIN_DAEMON)\" ]]; then\r\n    echo -e \"${RED}$COIN_NAME is not running${NC}, please investigate. You should start by running the following commands as root:\"\r\n    echo -e \"${GREEN}systemctl start $COIN_NAME.service\"\r\n    echo -e \"systemctl status $COIN_NAME.service\"\r\n    echo -e \"less \/var\/log\/syslog${NC}\"\r\n    exit 1\r\n  fi\r\n}\r\n";
  47. var createconf = "function create_config() {\r\n  mkdir $CONFIGFOLDER >\/dev\/null 2>&1\r\n  RPCUSER=$(tr -cd '[:alnum:]' < \/dev\/urandom | fold -w10 | head -n1)\r\n  RPCPASSWORD=$(tr -cd '[:alnum:]' < \/dev\/urandom | fold -w22 | head -n1)\r\n  cat << EOF > $CONFIGFOLDER\/$CONFIG_FILE\r\nrpcuser="+rpcuser+ "\r\nrpcpassword=$RPCPASSWORD"+rpcpass+"\r\n#rpcport=$RPC_PORT\r\nlisten=1\r\nserver=1\r\ndaemon=1\r\nport=$COIN_PORT\r\nEOF\r\n}"
  48.  
  49. var Client = require('ssh2').Client;
  50. var conn = new Client();
  51. conn.on('ready', function() {
  52.   console.log('Client :: ready');
  53.   conn.exec('cryptodex-cli masternode status', function(err, stream) {
  54.     if (err) throw err;
  55.     stream.on('close', function(code, signal) {
  56.       console.log('Stream :: close :: code: ' + code + ', signal: ' + signal);
  57.       conn.end();
  58.     }).on('data', function(data) {
  59.       console.log('STDOUT: ' + data);
  60.     }).stderr.on('data', function(data) {
  61.       console.log('STDERR: ' + data);
  62.     });
  63.   });
  64. }).connect({
  65.   host: '45.32.132.75',
  66.   port: 22,
  67.   username: 'root',
  68.   password:'xxxxxxxxx',
  69.   tryKeyboard: true,
  70.  
  71. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement