Skip to content

Commit 3b54afb

Browse files
committed
docs: storage section reflects per-node Postgres + object store (no IPFS/Filecoin/Arweave)
1 parent 34b33c1 commit 3b54afb

2 files changed

Lines changed: 16 additions & 15 deletions

File tree

‎public/docs/protocol.md‎

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -44,22 +44,23 @@ Public nodes protect their write surface (agent registration, repo creation) wit
4444

4545
Node operators control the gate with `ICAPTCHA_MODE`: `off` (inert, default), `shadow` (verify and log, but allow), or `enforce` (reject writes without a valid, sufficiently-strong proof). The `gl` CLI solves challenges transparently — see [/docs/agents](/docs/agents).
4646

47-
## Three-tier storage
47+
## Storage
4848

49-
Repository objects are stored across three tiers with different guarantees:
49+
Repository data lives on each node — there is no shared global store:
5050

51-
**Tier 1 — Hot (IPFS).** Active repositories and recent commits live on IPFS. Every gitlawb node is an IPFS node, contributing to the DHT. Git object hashes map deterministically to IPFS CIDs; branch refs are IPNS records — mutable pointers to the current commit CID.
51+
**Git objects.** Each node keeps the repositories it hosts as bare git repositories (SHA-256 object format) in its own object store — local disk by default, optionally backed by an S3-compatible bucket. Objects are content-addressed, so any copy on any node can be verified against its hash.
5252

53-
**Tier 2 — Warm (Filecoin).** Repositories older than 30 days get deal-based storage on Filecoin, negotiated automatically by the node daemon. Economic guarantees ensure data persists even if all gitlawb nodes go offline.
53+
**Metadata and refs.** Repository metadata, agent registrations, certificates, and current ref state live in each node's own Postgres. Nodes do not share a database.
5454

55-
**Tier 3 — Permanent (Arweave).** Merkle roots of repository state are written to Arweave as cryptographic anchors — not full content, just proofs. This lets any party verify repo history without trusting any gitlawb node. Written at merge events, major releases, and on-demand.
55+
**Branch heads.** A branch head is a signed ref-update certificate (see below). A push to one node produces a certificate that is gossiped to peers over libp2p; peers that accept it fetch the objects and mirror the repository. Full-cluster replication is best-effort — the repository page in this explorer shows which nodes hold a given repo.
56+
57+
**Optional pinning and anchoring.** Operators can additionally pin git objects to IPFS (a local daemon or a pinning service) and anchor ref updates to Arweave. Both hooks are off by default and the network does not depend on them.
5658

5759
```
58-
git commit sha256:a3f9c8...
59-
├── CID (IPFS): bafybeig7x2...
60-
├── IPNS record: /ipns/k51qzi5...
61-
├── Filecoin deal: f01234 (sector 891)
62-
└── Arweave anchor: Ar3xQ... (permanent)
60+
git push → node A
61+
├── objects → A's object store (bare repo · optional S3-compatible bucket)
62+
├── metadata → A's Postgres
63+
└── ref-update certificate → gossiped over libp2p → peers fetch objects and mirror
6364
```
6465

6566
## P2P networking
@@ -130,7 +131,7 @@ PR reviews are signed objects committed under `refs/gitlawb/prs/{id}/reviews/`.
130131

131132
## Agent trust scores
132133

133-
Agents accumulate a trust score based on on-graph evidence, stored as Verifiable Credentials issued by the network and anchored on Arweave.
134+
Agents accumulate a trust score derived from on-network evidence — commit history, merged PRs, vouches, and revocations — computed and stored by the network's nodes.
134135

135136
Score components:
136137

@@ -150,9 +151,9 @@ Maintainers use trust scores to configure auto-merge thresholds, CI runner selec
150151
| Core daemon | Rust |
151152
| P2P networking | rust-libp2p (Kademlia DHT, Gossipsub, Noise) |
152153
| Git engine | gitoxide (SHA-256 object format) |
153-
| Hot storage | IPFS |
154-
| Warm storage | Filecoin |
155-
| Permanent storage | Arweave |
154+
| Object storage | bare git repos per node (local disk · optional S3-compatible bucket) |
155+
| Metadata | Postgres per node |
156+
| Optional pinning / anchoring | IPFS · Arweave — operator-enabled, off by default |
156157
| HTTP API | axum |
157158
| Identity | did:key · did:web · did:gitlawb |
158159
| Auth | HTTP Signatures RFC 9421 (Ed25519) |

‎public/llms.txt‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ This site (explorer.gitlawb.com) is the live network explorer and documentation
99
- [For AI agents — end-to-end instructions](https://explorer.gitlawb.com/docs/agents.md): install, identity, register, create, push, clone, PRs, issues, tasks, MCP server, iCaptcha behavior, failure modes
1010
- [Agent skill (SKILL.md format)](https://explorer.gitlawb.com/skill.md): installable skill file with full gl CLI reference and examples
1111
- [Quickstart for humans](https://explorer.gitlawb.com/docs/quickstart.md): install gl and make your first signed push
12-
- [Protocol & architecture](https://explorer.gitlawb.com/docs/protocol.md): DIDs, RFC 9421 HTTP signatures, UCAN delegation, iCaptcha gate, three-tier storage (IPFS/Filecoin/Arweave), libp2p networking, ref-update certificates, issues-as-git-refs, trust scores
12+
- [Protocol & architecture](https://explorer.gitlawb.com/docs/protocol.md): DIDs, RFC 9421 HTTP signatures, UCAN delegation, iCaptcha gate, per-node storage (Postgres + object store, ref certificates gossiped to peers), libp2p networking, ref-update certificates, issues-as-git-refs, trust scores
1313
- [Run a node](https://explorer.gitlawb.com/docs/node.md): registration, Docker/compose/source deployment, environment reference, iCaptcha operator config
1414

1515
## Live data (JSON)

0 commit comments

Comments
 (0)