Hi, I'd like to explore the possibility of collaboration with cryptoanarchy deb repository, which approaches the topic of making a Bitcoin full node with accompanying software using Debian packages.
apt-get install X and X gets installed and configured together with its dependencies automatically.debconf and other tooling.debconf makes it possible to avoid irrelevant configuration options (e.g. port numbers) without missing the important questions (e.g. "Your disk space is low, select another location for Bitcoin timechain data")Replaces, obviously)Cryptoanarchy deb repo builder is currently experimental and so I wouldn't advise to integrate it into raspiblitz at this moment. This issue is meant to open the discussion about sharing our resources in order to create a better system, hopefully sooner.
Things that might be relevant/interesting for raspiblitz, in no particular order:
btc-rpc-proxy to make permissions even more granular. This is a notable exception to the above because there's zero security benefit running it under a different user than bitcoin-mainnetbtc-rpc-proxy is automatically configured to use correct RPC port of bitcoind and it's automatically, correctly reconfigured when it's changed using dpkg-reconfiure. Making this work was a bit tedious, so there are plans to make it even cleaner./var/lib/bitcoin-mainnetdbconfig (not to be confused with debconf) to automatically, correctly configure the databaseelectrs requiring the absence of pruning. In this case, there's a special package bitcoin-fullchain-mainnet that's only responsible for configuration - has no code, nor services. The installation of this package turns off pruning. electrs then depends on this package. (Actually, during writing of this I realized, I forgot to add this dependency correctly. :D Will be easy fix soon.)We have discussed this briefly at LNConf, so as far as I remember, this is interesting for you. I'd like to know some things to understand how should I continue.
Raspberry Pi is currently not my target platform. I have some specific requirements about automation and UX. As much as I like to contribute to Open Source projects, I can't afford to do this kind of contribution without getting anything back. I'm seeking balanced cooperation, where I provide a framework for doing the things described above and support for that framework and get back help with testing and packaging new things. I figured it's better to be open and honest about this. Hope we can find some common ground.
I can see that idea and if a trusted community builds around that repo it can be a source to make installs of apps easier and get interesting for a project like RaspiBlitz. @Kixunil keep us updated.
What would be the best approach in your opinion? To wait until every piece of Raspiblitz is packaged or to have mixed version first? Mixed version seems to be easier to me, but maybe there's a very good reason to avoid it?
Is it possible to start with apps like wasabi/btcpayserver/qpay while keeping bitcoin/lnd like it is for the time beeing? Also can you maybe give on the next Lightning Hackday a short overview how you plan to build up a community review over that repo?
Since bitcoin and lnd are dependencies of all others doing it in the opposite direction is not great, but it is technically possible. We could create special packages that contain nothing and provide the necessary features (configuration mainly) and have Provides field. Ideally we would have them as a separate component of the resulting deb repo to avoid accidentally messing up normal installations.
I think the overview is short enough to write it here. :)
bitcoind and lnd by downloading already deterministically built binaries (this was originally to cut build time, but it looks like I will keep it due to security benefits)codechaindebcrafter, that I'd like to solve before all this (mainly to make debcrafter more modular, cleaner and easier to review; possibly also moving the whole building to it, skipping makefiles, which are annoying to work with)I don't plan to attend Lightning Hackday in person at this moment (this could change, but unlikely, especially due to Corona, I'm surprised it wasn't canceled yet), but I would be interested in remote participation if possible.
The Lightning Hackday will be online/remote - so there will be a chance.
Maybe it makes sense to start first a new kind of device to use your repo for - is there a open router or a NAS based on debian for which the repo can be used to easily build a node plugin?
Once there is a good trusted codechain governance we could think about changing the lnd & bitcoind installs.
I don't know about existing Debian-based routers/NAS. I did some basic tests on Odroid H2 with freshly installed Debian 10 and it looks good. I will definitely test more. I'd like to finish RTL (working on it right now) before serious testing.
Most helpful comment
I can see that idea and if a trusted community builds around that repo it can be a source to make installs of apps easier and get interesting for a project like RaspiBlitz. @Kixunil keep us updated.