Skip to content
This repository has been archived by the owner on Apr 1, 2021. It is now read-only.

enlight-me/decentralized-land-admin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DeLA : Decentralized Land Administration

GitHub license GitHub issues GitHub stars GitHub stars

The land registry and real estate transactions is one area where security and transparency are important and where there is a high level of value, but where the required transaction speed and the number of transactions is significantly lower. People who have looked at this area, like the Economist, understand that the value for society may be enormous — not least in countries that lack stable institutions such as legal systems, land registries, etc.

The aim of this project is to implement the ISO 19152:2012 standard (Geographic information — Land Administration Domain Model (LADM)) on the Ethereum Blockchain.

The starting point for that will be the Solutions for Open Land Administration (SOLA-FAO) which is a J2EE implementation that has many uses cases in Africa and Asia. Using SOLA allows us to incorporate international best practice and standards, facilitating the essential customization always required to meet specific country needs, as Cadastre and registration functions and services are always provided by a typical land office.

This project is challenging because it implements geospatial data management features, needed to handle land parcels, on the Blockchain technology, which is an open research subject at the Open Geospatial Consortium where a Blockchain and Distributed Ledger Technologies Domain Working Group has been created especially for that.

One of the major goals for porting this land registry solution to the etherum blockchain is the ability to use it as a crowd sourcing land registry plateform to collect tenure relationships and as a tool for communities to assess and clarify their tenure regimes so to protect the individual and collective rights of their members.

Table of contents

Project Setup

DeLA plateform is a Decentrelized Application (dApp) for Land Administration built for the Ethereum blockchain. It comprises 03 components :

  1. The smart contracts written in Solidity
  2. The frontend web application built with react.js
  3. The backend application implementing a REST API to interact with the parcels map (optionnal).

To run this dApp, follow the instruction below.

Clone this GitHub repository.

git clone https://github.com/allilou/onchain-land-administration.git

Since the project is developped using the truffle framework, you should check the network configuration in solidity/truffle-config.js before continuing.

If you haven't yet setup developpement envirenment :

npm install -g ganache-cli
npm install -g truffle

Launch etheruem local developpement node :

ganche-cli

Install smart contracts dependecies (OpenZeppelin libraries) and migrate the solidity contracts to your local EVM.

cd solidity 
npm install @truffle/hdwallet-provider @openzeppelin/contracts@2.5.0 truffle-assertions
truffle migrate --reset --network develop

For the rinkeby testnet (put your seed phrase in a text file on solidity/.secret):

truffle migrate --network rinkeby 

Install dependiencies and compile React/Web3 frontend web application.

cd client
npm install
npm start

To deploy to github pages :

export NODE_OPTIONS=--max_old_space_size=8192
npm run build
npm run deploy

Install dependiencies and compile Node.js/Express backend server (deprecated).

cd server
npm install
npm start

Usage

The following sequence diagram illustrate the overall process that will be implemented in the DeLA project .

To manage geospatial data transactions and visualisation, the FOAM protocole, described by the diaram below, is used. One can trigger a transaction simply by switching to editing mode and clicking on the map. A marker with the 'Transaction Hash' will be added at the clicked position on the map.

Singaling

As a broader vision, the DeLA platform will alow a signaling process, described by the diagram bellow, to incentivize cartographers to add features to the Feature Index database. Those featuers are necessary to allow basic users, with minimum knowledge on webmapping, to identify directly the features they own on the displayed map.

Implementation details

The FOAM protocole, developped by FOAM space was implemented using the White Paper with a set of solidity smart contracts and a client/server applications for the spatial index management and visualisation. Some modifications was implemented to explore the alternatives suggested by the OGC discussion paper ($7.5)

For the Crypto-Spatial Coordinates, the javascript interface of the H3 library was used with the resolution 15 (Average Hexagon Edge Length of 0.5 km) because it is a partially conforming implementation of the Geodesic Discrete Global Grid Systems OGC standard.

For simplicity, the geospatial data are stored in a Spatialite database. In the future and for scalling purposes, other geospatialy enabled DBMS, like PostreSQL/PostGIS, could be used.

For the spatial index backend, the OGC API - Features - Part 1 : Core and the ArcGIS REST API Feature Service was used as a standarized REST API dedicated to manage geospatial data objects.

For the frontend, the Leaflet library is used to display a map with a markers representing the added indexes.

Comparison with the FOAM protocole implementation

  • Spatialite -> PostgreSQL/PostGIS, redis
  • Leaflet -> deck.gl
  • H3 (DGGS) -> geohash
  • Truffle -> Chanterelle
  • JavaScript -> Purescript, Haskell

Other existing similar Blockchain solutions:

Further Reading

Proof of Location on blockchain

Blockchain business models

Land administration challenges