From 3a3760b63a4645ac12bebdf1ef0584f0f53bd4cc Mon Sep 17 00:00:00 2001 From: Jon Layton Date: Fri, 6 Apr 2018 17:23:12 +0000 Subject: [PATCH] Add btcp_store_demo.sh --- btcp_store_demo.sh | 141 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100755 btcp_store_demo.sh diff --git a/btcp_store_demo.sh b/btcp_store_demo.sh new file mode 100755 index 0000000..b375c0a --- /dev/null +++ b/btcp_store_demo.sh @@ -0,0 +1,141 @@ +#!/bin/bash + +# Bitcore v3.1 - BTCP Explorer + Store / AddressWatch Demo + +install_ubuntu() { + # Get Ubuntu Dependencies + sudo apt-get update + + sudo apt-get -y install \ + build-essential pkg-config libc6-dev m4 g++-multilib \ + autoconf libtool ncurses-dev unzip git python \ + zlib1g-dev wget bsdmainutils automake + + # Install ZeroMQ libraries (Bitcore) + sudo apt-get -y install libzmq3-dev +} + + +clone_and_build_btcp() { + # Clone latest Bitcoin Private source, and checkout explorer-btcp + git clone -b explorer-btcp https://github.com/BTCPrivate/BitcoinPrivate + cd BitcoinPrivate + + # Fetch Zcash ceremony params + ./btcputil/fetch-params.sh + + # !!! OPTIONAL: EC2 - Make sure port 8001 is in your security group + # !!! OPTIONAL: EC2 Micro - Make sure you have a big enough Swapfile + #prev=$PWD + #cd / + #sudo dd if=/dev/zero of=swapfile bs=1M count=3000 + #sudo mkswap swapfile + #sudo chmod 0600 /swapfile + #sudo swapon swapfile + #echo "/swapfile none swap sw 0 0" | sudo tee -a etc/fstab > /dev/null + #cd prev + + # Build Bitcoin Private + ./btcputil/build.sh -j$(nproc) + + # Make initial, empty btcprivate.conf if needed + if [ ! -e ~/.btcprivate/btcprivate.conf ] + then + touch ~/.btcprivate/btcprivate.conf + fi +} + +install_nvm_npm() { + # Install npm + sudo apt-get -y install npm + + # Install nvm (npm version manager) + wget -qO- https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash + + # Set up nvm + export NVM_DIR="$HOME/.nvm" + [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm + [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion + + # Install node v4 + nvm install v4 + nvm use v4 + nvm alias default v4 +} + +# -- Bitcore -- +install_bitcore() { + # Install Bitcore (Headless) + npm install BTCPrivate/bitcore-node-btcp + + # Create Bitcore Node + ./node_modules/bitcore-node-btcp/bin/bitcore-node create btcp-explorer + cd btcp-explorer + + # Install Insight API / UI (Explorer) (Headless) + ../node_modules/bitcore-node-btcp/bin/bitcore-node install BTCPrivate/insight-api-btcp BTCPrivate/insight-ui-btcp BTCPrivate/store-demo + # (BTCPrivate/address-watch) + # (mv store-demo lemonade-stand) + + # !!! OPTIONAL [TODO present cli options] Install store-demo + #cd ~ + #git clone https://github.com/BTCPrivate/store-demo + #cd btcp-explorer/node_modules + #ln -s ~/store-demo + + + # !!! OPTIONAL [TODO present cli options] Install address-watch + #cd ~ + #git clone https://github.com/BTCPrivate/address-watch + #cd btcp-explorer/node_modules + #ln -s ~/address-watch + + # Create config file for Bitcore + # !!! OPTIONAL TODO add store-demo and address-watch to services as specified + cat << EOF > bitcore-node.json + { + "network": "livenet", + "port": 8001, + "services": [ + "bitcoind", + "insight-api-btcp", + "insight-ui-btcp", + "store-demo", + "web" + ], + "servicesConfig": { + "bitcoind": { + "spawn": { + "datadir": "$HOME/.btcprivate", + "exec": "$HOME/BitcoinPrivate/src/btcpd" + } + }, + "insight-ui-btcp": { + "apiPrefix": "api", + "routePrefix": "" + }, + "insight-api-btcp": { + "routePrefix": "api" + } + } + } + EOF +} + +echo "Begin" +cd ~ + +#clone_and_build_btcp + +#install_nvm_npm + +install_bitcore +echo "Complete." + + +echo "To start the bitcore-node, run (from btcp-explorer):" +echo "nvm use v4; ./node_modules/bitcore-node/bin/bitcore-node start" +echo "\n" +echo "To view the explorer in your browser - http://server_ip:8001" +echo "For https, we recommend you route through Cloudflare." +