2023 Feb 19
Finally looked into phantom payments. They are ways to run multiple nodes and get paid to any one of them - helps load balance payments for large volume nodes and helps with uptime if one crashes. A phantom node is one that doesn’t actually exist, but will serve as the destination for a payment where the second to last nodes in the route are real nodes that actually accept the payment. When creating an invoice the preimage and necessary information to accept a payment are communicated between the real nodes, and the sender will route through any one of them to the phantom node. Pretty cool. Can’t/don’t want to support MPP across phantom nodes because of race conditions between nodes that would be required to make payments atomic (enough). Seems mainly something that could be implemented by a user as opposed to something to support directly from LDK.
It was pretty interesting today someone was asking me about my gap semester stuff and asked if I went to Chicago for offices to work. They asked “does Bitcoin not have offices set up in Chicago or something?” And I shared a bit about how Bitcoin development works and how it gets funded, etc. This person seemed genuinely enthused at how the development of Bitcoin is decentralized, and somewhat self-sustaining, and it was cool to share that.
<C-r>
in the command line will pull up a search for previous commands!](https://superuser.com/questions/299694/is-there-a-directory-history-for-bash)I really went on quite a rabbithole today.
Cool project to port linux onto M1 macs.
Good minimal theme (honggfuzz).
Cloudflare has their own static site hosting.
Linode seems like a pretty good VPS maybe for personal usage. Cheaper than AWS and Azure, and Among Us uses it lol.
Can host your own git server with this and a web frontend with cgit or GitWeb.
FFI stands for Foreign-Function Interface and is used to bind one language to another. This is Rust’s libc.
GNU is a project to create a Unix-like operating system, that was free (as in freedom). It has a very opinionated philosophy on software being free, i.e. that computer users should have the right to see the source code, ensure it does what it says it does, change it, and distribute it freely. GNU got most of the way there, except for the kernel, which ended up being integrated with Linux, basically GNU but for the kernel, made by Linus Torvalds. People often refer to the operating system as linux, but really most of the code is actually GNU, and it’d be more apt to refer to the operating system by GNU/linux.
Main open source licenses I feel like are important to know: GNU Public License (GPL) means that any distributed versions of this software must be open-source as well and will inherit the GPL, MIT means it’s free to change and distribute, but code using this code doesn’t have to be open-source, i.e. you can distribute as a binary, although any open-sourced code must also have the MIT license. Source. BSD two-clause is basically MIT, otherwise BSD has variations regarding a spectrum of permissions. Apache 2.0 also seems to be same as MIT. Many rust projects just do dual license Apache and MIT.
Free vs. open source are different. People nowadays seem to say FOSS to be neutral.
Apparently Torvalds created linux because he couldn’t afford Unix. It’s probably not really true but I want it to be.
For some reason in my mind I always had this idea that Git has just always existed, but before Git people used a different version control software called Subversion which was basically where everyone just committed to main! Git introduced distributed workflows. Would’ve literally found this by visiting the home page :|.
- Git, Linux and other projects are maintained entirely over mailing lists! I remember I heard that initially Bitcoin was maintained through email, and I didn’t realize that’s an actual form of organizing development. It’s honestly crazy how oblivious I and other young developers are to where everything has come from.
Oh the internet. Visualizing commit history.