185 lines
3.9 KiB
Markdown
185 lines
3.9 KiB
Markdown
|
|
Yes — and that’s a very reasonable moment to do it.
|
|||
|
|
Below is a **compact, structured condensation** of the *actual conclusions* reached, stripped of detours, phrased so you can paste it into a new document or start a new thread cleanly.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# ASL / PEL / Domain Model — Compact Working Summary
|
|||
|
|
|
|||
|
|
## 1. Domains (Git-like, clarified)
|
|||
|
|
|
|||
|
|
* **Common**
|
|||
|
|
A normal domain. Holds its own log, index, and store. Acts as a shared “main branch”.
|
|||
|
|
|
|||
|
|
* **root.alice**
|
|||
|
|
Alice’s *public-facing* sub-domain.
|
|||
|
|
|
|||
|
|
* Sub-domain of **Common**
|
|||
|
|
* Also sub-domain of **alice**
|
|||
|
|
* Only place Alice publishes to Common
|
|||
|
|
* Has its own log/index/store
|
|||
|
|
* May publish snapshot hashes to Common (existence proofs)
|
|||
|
|
|
|||
|
|
* **alice (private)**
|
|||
|
|
Alice’s private working domain.
|
|||
|
|
|
|||
|
|
* Never visible to Common
|
|||
|
|
* Contains secrets, experiments, raw data
|
|||
|
|
* Artifacts move outward only by explicit copy/promote into `root.alice`
|
|||
|
|
|
|||
|
|
Mental model:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
alice (private working tree)
|
|||
|
|
→ root.alice (publishable branch)
|
|||
|
|
→ common (main branch)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Groups are just domains under Common with multiple authorities.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. Logs & Indexes (key clarification)
|
|||
|
|
|
|||
|
|
* There is **one authoritative append-only log per domain**.
|
|||
|
|
* The **ASL log records index-segment events**, not individual artifact bytes.
|
|||
|
|
* The **index is reconstructed** as:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
snapshot + replay(log)
|
|||
|
|
```
|
|||
|
|
* No “second log” is needed:
|
|||
|
|
|
|||
|
|
* Index segments are immutable
|
|||
|
|
* The log references sealed segments
|
|||
|
|
* Blocks are never logged semantically
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. Blocks (demoted correctly)
|
|||
|
|
|
|||
|
|
* **Blocks are NOT semantic units**
|
|||
|
|
* Blocks are **storage-only atoms**
|
|||
|
|
* Blocks:
|
|||
|
|
|
|||
|
|
* may contain many artifacts
|
|||
|
|
* may contain one artifact
|
|||
|
|
* may be regenerated
|
|||
|
|
* may differ across domains
|
|||
|
|
|
|||
|
|
**Publication never publishes blocks.**
|
|||
|
|
Only index entries define visibility.
|
|||
|
|
|
|||
|
|
This avoids leaks like:
|
|||
|
|
|
|||
|
|
> secret + recipe accidentally in same block
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4. Artifacts & Storage
|
|||
|
|
|
|||
|
|
* Artifacts are defined by **identity (hash)**, not storage.
|
|||
|
|
* Storage may:
|
|||
|
|
|
|||
|
|
* pack artifacts
|
|||
|
|
* encrypt artifacts
|
|||
|
|
* discard artifacts
|
|||
|
|
* recompute artifacts
|
|||
|
|
* Index entries may point to:
|
|||
|
|
|
|||
|
|
* stored blocks
|
|||
|
|
* encrypted blocks
|
|||
|
|
* virtual (recomputable) locations
|
|||
|
|
|
|||
|
|
Blocks never cross trust boundaries implicitly.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5. PEL (major conclusion)
|
|||
|
|
|
|||
|
|
### There is only **ONE** PEL.
|
|||
|
|
|
|||
|
|
No meaningful split between “PEL-S” and “PEL-P”.
|
|||
|
|
|
|||
|
|
PEL is:
|
|||
|
|
|
|||
|
|
> A deterministic, snapshot-bound, authority-aware derivation language that maps artifacts → artifacts.
|
|||
|
|
|
|||
|
|
Key points:
|
|||
|
|
|
|||
|
|
* Any PEL output may be:
|
|||
|
|
|
|||
|
|
* stored
|
|||
|
|
* cached
|
|||
|
|
* discarded
|
|||
|
|
* recomputed
|
|||
|
|
* Authority & provenance always apply
|
|||
|
|
* “Semantic vs physical” is **store policy**, not language design
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 6. Deduplication (important insight)
|
|||
|
|
|
|||
|
|
Deduplication is **semantic**, not block-based.
|
|||
|
|
|
|||
|
|
The system may track:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
Artifact A
|
|||
|
|
├─ derived via PEL program X
|
|||
|
|
├─ derived via PEL program Y
|
|||
|
|
└─ imported from domain Z
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
This enables:
|
|||
|
|
|
|||
|
|
* semantic equivalence
|
|||
|
|
* alternate provenance paths
|
|||
|
|
* stronger trust reasoning
|
|||
|
|
|
|||
|
|
Blocks follow later as optimization.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 7. Publication semantics
|
|||
|
|
|
|||
|
|
* Domains never “push blocks”.
|
|||
|
|
* Domains publish:
|
|||
|
|
|
|||
|
|
* index entries
|
|||
|
|
* optional snapshot hashes
|
|||
|
|
* Common indexes `root.alice` like any other sub-domain.
|
|||
|
|
* Proof-of-existence is achieved by publishing snapshot hashes, not data.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 8. Mental hierarchy (final)
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
PEL (pure derivation)
|
|||
|
|
↓
|
|||
|
|
Artifacts (semantic facts)
|
|||
|
|
↓
|
|||
|
|
Index (visibility + truth)
|
|||
|
|
↓
|
|||
|
|
Store policy (encrypt / pack / discard / cache)
|
|||
|
|
↓
|
|||
|
|
Blocks (pure implementation detail)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## One-sentence takeaway
|
|||
|
|
|
|||
|
|
> **PEL defines truth derivation, indexes define visibility, stores decide materialization, and blocks are just a packing trick.**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
If you want, next time we can:
|
|||
|
|
|
|||
|
|
* restate this as a **single clean spec**,
|
|||
|
|
* or start fresh from **“ASL vNext minimal principles”**,
|
|||
|
|
* or jump directly into **implementation decisions** without re-deriving theory.
|
|||
|
|
|
|||
|
|
You’re at a very solid conceptual checkpoint now.
|
|||
|
|
|