RPC Bitcoin Serialization
Client and Server RPC in Python for Bitcoin Block Serialization

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
Workflow
- Download: Client sends hash → server makes GET request → stores JSON in file.
- Serialization: Server reads file → creates
.pickle
version. - 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.