add file i forgot to checkin last commit
authorIan Kelling <iank@fsf.org>
Sun, 19 Nov 2017 17:40:10 +0000 (12:40 -0500)
committerIan Kelling <iank@fsf.org>
Sun, 19 Nov 2017 17:40:10 +0000 (12:40 -0500)
disabled/bitcoin [new file with mode: 0644]

diff --git a/disabled/bitcoin b/disabled/bitcoin
new file mode 100644 (file)
index 0000000..96239ca
--- /dev/null
@@ -0,0 +1,107 @@
+#!/bin/bash
+## bitcoin disabled. fees too high
+
+if [[ $HOSTNAME == frodo ]]; then
+        case $distro in
+            debian)
+                if [[ `debian-archive`  == testing ]]; then
+                    # has no unstable dependencies
+                    pi bitcoind/unstable
+                    src=/a/opt/bitcoin/contrib/init/bitcoind.service
+                    s cp $src /etc/systemd/system
+                    p=/etc/bitcoin/bitcoin
+                    dst=/etc/systemd/system/bitcoinjm.service
+                    # jm for joinmarket
+                    $sed -r "/^\s*ExecStart/s,${p}.conf,${p}jm.conf," $src \
+                             >/etc/systemd/system/bitcoinjm.service
+
+                    d=jm; jm=d # being clever for succinctness
+                    for s in d jm; do
+                        s $sed -ri "/^\s*\[Unit\]/a Conflicts=bitcoin${!s}.service" \
+                              /etc/systemd/system/bitcoin${s}.service
+                    done
+
+                    ser daemon-reload
+
+                    dir=/nocow/.bitcoin
+                    s mkdir -p $dir
+                    s chown -R bitcoin:bitcoin $dir
+                    dir=/etc/bitcoin
+                    s mkdir -p $dir
+                    s chown -R root:bitcoin $dir
+                    s chmod 750 $dir
+
+                    # pruning decreases the bitcoin dir to 2 gb, keeps
+                    # just the recent blocks. can\'t do a few things like
+                    # import a wallet dump.
+                    # pruning works, but people had to do
+                    # some manual stuff in joinmarket. I dun need the
+                    # disk space, so not bothering yet, maybe in a year or so.
+                    # https://github.com/JoinMarket-Org/joinmarket/issues/431
+                    #https://bitcoin.org/en/release/v0.12.0#wallet-pruning
+                    #prune=550
+
+                    f=$dir/bitcoin.conf
+                    s dd of=$f <<EOF
+    server=1
+    # necessary for joinmarket, not bad in general
+    rpcpassword=$(openssl rand -base64 32)
+    rpcuser=$(openssl rand -base64 32)
+    EOF
+
+                    # dunno about sharing a wallet between multiple instances
+                    # manually did, wallet.dat symlinked in /nocow/.bitcoin
+                    sgo bitcoind
+                fi
+                ;;
+            # other distros unknown
+        esac
+
+
+
+        ## disabling joinmarket, its too expensive
+        ### begin joinmarket setup ###
+
+        case $distro in
+            debian)
+                f=$dir/bitcoin.conf
+                f2=$dir/bitcoinjm.conf
+                s cp $f $f2
+                s tee -a $f2 >/dev/null <<EOF
+    # Joinmarket
+    walletnotify=curl -sI --connect-timeout 1 http://localhost:62602/walletnotify?%s
+    alertnotify=curl -sI --connect-timeout 1 http://localhost:62602/alertnotify?%s
+    wallet=joinmarket.dat
+    EOF
+
+                ;;
+            # other distros unknown
+        esac
+
+        pi libsodium-dev python-pip
+        cd /a/opt/joinmarket
+        # using develop branch, as it seems to be mostly bug fixes,
+        # and this is quite new software.
+        # note: python3 does not work.
+        # has seg fault error due to some bug, but it still works
+        pip install -r requirements.txt || [[ $? == 139 ]]
+        # note, the target must exist ahead of time, or bitcoin
+        # just overwrites the link, and it\'s not happy with an empty file,
+        # so we have to create the wallet, then move and link it.
+        s lnf -T /q/bitcoin/wallet.dat /nocow/.bitcoin/wallet.dat
+        s lnf -T /q/bitcoin/joinmarket.dat /nocow/.bitcoin/joinmarket.dat
+        # not technically needed, but seems cleaner not to have
+        # symlinks be root owned unlike everything else
+        s chown -h bitcoin:bitcoin /nocow/.bitcoin/*
+
+        for var in rpcuser rpcpassword; do
+            u="$(s sed -rn "s/^$var=(.*)/\1/p" /etc/bitcoin/bitcoin.conf)"
+            # escape backslashes
+            u="${u//\\/\\\\\\\\}"
+            # escape commas
+            u="${u//,/\\,}"
+            sed -ri "s,^(rpc_${var#rpc}\s*=).*,\1 $u," joinmarket.cfg
+        done
+        sed -ri "s/^\s*(blockchain_source\s*=).*/\1 bitcoin-rpc/" joinmarket.cfg
+        ### end joinmarket setup ###
+fi