##############################################################
# SEMI-AUTOMATIC CRYPTOCURRENCY CREATION SCRIPT v 0.1 #
##############################################################
# This script helps you create a cryptonote cryptocurrency.
# Pre-requirements: git, gcc, curl, 20 megabytes of space
# sudo apt-get install git gcc curl (ubuntu/debian)
# sudo pacman -S git gcc curl (arch/manjaro)
############################## by Security XIII on 27.05.17 ##
echo "Welcome to semi-automatic cryptocurrency creation script."
echo "This is WIP (work in progress). Pre-alpha version."
echo "WARNING! This script checks NOTHING. If you made a mistake,"
echo "fix it manually, or re-run the script."
echo "......................................"
echo "Cloning git repo, please wait... Saving repo into 'cryptonote' folder"
git clone https://github.com/sxiii/cryptonote
cd cryptonote
echo "= NAME ="
echo "Please enter the name of the crypto! No special symbols, spaces etc."
echo "Hint: check new name via google and mapofcoins.com"
read name
echo "Your crypto will be named: $name. Great! Let's move on..."
echo
# src/CryptoNoteConfig.h -> NamePlaceholder -> $name
# src/CMakeLists.txt -> CryptonotedPlaceholder -> $name
sed -i 's/NamePlaceholder/'"$name"'/g' src/CryptoNoteConfig.h
sed -i 's/CryptonotedPlaceholder/'"$name"'/g' src/CMakeLists.txt
echo "= Money Supply ="
echo "Enter money supply (amount of coins totally emmited)"
echo "Default (if empty) will be 18446744073709551616:"
read moneysupply
[[ -z "${moneysupply// }" ]] && moneysupply="(uint64_t)(-1)"
echo "Your money supply will be $moneysupply"
echo
# src/CryptoNoteConfig.h -> MoneysupplyPlaceholder -> (uint64_t)(-1);
# UINT64_C(777777777) /// 777777777/60/60/24/365 (24 years)
if [[ ${moneysupply} == "(uint64_t)(-1)" ]]; then
sed -i 's/MoneysupplyPlaceholder/'"$moneysupply"'/g' src/CryptoNoteConfig.h
else
sed -i 's/MoneysupplyPlaceholder/UINT64_C('"$moneysupply"')/g' src/CryptoNoteConfig.h
fi
echo "= Network Speed (Difficulty Target) ="
echo "Let's set up difficulty target for block in seconds."
echo "Default is 120 seconds, if empty."
read difficulty
[[ -z "${difficulty// }" ]] && difficulty="120"
echo "Difficulty will be $difficulty seconds."
echo
# src/CryptoNoteConfig.h -> DifficultyPlaceholder
sed -i 's/DifficultyPlaceholder/'"$difficulty"'/g' src/CryptoNoteConfig.h
echo "= Network Port ="
echo "Set up P2P port. If not set, will be picked random 10000...20000:"
read p2port
[[ -z "${p2port// }" ]] && p2port="$(shuf -i10000-20000 -n1)"
echo "P2P port will be $p2port. Great, move on."
echo
# Default Port 17777
# src/CryptoNoteConfig.h -> PortPlaceholder;
sed -i 's/PortPlaceholder/'"$p2port"'/g' src/CryptoNoteConfig.h
echo "= RPC Port ="
echo "Set up RPC port. If not set, will be picked random 20000..60000"
read rpcport
[[ -z "${rpcport// }" ]] && rpcport="$(shuf -i20000-60000 -n1)"
echo "RPC port will be $rpcport. Great, move on."
echo
# Default RPC port 17771
# src/CryptoNoteConfig.h -> RpcPlaceholder;
sed -i 's/RpcPlaceholder/'"$rpcport"'/g' src/CryptoNoteConfig.h
echo "Generating random network ID..."
echo
array=(0A A0 1A A1)
for n in {0..15}; do
x=$(shuf -r -i0-3 -n1)
if [[ $n -lt 15 ]]; then y+="0x${array[x]}, "; else y+="0x${array[x]}"; fi;
done
echo "Network ID generated: $y"
# src/P2p/P2pNetworks.h -> CryptonotenetworkPlaceholder
# {{ 0xA1, 0x1A, 0xA1, 0x1A, 0xA1, 0x0A, 0xA1, 0x0A, 0xA0, 0x1A, 0xA0, 0x1A, 0xA0, 0x1A, 0xA1, 0x1A }};
sed -i 's/CryptonotenetworkPlaceholder/'"$y"'/g' src/P2p/P2pNetworks.h
echo "Enter first (1) seed node IP or domain name with port, for example: 1.2.3.4:10500"
echo "Please wait, getting your ip..."
ipaddr=$(curl ifconfig.me/ip)
echo "Note: your public IP address is $ipaddr, press enter to use it"
read ip
[[ -z "${ip// }" ]] && ip="$ipaddr:$p2port"
echo "Setting up node 1 IP: $ip"
sed -i 's/your_seed_ip1.com:8080/'"$ip"'/g' src/CryptoNoteConfig.h
echo "Enter second (2) seed node IP or domain name with port, for example: 4.3.2.1:50010"
read ip
[[ -z "${ip// }" ]] && ip="$ipaddr:$p2port"
echo "Setting up node 2 IP: $ip"
sed -i 's/your_seed_ip2.com:8080/'"$ip"'/g' src/CryptoNoteConfig.h
make -j8
$name --print-genesis-tx
#0xe5766 = fate;
#furiouscoind --print-genesis-tx
#results ^
#const char GENESIS_COINBASE_TX_HEX[] = "";
Comments