a fork with custom mods; see original at https://github.com/nakamochi/sysupdates
Go to file
alex 23911a4c9d
btc: upgrade bitcoind from 24.0.1 to 25.1
a couple selected release notes:

* transactions with 65+ bytes in non-witness data are now acceptable by
  mempool and relay policies.
* improvements to parallel compact block downloads
* avoid serving stale fee estimates

new features which nakamochi might find useful in the future:

* a new shutdownnotify option, a command to exec synchronously before
  bitcoind initiates its shutdown sequence
* a new /rest/deploymentinfo endpoint which reports consensus changes

all details:

- https://bitcoincore.org/en/releases/25.0/
- https://bitcoincore.org/en/releases/25.1/
2023-11-29 13:14:35 +01:00
base base: disable 'abort on errors' in tor setup script 2023-03-29 07:46:43 +02:00
btc btc: upgrade bitcoind from 24.0.1 to 25.1 2023-11-29 13:14:35 +01:00
files/etc btc,lnd: ensure service loggers are present 2023-06-08 14:14:06 +02:00
keys keys: add my other, newer gpg key 2023-02-05 21:47:44 +01:00
lnd lnd: upgrade from 0.16.4 to 0.17.2 2023-11-29 12:57:59 +01:00
ndg ndg: upgrade to v0.6.0 2023-10-19 06:18:23 +02:00
LICENSE initial import 2022-10-01 00:01:42 +02:00
README.md docs: add a section on how to test changes on a live device 2023-04-15 09:59:57 +02:00
apply.sh apply: report a bit more info during an update run 2023-06-08 14:08:19 +02:00
update.sh apply: report a bit more info during an update run 2023-06-08 14:08:19 +02:00

README.md

system updates

the plan is for this repo to contain all system updates, incremental in a form of text/source code. a node periodically runs the update.sh script which pulls the repo to receive updates executes apply.sh. the latter then makes changes and updates the operating system.

at the moment, all updates are executed in form of shell scripts. these are error-prone and hard to reason about in a comprehesive way once the codebase gets sufficiently large. the short term goal is to migrate shell scripts to something more managaeble like saltstack but with less resource requirements, suitable for embedded devices without python dependencies.

typical update examples are: upgrade bitcoind, lnd and other services, system packages, improve configuration of components such as firewall. the run sequence on the node is approximately as follows:

  1. fetch updates with a git fetch.
  2. provide a git diff on the screen and confirm with the user.
  3. pull in the changes with a git pull --verify-signatures.
  4. run apply.sh.

at the moment, an on-screen diff and confirmation aren't implemented yet. nd and ngui is where it'll happen, in the ndg repo.

when configuring a new node, clone this repo and set up a cron job to execute the update.sh script once a day. The script requires REPODIR and LOGFILE env variables set.

TODO: add a list of supported platforms; the "native" is void linux.

testing a live change

the procedure to run a modified sysupdate on the device while ssh'ed into the instance.

first, make sure periodic updates are disabled:

chmod -x /etc/cron.hourly/sysupdate

then set required env variables and run the apply script:

cd /ssd/sysupdates
export SYSUPDATES_ROOTDIR=$PWD
./apply.sh

to reactivate periodic sysupdates, flip the x bit:

chmod +x /etc/cron.hourly/sysupdate

note that the periodic sysupdate script will revert the repo to the latest commit of the branch specified in the script or master as the default.