The Decentralized Land Registration System (DLRS) is an enterprise-grade blockchain platform designed to migrate national land records to a permissioned distributed ledger.
Traditional land registry systems suffer from:
- Record tampering
- Lack of transparent provenance
- Double-spending of real estate assets
- Centralized points of failure
DLRS solves these problems by anchoring a Unique Land Parcel Identification Number (ULPIN) to physical GPS coordinates and storing ownership records on Hyperledger Fabric.
This ensures:
- Cryptographic proof of ownership
- Immutable transaction history
- Transparent lineage tracking for land mutations
| Attribute | Value |
|---|---|
| Repository | Land-Registration-Using-Blockchain |
| Author | PR Project |
| GitHub | BitForge95 |
| Year | 2026 |
| License | Apache 2.0 |
The system follows a full-stack decentralized application architecture.
User (Citizen / Admin)
|
v
React Frontend
|
v
Spring Boot REST API
|
v
Hyperledger Fabric Gateway SDK
|
v
Hyperledger Fabric Network
|
v
Peer Nodes + CouchDB State Database
|
v
IPFS (Off-chain document storage)
- Hyperledger Fabric v2.5
- Consensus: Raft (Crash Fault Tolerant)
- Smart Contracts: Java Chaincode
- Spring Boot (Java 17)
- REST API
- Fabric Gateway SDK
- React.js
- CouchDB (for rich JSON queries)
- IPFS (document storage using CID)
The Fabric network simulates a government-grade deployment model.
| Component | Configuration |
|---|---|
| Organizations | 2 |
| Org1 | Ministry of Rural Development |
| Org2 | State Revenue Department |
| Peers | 1 Peer per Organization |
| Orderers | 3 Raft Orderer Nodes |
| Channel | landchannel |
| State Database | CouchDB |
This configuration ensures crash fault tolerance and distributed governance.
Land-Registration-Using-Blockchain
│
├── chaincode
│ └── Smart contract implementation (Java)
│
├── blockchain-network
│ └── Fabric network configuration
│ └── Docker compose files
│
├── backend-api
│ └── Spring Boot REST API
│
├── frontend-ui
│ └── React application
│
└── docs
└── Architecture diagrams
The LandRegistryContract implements the core business logic of the land registry system.
| Function | Description |
|---|---|
initLedger |
Initializes the ledger with genesis data |
createLandAsset |
Registers a new land asset |
transferLandOwnership |
Transfers ownership to another entity |
| Function | Description |
|---|---|
mutateLand |
Handles land splits or merges |
queryLandByUlpin |
Fetches the current land state |
getLandHistory |
Retrieves immutable ownership history |
Each land parcel is represented by a LandAsset object stored on the ledger.
| Field | Description |
|---|---|
ulpin |
Unique Land Parcel Identification Number |
ownerAadhaarHash |
Privacy-preserving owner identifier |
gpsCoordinates |
Geographic anchor for the land |
documentCid |
IPFS content identifier for land documents |
status |
ACTIVE / RETIRED_MUTATED |
parentUlpin |
Parent parcel identifier for lineage tracking |
- Land registration with duplicate prevention
- Secure ownership transfer
- IPFS-based document verification
- Permissioned blockchain governance
- Immutable transaction history
- Tamper-resistant records
- Distributed trust across organizations
- Parent-child lineage tracking for land mutation
Install the following tools:
- Java 17
- Docker
- Docker Compose
- Git
sudo apt-get update
sudo apt-get install -y openjdk-17-jdk docker.io docker-compose gitSet Java environment variables:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATHVerify installation:
java -versionNavigate to the network directory:
cd blockchain-networkStart the Fabric test network:
./network.sh up createChannel -c landchannel -caNavigate to the chaincode directory:
cd chaincode/land-contract-javaBuild using the Gradle wrapper:
./gradlew buildThis error occurs if Java 17 is not active.
Fix it by setting:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH- Land mutation engine (split / merge)
- GIS map integration
- Government identity verification
- Multi-state channel federation
- Mobile application for citizens
- Zero-knowledge Aadhaar validation
- Fork the repository
- Create a new branch
git checkout -b feature/your-feature-name
- Commit your changes
- Submit a Pull Request
Licensed under the Apache License 2.0.
This project explores blockchain-based governance systems for land administration, inspired by initiatives such as:
- Digital India Land Records Modernization Programme (DILRMP)
- National ULPIN initiative
The goal is to demonstrate how permissioned blockchain infrastructure can enhance transparency, security, and trust in land ownership systems.