Macquarie University
01whole.pdf (17.96 MB)

Implementation of a light Bitcoin client in Scala

Download (17.96 MB)
posted on 2022-03-28, 19:15 authored by Luke Knight
Bitcoin's blockchain is continuously growing and to run a full Bitcoin client requires almost 100GB of storage. The light client is one that performs the tasks of a full Bitcoin client but limits bandwidth and storage by verifying payments using a technique that doesn't require downloading and maintaining the full blockchain. Not only are light clients important for the Bitcoin ecosystem with the growth of mobile devices, but software developers have acknowledged the difficulty in programming Bitcoin related applications as it is a complicated technology with a large network of nodes performing various roles. Moreover, there exists minimal documentation regarding how to build a light Bitcoin client from the ground up. This results in minimised exposure to an innovative technology, less awareness towards improving it, and limits the development efforts around clients in the ecosystem. This paper explores the role and development of a light client, with implementation details in Scala. The client is usable via an external DSL and REPL with an architecture that could be extended to add GUI functionality. This paper aims to aid developers in understanding light client implementations, specifically in Scala, and to evaluate the language's effectiveness in the domain. The project may also provide a basic implementation for a future production light client and expose an open-source implementation to Scala developers in a community where one does not yet exist.


Table of Contents

1. Introduction -- 2. Background and related work -- 3. Design and implementation -- 4. Discussion -- 5. Conclusions and future work -- 6. Abbreviations -- Appendices -- Bibliography.


Bibliography: pages 83-86 Empirical thesis.

Awarding Institution

Macquarie University

Degree Type

Thesis bachelor honours


BSc (Hons), Macquarie University, Faculty of Science and Engineering, School of Engineering

Department, Centre or School

School of Engineering

Year of Award


Principal Supervisor

Franck Cassez


Copyright Luke Knight 2016. Copyright disclaimer:




1 online resource (xv, 86 pages diagrams, graphs)

Former Identifiers


Usage metrics

    Macquarie University Theses