Add instructions for verifying download integrity against release signer keys
Summary:
The current process for verifying Bitcoin ABC binaries is unclear.
An example of how users experience this can be seen here: https://old.reddit.com/r/btc/comments/egj10s/where_can_i_find_bitcoin_abc_pgp_keys/
However, that example only scratches the surface as there are multiple issues here:
- The keys are not easy to find/download.
- Having some copy of the key fingerprints has no gaurantees against tampering of the fingerprints out of the box.
- While verifying the binary hashes match the signature file(s) is easy, not all users verify the integrity of the signature files themselves.
This patch is a good first step to help tackling the above issues. It provides a mechanism for users to easily identify
tampering in any part of the download process, given that they are not downloading a fresh copy of the release keys.
If the later cannot be assumed, the user is provided with the necessary tools to do so for future downloads.
Test Plan:
Version 0.20.11+:
# test a similar set of commands on locally-generated source package ninja package_source VERSION="0.20.11" KEYS_FILE="bitcoin-abc-${VERSION}/contrib/gitian-signing/keys.txt" # tweaked the line below since no release currently contains keys.txt tar -zxOf <build-dir>/bitcoin-abc-0.20.11.tar.gz "${KEYS_FILE}" | while read FINGERPRINT _; do gpg --recv-keys "${FINGERPRINT}"; done
Earlier versions:
- Download any number of binaries from https://download.bitcoinabc.org/0.20.9/<platform>
- Download signature files from https://download.bitcoinabc.org/0.20.9/
- Follow the second set of instructions for earlier versions.
Reviewers: #bitcoin_abc, deadalnix, Fabien
Reviewed By: #bitcoin_abc, Fabien
Subscribers: Fabien
Differential Revision: https://reviews.bitcoinabc.org/D4807