Commit eea19878 authored by Damm Kewl's avatar Damm Kewl
Browse files

Merge branch 'release/v1.14' into 'master'

v1.14 release

See merge request ronindojo/RoninDojo!207
parents 58d15be9 c1e53c02
Changelog
RoninDojo v1.14.0 Change Log
- Dojo v1.14.0
- Mempool Space v2.3.2
- New Debug Script implemented
- remove Specter support (We don't support KYC services)
- GPIO fixes
- RoninUI backend fixes
- Lower db_cache and mempool size
- Refactor dojo conf backup and restore
- refactor salvage data process
- refactor ufw setup
- refactor install system and dojo process.
RoninDojo v1.13.1 Change Log
- RoninUI 2.0 Prep
- Ronin Plug-n-Play finalization
......
-----BEGIN PGP PUBLIC KEY BLOCK-----
Comment: User-ID: BTCxZelko <btcxzelko@protonmail.com>
Comment: Created: 5/23/20 9:01 AM
Comment: Expires: 5/23/24 11:59 PM
Comment: Type: 2,048-bit RSA (secret key available)
Comment: Usage: Signing, Encryption, Certifying User-IDs
Comment: Fingerprint: 7805F9879A5D4034F2B2D2F99818F379C1E4B25F
mQENBF7JSOsBCACfFrpQ3nuw2U2sJm1sXckEhK3JFx8ihWevw6PApMFw57H1JfL8
X5RcN8rtwjcpTvsHLzYi3/YF8x03ZC8jJIqIvT78XbVwDr/RnbXNf3IQDMBkpEni
5o8xoxE/0tVhhzb8ggdiJfYX5YKgtsw2EDalb4ZmTA7/x1/a6/PKpO+N7I9ZGnVq
htKgv9SWviU+XBFqmrzGCwYtRovN6VXU6YOUgUad2wdPatBYuK5Tv1gvlO5W/Z+Y
TUrHsKuPWj0GpN08j1BOO5n+/vEmDGA51Q8dbWhQ8iwvlaAM5qaX43df91MuFRRO
WN/O1VQNgT8Q8sWrUrpmSlZIqGhJyvLXc+kLABEBAAG0JEJUQ3haZWxrbyA8YnRj
eHplbGtvQHByb3Rvbm1haWwuY29tPokBVAQTAQgAPgIbAwULCQgHAgYVCgkICwIE
FgIDAQIeAQIXgBYhBHgF+YeaXUA08rLS+ZgY83nB5LJfBQJifQXJBQkHhvIDAAoJ
EJgY83nB5LJfKg8IAJ7Q5LUeyna1jFyR5JL2n51l/yVVsvCXyOkCwyhtyAM+p99C
HFebXq6SOffR3duWJamNeAARbkyDC/DsnANrMXgBWwAehrdvzcfRXwJowCpSTtEW
RpkY6mpUo+wsk1oDtGuPPPyvC3bODQQcsTW3vckmjn9BSbABnB3aXzYzD1jWwiqC
AspM/TXe+taXOfqFIfXnnTEx/vT840kQhIJcUPXtHyv4gjfpv3N8OwggJwNKq/ll
mDVuJWvUyyk3cDgcbA+s71RVDF3ghelm80X6e4QxhtDSHxYkIiJypcPd8RJBWVP/
Lkz/mZBspr7YB3Scqov3cKUcrvpTaZSNMGJBXie5AQ0EXslI6wEIAM3O5nx2U5db
D3Q6RbM9bIzgBp1ZUvBiyhW3PviryxnU6NwrtkmgrjoAPT34ykMTOWO1B7ha1Y9A
UMkeifpohfuBKSlTEIS0/CPOb+ClKC8erJq3pwPZzMBPyY8xN35oIhCtJH1sxWDB
bheXqJYRpiuq/RSg/YnxA9KKVN53rOgkxju87t7K85lkWpPKLvlu7bst09CEcP3A
znolREjontW0RQrEVqitMX1hXLD9jf9EYvb+/zZbql4klHTgp/vbobIRmEiqolJU
3h1SZWGpmcwHnmyvVKnzCRriiD3mkCYL6eNBfssw2+raSpI23lXXobS0liookhxk
NlrFiUX4Z4UAEQEAAYkBPAQYAQgAJgIbDBYhBHgF+YeaXUA08rLS+ZgY83nB5LJf
BQJifQY2BQkHhvIDAAoJEJgY83nB5LJfLkwH/39rENzsHHacn/WjSnEwHM4o5DbO
OnDkhz6B+brDM1VWF/Hn6I6700YnmtVGvEvoM69q1fvaXd9tVR0Ley1uXtJWTpXU
L+WFCKlEXhRzBZSFLZ2ylYB6MJp7z5XbufQISzOchi6v/QcbAgfez5ALEIu4bDEV
+0+5rs1bsFZu3QJqlGnqwHsdEGKazV/Hj6C0vNs8qP5P2MnazGUtNHpDJU3j6dO+
VE8W6h1Q1XuMHu0BePIt1ehA1zlFXx9kG6nCrfVbIz6pgkFBWeZvVUJ7qw6rMS1L
dtrQrs5SbagCqgTh7HWX4VbBxjpBQMJtm1LOdafee22PueBJovyTV9EKiqc=
=iSt9
-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=LWMY
-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
6raj
=R8LV
-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=d9kc
-----END PGP PUBLIC KEY BLOCK-----
\ No newline at end of file
......@@ -9,34 +9,40 @@ The Core RoninDojo maintainers oversee the development of RoninDojo as a whole.
The branch maintainers for RoninDojo are:
RoninDojo:
- @likewhoa - https://code.samourai.io/likewhoa
- @BTCxZelko - https://code.samourai.io/BTCxZelko
- @s2l1 (GuerraMoneta) - https://code.samourai.io/s2l1
- @dammkewl - https://code.samourai.io/dammkewl
- @BTCxZelko - https://code.samourai.io/BTCxZelko
- @s2l1 (GuerraMoneta) - https://code.samourai.io/s2l1
- @dammkewl - https://code.samourai.io/dammkewl
- @pajasevi (Pavel Ševčík)
Website:
- @s2l1
- @likewhoa
- @pajasevi (Pavel Ševčík)
- @OrangedMike
- @pajasevi
- @BrotherRabbit
- @Din_J7
Ronin UI:
- @pajasevi
- @miguelm9 - https://code.samourai.io/miguelmartinn9
Documentation:
- @Crazyk031
- @BrotherRabbit
- @BitcoinQnA
- @s2l1
- @OrangedMike
- @heady_wook
Quality Assurance:
- @Crazyk031
- @BitcoinQnA
- @likewhoa
- @BrotherRabbit
- @BTCxZelko
- @s2l1
- @dammkewl
- @kycfree
- @Numbers
- @heady_wook
Translation:
- @OrangedMike
- @likewhoa
- @LChavo
- @Bitcoinlion21
\ No newline at end of file
- @Bitcoinlion21
<img src="https://ronindojo.io/assets/images/RoninDojo-logo.png" width="300" height="300" />
<img src="https://ronindojo.io/downloads/artwork/logo/RoninDojo-01b.png" width="300" height="300" />
# RoninDojo
RoninDojo is an Installation Assistant and Administration Tool for Samourai Wallet's Dojo, Whirlpool, Indexer, and more. It is compatible with single-board computers such as Rockpro64, Odroid N2, Raspberry Pi4, etc. To get started you will need the computer, a micro SD card with RoninOS or Manjaro ARM XFCE flashed onto it, and a 1TB Solid State Drive.
......
......@@ -8,348 +8,86 @@
_load_user_conf
if ! findmnt "${install_dir}" 1>/dev/null; then
cat <<EOF
${red}
***
Missing drive mount at ${install_dir}! Please contact support for assistance...
***
${nc}
EOF
_sleep
cat <<EOF
${red}
***
Exiting RoninDojo...
***
${nc}
EOF
_sleep
_print_message "Missing drive mount at ${install_dir}! Please contact support for assistance..."
_print_message "Exiting RoninDojo..."
[ $# -eq 0 ] && _pause return
exit 1
fi
if [ -d "${dojo_path_my_dojo}" ]; then
cat <<EOF
${red}
***
RoninDojo is already installed...
***
${nc}
EOF
_sleep
_print_message "RoninDojo is already installed..."
_print_message "Exiting RoninDojo..."
[ $# -eq 0 ] && _pause return
ronin
exit
exit 1
fi
# Makes sure RoninDojo has been uninstalled
cat <<EOF
${red}
***
Running RoninDojo install...
***
${nc}
EOF
_sleep
cat <<EOF
${red}
***
Use Ctrl+C to exit now if needed!
***
${nc}
EOF
_sleep 10 --msg "Installing in"
_print_message "Running RoninDojo install..."
_print_message "Use Ctrl+C to exit now if needed!"
_sleep 3 --msg "Installing in"
cat <<EOF
${red}
***
Downloading latest RoninDojo release...
***
${nc}
EOF
_print_message "Downloading latest RoninDojo release..."
cd "$HOME" || exit
git clone -q -b "${samourai_commitish#*/}" "$samourai_repo" dojo 2>/dev/null
# Switch over to a branch if in detached state. Usually this happens
# when you clone a tag instead of a branch
git clone -q "${samourai_repo}" dojo 2>/dev/null
cd "${dojo_path}" || exit
git checkout -q -f "${samourai_commitish}"
_git_ref_type
_ret=$?
if ((_ret==3)); then
# valid branch
git switch -q -c "${samourai_commitish}" -t "${samourai_commitish}"
else
# valid tag
git checkout -q -b "${samourai_commitish}" "${samourai_commitish}"
fi
# Check if RoninUI needs installing
if ! _is_ronin_ui; then
printf "%s\n***\nInstalling Ronin UI...\n***\n%s\n" "${red}" "${nc}"
_ronin_ui_install
fi
cat <<EOF
${red}
***
Credentials necessary for usernames, passwords, etc. will randomly be generated now...
***
${nc}
EOF
_sleep 4
cat <<EOF
${red}
***
Credentials are found in RoninDojo menu, ${dojo_path_my_dojo}/conf, or the ~/RoninDojo/user.conf.example file...
***
${nc}
EOF
_sleep 4
cat <<EOF
${red}
***
Be aware these credentials are used to login to Dojo Maintenance Tool, Block Explorer, and more!
***
${nc}
EOF
_sleep 4
cat <<EOF
${red}
***
Setting the RPC User and Password...
***
${nc}
EOF
_sleep
if [ -d "${dojo_backup_dir}" ]; then
if ! _dojo_restore; then
cat <<EOF
${red}
***
Backup restoration disabled!
***
${nc}
EOF
_sleep
_print_message "Credentials necessary for usernames, passwords, etc. will randomly be generated now..."
_print_message "Credentials are found in RoninDojo menu, ${dojo_path_my_dojo}/conf, or the ~/RoninDojo/user.conf.example file..."
_print_message "Be aware these credentials are used to login to Dojo Maintenance Tool, Block Explorer, and more!"
_print_message "Setting the RPC User and Password..."
cat <<EOF
${red}
***
Enable in user.conf if you wish to restore credentials on dojo install when available...
***
${nc}
EOF
_sleep 3
else
cat <<EOF
${red}
***
Credentials backup detected and restored...
***
${nc}
EOF
_sleep
_restore_or_create_dojo_confs
cat <<EOF
${red}
***
If you wish to disable this feature, set dojo_conf_backup=false in the $HOME/.config/RoninDojo/user.conf file...
***
${nc}
EOF
_sleep 3
fi
else
cat <<EOF
${red}
***
Configuring the bitcoin daemon server...
***
${nc}
EOF
_sleep
sed -i -e "s/BITCOIND_RPC_USER=.*$/BITCOIND_RPC_USER=${BITCOIND_RPC_USER}/" \
-e "s/BITCOIND_RPC_PASSWORD=.*$/BITCOIND_RPC_PASSWORD=${BITCOIND_RPC_PASSWORD}/" \
-e "s/BITCOIND_RPC_THREADS.*$/BITCOIND_RPC_THREADS=${BITCOIND_RPC_THREADS:-16}/" \
-e "s/BITCOIND_DB_CACHE=.*$/BITCOIND_DB_CACHE=${BITCOIND_DB_CACHE:-$(_mem_total "${bitcoind_db_cache_total}")}/" \
-e "s/BITCOIND_MAX_MEMPOOL=.*$/BITCOIND_MAX_MEMPOOL=${BITCOIND_MAX_MEMPOOL:-2048}/" \
-e "s/BITCOIND_RPC_EXTERNAL_IP=.*$/BITCOIND_RPC_EXTERNAL_IP=${BITCOIND_RPC_EXTERNAL_IP:-127.0.0.1}/" "${dojo_path_my_dojo}"/conf/docker-bitcoind.conf.tpl
# populate docker-bitcoind.conf.tpl template
_set_indexer
cat <<EOF
${red}
***
Configuring the Nodejs container...
***
${nc}
EOF
_sleep
_check_salvage_db
sed -i -e "s/NODE_API_KEY=.*$/NODE_API_KEY=${NODE_API_KEY}/" \
-e "s/NODE_ADMIN_KEY=.*$/NODE_ADMIN_KEY=${NODE_ADMIN_KEY}/" \
-e "s/NODE_JWT_SECRET=.*$/NODE_JWT_SECRET=${NODE_JWT_SECRET}/" \
-e "s/NODE_ACTIVE_INDEXER=.*$/NODE_ACTIVE_INDEXER=${NODE_ACTIVE_INDEXER:-local_bitcoind}/" "${dojo_path_my_dojo}"/conf/docker-node.conf.tpl
# populate docker-node.conf.tpl template
if (($?==2)); then # No indexer found or fresh install
bash "$HOME"/RoninDojo/Scripts/Install/install-electrs-indexer.sh
sudo rm -rf "${dojo_backup_indexer}"
sed -i -e "s/MYSQL_ROOT_PASSWORD=.*$/MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}/" \
-e "s/MYSQL_USER=.*$/MYSQL_USER=${MYSQL_USER}/" \
-e "s/MYSQL_PASSWORD=.*$/MYSQL_PASSWORD=${MYSQL_PASSWORD}/" "${dojo_path_my_dojo}"/conf/docker-mysql.conf.tpl
# populate docker-mysql.conf.tpl template
cat <<EOF
${red}
***
Configuring the BTC RPC Explorer...
***
${nc}
EOF
_sleep
sed -i -e "s/EXPLORER_INSTALL=.*$/EXPLORER_INSTALL=${EXPLORER_INSTALL:-on}/" \
-e "s/EXPLORER_KEY=.*$/EXPLORER_KEY=${EXPLORER_KEY}/" "${dojo_path_my_dojo}"/conf/docker-explorer.conf.tpl
# populate docker-explorer.conf.tpl template
elif (($?==0)); then # Found electrs previous install.
bash "$HOME"/RoninDojo/Scripts/Install/install-electrs-indexer.sh
sudo test -d "${dojo_backup_indexer}"/_data/db/mainnet && sudo rm -rf "${dojo_backup_indexer}"/_data/db/mainnet #remove 0.8.x data that's incompatible with 0.9+
fi
_check_indexer
if (($?==2)); then
# No indexer found, fresh install
# Enable default electrs indexer unless dojo_indexer="samourai-indexer" set in user.conf
_set_indexer
# Enable Samourai indexer
if [ "${dojo_indexer}" = "samourai-indexer" ]; then
_uninstall_electrs_indexer
_set_indexer
else
bash "$HOME"/RoninDojo/Scripts/Install/install-electrs-indexer.sh
touch "$HOME"/.config/RoninDojo/data/electrs.install
fi
fi
cat <<EOF
${red}
***
Please see Wiki for FAQ, help, and so much more...
***
${nc}
EOF
_sleep 3
cat <<EOF
${red}
***
https://wiki.ronindojo.io
***
${nc}
EOF
_sleep 3
cat <<EOF
${red}
***
Installing Samourai Wallet's Dojo...
***
${nc}
EOF
_sleep
_print_message "Please see Wiki for FAQ, help, and so much more..."
_print_message "https://wiki.ronindojo.io"
_print_message "Installing Samourai Wallet's Dojo..."
# Restart docker here for good measure
sudo systemctl restart --quiet docker
cd "$dojo_path_my_dojo" || exit
if ! ./dojo.sh install --nolog --auto; then
_print_error_message "Install failed! Please contact support..."
[ $# -eq 0 ] && _pause return
[ $# -eq 0 ] && ronin
exit
fi
if ./dojo.sh install --nolog --auto; then
# Installing SW Toolkit
if [ ! -d "${HOME}"/boltzmann ]; then
cat <<EOF
${red}
***
Installing Boltzmann Calculator...
***
${nc}
EOF
# install Boltzmann
_install_boltzmann
fi
if [ ! -d "${HOME}"/Whirlpool-Stats-Tool ]; then
cat <<EOF
${red}
***
Installing Whirlpool Stat Tool...
***
${nc}
EOF
# install Whirlpool Stat Tool
_install_wst
fi
cat <<EOF
${red}
***
Any previous node data will now be salvaged if you choose to continue...
***
${nc}
EOF
_sleep
if $dojo_data_bitcoind_backup || $dojo_data_indexer_backup || $tor_backup; then
# Make sure to wait for user interaction before continuing
_print_message "Any previous node data will now be salvaged if you choose to continue..."
[ $# -eq 0 ] && _pause continue
# Backup dojo credentials
"${dojo_conf_backup}" && _dojo_backup
# Restore any saved IBD from a previous uninstall
"${dojo_data_bitcoind_backup}" && _dojo_data_bitcoind restore
_stop_dojo
# Restore any saved indexer data from a previous uninstall
"${dojo_data_indexer_backup}" && _dojo_data_indexer restore
$dojo_data_bitcoind_backup && _dojo_data_bitcoind_restore
$dojo_data_indexer_backup && _dojo_data_indexer_restore
$tor_backup && _tor_restore
if ${tor_backup}; then
_tor_restore
docker restart tor 1>/dev/null
fi
# restore tor credentials backup to container
./dojo.sh start
cat <<EOF
${red}