OU blog

Personal Blogs

CCNx Class at Kingston University

Nix₿, my capstone project.

Visible to anyone in the world
Edited by Andre de Amorim, Monday 6 October 2025 at 14:04

Hi all,

After years of effort, I'm finally facing my last undergraduate Open University module, TM470.
The module TM470 - The computing and IT project, as I understand it, emphasizes the student as a reflective practitioner. 

My TM470 project idea is born from a frustration: my failure to deliver a software prototype for TM354, even though it wasn't a module requirement I really would like to at least have an MVP of the knowledge I was getting from the module. This experience, coupled with observing common open-source issues like library abandonment after a key developer's departure—a frequent problem in volunteer-driven projects—has profoundly shaped my approach.

"Reproducibility is fundamental to scientific progress," as the saying goes. For my project, I selected TM353 and TM354 as essential Stage 3 knowledge sources. TM354, in particular, offered a superb general overview of industry-standard software engineering, encompassing agile and waterfall methodologies, and the entire software development lifecycle, while TM353 helps me to understand the software (technology) is never in a vacuum it’s a part of wider ecosystem a socio-technical system. 

For my TM470 project, I've decided to tackle a real-world open-source problem: creating a reproducible environment for LNBits using Nix. This idea stemmed from a core LNBits developer's dilemma: whether to remain on a mature but unmaintained code branch or switch to a newer, less tested one. This situation echoes concepts from TM353, particularly the challenges of IT system maintenance and evolution when essential libraries reach their end-of-life.

Donella H. Meadows' 2009 quote, "Everything we think we know about the world is a model. Every word and every language is a model. All maps and statistics, books and databases, equations and computer programs are models. So are the ways I picture the world in my head—my mental models. None of these is or ever will be the real world," profoundly influenced me. This perspective, perhaps hinting at solipsism, prompted me to explore further by acquiring the "Thinking in Systems" audiobook and additional resources, particularly from the MIT systems dynamics courses mentioned later in this post.

Engage in a practical project that addresses a real-world CI/CD challenge within a community such as Bitcoin. This approach guarantees that the module will be consistently engaging and I will not get bored 😁.  

My current plan involves leveraging Nix for reproducibility, beginning with Eelco Dolstra's 2006 PhD thesis, "The purely functional software deployment model" (Utrecht University), which was the genesis of the NixOS project. I also plan to investigate Nix's applications in various domains, such as High-Performance Computing (HPC) systems, and to explore its distinctions from other solutions. This comparative analysis will include language-specific package managers (e.g., npm, pip, poetry, uv) and other virtualization technologies like Linux containers and Docker.  

Given the established issues surrounding reproducibility and the advantages of Nix, my current understanding of Bitcoin is significantly shaped by socio-technical perspectives within the Bitcoin community. My primary resources include the Bitcointalk forum, The Satoshi Institute, P2P Foundation, and books such as The Genesis Book, The Bitcoin Standard, and Softwar—the latter providing an unexpected military application in terms of power projection. Considering Bitcoin's inherent complexity, which involves the integration of cryptography, distributed systems, and economics, I believe that a Systems Thinking approach would considerably deepen our comprehension. 

Bitcoin is a digital currency that operates independently of central banks and single administrators, functioning as electronic money or digital gold. It facilitates peer-to-peer transactions by employing triple-entry accounting to resolve the "double-spending problem" in distributed systems, eliminating the need for banking intermediaries.

The Lightning Network operates as a Bitcoin-based solution to enhance the speed and affordability of transactions. Using Bitcoin for small transactions becomes impractical because the network approval process takes extended periods of time while generating high transaction fees. The Lightning Network operates as an independent system known as "layer two" which enables users to perform fast and affordable transactions. Users can establish pre-paid tabs at coffee shops which enable them to make numerous small transactions before the system records their total amount on the main Bitcoin ledger. The system enables users to perform everyday transactions efficiently, think about petty cash daybook.

LNbits functions as a user-friendly interface which enables people to access the Lightning Network. A Lightning node enables LNbits to function as a basic wallet system which operates as a user interface for managing digital funds and building Lightning Network applications. The system enables users to handle digital funds through an accessible interface while developers can construct Lightning Network applications without needing to build everything from scratch. The system transforms complicated technical operations into straightforward user-friendly interfaces.

This video called "LNbits as a UI for nix-bitcoin" by Ben Arc  from the Bitcoin++ conference (October 2023 Berlin, Germany) provides an overview of the project's likely scope.

The software management system Nix operates as a tool to guarantee that software development and execution follows a consistent pattern. The software used for financial transaction management requires absolute security and stability because it handles money transactions. The software development process under Nix requires a detailed recipe that includes all required components for building the system. The system ensures software consistency across all deployment locations.

My TM470 dissertation/capstone project focuses on the reproducibility of IT systems, specifically within the Bitcoin environment. This project seeks to provide concrete benefits to the LNBits community, thereby supporting the wider STEM community and organizations such as the Hackspaces Foundation because many LNBits labs ( https://shop.lnbits.com/ ) are Free and Open-Source Software (FOSS) projects aimed at makers, offering a potential route from a hobby into a professional career within the significant UK fintech sector.

I've registered https://nixb.org/ as a domain to document all my research, including work from GitHub. For software editing, I'll be using Google's Firebase Studio. It's a web-based VSCode that uses Nix in its default configuration, although it utilizes Nix flakes—a topic I'll also be researching for my project.

P.S. I am also interested in establishing an OU Bitcoin Club at OpenSU, PM me if you also interrested 😉, drawing inspiration from initiatives like https://bitcoin.mit.edu/.

Best Regards,
–Andre A


Some references I have in mind beyond my TM353/TM354 textbooks.

Related to Systems Thinking

1 - Wright, D. and Meadows, D.H. (2009) Thinking in Systems: A Primer. 1st edn. London: Routledge.

2 - Wendy Tremont King and Diana Montalion (2024) ‘Learning Systems Thinking’. Ascent Audio. 

3 - Arantes do Amaral, João Alberto. (2019). The cartoon guide to system dynamics.

Related to Software Engineering and Architecture.
1 - Martin, R.C. et al. (2018) Clean architecture : a craftsman’s guide to software structure and design. 1st edn. Boston: Prentice Hall.

Related specifically to Nix 
1 - Dolstra, E., 2006. The purely functional software deployment model. Utrecht University.

2 - Dolstra, E. and Löh, A., 2008, September. NixOS: A purely functional Linux distribution. In Proceedings of the 13th ACM SIGPLAN international conference on Functional programming (pp. 367-378).

3 - Bruno Bzeznik, Oliver Henriot, Valentin Reis, Olivier Richard, and Laure Tavard. 2017. Nix as HPC package management system. In Proceedings of the Fourth International Workshop on HPC User Support Tools (HUST'17). Association for Computing Machinery, New York, NY, USA, Article 4, 1–6.

Related to Bitcoin Community
1 - Van Wirdum, A. (2024) The Genesis Book. Available at: https://thegenesisbook.com/ (Accessed: 29 June 2025).
 
2 - Lowery, J. P. (2023) Softwar: A Novel Theory on Power Projection and the National Strategic Significance of Bitcoin. Available at: https://dspace.mit.edu/handle/1721.1/153030 (Accessed: 29 September 2025).

3 - Ammous, S., 2018. The bitcoin standard: the decentralized alternative to central banking. John Wiley & Sons.

Permalink
Share post