Canopy is a blockchain-based forest registry platform that enables users to register and verify forest areas using satellite imagery. The platform combines blockchain technology with remote sensing to provide transparent and verifiable forest registration with NDVI (Normalized Difference Vegetation Index) computation for forest health assessment.
Canopy allows forest owners to register their forest areas on the blockchain, with each registration including geographic boundaries, area measurements, and ownership information. The system uses Google Earth Engine to compute NDVI values from Sentinel-2 satellite imagery, providing scientific verification of forest health and coverage.
The project consists of three main components:
- Client: A React-based frontend application that provides the user interface for forest registration and management
- Server: A Node.js Express API server that handles forest registration, user management, and coordinates with the Python service for NDVI computation
- Python Service: A FastAPI service that interfaces with Google Earth Engine to compute NDVI values from satellite imagery
- Smart Contracts: Solidity contracts for forest registry and carbon credit NFT management on the blockchain
- Forest registration with blockchain verification
- NDVI computation using Google Earth Engine and Sentinel-2 satellite imagery
- User management and forest ownership tracking
- Geographic boundary validation using geohash encoding
- Carbon credit NFT integration
- Node.js with Express
- PostgreSQL with Drizzle ORM
- Ethers.js for blockchain interactions
- FastAPI
- Google Earth Engine API
- Sentinel-2 satellite imagery processing
- React
- Web3 wallet integration
- Solidity smart contracts
- Hardhat development environment
- Node.js and npm
- Python 3.x
- PostgreSQL database
- Google Earth Engine account and authentication
- Ethereum wallet and RPC endpoint
-
Clone the repository
-
Install server dependencies:
cd server npm install -
Install Python dependencies:
cd python pip install -r requirements.txt -
Set up environment variables for both server and Python service
-
Configure database connection and run migrations
-
Authenticate with Google Earth Engine for the Python service
Start the Node.js server:
cd server
npm run devStart the Python FastAPI service:
cd python
uvicorn app.main:app --reloadThe server runs on port 3000 and the Python service runs on port 8000 by default.
The server provides REST API endpoints for forest registration and NDVI computation. The Python service exposes endpoints for satellite imagery processing and NDVI calculation.
The system uses PostgreSQL to store user information and forest registration data, including forest IDs, ownership addresses, geographic boundaries, and transaction hashes from blockchain registrations.
ISC