Skip to main content

Voidly Community Probe — Help measure internet censorship worldwide

Project description

Voidly Community Probe

Help measure internet censorship worldwide. Run a lightweight probe node from anywhere.

What it does

Tests connectivity to 62 websites (social media, news, messaging, privacy tools, human rights organizations) every 15 minutes from your network. Detects DNS blocking, TCP resets, TLS/SNI filtering, HTTP redirects, and identifies blocking entities (government firewalls, ISP filters).

Results feed into Voidly's censorship intelligence network — the world's largest real-time censorship dataset.

Install

pip install voidly-probe

Or with Docker:

docker run -d --name voidly-probe -v voidly-data:/data/.voidly emperormew2/voidly-probe

Quick start

# First run — register and start probing
voidly-probe --consent

# Single test cycle
voidly-probe --once

# Check your node's status
voidly-probe --status

# Run in background (Linux/Mac)
nohup voidly-probe --consent &

Claim your node

After your node is running, link your identity to appear on the leaderboard and be eligible for prizes:

  1. Find your Node ID and Token in ~/.voidly/node.json
  2. Visit voidly.ai/probes/claim
  3. Enter your Node ID, Token, and Twitter/X handle
  4. Your name now appears on the leaderboard instead of cp-xxxxxxxx

Important: Back up ~/.voidly/node.json — your token is shown once during registration and cannot be recovered. If you lose it, you'll need to re-register as a new node.

What we collect

  • Domain, blocked/accessible status, latency, blocking method
  • Your approximate location (country, city) — detected once during registration
  • SHA256 hash of your IP (for deduplication, not stored raw)

What we don't collect

  • No browsing data
  • No passwords or personal information
  • No traffic inspection beyond the 62 test domains
  • Your raw IP address is never stored

Privacy

  • Data is used for censorship research under CC BY 4.0
  • You can stop the probe at any time with Ctrl+C
  • Config stored at ~/.voidly/node.json — delete to unregister
  • Learn more: https://voidly.ai/probes

Requirements

  • Python 3.8+
  • No external dependencies (stdlib only)
  • No root/admin required
  • No VPN tunnel

Configuration

Environment variables:

Variable Default Description
VOIDLY_PROBE_INTERVAL 900 Seconds between probe cycles
VOIDLY_PROBE_TIMEOUT 10 Timeout per request (seconds)
VOIDLY_BATCH_SIZE 20 Domains per cycle
VOIDLY_CONFIG_DIR ~/.voidly Config directory

Docker

# Run in background with persistent config
docker run -d --name voidly-probe \
  -v voidly-data:/data/.voidly \
  emperormew2/voidly-probe

# View logs
docker logs -f voidly-probe

# Check node status (find Node ID in logs)
docker exec voidly-probe voidly-probe --status

# Stop
docker stop voidly-probe

License

MIT — https://voidly.ai

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

voidly_probe-1.0.4.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

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

voidly_probe-1.0.4-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file voidly_probe-1.0.4.tar.gz.

File metadata

  • Download URL: voidly_probe-1.0.4.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.1

File hashes

Hashes for voidly_probe-1.0.4.tar.gz
Algorithm Hash digest
SHA256 dce00f07d4d31464e2e3066cd2a17d6776999bfcf44f4890df6135331bd18833
MD5 3222bc6fe509345dc62e13eb89c5cee5
BLAKE2b-256 d40db107b4238fd20ff12a10ce4452af130533e9260400e025c53ec2a8ffa578

See more details on using hashes here.

File details

Details for the file voidly_probe-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: voidly_probe-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.1

File hashes

Hashes for voidly_probe-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2ed8f829cc490d37a63e517c0a5cc5598e4d516ddfd8437713851dbc8d354797
MD5 efaa302cb7dbdb78491bd778aa30c4a1
BLAKE2b-256 31df11e323bc45dc11f2fd768b81c7331d6b5fbea11558ff8c5c3126eaf7a18b

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