Solidity smart contracts for Geospatially Enabled Decentralized Applications on the Ethereum blockchain.
This project aims to implements geospatial data management features, 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.
- Setup
- Usage
- Implementation details
- Project related documentation
- Further Reading
Clone this GitHub repository.
git clone https://github.com/enlight-me/crypto-spatial-contracts.git
Since the project is developped using the truffle framework, you should check the network configuration in 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.
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
See the decentralized-land-admin project for a complete implementation.
The FOAM protocole, developped by FOAM space was implemented using the White Paper with a set of solidity smart contracts. Some modifications was implemented to explore the alternatives suggested by the OGC discussion paper ($7.5)
For the Crypto-Spatial Coordinates, a conforming implementation of the Geodesic Discrete Global Grid Systems OGC standard has been used in place of Geohash used by the FOAM protocole.