Skip to main content

Professional ION-DTN Mission Control & BPv7 Simulation Framework

Project description

⚛️ EmION — Professional ION-DTN Simulation

EmION is an authentic, production-ready Delay-Tolerant Networking (DTN) simulation framework. Unlike other simulators, EmION uses the real ION-DTN C-engine and Contact Graph Routing (CGR) for 100% protocol authenticity.


🚀 1. Installation

EmION requires ION-DTN (C-engine) and pyion to be installed on your Linux system.

One-Click Setup

We provide a unified installer that checks dependencies and installs the package:

chmod +x install.sh
./install.sh

Manual Installation

pip install -e ".[dashboard]"

🧪 2. Verification

Ensure your environment is correctly configured by running the professional test suite. This verifies real-time bundle transit and CGR routing:

python3 tests/test_emion.py

🛰️ 3. Usage

Launching Mission Control

Start the visual dashboard to manage multi-node topologies and view live telemetry:

emion dashboard
  • URL: http://localhost:8420
  • Telemetry: Real-time SDR memory and bundle tracking.
  • Visuals: Canvas-based topology with bundle animation.

Command Line Interface

emion info      # Check ION system status
emion dashboard # Start visual UI

🔌 4. Connecting Third-Party Modules (API)

EmION supports selective attachment of Anomaly Detection or Security modules via a FastAPI-based Plugin System.

Step A: Implement your Plugin

Your module must be a web service (FastAPI) with these endpoints:

  1. GET /health -> {"status": "ok"}
  2. POST /analyze -> Receives bundle payload and metadata, returns:
    {
      "is_anomaly": true,
      "score": 0.95,
      "label": "attack",
      "details": {"reason": "Payload too large"}
    }
    

Step B: Connect to EmION

In the Dashboard UI (or via API), connect your module:

  • Module URL: http://localhost:8421
  • Target Nodes: Selectively monitor specific nodes (e.g., 1,3) or all.

Demo Reference

See anomaly_detector.py for a functional sample implementation.


🐳 5. Docker (Self-Contained BPv7)

Run the entire EmION environment (ION-DTN + pyion + Dashboard) without local installation.

Build and Run

docker build -t emion .
docker run -p 8420:8420 emion

Access Mission Control at http://localhost:8420.


📦 6. Publishing to PyPI

Build the Package

pip install build twine
python3 -m build

Upload to PyPI

twine upload dist/*

🏗️ Project Structure

  • emion/ — Core BPv7 orchestration.
  • docs/Coding Guide & Usage Notebook.
  • ION-DTN/ — Authentic NASA-JPL C-Engine.
  • Dockerfile — Professional self-contained environment.
  • README.md — This guide.

Authentic. Professional. Space-Ready. ⚛️

  • ION-DTN (compiled, with ionadmin/bpadmin in PATH)
  • pyion (built against your ION installation)
  • FastAPI + uvicorn + websockets (for dashboard)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

emion-0.2.0.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

emion-0.2.0-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

File details

Details for the file emion-0.2.0.tar.gz.

File metadata

  • Download URL: emion-0.2.0.tar.gz
  • Upload date:
  • Size: 22.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for emion-0.2.0.tar.gz
Algorithm Hash digest
SHA256 bce13feca373f98734ca7c497032606039e1f1855599be1dce91d9e0d6cfd0b7
MD5 eca90443b62a4f6082d54cabdfe0a3f1
BLAKE2b-256 2580bf3c803b2713fc873848e49f9b58becfe50e2cb7c814681e344291d2c54b

See more details on using hashes here.

File details

Details for the file emion-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: emion-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 21.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for emion-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6cf1d1a41d809f2d1293d6973bad91637f461ff35fbf0fe1acb0b3754d972a95
MD5 8f9bac95401f8e0540edb61e50df7784
BLAKE2b-256 1b6b91e260691acff5b53cca65259cb46e2c2b2090b99afe681240d547320a4a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page