← Back to Projects

RPC Bitcoin Serialization

Client and Server RPC in Python for Bitcoin Block Serialization

2022 Academic Project • Distributed Systems
RPC Bitcoin Project Screenshot

Description

This academic project focused on building a client/server RPC system in Python capable of fetching information from Bitcoin blocks and performing serialization and deserialization of the data.

Architecture

The solution was implemented using an XML-RPC server listening on port 8000. The server provides the following functions:

  • Retrieve Bitcoin block data using its hash
  • Serialize raw block data into .pickle format
  • Deserialize .pickle files and print raw data

Implementation

The block information was obtained via the public blockchain.com API. The client communicates with the server by providing only the hash of the block, which is used as the single input for all operations (download, serialization, deserialization).

Technologies

Python 3 XML-RPC Requests Pickle

Workflow

  1. Download: Client sends hash → server makes GET request → stores JSON in file.
  2. Serialization: Server reads file → creates .pickle version.
  3. Deserialization: Server opens .pickle file → deserializes and returns raw data to client.

Learnings

This project consolidated knowledge in RPC communication, REST API usage, file handling in Python, and data serialization/deserialization techniques. One of the main challenges was ensuring consistent handling of multiple files and supporting multiple client requests reliably.