diff options
Diffstat (limited to 'bitcoin.install')
-rw-r--r-- | bitcoin.install | 81 |
1 files changed, 10 insertions, 71 deletions
diff --git a/bitcoin.install b/bitcoin.install index bbe9e63a5b02..35a07dc58615 100644 --- a/bitcoin.install +++ b/bitcoin.install @@ -3,27 +3,26 @@ _bc_group=bitcoin post_install() { _mkuser - # disable Copy-On-Write (btrfs directories only) _dir="/var/lib/bitcoind" - mkdir -p "$_dir" - _is_btrfs "$_dir" && _disable_cow "$_dir" - if test ! -f /etc/bitcoin/bitcoin.conf; then - cp /etc/bitcoin/bitcoin.conf.dist /etc/bitcoin/bitcoin.conf + if test -d "$_dir"; then + # disable Copy-On-Write (btrfs directories only) + # This avoids lots of known db-corruption issues + _is_btrfs "$_dir" && chattr +C "$_dir" + else + mkdir "$_dir" + chown -R $_bc_user:$_bc_group "$_dir" + chmod 750 "$_dir" fi - chown -R $_bc_user:$_bc_group /etc/bitcoin "$_dir" + chown -R $_bc_user:$_bc_group "$_dir" printf "%b\n" "$bitcoin" } post_upgrade() { _mkuser - chown -R $_bc_user:$_bc_group /etc/bitcoin "/var/lib/bitcoind" + chown -R $_bc_user:$_bc_group /etc/bitcoin printf "%b\n" "$bitcoin" } -post_remove() { - _rmuser -} - # ------------------------------------------------------------------------------ # helper functions for creating bitcoin user / group @@ -38,13 +37,6 @@ _mkuser() { } } -_rmuser() { - echo -n "Removing bitcoin user... " - userdel $_bc_user 2>/dev/null - echo "done" -} - - # ------------------------------------------------------------------------------ # helper functions for disabling btrfs Copy-On-Write (CoW) # https://wiki.archlinux.org/index.php/Btrfs#Copy-On-Write_.28CoW.29 @@ -58,56 +50,3 @@ _is_btrfs() { return 1 fi } - -# disable btrfs CoW -_chattrify() { - # original dir, with trailing slash stripped if it exists - _orig_dir=$( echo "$1" | sed 's@/$@@' ) - - # if original dir exists, back it up - [[ -d "$1" ]] && mv "$1" "${_orig_dir}"_old - - # re-make original dir - mkdir -p "$1" - - # set permissions on re-made dir - chmod "$2" "$1" - - # disable btrfs CoW on re-made dir - chattr +C "$1" - - # recursive copy to restore backed up dir while maintaining disabled CoW - [[ -d "${_orig_dir}"_old ]] \ - && find "${_orig_dir}"_old -mindepth 1 -maxdepth 1 -exec cp -R '{}' "$1" \; - - # set ownership on re-made dir - chown -R $3:$4 "$1" - - # purge backed up dir - [[ -d "${_orig_dir}"_old ]] && rm -rf "${_orig_dir}"_old -} - -_disable_cow() { - _chattrify "$1" "750" "$_bc_user" "$_bc_group" -} - - -read -d '' bitcoin <<'EOF' -############################################################ -# # -# Bitcoin Classic # -# ____________ # -# # -# To start bitcoin-classic: # -# # -# # systemctl start bitcoind # -# # -# To communicate with bitcoin-classic as a normal user: # -# # -# $ bitcoin-cli help # -# # -# Config: /etc/bitcoin/bitcoin.conf # -# Blockchain: /var/lib/bitcoind # -# # -############################################################ -EOF |