From 22f6f7af232b93948d56b0fab48c0297d922aaaf Mon Sep 17 00:00:00 2001 From: BimsaraFernando Date: Wed, 19 Jun 2024 17:30:04 +0530 Subject: [PATCH 1/6] CLI commands changes --- installer/setup.sh | 19 +++++++------------ mb-xrpl/lib/config-helper.js | 1 - 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/installer/setup.sh b/installer/setup.sh index 92a1261..4575ff1 100755 --- a/installer/setup.sh +++ b/installer/setup.sh @@ -1609,7 +1609,7 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer local evernode_reputationd_status=$(sudo -u "$REPUTATIOND_USER" XDG_RUNTIME_DIR="$reputationd_user_runtime_dir" systemctl --user is-active $REPUTATIOND_SERVICE) echo "Evernode reputationd status: $evernode_reputationd_status" if [[ $reputationd_enabled == true ]]; then - echo -e "\nYour reputationd account details are stored in $REPUTATIOND_DATA/reputationd.cfg" + echo -e "\nYour reputationd account and reimbursement details are stored in $REPUTATIOND_DATA/reputationd.cfg" reputationd_reimbursement_info fi } @@ -1619,14 +1619,9 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer local saved_reimburse_frequency=$(jq -r '.reimburse.frequency' "$REPUTATIOND_CONFIG") if [[ "$saved_reimburse_frequency" =~ ^[0-9]+$ ]]; then - echomult "Evernode reputation reimbursement interval : $saved_reimburse_frequency" + echomult "\nEvernode reputation reimbursement interval : $saved_reimburse_frequency" else - echo "Evernode reputation reimbursement interval : not configured." - fi - local evernode_reputationd_reimbursement_status=$(sudo -u "$REPUTATIOND_USER" XDG_RUNTIME_DIR="$reputationd_user_runtime_dir" systemctl --user is-active $REPUTATIOND_SERVICE) - echo "Evernode reputationd reimbursemet status: $evernode_reputationd_reimbursement_status" - if [[ $reputationd_enabled == true ]]; then - echo -e "\nYour reputationd reimbursement details are stored in $REPUTATIOND_DATA/reputationd.cfg" + echo "Evernode reputation reimbursement : not configured." fi } @@ -2097,7 +2092,7 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer echomult "Configuring Evernode reputation for reward distribution..." if [ -f "$REPUTATIOND_CONFIG" ]; then - reputationd_secret_path=$(jq -r '.xrpl.secretPath' "$REPUTATIOND_CONFIG") + reputationd_secret_path=$(jq -r '.xrpl.secretPath' "$REPUTATIOND_CONFIG" 2>/dev/null) chown "$REPUTATIOND_USER":"$SASHIADMIN_GROUP" $reputationd_secret_path fi if [ "$upgrade" == "0" ]; then @@ -2263,7 +2258,7 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer local saved_reimburse_frequency=$(jq -r '.reimburse.frequency' "$REPUTATIOND_CONFIG") if [[ "$saved_reimburse_frequency" =~ ^[0-9]+$ ]]; then - confirm "\nYou have already opted in for reputation reimbursement. Reimbursement interval is $saved_reimburse_frequency hrs. Do you want to change the reimbursement frequency?"; then + ! confirm "\nYou have already opted in for reputation reimbursement. Reimbursement interval is $saved_reimburse_frequency hrs. Do you want to change the reimbursement frequency?" && return 1 set_reimbursement_config elif confirm "\nWould you like to reimburse reputation account for reputation contract lease costs?"; then set_reimbursement_config @@ -2627,8 +2622,8 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer else echomult "ReputationD management reimbursing tool \nSupported commands: - \nopt-in - Opt in for the reimbursing evernode contract lease amount. - \nopt-out - Opt-out for the reimbursing evernode contract lease amount." && exit 1 + \nset - set a reimbursing evernode contract lease amount. + \nremove - remove reimbursing evernode contract lease amount." && exit 1 fi else echomult "ReputationD management tool diff --git a/mb-xrpl/lib/config-helper.js b/mb-xrpl/lib/config-helper.js index 9d40bfe..ef837d2 100644 --- a/mb-xrpl/lib/config-helper.js +++ b/mb-xrpl/lib/config-helper.js @@ -28,7 +28,6 @@ class ConfigHelper { if (reputationDConfigPath && fs.existsSync(reputationDConfigPath)) { const reputationDConfig = JSON.parse(fs.readFileSync(reputationDConfigPath).toString()); config.xrpl.reputationAddress = reputationDConfig.xrpl.address; - config.reputationReimburseFrequency = reputationDConfig.reimburse.frequency; if (readSecret) { if (!fs.existsSync(reputationDConfig.xrpl.secretPath)) From 655cc23240f11c49c71b95103782a150ab7f5d1d Mon Sep 17 00:00:00 2001 From: BimsaraFernando Date: Wed, 19 Jun 2024 22:30:31 +0530 Subject: [PATCH 2/6] configure_reputationd_reimbursement fixed --- installer/setup.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/installer/setup.sh b/installer/setup.sh index 4575ff1..51576be 100755 --- a/installer/setup.sh +++ b/installer/setup.sh @@ -2119,8 +2119,6 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer if [ "$upgrade" == "0" ]; then configure_reputationd_reimbursement - else - echomult "\nDenied reputation account reimbursement.\nYou can opt-in for reimbursement later by using 'evernode reputationd reimburse' command.\n" fi if [ "$upgrade" == "0" ]; then @@ -2260,8 +2258,12 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer if [[ "$saved_reimburse_frequency" =~ ^[0-9]+$ ]]; then ! confirm "\nYou have already opted in for reputation reimbursement. Reimbursement interval is $saved_reimburse_frequency hrs. Do you want to change the reimbursement frequency?" && return 1 set_reimbursement_config - elif confirm "\nWould you like to reimburse reputation account for reputation contract lease costs?"; then - set_reimbursement_config + else + if confirm "\nWould you like to reimburse reputation account for reputation contract lease costs?"; then + set_reimbursement_config + else + echomult "\nDenied reputation account reimbursement.\nYou can opt-in for reimbursement later by using 'evernode reputationd reimburse' command.\n" + fi fi } From a1b782e1948c4c41ef1c53299b5a3947f91f6227 Mon Sep 17 00:00:00 2001 From: BimsaraFernando Date: Thu, 20 Jun 2024 01:01:48 +0530 Subject: [PATCH 3/6] jq command error ignored --- installer/setup.sh | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/installer/setup.sh b/installer/setup.sh index 51576be..5036fc9 100755 --- a/installer/setup.sh +++ b/installer/setup.sh @@ -1616,7 +1616,7 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer function reputationd_reimbursement_info() { # check reputationd reimbursement status with config value - local saved_reimburse_frequency=$(jq -r '.reimburse.frequency' "$REPUTATIOND_CONFIG") + local saved_reimburse_frequency=$(jq -r '.reimburse.frequency' "$REPUTATIOND_CONFIG" 2>/dev/null) if [[ "$saved_reimburse_frequency" =~ ^[0-9]+$ ]]; then echomult "\nEvernode reputation reimbursement interval : $saved_reimburse_frequency" @@ -2223,8 +2223,11 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer function remove_reputationd() { [ "$EUID" -ne 0 ] && echo "Please run with root privileges (sudo)." && return 1 - - remove_reputationd_reimbursement + + if ! remove_reputationd_reimbursement; then + echomult "\nError occured removing ReputationD Reimbursement. Retry with the same command again." + exit 1 + fi reputationd_user_dir=/home/"$REPUTATIOND_USER" reputationd_user_id=$(id -u "$REPUTATIOND_USER") @@ -2239,7 +2242,7 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer rm -f $service_path local service_removed=true else - echo "Evernode reputation for reward distribution is not configured." + echo "Evernode reputation for reward distribution is not configured." && exit 1 fi $service_removed && echo "Opted-out from the Evernode reputation for reward distribution." @@ -2251,7 +2254,7 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer #check reputationd enabled if [ ! -f "/home/$REPUTATIOND_USER/.config/systemd/user/$REPUTATIOND_SERVICE.service" ]; then # reputationd_enabled=false - echo "The host is currently not opted-in to Evernode reputation and reward system." && return 1 + echo "The host is currently not opted-in to Evernode reputation and reward system." && exit 1 fi local saved_reimburse_frequency=$(jq -r '.reimburse.frequency' "$REPUTATIOND_CONFIG") @@ -2288,10 +2291,8 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer function remove_reputationd_reimbursement() { [ "$EUID" -ne 0 ] && echo "Please run with root privileges (sudo)." && return 1 - echomult "Removing Evernode reputation reimbursement system" - # check config whether already reimbursing enabled - local saved_reimburse_frequency=$(jq -r '.reimburse.frequency' "$REPUTATIOND_CONFIG") + local saved_reimburse_frequency=$(jq -r '.reimburse.frequency' "$REPUTATIOND_CONFIG" 2>/dev/null) if [[ "$saved_reimburse_frequency" =~ ^[0-9]+$ ]]; then # set default config @@ -2606,19 +2607,22 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer exit 1 fi elif [ "$2" == "status" ]; then - echo "" - reputationd_info echo "" ! sudo -u $REPUTATIOND_USER REPUTATIOND_DATA_DIR=$REPUTATIOND_DATA node $REPUTATIOND_BIN repinfo && echo "Error getting reputation status" && exit 1 + echo -e "\n" + reputationd_info + + echomult "\nNOTE: To participate in this reputation assessment process continuously, you need to ensure that your reputation account + \nhas a sufficient EVR balance to perform the instance acquisitions." elif [ "$2" == "reimburse" ]; then if [ "$3" == "set" ]; then if ! configure_reputationd_reimbursement; then - echomult "\nError occured setting ReputationD Reimbursement. Retry with the same command again." + echomult "\nError occured setting ReputationD Reimbursement." exit 1 fi elif [ "$3" == "remove" ]; then if ! remove_reputationd_reimbursement; then - echomult "\nError occured removing ReputationD Reimbursement. Retry with the same command again." + echomult "\nError occured removing ReputationD Reimbursement." exit 1 fi else From 8833181a26e37211a762c91729b65819554237bd Mon Sep 17 00:00:00 2001 From: BimsaraFernando Date: Thu, 20 Jun 2024 11:13:55 +0530 Subject: [PATCH 4/6] reputationd service removal changes --- installer/sashimono-uninstall.sh | 16 ---------------- installer/setup.sh | 4 +++- 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/installer/sashimono-uninstall.sh b/installer/sashimono-uninstall.sh index 3829743..0a2a42e 100755 --- a/installer/sashimono-uninstall.sh +++ b/installer/sashimono-uninstall.sh @@ -196,22 +196,6 @@ if grep -q "^$MB_XRPL_USER:" /etc/passwd; then fi -# Reputatind--------------------- -# Check whether reputationd user exists. If so stop the reputationd service. -if grep -q "^$REPUTATIOND_USER:" /etc/passwd; then - - reputationd_user_dir=/home/"$REPUTATIOND_USER" - reputationd_user_id=$(id -u "$REPUTATIOND_USER") - reputationd_user_runtime_dir="/run/user/$reputationd_user_id" - reputationd_service_path="$reputationd_user_dir"/.config/systemd/user/$REPUTATIOND_SERVICE.service - # Remove reputationd service if exists. - if [ -f $reputationd_service_path ]; then - sudo -u "$REPUTATIOND_USER" XDG_RUNTIME_DIR="$reputationd_user_runtime_dir" systemctl --user stop $REPUTATIOND_SERVICE - sudo -u "$REPUTATIOND_USER" XDG_RUNTIME_DIR="$reputationd_user_runtime_dir" systemctl --user disable $REPUTATIOND_SERVICE - fi - -fi - # Uninstall all contract instance users--------------------------- if [ "$UPGRADE" == "0" ]; then users=$(cut -d: -f1 /etc/passwd | grep "^$SASHIUSER_PREFIX" | sort) diff --git a/installer/setup.sh b/installer/setup.sh index 5036fc9..c24c303 100755 --- a/installer/setup.sh +++ b/installer/setup.sh @@ -1497,6 +1497,7 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer echo "Uninstalling for transfer..." ! UPGRADE=$upgrade TRANSFER=1 $SASHIMONO_BIN/sashimono-uninstall.sh $2 && uninstall_failure fi + remove_reputationd # Remove the evernode alias at the end. # So, if the uninstallation failed user can try uninstall again with evernode commands. remove_evernode_alias @@ -2240,6 +2241,7 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer sudo -u "$REPUTATIOND_USER" XDG_RUNTIME_DIR="$reputationd_user_runtime_dir" systemctl --user stop $REPUTATIOND_SERVICE sudo -u "$REPUTATIOND_USER" XDG_RUNTIME_DIR="$reputationd_user_runtime_dir" systemctl --user disable $REPUTATIOND_SERVICE rm -f $service_path + systemctl daemon-reload local service_removed=true else echo "Evernode reputation for reward distribution is not configured." && exit 1 @@ -2257,7 +2259,7 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer echo "The host is currently not opted-in to Evernode reputation and reward system." && exit 1 fi - local saved_reimburse_frequency=$(jq -r '.reimburse.frequency' "$REPUTATIOND_CONFIG") + local saved_reimburse_frequency=$(jq -r '.reimburse.frequency' "$REPUTATIOND_CONFIG" 2>/dev/null) if [[ "$saved_reimburse_frequency" =~ ^[0-9]+$ ]]; then ! confirm "\nYou have already opted in for reputation reimbursement. Reimbursement interval is $saved_reimburse_frequency hrs. Do you want to change the reimbursement frequency?" && return 1 set_reimbursement_config From b80f56d4675f54402ab73b5b80dff4d8c54b34b7 Mon Sep 17 00:00:00 2001 From: BimsaraFernando Date: Thu, 20 Jun 2024 16:05:43 +0530 Subject: [PATCH 5/6] evernode reputationd status command update --- installer/setup.sh | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/installer/setup.sh b/installer/setup.sh index c24c303..1322238 100755 --- a/installer/setup.sh +++ b/installer/setup.sh @@ -1617,6 +1617,7 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer function reputationd_reimbursement_info() { # check reputationd reimbursement status with config value + #TODO:-apply updated config local saved_reimburse_frequency=$(jq -r '.reimburse.frequency' "$REPUTATIOND_CONFIG" 2>/dev/null) if [[ "$saved_reimburse_frequency" =~ ^[0-9]+$ ]]; then @@ -2244,7 +2245,7 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer systemctl daemon-reload local service_removed=true else - echo "Evernode reputation for reward distribution is not configured." && exit 1 + echo "Evernode reputation for reward distribution is not configured." && return 1 fi $service_removed && echo "Opted-out from the Evernode reputation for reward distribution." @@ -2256,7 +2257,7 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer #check reputationd enabled if [ ! -f "/home/$REPUTATIOND_USER/.config/systemd/user/$REPUTATIOND_SERVICE.service" ]; then # reputationd_enabled=false - echo "The host is currently not opted-in to Evernode reputation and reward system." && exit 1 + echo "The host is currently not opted-in to Evernode reputation and reward system." && return 1 fi local saved_reimburse_frequency=$(jq -r '.reimburse.frequency' "$REPUTATIOND_CONFIG" 2>/dev/null) @@ -2605,12 +2606,14 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer elif [ "$2" == "opt-out" ]; then ! confirm "Are you sure you want to opt out from Evernode reputation for reward distribution?" "n" && exit 1 if ! remove_reputationd; then - echomult "\nError occured removing ReputationD. Retry with the same command again." + echomult "\nError occured removing ReputationD." exit 1 fi elif [ "$2" == "status" ]; then echo "" - ! sudo -u $REPUTATIOND_USER REPUTATIOND_DATA_DIR=$REPUTATIOND_DATA node $REPUTATIOND_BIN repinfo && echo "Error getting reputation status" && exit 1 + if [ -f "$REPUTATIOND_CONFIG" ]; then + ! sudo -u $REPUTATIOND_USER REPUTATIOND_DATA_DIR=$REPUTATIOND_DATA node $REPUTATIOND_BIN repinfo && echo "Error getting reputation status" && exit 1 + fi echo -e "\n" reputationd_info From 0b988c7709e40cba616e494f93e6e5c1963ce678 Mon Sep 17 00:00:00 2001 From: BimsaraFernando Date: Mon, 24 Jun 2024 12:19:06 +0530 Subject: [PATCH 6/6] configure_reputationd_reimbursement changes --- installer/setup.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/installer/setup.sh b/installer/setup.sh index 1322238..ef83741 100755 --- a/installer/setup.sh +++ b/installer/setup.sh @@ -2119,10 +2119,6 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer [ $(stat -c "%a" "$host_key_parent_directory") != "550" ] && chmod -R 550 "$host_key_parent_directory" [ $(stat -c "%a" "$host_key_file_path") != "440" ] && chmod 440 "$host_key_file_path" - if [ "$upgrade" == "0" ]; then - configure_reputationd_reimbursement - fi - if [ "$upgrade" == "0" ]; then echo -e "\nAccount setup is complete." @@ -2221,6 +2217,8 @@ WantedBy=timers.target" >/etc/systemd/system/$EVERNODE_AUTO_UPDATE_SERVICE.timer fi echo "Opted-in to the Evernode reputation for reward distribution." + + configure_reputationd_reimbursement } function remove_reputationd() {