01whole.pdf (17.96 MB)
Download file

Implementation of a light Bitcoin client in Scala

Download (17.96 MB)
thesis
posted on 28.03.2022, 19:15 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.

History

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.

Notes

Bibliography: pages 83-86 Empirical thesis.

Awarding Institution

Macquarie University

Degree Type

Thesis bachelor honours

Degree

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

Department, Centre or School

School of Engineering

Year of Award

2016

Principal Supervisor

Franck Cassez

Rights

Copyright Luke Knight 2016. Copyright disclaimer: http://mq.edu.au/library/copyright

Language

English

Extent

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

Former Identifiers

mq:70318 http://hdl.handle.net/1959.14/1262505

Usage metrics

Keywords

Exports