diff options
| author | murilo ijanc | 2026-03-25 21:22:22 -0300 |
|---|---|---|
| committer | murilo ijanc | 2026-03-25 21:22:22 -0300 |
| commit | 4cfc323b7ca5534553ca90e92dae3e0f8c8923e8 (patch) | |
| tree | 0aa9ffe08be052f5b8d45d4b41f4c5ce48ac9272 | |
| parent | 01c17c68277ff88fab812920732d9bbe9e6bb571 (diff) | |
| download | website-4cfc323b7ca5534553ca90e92dae3e0f8c8923e8.tar.gz | |
Add tesseras-dht and tesseras-paste package pages
Replace the about/inspiration sections with a packages listing.
Add dedicated pages for tesseras-dht and tesseras-paste with
download, signify/SHA256 verification, source links, and docs.
| -rw-r--r-- | index.html | 56 | ||||
| -rw-r--r-- | tesseras-dht.html | 79 | ||||
| -rw-r--r-- | tesseras-paste.html | 126 |
3 files changed, 209 insertions, 52 deletions
@@ -29,64 +29,16 @@ ╚═╝ ╚══════╝╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ </pre> -<p style="text-align:center"><a href="#about">About</a> | <a href="#license">License</a> | <a href="#contact">Contact</a></p> +<p style="text-align:center"><a href="#packages">Packages</a> | <a href="#license">License</a> | <a href="#contact">Contact</a></p> <blockquote style="text-align:center"> <p><em>"Your voice matters — even when no one knows your name."</em></p> </blockquote> -<h2 id="about">About</h2> - -<p>Every platform you use today has an owner. Someone who reads your posts before -you publish them. Someone who decides what you can say, who you can reach, and -whether your account exists tomorrow.</p> - -<p>Tesseras is a peer-to-peer social network with no central server, no accounts -to ban, and no algorithm deciding what you see. You publish markdown content -directly to an overlay network. Others discover it through a distributed hash -table — no middleman, no moderation queue, no terms of service.</p> - -<p>You can be pseudonymous, with a cryptographic identity that proves authorship -without revealing who you are. Or you can be fully anonymous — no identity at -all, just words.</p> - -<h3>How It Works</h3> - -<p>Nodes connect directly over QUIC, forming a self-organizing network. Content -is addressed by its BLAKE3 hash — immutable and verifiable. Communities are -cryptographic zones, not corporate property. Names are local petnames, not a -global registry someone controls.</p> - -<p>There is no blockchain. No tokens. No incentive layer. Nodes relay content for -each other because that is how the network works.</p> - -<h3>Why "Tesseras"?</h3> - -<p>A <em>tessera</em> is a small piece of stone or glass used to compose a mosaic. -Individually simple. Individually durable. But together, they form something -larger. Some Roman mosaics made of tesserae are still intact after two thousand -years.</p> - -<p>Each post in the network is a tessera — a small, self-contained fragment. -The network is the mosaic, assembled piece by piece, by many hands.</p> - -<h2 id="inspiration">Standing on the Shoulders of Giants</h2> - -<p>Tesseras doesn't exist in a vacuum. It builds on decades of work by projects -that proved decentralization is not just possible — it works.</p> +<h2 id="packages">Packages</h2> <ul> - <li><a href="https://geti2p.net/">I2P</a> — anonymous overlay network with garlic routing and a Kademlia-based NetDB</li> - <li><a href="https://ipfs.tech/">IPFS</a> — content-addressed distributed storage over a Kademlia DHT</li> - <li><a href="https://www.gnunet.org/">GNUnet GNS</a> — decentralized name system (RFC 9498), direct ancestor of Tesseras TNS</li> - <li><a href="https://scuttlebutt.nz/">Scuttlebutt</a> — P2P social with append-only logs, gossip replication, and Ed25519 feeds</li> - <li><a href="https://nostr.com/">Nostr</a> — event-based social protocol with Ed25519 identities</li> - <li><a href="https://iroh.computer/">Iroh</a> — QUIC-based P2P with relay fallback and hole punching</li> - <li><a href="https://veilid.com/">Veilid</a> — P2P framework with DHT and encrypted routing</li> - <li><a href="https://man.openbsd.org/relayd">OpenBSD relayd</a> — reference for the daemon/control privilege separation architecture</li> - <li><a href="https://man.openbsd.org/unwind">OpenBSD unwind</a> — inspiration for the local DNS resolver design</li> - <li><a href="https://briarproject.org/">Briar</a> — censorship-resistant messaging over Tor and Bluetooth</li> - <li><a href="https://retroshare.cc/">RetroShare</a> — friend-to-friend encrypted forums, channels, and chat</li> - <li><a href="https://join-lemmy.org/">Lemmy</a> — federated Reddit-like forum, moderation model reference</li> + <li><a href="tesseras-dht.html">tesseras-dht</a> — NAT-aware Kademlia DHT library for Rust</li> + <li><a href="tesseras-paste.html">tesseras-paste</a> — decentralized encrypted pastebin built on tesseras-dht</li> </ul> <h2 id="contact">Contact</h2> diff --git a/tesseras-dht.html b/tesseras-dht.html new file mode 100644 index 0000000..b8ea4ba --- /dev/null +++ b/tesseras-dht.html @@ -0,0 +1,79 @@ +<!doctype html> +<html> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="theme-color" content="#ffffff" media="(prefers-color-scheme:light)"> + <meta name="theme-color" content="#121212" media="(prefers-color-scheme:dark)"> + <link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90' font-family='sans-serif' font-weight='bold'>T</text></svg>"> + <meta name="Description" content="tesseras-dht: NAT-aware Kademlia DHT library for Rust."> + + <meta property="og:url" content="https://tesseras.net/tesseras-dht.html"> + <meta property="og:title" content="tesseras-dht - NAT-aware Kademlia DHT"> + <meta property="og:site_name" content="Tesseras"> + <meta property="og:description" content="tesseras-dht: NAT-aware Kademlia DHT library for Rust."> + + <title>tesseras-dht - NAT-aware Kademlia DHT</title> + + <link href="styles.css" rel="stylesheet" type="text/css"> +</head> +<body> +<p><a href="/">← tesseras.net</a></p> + +<h1>tesseras-dht</h1> + +<p>A NAT-aware Kademlia DHT library for Rust, designed for decentralized +peer-to-peer networking. It provides distributed key-value storage with +built-in NAT traversal, reliable transport, and Ed25519 authentication.</p> + +<h2>Features</h2> + +<ul> + <li>Distributed key-value storage (iterative FIND_NODE, FIND_VALUE, STORE)</li> + <li>NAT traversal via DTUN hole-punching and proxy relay</li> + <li>Reliable Datagram Protocol (RDP) with 7-state connection machine</li> + <li>Datagram transport with automatic fragmentation/reassembly</li> + <li>Ed25519 packet authentication</li> + <li>256-bit node IDs (Ed25519 public keys)</li> + <li>Rate limiting, ban list, and eclipse attack mitigation</li> + <li>Persistence and metrics</li> + <li>OpenBSD (kqueue) and Linux (epoll) support</li> +</ul> + +<h2 id="download">Download</h2> + +<p>Current version: <strong>0.1.1</strong></p> + +<p>Source tarballs and signatures are available at +<a href="https://tesseras.net/pub/tesseras-dht/">tesseras.net/pub/tesseras-dht/</a>.</p> + +<h3>Verify with signify</h3> + +<pre style="text-align:left;font-size:0.9em;white-space:pre-wrap">$ signify -Vp tesseras.pub -m tesseras-dht-0.1.1.tar.gz -x tesseras-dht-0.1.1.tar.gz.sig +Signature Verified</pre> + +<h3>Verify with SHA256</h3> + +<pre style="text-align:left;font-size:0.9em;white-space:pre-wrap">$ sha256 tesseras-dht-0.1.1.tar.gz +$ cat tesseras-dht-0.1.1.tar.gz.sha256</pre> + +<p>Compare the two outputs. They must match.</p> + +<h3>Install from crates.io</h3> + +<pre style="text-align:left;font-size:0.9em;white-space:pre-wrap">$ cargo add tesseras-dht</pre> + +<h2 id="source">Source Code</h2> + +<ul> + <li><a href="https://got.tesseras.net/?action=summary&path=tesseras-dht.git">GoT</a> (primary)</li> + <li><a href="https://git.tesseras.net/tesseras-dht/">Git mirror</a></li> + <li><a href="https://crates.io/crates/tesseras-dht">crates.io</a></li> + <li><a href="https://docs.rs/tesseras-dht/latest/tesseras_dht/">docs.rs</a></li> +</ul> + +<h2 id="license">License</h2> + +<p>ISC — see <a href="https://got.tesseras.net/?action=blob&path=tesseras-dht.git&name=LICENSE">LICENSE</a>.</p> +</body> +</html> diff --git a/tesseras-paste.html b/tesseras-paste.html new file mode 100644 index 0000000..f1ac6f3 --- /dev/null +++ b/tesseras-paste.html @@ -0,0 +1,126 @@ +<!doctype html> +<html> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="theme-color" content="#ffffff" media="(prefers-color-scheme:light)"> + <meta name="theme-color" content="#121212" media="(prefers-color-scheme:dark)"> + <link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90' font-family='sans-serif' font-weight='bold'>T</text></svg>"> + <meta name="Description" content="tesseras-paste: decentralized encrypted pastebin built on tesseras-dht."> + + <meta property="og:url" content="https://tesseras.net/tesseras-paste.html"> + <meta property="og:title" content="tesseras-paste - Decentralized encrypted pastebin"> + <meta property="og:site_name" content="Tesseras"> + <meta property="og:description" content="tesseras-paste: decentralized encrypted pastebin built on tesseras-dht."> + + <title>tesseras-paste - Decentralized encrypted pastebin</title> + + <link href="styles.css" rel="stylesheet" type="text/css"> +</head> +<body> +<p><a href="/">← tesseras.net</a></p> + +<h1>tesseras-paste</h1> + +<p>A decentralized pastebin built on +<a href="tesseras-dht.html">tesseras-dht</a>. Pastes are encrypted client-side +with XChaCha20-Poly1305, distributed across the DHT, and served over HTTP. +No central server stores your data.</p> + +<h2>Features</h2> + +<ul> + <li>End-to-end encrypted pastes (XChaCha20-Poly1305)</li> + <li>Decentralized storage via Kademlia DHT</li> + <li>NAT traversal (hole-punching and proxy relay)</li> + <li>HTTP serving with content-key URLs</li> + <li>TTL-based expiry and pinning</li> + <li>Public (unencrypted) paste mode</li> + <li>OpenBSD <code>pledge(2)</code> and <code>unveil(2)</code> sandboxing</li> + <li>DNS SRV bootstrap discovery</li> +</ul> + +<h2>Binaries</h2> + +<p><strong>tpd</strong> — daemon that runs a DHT node, stores pastes, and serves HTTP.</p> + +<pre style="text-align:left;font-size:0.9em;white-space:pre-wrap">usage: tpd [-g] [-n] [-p port] [-d dir] [-s sock] [-w http_port] [-b host:port] + + -p port UDP port (0 = random) + -d dir data directory + -s sock Unix socket path + -w port HTTP server port + -g global NAT (public server) + -n no auto-bootstrap (skip DNS SRV) + -b host:port bootstrap peer (repeatable)</pre> + +<p><strong>tp</strong> — CLI client that talks to the daemon over a Unix socket.</p> + +<pre style="text-align:left;font-size:0.9em;white-space:pre-wrap">usage: tp [-s sock] <command> [args] + + put [-t ttl] [-p] read stdin, store paste (-p = public, no encryption) + get <key> retrieve paste to stdout + del <key> delete paste + pin <key> pin (never expires) + unpin <key> unpin + status show daemon status</pre> + +<h2>Quick Start</h2> + +<pre style="text-align:left;font-size:0.9em;white-space:pre-wrap"># Start the daemon +$ tpd -p 4433 -w 9999 -d /var/tesseras-paste + +# Store a paste +$ echo "hello" | tp put -p +Ey2rNiNukhNpqUouaSnnZwTtCgeCgMx2FrCuMr3whBxx + +# Retrieve it +$ tp get Ey2rNiNukhNpqUouaSnnZwTtCgeCgMx2FrCuMr3whBxx</pre> + +<h2>Public Gateway</h2> + +<p>A public HTTP gateway is available at +<strong>http://p.tesseras.net/<key></strong>. For example:</p> + +<pre style="text-align:left;font-size:0.9em;white-space:pre-wrap">http://p.tesseras.net/Ey2rNiNukhNpqUouaSnnZwTtCgeCgMx2FrCuMr3whBxx</pre> + +<p>Note: there may be a short delay when retrieving recently created pastes, +as content needs time to propagate across DHT nodes.</p> + +<h2 id="download">Download</h2> + +<p>Current version: <strong>0.1.0</strong></p> + +<p>Source tarballs and signatures are available at +<a href="https://tesseras.net/pub/tesseras-paste/">tesseras.net/pub/tesseras-paste/</a>.</p> + +<h3>Verify with signify</h3> + +<pre style="text-align:left;font-size:0.9em;white-space:pre-wrap">$ signify -Vp tesseras.pub -m tesseras-paste-0.1.0.tar.gz -x tesseras-paste-0.1.0.tar.gz.sig +Signature Verified</pre> + +<h3>Verify with SHA256</h3> + +<pre style="text-align:left;font-size:0.9em;white-space:pre-wrap">$ sha256 tesseras-paste-0.1.0.tar.gz +$ cat tesseras-paste-0.1.0.tar.gz.sha256</pre> + +<p>Compare the two outputs. They must match.</p> + +<h3>Install from crates.io</h3> + +<pre style="text-align:left;font-size:0.9em;white-space:pre-wrap">$ cargo install tesseras-paste</pre> + +<h2 id="source">Source Code</h2> + +<ul> + <li><a href="https://got.tesseras.net/?action=summary&path=tesseras-paste.git">GoT</a> (primary)</li> + <li><a href="https://git.tesseras.net/tesseras-paste/">Git mirror</a></li> + <li><a href="https://crates.io/crates/tesseras-paste">crates.io</a></li> + <li><a href="https://docs.rs/tesseras-paste/latest/tesseras_paste/">docs.rs</a></li> +</ul> + +<h2 id="license">License</h2> + +<p>ISC — see <a href="https://got.tesseras.net/?action=blob&path=tesseras-paste.git&name=LICENSE">LICENSE</a>.</p> +</body> +</html> |