chore: initial commit for v0.0.1
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
This commit is contained in:
28
testdata/README.md
vendored
Normal file
28
testdata/README.md
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
# 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.
|
||||
6
testdata/node1.json
vendored
Normal file
6
testdata/node1.json
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"pub_key": "26018d40e40514f38f799eee403f62da98cb5ac936e29049629f1873cbcb4070",
|
||||
"priv_key": "16aba1d2ffe7b1d0603ec5fbc2a48a9894fe61019af91b39217a88fc1bbfa5ae26018d40e40514f38f799eee403f62da98cb5ac936e29049629f1873cbcb4070",
|
||||
"x25519_pub": "baada10a9c49ea7395cc8b39393cf9b292d255626eff708f0ba2c25d1aa8177d",
|
||||
"x25519_priv": "a814c191256c362fd0874cd00fae00e3846a3451cc7093b0e080acc9bf50da56"
|
||||
}
|
||||
6
testdata/node2.json
vendored
Normal file
6
testdata/node2.json
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"pub_key": "bf3628d1a10fcf5a90d2cb31f387c8d1f2dac6a2c54c736c27d5ea04af9696a2",
|
||||
"priv_key": "8289b3e36db67fe78bc7bb359590536188b084c4b302f6021bd59e7db21e543abf3628d1a10fcf5a90d2cb31f387c8d1f2dac6a2c54c736c27d5ea04af9696a2",
|
||||
"x25519_pub": "9b7c5f43c79217dff8413ab2116b84b19b1e05606c143a82885609e08ac28579",
|
||||
"x25519_priv": "b04fd2c99dda64e70601de5c92d05afe560733665867f911dd725ec674137a7a"
|
||||
}
|
||||
6
testdata/node3.json
vendored
Normal file
6
testdata/node3.json
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"pub_key": "6316e7427654cd2e300033c5e13b6182d595ec2c63bc8396b74183296112510c",
|
||||
"priv_key": "49b357907960d5c11ddcf3d17c2e1a73971134974a759a8c5fb592a704b3e3f46316e7427654cd2e300033c5e13b6182d595ec2c63bc8396b74183296112510c",
|
||||
"x25519_pub": "4a01c8ed427adbbb9aa799c3916921c8642086c6f3831d442123dc285bc9c04c",
|
||||
"x25519_priv": "9073c8946ef5d520376a4c23bdd89f7bed4fa5ef7d69cbdc593e020a3a59ad78"
|
||||
}
|
||||
Reference in New Issue
Block a user