GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - NextTechLabAP/dPIN: A decentralized website monitoring system leveraging dPIN (Decentralized Public Infrastructure Network) to ensure trustless uptime verification, real-time alerts, and transparency without relying on centralized authorities.

BranchesTags
Open more actions menu
 
 

Latest commit

 

History

132 Commits
132 Commits

Folders and files

NameName
Last commit message
Last commit date
backend
backend
 
 
frontend
frontend
 
 
linux-cli
linux-cli
 
 
preview-images
preview-images
 
 
validator-cli
validator-cli
 
 
.gitignore
.gitignore
 
 
README.md
README.md
 
 

Repository files navigation

🌐 dPIN Website Monitoring System

A decentralized website monitoring system leveraging dPIN (Decentralized Public Infrastructure Network) to ensure trustless uptime verification, real-time alerts, and transparency without relying on centralized authorities.

With dPIN, experience a truly decentralized, transparent, and reliable website monitoring system.

GitHub code size in bytes GitHub license GitHub contributors GitHub commit activity GitHub Repo stars

šŸ“ø Preview Images

Landing Page Features Pricing Validator Dashboard Monitor
Monitor Graph User Dashboard Validations Validator CLI Validator CLI 2
Preview of the dPIN Website Monitoring System Interface

šŸ”„ Key Features

šŸ”¹ No Single Point of Failure – Distributed monitoring across independent validators.

šŸ”¹ Trustless Transparency – Website owners can prove uptime without a central entity.

šŸ”¹ Crypto Incentives – Validators earn rewards for monitoring and reporting website health.

šŸ”¹ Decentralized Monitoring – Multiple nodes check website status instead of a single company.

šŸ”¹ Real-Time Alerts – Instant notifications for downtime or performance issues.

šŸ”¹ Security & Privacy – No third-party access to website data.


šŸ›‘ Problem Statement

Traditional website monitoring systems are centralized, opaque, and vulnerable to downtime, censorship, and manipulation. They rely on single providers, limiting transparency and control.


āœ… Solution

Our dPIN-based monitoring system decentralizes website uptime tracking by leveraging independent validators across a global network. Unlike traditional systems, which rely on a single authority, our solution ensures real-time, trustless, and tamper-proof monitoring without any central points of failure. Website owners can prove uptime transparently, while users receive instant alerts for downtime or performance issues. Validators are incentivized with crypto rewards, fostering a self-sustaining, censorship-resistant ecosystem that enhances reliability, security, and trust in website monitoring.

✨ Website owners can verify uptime transparently.

⚔ Users receive instant alerts for downtime or performance issues.

šŸ’° Validators are rewarded with crypto incentives, fostering a self-sustaining, censorship-resistant monitoring ecosystem.


šŸ› ļø Tech Stack

šŸ›”ļø Blockchain – Solana

šŸŒ dPIN (Decentralized Public Infrastructure Network) – Distributed monitoring

šŸ”— Database – MongoDB

šŸ–„ļø Frontend – React.js, Radix UI, Tailwind CSS, ShadCN

šŸ“” Backend – Node.js, Express.js

šŸ”’ Authentication – Clerk

āš™ļø Validator CLI – Commander.js, Chalk


āš™ļø Installation & Setup

# Clone the repository
git clone https://github.com/Lviffy/dPIN.git
cd dPIN

# Install backend dependencies
cd backend
npm install

# Set up environment variables
cp .env.example .env
# Edit .env with your specific configuration

# Run the backend server
node index.js

# Install frontend dependencies
cd ../frontend
npm install

# Set up frontend environment variables
cp .env.example .env
# Edit .env with your Clerk publishable key and other configs

# Run the frontend development server
npm run dev

# Open your browser at http://localhost:5173

šŸ”‘ Getting API Keys

Before you can run the application, you'll need to obtain several API keys and credentials:

1. JWT Secret

  • This is used for authentication in the backend
  • Generate a secure random string:
    openssl rand -base64 32
    Or simply create a strong password-like string

2. Solana Wallet Keys (Admin)

  • Generate a Solana keypair for the admin account:
    # Install Solana CLI tools if you haven't already
    solana-keygen new
    • The output will show your public key and save your private key
    • Use these values for ADMIN_PUBLIC_KEY and ADMIN_PRIVATE_KEY

3. Solana RPC URL

  • Sign up for a free account at Alchemy
  • Create a new Solana app (can use Devnet for testing)
  • Copy the HTTP URL from your dashboard
  • Format: https://solana-devnet.g.alchemy.com/v2/YOUR_API_KEY

4. Clerk Authentication

  • Create an account at Clerk
  • Set up a new application
  • From your Clerk dashboard:
    • Get your CLERK_PUBLISHABLE_KEY (starts with pk_test_)
    • Get your CLERK_SECRET_KEY (starts with sk_test_)
    • Use the publishable key for both backend and frontend

5. Email Service (Nodemailer)

  • If using Gmail:
    1. Go to your Google Account → Security
    2. Enable 2-Step Verification if not already enabled
    3. Go to App passwords
    4. Create a new app password
    5. Use this password for PASS_NODEMAILER

After obtaining all keys, add them to your .env files in both backend and frontend directories.

🧠 Project Structure

dPIN/
ā”œā”€ā”€ backend/               # Express.js server
│   ā”œā”€ā”€ db/                # Database connection
│   ā”œā”€ā”€ model/             # MongoDB schemas
│   ā”œā”€ā”€ utils/             # Helper functions
│   └── index.js           # Main server file
ā”œā”€ā”€ frontend/              # React.js application
│   ā”œā”€ā”€ src/
│   │   ā”œā”€ā”€ components/    # Reusable UI components
│   │   ā”œā”€ā”€ pages/         # Page components
│   │   ā”œā”€ā”€ utils/         # Utility functions
│   │   └── App.jsx        # Main application component
│   └── public/            # Static assets
└── validator-cli/         # CLI tool for validators
    ā”œā”€ā”€ src/               # Source code
    └── utils/             # CLI utilities

ā„¹ļø Additional Information

šŸ”¹ Minimum Validator Balance – To become a validator, your crypto wallet must have at least 0.05 SOL.

šŸ”¹ Wallet Public Key – Needed for withdrawal of earned rewards.

šŸ”¹ Key Generation – Automatically generates a pair of public & private keys for enhanced security.

šŸ”¹ Decentralized Transactions – Ensures secure and anonymous payment processing.


ā“ Troubleshooting

If you face any issues, try these steps:

āš ļø Issue: App not starting
šŸ”¹ Solution: Ensure Node.js and npm are installed, and run npm install before starting the application.

āš ļø Issue: Wallet not connecting
šŸ”¹ Solution: Make sure Phantom or any compatible Solana wallet is installed and connected to the correct network.

āš ļø Issue: No real-time alerts
šŸ”¹ Solution: Check if notifications are enabled in browser settings.

āš ļø Issue: Transaction failures
šŸ”¹ Solution: Ensure your wallet has sufficient SOL for transactions.

āš ļø Issue: Authentication problems
šŸ”¹ Solution: Verify your Clerk API keys are correctly configured in your environment variables.


šŸ“ API Endpoints

User Endpoints

  • POST /user - Create a new user
  • GET /dashboard-details - Get user dashboard information

Website Monitoring Endpoints

  • POST /website - Register a new website for monitoring
  • GET /website/:id - Get details for a specific website
  • DELETE /website/:id - Remove a website from monitoring
  • PUT /website-track/:id - Enable/disable monitoring for a website
  • GET /website-details:id - Get detailed metrics for a website

Validator Endpoints

  • POST /validator-login - Authenticate as a validator
  • GET /validator-details - Get validator activity and rewards information

šŸ™Œ Team Members

  • Rohan Kumar Mohanta
  • Jayesh Krishna
  • Shivangi Sharma

šŸ¤ Contributing

We welcome contributions! Follow these steps:

1ļøāƒ£ Fork the repo

2ļøāƒ£ Create a new branch: git checkout -b feature-branch

3ļøāƒ£ Commit your changes: git commit -m "Added new feature"

4ļøāƒ£ Push to the branch: git push origin feature-branch

5ļøāƒ£ Submit a Pull Request (PR)

šŸ’” Tip: Always write clear commit messages and follow best coding practices before submitting a PR!


šŸ“œ If you found this useful, don't forget to ⭐ star this repo!

About

A decentralized website monitoring system leveraging dPIN (Decentralized Public Infrastructure Network) to ensure trustless uptime verification, real-time alerts, and transparency without relying on centralized authorities.

Resources

Readme
Activity
Custom properties

Stars

2 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800Ɨ600. No cookies required.