Adds the 15 min average btc/usd exchange rate via Tor API call to blockchain.info
Utilizes rpcauth instead of plain text rpc credentials
rpcuser and rpcpassword can still be used but as far as Gordian Server is concerned it will only check for rpcauth=GordianServer:xxxx, if the GordianServer user has not been added it automatically generates its own rpcauth creds and adds them to the bitcoin.conf
If for some reason rpc creds are invalid it prompts the user to refresh the credentials in a graceful way (delete the existing invalid auth, ensure Bitcoin Core has been stopped, if the creds are missing when attempting to start bitcoind they will get automatically added via prompt)
Bug fixes where the installer prompt may have launched twice when editing the default bitcoin.conf settings prior to installation
Removes all scripts where native swift code could instead be used
Much improved handling of invalid rpc credentials
Python 3.9 and PythonKit are now embedded into the app allowing us to use rpcauth.py, Python can be removed with a simple file that translates rpcauth.py to Swift, however embedding python allows us to do some interesting things for future extensibility like integrating Join Market in its entirety as a native macOS app, c-lightning also has Python related code
⚠️ This PR breaks Apples notarization of the dmg, this can be fixed by signing the embedded Python related libraries with the following script and disabling Disable Library Validation under the Hardened Runtime capability in Xcode:
function signThese() {
find . -name "*.$1" | while read line; do
codesign --force --verbose=4 --options=runtime --timestamp --sign "Developer ID Application: [INSERT YOUR CERT HERE]" $line
done
}
⚠️ This has only been tested on M1 MacBook, needs to be tested on Intel
rpcauth
instead of plain text rpc credentialsrpcuser
andrpcpassword
can still be used but as far as Gordian Server is concerned it will only check forrpcauth=GordianServer:xxxx
, if theGordianServer
user has not been added it automatically generates its ownrpcauth
creds and adds them to thebitcoin.conf
rpcauth.py
, Python can be removed with a simple file that translatesrpcauth.py
to Swift, however embedding python allows us to do some interesting things for future extensibility like integrating Join Market in its entirety as a native macOS app, c-lightning also has Python related codeDisable Library Validation
under theHardened Runtime
capability in Xcode: