https://github.com/jupitermetalabs/jmdn
JMDT Decentralized Network codebase
https://github.com/jupitermetalabs/jmdn
blockchain consensus decentralized did go golang l2 layer2 node p2p protocol rollup rpc web3 zero-knowledge zk zk-rollup zkproof
Last synced: 2 days ago
JSON representation
JMDT Decentralized Network codebase
- Host: GitHub
- URL: https://github.com/jupitermetalabs/jmdn
- Owner: JupiterMetaLabs
- License: apache-2.0
- Created: 2026-02-24T12:29:33.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-03-26T10:54:51.000Z (10 days ago)
- Last Synced: 2026-03-27T03:59:14.144Z (10 days ago)
- Topics: blockchain, consensus, decentralized, did, go, golang, l2, layer2, node, p2p, protocol, rollup, rpc, web3, zero-knowledge, zk, zk-rollup, zkproof
- Language: Go
- Homepage: https://jmdt.io
- Size: 2.71 MB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
- Notice: NOTICE
Awesome Lists containing this project
README
# JMDT - Decentralized Node
**JMDT Layer 2 Blockchain - The Truth Layer for all information.**
Restoring authenticity in digital infrastructure by privately verifying humans, and decentralising their data.
**Whitepaper**: [JMDT White Paper (PDF)](./docs/JMDT%20White%20Paper%20-%20latest.pdf)
Jupiter Meta Data Token Chain (JMDT) is a modular, Ethereum-based Layer 2 (L2) blockchain protocol designed to address the scalability, privacy, and compliance limitations of traditional blockchain systems. Built with Zero-Knowledge Proofs (ZKPs), Decentralized Identity (DID), and our own proprietary Asynchronous Validation Consensus (AVC), JMDT delivers a high-performance, privacy-preserving infrastructure tailored for both decentralized applications and enterprise-grade solutions.
## Vision and Mission
> “Building the truth layer for human intelligence—where verified humans own their data, enterprises access verified insights, and privacy is absolute.”
We are enabling a single source of truth for all human information. A next-gen blockchain infrastructure where decentralized identities, zero-knowledge proofs, and verifiable computation allow us to redefine how data is owned, controlled and monetized without compromising compliance across digital platforms.
**Privacy-first. Truth-verified. Human-owned. Decentralized by design.**
## Architecture
The system is built on a modular architecture combining several advanced distributed systems concepts:
### Layer 3: Enterprise DAG & Consent Infrastructure
- **Enterprise DAG Nodes**: Private DAG nodes for high-throughput, localized operations.
- **Smart Contracts for Consent**: Govern user onboarding and access rights.
- **InterDAG Bridge**: Facilitates cross-enterprise collaboration.
### Layer 2: ZK-Enabled State and Rollup Layer
- **zk Engine (SNARK/STARK)**: Verifies DAG transactions using zero-knowledge proofs.
- **DID Engine**: W3C-compliant Decentralized Identity for private authentication.
- **AVC Consensus**: Quorum-based buddy voting and asynchronous global tally.
- **RISC Zero zkVM**: Executes rollup verification logic as a deterministic guest program.
### Layer 1: Ethereum Settlement Layer
- **Finality**: Anchors L2 state changes to Ethereum L1 for global settlement and security.
## Technology Stack
- **Zero-Knowledge Proofs (ZKPs)**: Uses zk-SNARKs and zk-STARKs for privacy-preserving identity verifications and transactions.
- **Decentralized Identity (DID)**: W3C-standardized self-sovereign identities without PII exposure.
- **AVC Consensus**:
- VRF-based Buddy Node Selection
- Zero-Knowledge Proof Integration
- Gossip Protocol & Bloom Filters
- CRDT-based Conflict Resolution
- ImmuDB Append-Only Ledger
## JMDN - Decentralized Node Operation
Run a node to participate in the JMDT network.
### Setup & Requirements
#### System Requirements
- **Operating System**: Ubuntu 18.04+, Debian 10+, elementaryOS, or Linux Mint
- **Architecture**: x86_64, ARM64, or ARMv7
- **Memory**: Minimum 2GB RAM
- **Storage**: At least 10GB free space
- **Network**: Internet connection for initial setup
#### Dependencies
- **Go 1.25+**: Programming language runtime
- **Docker & Docker Compose**: Containerization platform
- **Yggdrasil**: Decentralized mesh networking protocol
- **ImmuDB**: Tamper-proof database (installed automatically)
### Quick Setup
The easiest way to set up the environment is using the provided setup script:
```bash
# Make the setup script executable and run it
sudo ./Scripts/setup_dependencies.sh
```
This script will automatically install all prerequisites:
1. **Go Programming Language**
2. **ImmuDB**
3. **Yggdrasil Network**
### Manual Installation
If you prefer to install dependencies manually or need to install them individually, use the `setup_dependencies.sh` script with specific flags:
#### 1. Install Go
```bash
sudo ./Scripts/setup_dependencies.sh --go
```
#### 2. Install ImmuDB
```bash
sudo ./Scripts/setup_dependencies.sh --immudb
```
#### 3. Install Yggdrasil
```bash
sudo ./Scripts/setup_dependencies.sh --yggdrasil
```
### Build the Application
After installing prerequisites:
1. Build the application using the build script:
```bash
./Scripts/build.sh
```
For full node setup, configuration, and service installation see **[GETTING_STARTED.md](./GETTING_STARTED.md)**.
## Running a Node
Basic node startup (requires configuration file):
```bash
./jmdn -config /etc/jmdn/config.env
```
### Configuration
We recommend using the configuration generation script:
```bash
./Scripts/setup_config.sh
```
Alternatively, you can configure via flags (see `jmdn --help` or `docs/CONFIG.md`):
| Flag | Description | Default |
| ------------------------ | ------------------------------------ | --------- |
| `-config` | Path to config file | "" |
| `-seed` | Run as a seed node | `false` |
| `-connect ` | Connect to a seed node | "" |
| `-metrics ` | Prometheus metrics port | "8080" |
| `-logdir ` | Log directory | "./logs" |
| `-console` | Log to console | `false` |
| `-ygg` | Enable Yggdrasil messaging | `true` |
| `-explorer ` | Run blockchain explorer (0=disabled) | 0 |
| `-api ` | Run ImmuDB API (0=disabled) | 0 |
### Available Commands
| Command | Description |
| ------------------------------------------- | ------------------------------------- |
| `msg ` | Send a message via libp2p |
| `ygg ` | Send a message via Yggdrasil |
| `file ` | Send a file to a peer |
| `addpeer ` | Add a peer to managed nodes |
| `removepeer ` | Remove a peer from managed list |
| `listpeers` | Show all managed peers |
| `peers` | Request updated peer list from seed |
| `stats` | Show messaging statistics |
| `broadcast ` | Broadcast to all connected peers |
| `fastsync ` | Fast sync blockchain data with a peer |
| `dbstate` | Show current ImmuDB database state |
| `exit` | Exit the program |
---
**Document Version**: Based on JMDT White Paper 1.3 | Nov 2025
**Copyright**: © 2025 JMDT | Jupiter Meta Labs Foundation | Seychelles