1 of 15

https://youtu.be/mVaS-gLi1Co

2 of 15

Concrete architecture�of Bitcoin Core

Presenter:

Xueyi Jia

Jihong Zhang

Leader:

Jinlun Zhang

3 of 15

Contents Overview

Introduction

Derivation Process

Alternatives Architecture

Concrete Architecture / Reflection Analysis

Second-level subsystem with Reflection 

Use case

Lesson Learnt /Limitation 

Conclusion 

3

4 of 15

Introduction��

Conceptual Architecture (in A1)

What dependencies added/removed

Concrete Architecture

Intention of Reflection model

4

5 of 15

Derivation Process

Brainstorm -> Mapping by Understand -> Ideas Organization -> Make sketch

(Mapping by Understand)

(Update Concrete Architecture)

6 of 15

Alternatives Considered

6

  • Alternatives - Conceptual Architecture
    • Modify due to external knowledge
    • Repeated verification

  • Alternatives - Concrete Architecture
    • Rebuild model by Understand
    • Mapping Connections between subsystems
    • Add/Remove due to unexpected components

7 of 15

Reflection Analysis

Generally, through observing the clean concrete architecture shown on Understand, one can immediately notice the 2 unexpected top-level components, ‘Utility’ and ‘Consensus Method’. The Utility component in the cleaned concrete architecture stores a wide variety of files for the consistent and reliable deployment and execution of Bitcoin Core.

7

8 of 15

Conceptual Architecture Changed

  • Overview:

  • Client-and-Server style

  • New subsystems: Utility’ and ‘Consensus Method’

  • Many new dependencies

8

9 of 15

9

  • New dependencies: 

  • RPC-API => Miner

  • Wallet => Validation Engine

  • Wallet => Connection Manager

  • Storage Engine <=> Miner

10 of 15

2nd-Level Subsystem

Component related to mining of blocks in conceptual architecture

  • Mining hardware
  • Mining software
  • Mining pools
  • Mining nodes
  • Networking and communication

10

Conceptual Architecture of Mining 

11 of 15

2nd-Level Subsystem of Reflection Analysis

Component related to mining of blocks

  • Block Constructor 
  • Proof of Work (Pow) Algorithm
  • Miner Node
  • Mining-related RPCs
  • Merkle Tree 

11

Dependencies of Mining by Understand

Concrete Architecture of Mining

12 of 15

Sequence Diagram

Use case of Mining

13 of 15

Lesson Learnt/Limitations

What we Learnt

  • Differences between Conceptual and Concrete Architectures 

  • Value of Scitools Understand

  • Importance of teamwork

Limitations

  • Complexity and time-consuming nature of Scitools Understand.

  • Insufficient documentation in Bitcoin Core source code.

  • Redundant dependencies complicating Concrete Architecture analysis.

13

14 of 15

Conclusion

  • Identified the client-server architectural style as suitable for the Concrete Architecture.
  • Refined the Conceptual Architecture by studying developer documentation and using Scitools Understand.
  • Revealed new dependencies between subsystems through reflective analysis.

  • Removed some dependencies for testing and maintenance to clarify component relationships.

  • Gained a deeper understanding of Bitcoin Core's architecture, benefiting future research, development, and maintenance efforts.

14

15 of 15

Thank you