DChain single-node blockchain + React Native messenger client. Core: - PBFT consensus with multi-sig validator admission + equivocation slashing - BadgerDB + schema migration scaffold (CurrentSchemaVersion=0) - libp2p gossipsub (tx/v1, blocks/v1, relay/v1, version/v1) - Native Go contracts (username_registry) alongside WASM (wazero) - WebSocket gateway with topic-based fanout + Ed25519-nonce auth - Relay mailbox with NaCl envelope encryption (X25519 + Ed25519) - Prometheus /metrics, per-IP rate limit, body-size cap Deployment: - Single-node compose (deploy/single/) with Caddy TLS + optional Prometheus - 3-node dev compose (docker-compose.yml) with mocked internet topology - 3-validator prod compose (deploy/prod/) for federation - Auto-update from Gitea via /api/update-check + systemd timer - Build-time version injection (ldflags → node --version) - UI / Swagger toggle flags (DCHAIN_DISABLE_UI, DCHAIN_DISABLE_SWAGGER) Client (client-app/): - Expo / React Native / NativeWind - E2E NaCl encryption, typing indicator, contact requests - Auto-discovery of canonical contracts, chain_id aware, WS reconnect on node switch Documentation: - README.md, CHANGELOG.md, CONTEXT.md - deploy/single/README.md with 6 operator scenarios - deploy/UPDATE_STRATEGY.md with 4-layer forward-compat design - docs/contracts/*.md per contract
29 lines
1.7 KiB
Markdown
29 lines
1.7 KiB
Markdown
# testdata — dev-cluster identities
|
|
|
|
These three JSON files are **hard-coded test keys** used by the 3-node dev
|
|
cluster in the repository-root `docker-compose.yml`. They exist ONLY so that
|
|
running `docker compose up --build -d` gives every developer the same
|
|
deterministic network (same pubkeys, same peer IDs, same genesis validator
|
|
set) — making screenshots, tutorials, and loadtest fixtures reproducible.
|
|
|
|
**Do NOT use these keys for anything that holds real value.** The private
|
|
keys are in the repository history, visible to everyone who can clone.
|
|
|
|
## When you need real keys
|
|
|
|
- Single-node prod deploy: see `deploy/single/README.md` — generate a fresh
|
|
key with `docker run --entrypoint /usr/local/bin/client dchain-node-slim
|
|
keygen --out node.json` and store it outside the repo.
|
|
- Multi-node prod cluster: `deploy/prod/README.md`.
|
|
|
|
## Files
|
|
|
|
| File | pub_key | peer ID |
|
|
|---------------|--------------------------------------------------------------------|----------------------------------------------------------|
|
|
| `node1.json` | `26018d40e40514f38f799eee403f62da98cb5ac936e29049629f1873cbcb4070` | `12D3KooWCNj2ugnjqoJFPdRuhGZHvGTbEiTMmHDimfsxmGYcjGo9` |
|
|
| `node2.json` | `bf3628d1a10fcf5a90d2cb31f387c8d1f2dac6a2c54c736c27d5ea04af9696a2` | `12D3KooWNgmwMbaw5K7vDbGxb9zvcF8gur5GWXGoFEVfKzSNc9bf` |
|
|
| `node3.json` | `6316e7427654cd2e300033c5e13b6182d595ec2c63bc8396b74183296112510c` | `12D3KooWGVAnaq1EgH1dN49fQWvw1z71R5bZj7UmPkUeQkW4783V` |
|
|
|
|
The baked-in WASM contracts under `../contracts/*` are also copied into the
|
|
dev Docker image at build time — they don't need per-node identities.
|