diff options
| author | murilo ijanc | 2026-03-24 21:41:06 -0300 |
|---|---|---|
| committer | murilo ijanc | 2026-03-24 21:41:06 -0300 |
| commit | f186b71ca51e83837db60de13322394bb5e6d348 (patch) | |
| tree | cd7940eaa16b83d2cde7b18123411bfb161f7ebb /news/phase0-foundation | |
| download | website-f186b71ca51e83837db60de13322394bb5e6d348.tar.gz | |
Initial commit
Import existing tesseras.net website content.
Diffstat (limited to 'news/phase0-foundation')
| -rw-r--r-- | news/phase0-foundation/index.html | 125 | ||||
| -rw-r--r-- | news/phase0-foundation/index.html.gz | bin | 0 -> 2680 bytes |
2 files changed, 125 insertions, 0 deletions
diff --git a/news/phase0-foundation/index.html b/news/phase0-foundation/index.html new file mode 100644 index 0000000..783c9e6 --- /dev/null +++ b/news/phase0-foundation/index.html @@ -0,0 +1,125 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Phase 0: Foundation Laid — Tesseras</title> + <meta name="description" content="The foundation crates for Tesseras are now in place — core domain types, cryptographic primitives, SQLite storage, and a working CLI."> + <!-- Open Graph --> + <meta property="og:type" content="article"> + <meta property="og:title" content="Phase 0: Foundation Laid"> + <meta property="og:description" content="The foundation crates for Tesseras are now in place — core domain types, cryptographic primitives, SQLite storage, and a working CLI."> + <meta property="og:image" content="https://tesseras.net/images/social.jpg"> + <meta property="og:image:width" content="1200"> + <meta property="og:image:height" content="630"> + <meta property="og:site_name" content="Tesseras"> + <!-- Twitter Card --> + <meta name="twitter:card" content="summary_large_image"> + <meta name="twitter:title" content="Phase 0: Foundation Laid"> + <meta name="twitter:description" content="The foundation crates for Tesseras are now in place — core domain types, cryptographic primitives, SQLite storage, and a working CLI."> + <meta name="twitter:image" content="https://tesseras.net/images/social.jpg"> + <link rel="stylesheet" href="https://tesseras.net/style.css?h=21f0f32121928ee5c690"> + + + <link rel="alternate" type="application/atom+xml" title="Tesseras" href="https://tesseras.net/atom.xml"> + + + <link rel="icon" type="image/png" sizes="32x32" href="https://tesseras.net/images/favicon.png?h=be4e123a23393b1a027d"> + +</head> +<body> + <header> + <h1> + <a href="https://tesseras.net/"> + <img src="https://tesseras.net/images/logo-64.png?h=c1b8d0c4c5f93b49d40b" alt="Tesseras" width="40" height="40" class="logo"> + Tesseras + </a> + </h1> + <nav> + + <a href="https://tesseras.net/about/">About</a> + <a href="https://tesseras.net/news/">News</a> + <a href="https://tesseras.net/releases/">Releases</a> + <a href="https://tesseras.net/faq/">FAQ</a> + <a href="https://tesseras.net/subscriptions/">Subscriptions</a> + <a href="https://tesseras.net/contact/">Contact</a> + + </nav> + <nav class="lang-switch"> + + <strong>English</strong> | <a href="/pt-br/news/phase0-foundation/">Português</a> + + </nav> + </header> + + <main> + +<article> + <h2>Phase 0: Foundation Laid</h2> + <p class="news-date">2026-02-14</p> + <p>The first milestone of the Tesseras project is complete. Phase 0 establishes the +foundation that every future component will build on: domain types, +cryptography, storage, and a usable command-line interface.</p> +<h2 id="what-was-built">What was built</h2> +<p><strong>tesseras-core</strong> — The domain layer defines the tessera format: <code>ContentHash</code> +(BLAKE3, 32 bytes), <code>NodeId</code> (Kademlia, 20 bytes), memory types (Moment, +Reflection, Daily, Relation, Object), visibility modes (Private, Circle, Public, +PublicAfterDeath, Sealed), and a plain-text manifest format that can be parsed +by any programming language for the next thousand years. The application service +layer (<code>TesseraService</code>) handles create, verify, export, and list operations +through port traits, following hexagonal architecture.</p> +<p><strong>tesseras-crypto</strong> — Ed25519 key generation, signing, and verification. A +dual-signature framework (Ed25519 + ML-DSA placeholder) ready for post-quantum +migration. BLAKE3 content hashing. Reed-Solomon erasure coding behind a feature +flag for future replication.</p> +<p><strong>tesseras-storage</strong> — SQLite index via rusqlite with plain-SQL migrations. +Filesystem blob store with content-addressable layout +(<code>blobs/<tessera_hash>/<memory_hash>/<filename></code>). Identity key persistence on +disk.</p> +<p><strong>tesseras-cli</strong> — A working <code>tesseras</code> binary with five commands:</p> +<ul> +<li><code>init</code> — generates Ed25519 identity, creates SQLite database</li> +<li><code>create <dir></code> — scans a directory for media files, creates a signed tessera</li> +<li><code>verify <hash></code> — checks signature and file integrity</li> +<li><code>export <hash> <dest></code> — writes a self-contained tessera directory</li> +<li><code>list</code> — shows a table of stored tesseras</li> +</ul> +<p><strong>Testing</strong> — 67+ tests across the workspace: unit tests in every module, +property-based tests (proptest) for hex roundtrips and manifest serialization, +integration tests covering the full create-verify-export cycle including +tampered file and invalid signature detection. Zero clippy warnings.</p> +<h2 id="architecture-decisions">Architecture decisions</h2> +<ul> +<li><strong>Hexagonal architecture</strong>: crypto operations are injected via trait objects +(<code>Box<dyn Hasher></code>, <code>Box<dyn ManifestSigner></code>, <code>Box<dyn ManifestVerifier></code>), +keeping the core crate free of concrete crypto dependencies.</li> +<li><strong>Feature flags</strong>: the <code>service</code> feature on tesseras-core gates the async +application layer. The <code>classical</code> and <code>erasure</code> features on tesseras-crypto +control which algorithms are compiled in.</li> +<li><strong>Plain-text manifest</strong>: parseable without any binary format library, with +explicit <code>blake3:</code> hash prefixes and human-readable layout.</li> +</ul> +<h2 id="what-comes-next">What comes next</h2> +<p>Phase 0 is the local-only foundation. The road ahead:</p> +<ul> +<li><strong>Phase 1: Networking</strong> — QUIC transport (quinn), Kademlia DHT for peer +discovery, NAT traversal</li> +<li><strong>Phase 2: Replication</strong> — Reed-Solomon erasure coding over the network, +repair loops, bilateral reciprocity (no blockchain, no tokens)</li> +<li><strong>Phase 3: Clients</strong> — Flutter mobile/desktop app via flutter_rust_bridge, +GraphQL API, WASM browser node</li> +<li><strong>Phase 4: Hardening</strong> — ML-DSA post-quantum signatures, packaging for +Alpine/Arch/Debian/FreeBSD/OpenBSD, CI on SourceHut</li> +</ul> +<p>The tessera format is stable. Everything built from here connects to and extends +what exists today.</p> + +</article> + + </main> + + <footer> + <p>© 2026 Tesseras Project. <a href="/atom.xml">News Feed</a> · <a href="https://git.sr.ht/~ijanc/tesseras">Source</a></p> + </footer> +</body> +</html> diff --git a/news/phase0-foundation/index.html.gz b/news/phase0-foundation/index.html.gz Binary files differnew file mode 100644 index 0000000..31efa2d --- /dev/null +++ b/news/phase0-foundation/index.html.gz |