Bitcoind, Tor, Hwi and dependencies management #8910
lontivero
started this conversation in
General & Publications
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Warning: i am still thinking about this topic so, do not take it seriously (yet)
All software is build on top of other software, those other pieces can be in lots of shapes and colors, they can be libraries in source code or binary form, they can be other applications like database management systems, containers or any other executable (or non-executable things) that can be already available in the platform or not.
A bit of history
Before the 90s all software came "with batteries included", an extremely common expression that used to mean that the software was self-sufficient and didn't need any extras in order to work. Of course there were dependencies, video games used to depend on EGA emu while programming languages came with all the libraries, an assembler compiler and in some cases came even with the IDE included.
During the early 2000's I was amazed of working for a company that paid a MSDN subscription and received a box full of CD ROM containing all kind of Microsoft software, they used to work well with other software available in other CDs and then I had to install the dependencies one by one by hand. For that reason, installing the software that we developed was only possible after some training, there was a department with technical skill enough to install the software and all their dependencies in the clients' infrastructure.
Wasabi with batteries included (and versioned)
Wasabi not only comes with its batteries included in the released installers but it also keeps them under version control. This means that every time a new
Bitcoinversion,Hwiversion orTorversion is released Wasabi adds that to the repository.Package management
Software dependencies are managed by package managers. For example, if you download the
torbrowser-launcher_0.3.5-3_amd64.debpackage for debian (or ubuntu) you will see that it is a 58KiB file that doesn't includes Tor nor Tor Browser. Instead, it depends on Tor and then APT downloads and installs Tor automatically.At this point you understand what i mean, right? Yes, Wasabi comes with batteries and I think it should not.
Why, instead of having a big installer containing everything we don't simply let the package manager to install what we need? Well,
because there are not packages for things like
Hwifor any platform and there is notTorfor Windows! (and because Package Manager is somehow an unknown concept for most Windows users)Dealing with unavailable packages
It is somehow expected that not-so-popular packages like
Hwiare not available in all the platforms. In those cases it makes sense to have our wrap that dependency with a client and publish it as a nuget package.note: that's what
BtcPayServerdoes and what somerustprojects use (there is a rust crate for that too)Packages nightmare
While in many Linux distributions Tor, Bitcoin and Hwi are available, there are other where they are not. This is specially true for Windows where users don't use package managers, in general. So, delegating the discovery, installation, upgrading, removal and configuration of packages to the platform specific package manager is not so great.
The alternative for Wasabi would be to use nuget (what sucks for those platforms that do the things right) and create the nuget packages for at least
HwiandTor.Beta Was this translation helpful? Give feedback.
All reactions