{"id":47819056,"url":"https://github.com/jupitermetalabs/jmdn","last_synced_at":"2026-04-03T19:01:36.854Z","repository":{"id":345236100,"uuid":"1165677140","full_name":"JupiterMetaLabs/jmdn","owner":"JupiterMetaLabs","description":"JMDT Decentralized Network codebase","archived":false,"fork":false,"pushed_at":"2026-03-26T10:54:51.000Z","size":2842,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-27T03:59:14.144Z","etag":null,"topics":["blockchain","consensus","decentralized","did","go","golang","l2","layer2","node","p2p","protocol","rollup","rpc","web3","zero-knowledge","zk","zk-rollup","zkproof"],"latest_commit_sha":null,"homepage":"https://jmdt.io","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JupiterMetaLabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-24T12:29:33.000Z","updated_at":"2026-03-23T12:37:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/JupiterMetaLabs/jmdn","commit_stats":null,"previous_names":["jupitermetalabs/jmdn"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/JupiterMetaLabs/jmdn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JupiterMetaLabs%2Fjmdn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JupiterMetaLabs%2Fjmdn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JupiterMetaLabs%2Fjmdn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JupiterMetaLabs%2Fjmdn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JupiterMetaLabs","download_url":"https://codeload.github.com/JupiterMetaLabs/jmdn/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JupiterMetaLabs%2Fjmdn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31371636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T17:53:18.093Z","status":"ssl_error","status_checked_at":"2026-04-03T17:53:17.617Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","consensus","decentralized","did","go","golang","l2","layer2","node","p2p","protocol","rollup","rpc","web3","zero-knowledge","zk","zk-rollup","zkproof"],"created_at":"2026-04-03T19:00:46.435Z","updated_at":"2026-04-03T19:01:36.839Z","avatar_url":"https://github.com/JupiterMetaLabs.png","language":"Go","readme":"# JMDT - Decentralized Node\n\n**JMDT Layer 2 Blockchain - The Truth Layer for all information.**\n\nRestoring authenticity in digital infrastructure by privately verifying humans, and decentralising their data.\n\n**Whitepaper**: [JMDT White Paper (PDF)](./docs/JMDT%20White%20Paper%20-%20latest.pdf)\n\nJupiter 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.\n\n## Vision and Mission\n\n\u003e “Building the truth layer for human intelligence—where verified humans own their data, enterprises access verified insights, and privacy is absolute.”\n\nWe 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.\n\n**Privacy-first. Truth-verified. Human-owned. Decentralized by design.**\n\n## Architecture\n\nThe system is built on a modular architecture combining several advanced distributed systems concepts:\n\n### Layer 3: Enterprise DAG \u0026 Consent Infrastructure\n- **Enterprise DAG Nodes**: Private DAG nodes for high-throughput, localized operations.\n- **Smart Contracts for Consent**: Govern user onboarding and access rights.\n- **InterDAG Bridge**: Facilitates cross-enterprise collaboration.\n\n### Layer 2: ZK-Enabled State and Rollup Layer\n- **zk Engine (SNARK/STARK)**: Verifies DAG transactions using zero-knowledge proofs.\n- **DID Engine**: W3C-compliant Decentralized Identity for private authentication.\n- **AVC Consensus**: Quorum-based buddy voting and asynchronous global tally.\n- **RISC Zero zkVM**: Executes rollup verification logic as a deterministic guest program.\n\n### Layer 1: Ethereum Settlement Layer\n- **Finality**: Anchors L2 state changes to Ethereum L1 for global settlement and security.\n\n## Technology Stack\n\n- **Zero-Knowledge Proofs (ZKPs)**: Uses zk-SNARKs and zk-STARKs for privacy-preserving identity verifications and transactions.\n- **Decentralized Identity (DID)**: W3C-standardized self-sovereign identities without PII exposure.\n- **AVC Consensus**:\n    - VRF-based Buddy Node Selection\n    - Zero-Knowledge Proof Integration\n    - Gossip Protocol \u0026 Bloom Filters\n    - CRDT-based Conflict Resolution\n    - ImmuDB Append-Only Ledger\n\n## JMDN - Decentralized Node Operation\n\nRun a node to participate in the JMDT network.\n\n### Setup \u0026 Requirements\n\n#### System Requirements\n- **Operating System**: Ubuntu 18.04+, Debian 10+, elementaryOS, or Linux Mint\n- **Architecture**: x86_64, ARM64, or ARMv7\n- **Memory**: Minimum 2GB RAM\n- **Storage**: At least 10GB free space\n- **Network**: Internet connection for initial setup\n\n#### Dependencies\n- **Go 1.25+**: Programming language runtime\n- **Docker \u0026 Docker Compose**: Containerization platform\n- **Yggdrasil**: Decentralized mesh networking protocol\n- **ImmuDB**: Tamper-proof database (installed automatically)\n\n### Quick Setup\n\nThe easiest way to set up the environment is using the provided setup script:\n\n```bash\n# Make the setup script executable and run it\nsudo ./Scripts/setup_dependencies.sh\n```\n\nThis script will automatically install all prerequisites:\n1. **Go Programming Language**\n2. **ImmuDB**\n3. **Yggdrasil Network**\n\n### Manual Installation\n\nIf you prefer to install dependencies manually or need to install them individually, use the `setup_dependencies.sh` script with specific flags:\n\n#### 1. Install Go\n```bash\nsudo ./Scripts/setup_dependencies.sh --go\n```\n\n#### 2. Install ImmuDB\n```bash\nsudo ./Scripts/setup_dependencies.sh --immudb\n```\n\n#### 3. Install Yggdrasil\n```bash\nsudo ./Scripts/setup_dependencies.sh --yggdrasil\n```\n\n### Build the Application\n\nAfter installing prerequisites:\n\n1. Build the application using the build script:\n   ```bash\n   ./Scripts/build.sh\n   ```\n\nFor full node setup, configuration, and service installation see **[GETTING_STARTED.md](./GETTING_STARTED.md)**.\n\n## Running a Node\n\nBasic node startup (requires configuration file):\n\n```bash\n./jmdn -config /etc/jmdn/config.env\n```\n\n### Configuration\n\nWe recommend using the configuration generation script:\n\n```bash\n./Scripts/setup_config.sh\n```\n\nAlternatively, you can configure via flags (see `jmdn --help` or `docs/CONFIG.md`):\n\n| Flag                     | Description                          | Default   |\n| ------------------------ | ------------------------------------ | --------- |\n| `-config`              | Path to config file                  | \"\"        |\n| `-seed`                | Run as a seed node                   | `false` |\n| `-connect \u003cmultiaddr\u003e` | Connect to a seed node               | \"\"        |\n| `-metrics \u003cport\u003e`      | Prometheus metrics port              | \"8080\"    |\n| `-logdir \u003cpath\u003e`       | Log directory                        | \"./logs\"  |\n| `-console`             | Log to console                       | `false` |\n| `-ygg`                 | Enable Yggdrasil messaging           | `true`  |\n| `-explorer \u003cport\u003e`     | Run blockchain explorer (0=disabled) | 0         |\n| `-api \u003cport\u003e`          | Run ImmuDB API (0=disabled)          | 0         |\n\n### Available Commands\n\n| Command                                     | Description                           |\n| ------------------------------------------- | ------------------------------------- |\n| `msg \u003cpeer_multiaddr\u003e \u003cmessage\u003e`          | Send a message via libp2p             |\n| `ygg \u003cpeer_multiaddr\\|ygg_ipv6\u003e \u003cmessage\u003e` | Send a message via Yggdrasil          |\n| `file \u003cpeer_multiaddr\u003e \u003cfilepath\u003e`        | Send a file to a peer                 |\n| `addpeer \u003cpeer_multiaddr\u003e`                | Add a peer to managed nodes           |\n| `removepeer \u003cpeer_id\u003e`                    | Remove a peer from managed list       |\n| `listpeers`                               | Show all managed peers                |\n| `peers`                                   | Request updated peer list from seed   |\n| `stats`                                   | Show messaging statistics             |\n| `broadcast \u003cmessage\u003e`                     | Broadcast to all connected peers      |\n| `fastsync \u003cpeer_multiaddr\u003e`               | Fast sync blockchain data with a peer |\n| `dbstate`                                 | Show current ImmuDB database state    |\n| `exit`                                    | Exit the program                      |\n\n---\n**Document Version**: Based on JMDT White Paper 1.3 | Nov 2025\n**Copyright**: © 2025 JMDT | Jupiter Meta Labs Foundation | Seychelles\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjupitermetalabs%2Fjmdn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjupitermetalabs%2Fjmdn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjupitermetalabs%2Fjmdn/lists"}