Files
GCP-Dot/README.md
Hexadual a9aae0e586
All checks were successful
Build & publish Docker images / Build & push all images (push) Successful in 1s
hard code to https://gcp.hexadual.io/
2026-04-30 19:02:43 -05:00

3.1 KiB
Raw Blame History

GCP Egg

Distributed client for the Global Consciousness Project — a self-hosted network variance tracker inspired by the Global Consciousness Project.

Each "egg" container draws 200 random bits per second from the OS hardware-entropy pool and submits the count of 1-bits to a central server, which runs Stouffer Z-score analysis and displays a live colored dot.

Architecture

Egg containers (anyone can run)
        │  POST /api/data  (one 200-bit trial per second)
        ▼
    Server (FastAPI + SQLite)
        │  Stouffer Z network variance analysis every 60 s
        ▼
    Website  →  animated dot  +  history chart  +  embeddable iframe

The server is maintained separately. This repo contains only the egg client.

Run an Egg

Clone the repo and use Docker Compose — it pulls the pre-built image from the registry automatically:

git clone https://git.hexadual.io/rocobo/GCP-Dot.git
cd GCP-Dot
docker compose up -d

The egg will immediately start sending one trial per second and persist its ID across restarts.

Environment Variables

Variable Default Description
SERVER_URL https://gcp.hexadual.io Server to send trials to
EGG_ID auto-generated Override the egg's unique identifier

The auto-generated ID is derived from a SHA-256 hash stored at /data/egg_id — mount a volume there to keep it stable across restarts.

Project Structure

GCP/
├── egg.py               # Egg client — all logic (~70 lines)
├── requirements.txt     # requests==2.31.0
├── Dockerfile
├── docker-compose.yml
└── .gitea/workflows/
    └── docker.yml       # CI: builds and pushes egg image on every push to main

Published Images

Every push to main builds and publishes to the Gitea container registry via Gitea Actions:

Image Pull
Egg docker pull git.hexadual.io/rocobo/gcp-dot-egg:latest

How the Analysis Works

The server analyses the past hour of data every 60 seconds:

  1. Normalise each trial to a Z-score: z = (trial 100) / √50 (Binomial(200, 0.5) has mean = 100, variance = 50)
  2. Stouffer Z per second across all active eggs: S_t = Σzᵢ / √N
  3. Network variance: V = Σ S_t² — follows χ²(T) under H₀
  4. Index = lower-tail CDF × 100

Color Table

Color Index Meaning
Blue > 95% Significantly small variance — deep coherence
Cyan 9095% Small variance — probable coherence
Green 4090% Normal random behavior
Yellow 1040% Slightly elevated variance
Orange 510% Strongly elevated variance
Red < 5% Significantly large variance

Embed the Dot

<iframe src="https://your-domain.com/gcp.html"
        height="48" width="48" scrolling="no" frameborder="0"></iframe>

Server API Reference

Endpoint Description
POST /api/data Submit a trial {egg_id, timestamp, trial}
GET /api/status Latest analysis result
GET /api/history?limit=60 Last N analysis records
GET /api/eggs Eggs active in the last 2 minutes