Skip to content

Instantly share code, notes, and snippets.

View openoms's full-sized avatar
🏗️
building

openoms openoms

🏗️
building
View GitHub Profile
@openoms
openoms / install.cln.sh
Last active January 18, 2026 23:55
Install Core Ligthning on a RaspiBolt - cleaned and modified from the RaspiBlitz cl.install.sh
#!/bin/bash
# https://lightning.readthedocs.io/
# https://github.com/ElementsProject/lightning/releases
# CLVERSION=v0.10.2
# install the latest master by using the last commit id
# https://github.com/ElementsProject/lightning/commit/master
# CLVERSION="063366ed7e3b7cc12a8d1681acc2b639cf07fa23"
@openoms
openoms / btcpay-on-raspiblitz.md
Last active January 18, 2026 23:26
LNURLpay over Tor

LNURLpay over Tor

Setup used

  • Raspiblitz on the dev branch (~v1.9.0rc3 - earlier versions should work)
  • CLN / LND with incoming capacity on public channel(s)
  • BTCPayServer v1.8.2 (an earlier version with LNaddress support should work)

Steps to create the service

  • Create user and log in
  • Create Store

Keybase proof

I hereby claim:

  • I am openoms on github.
  • I am oms (https://keybase.io/oms) on keybase.
  • I have a public key ASCqWY7yVe1u69KVVODvL2nZLwnU76k0y0nIS2YYbwwXaQo

To claim this, I am signing this object:

@openoms
openoms / Satochip javacard applet install
Last active September 13, 2025 12:43
Smartcard applets for Bitcoin and PGP on Debian Linux
# cards tested (same used for the SpecterDIY):
# https://www.alibaba.com/product-detail/JCOP-Dual-Interface-Support-RSA4096-ECC_1600070838098.html (no NFC)
# find more links to compatible products at:
# https://github.com/Toporin/SatochipApplet#supported-hardware and
# https://github.com/cryptoadvance/specter-javacard#cards-that-make-sense
# Install the drivers and apps as for the SpecterDIY.
# The Satochip applet can be used parallel on the same card and will have a separate PIN.
# Download the applet from:
# https://github.com/Toporin/SatochipApplet/releases
@openoms
openoms / restoreCLN.md
Last active March 19, 2024 19:56
Restore a CLN node on a Raspiblitz from the database backup on the SDcard

make !backups to your desktop! of:

  • hsm_secret (this is the root key for your onchain funds - can be regenerated from the CLN backup words)
    • stored on the SSD: /home/bitcoin/.lightning/bitcoin/hsm_secret
  • lightningd.sqlite3.backup (this is the realtime channel database backup saved to your SDcard by the backup plugin)
    • find it on the SDcard in /home/bitcoin/. If there are multiple backup files always use the latest one (the backups of the backup are dated and stored when the backup plugin is reinitialized - they can be discarded).

To start the process flash a new SDcard (keep your old SDcard as a backup) and make sure everything is working by starting a new (empty) CLN node and have bitcoind synced.

Upload the backups from your desktop (can use WinSCP on Windows):

@openoms
openoms / Fund c-lightning channel with JoinMarket.md
Created July 8, 2022 22:07 — forked from BitcoinWukong/Fund c-lightning channel with JoinMarket.md
Creating a Core Lightning channel funded by JoinMarket

Software Version

bitcoin core: 0.21.0
core lightning: 0.11.1
joinmarket: 0.9.6

Step 1:

@openoms
openoms / vpn.install.sh
Last active January 2, 2023 03:09
A script to connect to sa shared VPN service with openvpn + set up a killswitch with UFW
#!/bin/bash
sudo apt update
sudo apt install openvpn -y
## define config filename and credentials
echo "# Type or paste the config filename and press ENTER:"
read config; echo $config; echo
#config="VPNconfig"
echo "# Type or paste the VPN username and press ENTER:"
@openoms
openoms / .gitignore
Last active August 13, 2022 07:37 — forked from fiatjaf/.gitignore
hsm_secret and custom invoices with lnurl on c-lightning
venv
*.swo
*.swp
__pycache__
@openoms
openoms / xpub_zpub_convert.py
Created August 17, 2020 08:02 — forked from freenancial/xpub_zpub_convert.py
Convert xpub/xprv to zpub/zprv
import base58
x = 'xprv9s21ZrQH143K2f55zo5GiXiX16MiPzBgc2bEXNd77e1ooGsjxAyXjozyuniqiSB76VESjTW8s7vdsK3NFboha6tZgF9BzcDdNtUT6Aw99P2'
zp = b'\x04\xb2\x43\x0c'
base58.b58encode_check(zp + base58.b58decode_check(x)[4:]).decode('ascii')
# output: 'zprvAWgYBBk7JR8GjFTKfWeX8huXM2ecHEAgSFdg6AQssemZuUWCTVJeywKFxCe1iFUwumU4EQhFnSdjdtGVgzdjAaFmQvY3ARrbvLbjsLf6oNE'
# xprv = b'\x04\x88\xad\xe4'
# yprv = b'\x04\x9d\x78\x78'
# zprv = b'\x04\xb2\x43\x0c'