From 16d601389e072fa8e24d0da57a5c0c1138575bd6 Mon Sep 17 00:00:00 2001 From: Mark Brooker Date: Tue, 12 Dec 2017 23:48:42 +0000 Subject: [PATCH 1/4] Reduce default swap size, add instance numbering base --- config/default.env | 5 +++-- install.sh | 41 +++++++++++++++++++++++++---------------- 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/config/default.env b/config/default.env index 04d4c609..526bd692 100644 --- a/config/default.env +++ b/config/default.env @@ -7,6 +7,7 @@ MNODE_CONF_BASE=${MNODE_CONF_BASE:-/etc/masternodes} MNODE_DATA_BASE=${MNODE_DATA_BASE:-/var/lib/masternodes} MNODE_USER=${MNODE_USER:-masternode} MNODE_HELPER="/usr/local/bin/activate_masternodes" -MNODE_SWAPSIZE=${MNODE_SWAPSIZE:-5000} +MNODE_SWAPSIZE=${MNODE_SWAPSIZE:-4000} CODE_DIR="code" -SETUP_MNODES_COUNT=${SETUP_MNODES_COUNT:-1} \ No newline at end of file +SETUP_MNODES_COUNT=${SETUP_MNODES_COUNT:-1} +SETUP_MNODES_BASE=${SETUP_MNODES_BASE:-1} diff --git a/install.sh b/install.sh index db59fd53..7ad727a8 100755 --- a/install.sh +++ b/install.sh @@ -72,16 +72,18 @@ function show_help(){ showbanner echo "install.sh, version $SCRIPT_VERSION"; echo "Usage example:"; - echo "install.sh (-p|--project) string [(-h|--help)] [(-n|--net) int] [(-c|--count) int] [(-r|--release) string] [(-w|--wipe)] [(-u|--update)]"; + echo "install.sh (-p|--project) string [(-h|--help)] [(-n|--net) int] [(-c|--count) int] [(-b|--base) int] [(-r|--release) string] [(-s|--sentinel)] [(-w|--wipe)] [(-u|--update)] [(-d|--debug)]"; echo "Options:"; echo "-h or --help: Displays this information."; echo "-p or --project string: Project to be installed. REQUIRED."; echo "-n or --net: IP address type t be used (4 vs. 6)."; echo "-c or --count: Number of masternodes to be installed."; + echo "-b or --base: Starting number for masternode instances."; echo "-r or --release: Release version to be installed."; echo "-s or --sentinel: Add sentinel monitoring for a node type. Combine with the -p option"; echo "-w or --wipe: Wipe ALL local data for a node type. Combine with the -p option"; echo "-u or --update: Update a specific masternode daemon. Combine with the -p option"; + echo "-d or --debug: display some debug output"; exit 1; } @@ -163,7 +165,7 @@ function create_mn_dirs() { # individual data dirs for now to avoid problems echo "* Creating masternode directories" mkdir -p ${MNODE_CONF_BASE} - for NUM in $(seq 1 ${count}); do + for NUM in $(seq ${base} ${count}); do if [ ! -d "${MNODE_DATA_BASE}/${CODENAME}${NUM}" ]; then echo "creating data directory ${MNODE_DATA_BASE}/${CODENAME}${NUM}" &>> ${SCRIPT_LOGFILE} mkdir -p ${MNODE_DATA_BASE}/${CODENAME}${NUM} &>> ${SCRIPT_LOGFILE} @@ -195,7 +197,7 @@ function create_sentinel_setup() { /usr/share/sentinelvenv/bin/pip install -r requirements.txt &>> ${SCRIPT_LOGFILE} # create one sentinel config file per masternode - for NUM in $(seq 1 ${count}); do + for NUM in $(seq ${base} ${count}); do if [ ! -f "/usr/share/sentinel/${CODENAME}${NUM}_sentinel.conf" ]; then echo "* Creating sentinel configuration for ${CODENAME} masternode number ${NUM}" &>> ${SCRIPT_LOGFILE} echo "dash_conf=${MNODE_CONF_BASE}/${CODENAME}_n${NUM}.conf" > /usr/share/sentinel/${CODENAME}${NUM}_sentinel.conf @@ -264,7 +266,7 @@ function create_mn_configuration() { cd ${SCRIPTPATH} # create one config file per masternode - for NUM in $(seq 1 ${count}); do + for NUM in $(seq ${base} ${count}); do PASS=$(date | md5sum | cut -c1-24) # we dont want to overwrite an existing config file @@ -295,7 +297,7 @@ function create_control_configuration() { # delete any old stuff that's still around rm -f /tmp/${CODENAME}_masternode.conf &>> ${SCRIPT_LOGFILE} # create one line per masternode with the data we have - for NUM in $(seq 1 ${count}); do + for NUM in $(seq ${base} ${count}); do cat >> /tmp/${CODENAME}_masternode.conf <<-EOF ${CODENAME}MN${NUM} [${IPV6_INT_BASE}:${NETWORK_BASE_TAG}::${NUM}]:${MNODE_INBOUND_PORT} MASTERNODE_PRIVKEY_FOR_${CODENAME}MN${NUM} COLLATERAL_TX_FOR_${CODENAME}MN${NUM} OUTPUT_NO_FOR_${CODENAME}MN${NUM} EOF @@ -310,7 +312,7 @@ function create_systemd_configuration() { echo "* (over)writing systemd config files for masternodes" # create one config file per masternode - for NUM in $(seq 1 ${count}); do + for NUM in $(seq ${base} ${count}); do PASS=$(date | md5sum | cut -c1-24) echo "* (over)writing systemd config file ${SYSTEMD_CONF}/${CODENAME}_n${NUM}.service" &>> ${SCRIPT_LOGFILE} cat > ${SYSTEMD_CONF}/${CODENAME}_n${NUM}.service <<-EOF @@ -446,7 +448,7 @@ function source_config() { echo "" echo "I am going to install and configure " echo "=> ${count} ${project} masternode(s) in version ${SCVERSION} " - echo "for you now." + echo "starting at instance ${base} for you now." echo "" echo "You have to add your masternode private key to the individual config files afterwards" echo "" @@ -551,7 +553,7 @@ function final_call() { cp ${SCRIPTPATH}/scripts/activate_masternodes.sh ${MNODE_HELPER}_${CODENAME} echo "">> ${MNODE_HELPER}_${CODENAME} - for NUM in $(seq 1 ${count}); do + for NUM in $(seq ${base} ${count}); do echo "systemctl enable ${CODENAME}_n${NUM}" >> ${MNODE_HELPER}_${CODENAME} echo "systemctl restart ${CODENAME}_n${NUM}" >> ${MNODE_HELPER}_${CODENAME} done @@ -589,7 +591,7 @@ function prepare_mn_interfaces() { cp ${NETWORK_CONFIG} ${NETWORK_CONFIG}.${DATE_STAMP}.bkp # create the additional ipv6 interfaces, rc.local because it's more generic - for NUM in $(seq 1 ${count}); do + for NUM in $(seq ${base} ${count}); do # check if the interfaces exist ip -6 addr | grep -qi "${IPV6_INT_BASE}:${NETWORK_BASE_TAG}::${NUM}" @@ -614,9 +616,10 @@ wipe=0; debug=0; update=0; sentinel=0; +base=1; # Execute getopt -ARGS=$(getopt -o "hp:n:c:r:wsud" -l "help,project:,net:,count:,release:,wipe,sentinel,update,debug" -n "install.sh" -- "$@"); +ARGS=$(getopt -o "hp:n:c:b:r:wsud" -l "help,project:,net:,count:,base:,release:,wipe,sentinel,update,debug" -n "install.sh" -- "$@"); #Bad arguments if [ $? -ne 0 ]; @@ -656,6 +659,14 @@ while true; do shift; fi ;; + -b|--base) + shift; + if [ -n "$1" ]; + then + base="$1"; + shift; + fi + ;; -r|--release) shift; if [ -n "$1" ]; @@ -712,7 +723,7 @@ main() { # debug if [ "$debug" -eq 1 ]; then - echo "********************** VALUES AFTER CONFIG SOURCING: ************************" + echo "******************* VALUES AFTER GENERIC CONFIG SOURCING: *********************" echo "START DEFAULTS => " echo "SCRIPT_VERSION: $SCRIPT_VERSION" echo "SSH_INBOUND_PORT: ${SSH_INBOUND_PORT}" @@ -726,7 +737,6 @@ main() { echo "MNODE_HELPER: ${MNODE_HELPER}" echo "MNODE_SWAPSIZE: ${MNODE_SWAPSIZE}" echo "CODE_DIR: ${CODE_DIR}" - echo "ETH_INTERFACE: ${ETH_INTERFACE}" echo "SETUP_MNODES_COUNT: ${SETUP_MNODES_COUNT}" echo "END DEFAULTS => " fi @@ -736,9 +746,9 @@ main() { # debug if [ "$debug" -eq 1 ]; then + echo "****************** VALUES AFTER PROJECT CONFIG SOURCING: **********************" echo "START PROJECT => " echo "CODENAME: $CODENAME" - echo "SETUP_MNODES_COUNT: ${SETUP_MNODES_COUNT}" echo "MNODE_DAEMON: ${MNODE_DAEMON}" echo "MNODE_INBOUND_PORT: ${MNODE_INBOUND_PORT}" echo "GIT_URL: ${GIT_URL}" @@ -750,12 +760,11 @@ main() { echo "RELEASE: ${release}" echo "PROJECT: ${project}" echo "SETUP_MNODES_COUNT: ${count}" - echo "NETWORK_TYPE: ${NETWORK_TYPE}" + echo "SETUP_MNODES_BASE: ${base}" echo "NETWORK_TYPE: ${net}" echo "END OPTIONS => " - echo "********************** VALUES AFTER CONFIG SOURCING: ************************" fi } -main "$@" \ No newline at end of file +main "$@" From 2b0619db2ade60bf647cef8850b1508ac9777eb3 Mon Sep 17 00:00:00 2001 From: Mark Brooker Date: Thu, 14 Dec 2017 16:09:40 +0000 Subject: [PATCH 2/4] Merge blocknet and crown-sn --- README.md | 1 + assets/block.jpg | Bin 0 -> 4598 bytes config/block/block.compile | 6 ++++++ config/block/block.env | 6 ++++++ 4 files changed, 13 insertions(+) create mode 100644 assets/block.jpg create mode 100755 config/block/block.compile create mode 100644 config/block/block.env diff --git a/README.md b/README.md index 9ca0d2a0..a189a7bc 100644 --- a/README.md +++ b/README.md @@ -202,6 +202,7 @@ The management script release will follow within the next couple of days. | YUP | ![YUP](/assets/yup.jpg) | http://yupcrypto.com/ | | MTNC | ![MTNC](/assets/mtnc.jpg) | http://www.masternodecoin.org/ | | CROWN | ![CROWN](/assets/crown.jpg) | https://crown.tech/ | +| BLOCKNET | ![BLOCK](/assets/block.jpg) | https://blocknet.co/ | # Todo * provide my Dockerfile & Vagrantfile diff --git a/assets/block.jpg b/assets/block.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1816a57b6ad56f59253f05c7d0357bb649779ac0 GIT binary patch literal 4598 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 CIFIE3 literal 0 HcmV?d00001 diff --git a/config/block/block.compile b/config/block/block.compile new file mode 100755 index 00000000..e5ee5b59 --- /dev/null +++ b/config/block/block.compile @@ -0,0 +1,6 @@ +#!/bin/bash + +./autogen.sh +./configure --with-incompatible-bdb --disable-tests --without-miniupnpc +make +make install diff --git a/config/block/block.env b/config/block/block.env new file mode 100644 index 00000000..498ad956 --- /dev/null +++ b/config/block/block.env @@ -0,0 +1,6 @@ +CODENAME=block +MNODE_DAEMON=${MNODE_DAEMON:-/usr/local/bin/blocknetdxd} +MNODE_INBOUND_PORT=${MNODE_INBOUND_PORT:-41412} +GIT_URL=https://github.com/BlocknetDX/BlockDX +SCVERSION="tags/v3.7.36" +NETWORK_BASE_TAG="2036" From b053055acc57df21323bdd9b5729cd87a2f91065 Mon Sep 17 00:00:00 2001 From: walkjivefly Date: Fri, 19 Apr 2019 13:10:25 +0000 Subject: [PATCH 3/4] Add support for Sucre --- config/sucr/sucr.compile | 6 ++++++ config/sucr/sucr.conf | 39 +++++++++++++++++++++++++++++++++++++++ config/sucr/sucr.env | 7 +++++++ 3 files changed, 52 insertions(+) create mode 100755 config/sucr/sucr.compile create mode 100644 config/sucr/sucr.conf create mode 100644 config/sucr/sucr.env diff --git a/config/sucr/sucr.compile b/config/sucr/sucr.compile new file mode 100755 index 00000000..844ab74d --- /dev/null +++ b/config/sucr/sucr.compile @@ -0,0 +1,6 @@ +#!/bin/bash + +./autogen.sh +./configure --with-incompatible-bdb --disable-tests +make +make install diff --git a/config/sucr/sucr.conf b/config/sucr/sucr.conf new file mode 100644 index 00000000..760c513a --- /dev/null +++ b/config/sucr/sucr.conf @@ -0,0 +1,39 @@ +################################ +# basic settings +################################ +txindex=1 +logtimestamps=1 +listen=1 +daemon=1 +gen=0 +discover=1 +############################# +# nodes we want to stick to +############################# +# addnode=seed1.xxx.org +################################ +# masternode specific settings +################################ +masternode=1 +#### INSERT YOUR MASTERNODE PRIVATEKEY BELOW #################################################### +masternodeprivkey=HERE_GOES_YOUR_MASTERNODE_KEY_FOR_MASTERNODE_XXX_GIT_PROJECT_XXX_XXX_NUM_XXX +################################################################################################# +# +# b. +# 88b Insert your generated masternode privkey here +# 888b. +# 88888b +# 888888b. +# 8888P" +# P" `8. +# `8. +# `8 +################################################################################################# +############################# +# JSONRPC +############################# +server=1 +rpcuser=XXX_GIT_PROJECT_XXXrpc +rpcpassword=XXX_PASS_XXX +rpcallowip=127.0.0.1 +rpcport=555XXX_NUM_XXX diff --git a/config/sucr/sucr.env b/config/sucr/sucr.env new file mode 100644 index 00000000..6f8d5a1d --- /dev/null +++ b/config/sucr/sucr.env @@ -0,0 +1,7 @@ +CODENAME=sucr +NETWORK_TYPE=${NETWORK_TYPE:-4} +MNODE_INBOUND_PORT=${MNODE_INBOUND_PORT:-9336} +GIT_URL=https://github.com/sucremoneda/SucreCore.git +SCVERSION="master" +MNODE_DAEMON=${MNODE_DAEMON:-/usr/local/bin/sucrd} + From 0e088ee490b4edb26da6047aeff35318c7c01aba Mon Sep 17 00:00:00 2001 From: Mark Brooker Date: Sat, 20 Apr 2019 16:29:16 +0700 Subject: [PATCH 4/4] Add sucr.jpg --- assets/sucr.jpg | Bin 0 -> 17872 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/sucr.jpg diff --git a/assets/sucr.jpg b/assets/sucr.jpg new file mode 100644 index 0000000000000000000000000000000000000000..32cc19c8d4f4a67ed0597d01bb128783bb89d042 GIT binary patch literal 17872 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 literal 0 HcmV?d00001