<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tesseras-paste/src/daemon.rs, branch v0.1.1</title>
<subtitle>Decentralized pastebin built on tesseras-dht
</subtitle>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/'/>
<entry>
<title>Add automatic re-join and -v flag for verbose logging</title>
<updated>2026-03-26T01:19:39+00:00</updated>
<author>
<name>murilo ijanc</name>
</author>
<published>2026-03-26T01:19:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/commit/?id=4214189961d59b9de15e221a9c4b229c0d646e78'/>
<id>4214189961d59b9de15e221a9c4b229c0d646e78</id>
<content type='text'>
When the routing table drops to zero peers, the daemon now
re-joins bootstrap nodes every 60s, unbanning their addresses
first so replies are not silently discarded.

Both tp and tpd accept -v for debug-level output without
needing RUST_LOG environment variable.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the routing table drops to zero peers, the daemon now
re-joins bootstrap nodes every 60s, unbanning their addresses
first so replies are not silently discarded.

Both tp and tpd accept -v for debug-level output without
needing RUST_LOG environment variable.
</pre>
</div>
</content>
</entry>
<entry>
<title>Limit stdin read in tp, bound protocol drain, document Arc leak</title>
<updated>2026-03-25T18:49:08+00:00</updated>
<author>
<name>murilo ijanc</name>
</author>
<published>2026-03-25T18:41:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/commit/?id=290f53c38cdacd502eb6dda52f2ad207063e3973'/>
<id>290f53c38cdacd502eb6dda52f2ad207063e3973</id>
<content type='text'>
- tp: limit stdin to 64 KiB + 1 byte to reject oversized pastes
  early without unbounded memory allocation
- daemon: bound the oversized-line drain to MAX_LINE_SIZE so a
  client without newlines cannot block beyond the read timeout
- tpd: document intentional Arc::into_raw leak in signal handler
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- tp: limit stdin to 64 KiB + 1 byte to reject oversized pastes
  early without unbounded memory allocation
- daemon: bound the oversized-line drain to MAX_LINE_SIZE so a
  client without newlines cannot block beyond the read timeout
- tpd: document intentional Arc::into_raw leak in signal handler
</pre>
</div>
</content>
</entry>
<entry>
<title>Harden identity key permissions, atomic writes, and HTTP method</title>
<updated>2026-03-25T18:30:45+00:00</updated>
<author>
<name>murilo ijanc</name>
</author>
<published>2026-03-25T18:26:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/commit/?id=62b68cc461b5e298add3ab190fe9a38f3efefe7a'/>
<id>62b68cc461b5e298add3ab190fe9a38f3efefe7a</id>
<content type='text'>
- Write identity.key with mode 0600 to prevent other users from
  reading the Ed25519 private seed
- Use destination filename in atomic_write temp path to avoid
  collisions between concurrent writes to different files
- Reject HTTP methods other than GET/HEAD with 405
- Return "Hello Tesseras World" on GET /
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Write identity.key with mode 0600 to prevent other users from
  reading the Ed25519 private seed
- Use destination filename in atomic_write temp path to avoid
  collisions between concurrent writes to different files
- Reject HTTP methods other than GET/HEAD with 405
- Return "Hello Tesseras World" on GET /
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix clippy warnings: needless borrow and collapsible if</title>
<updated>2026-03-25T18:10:15+00:00</updated>
<author>
<name>murilo ijanc</name>
</author>
<published>2026-03-25T18:10:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/commit/?id=63c080840a7567f67effa9703d7c94b488d22fc1'/>
<id>63c080840a7567f67effa9703d7c94b488d22fc1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Log socket setup errors in Unix client handler</title>
<updated>2026-03-25T17:57:18+00:00</updated>
<author>
<name>murilo ijanc</name>
</author>
<published>2026-03-25T17:57:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/commit/?id=71a839341e34c7808cc90a6e5e25d269588e989c'/>
<id>71a839341e34c7808cc90a6e5e25d269588e989c</id>
<content type='text'>
Warn when set_nonblocking or set_read_timeout fails instead of
silently disconnecting the client.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Warn when set_nonblocking or set_read_timeout fails instead of
silently disconnecting the client.
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle HTTP connections in separate threads with cap of 8</title>
<updated>2026-03-25T17:56:50+00:00</updated>
<author>
<name>murilo ijanc</name>
</author>
<published>2026-03-25T17:56:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/commit/?id=2f1f611bf7b48fc9dd5568ccca17c0c36b997200'/>
<id>2f1f611bf7b48fc9dd5568ccca17c0c36b997200</id>
<content type='text'>
A slow connection or DHT lookup (up to 30s) no longer blocks
the entire HTTP accept loop. Connections beyond the limit get
a 503 response.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A slow connection or DHT lookup (up to 30s) no longer blocks
the entire HTTP accept loop. Connections beyond the limit get
a 503 response.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix critical data integrity and security issues</title>
<updated>2026-03-25T17:22:21+00:00</updated>
<author>
<name>murilo ijanc</name>
</author>
<published>2026-03-25T17:22:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/commit/?id=b9f813fb4b7de1042370b529b9ccc036b208465b'/>
<id>b9f813fb4b7de1042370b529b9ccc036b208465b</id>
<content type='text'>
- Atomic writes in store (write-to-temp + rename) to prevent
  corruption on crash
- Validate DHT results against requested content hash to reject
  forged data from malicious nodes
- Limit protocol line size to 128 KiB on Unix socket to prevent
  memory exhaustion
- Use saturating_add for TTL expiry to prevent u64 overflow
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Atomic writes in store (write-to-temp + rename) to prevent
  corruption on crash
- Validate DHT results against requested content hash to reject
  forged data from malicious nodes
- Limit protocol line size to 128 KiB on Unix socket to prevent
  memory exhaustion
- Use saturating_add for TTL expiry to prevent u64 overflow
</pre>
</div>
</content>
</entry>
<entry>
<title>Initial commit: tesseras-paste decentralized pastebin</title>
<updated>2026-03-25T05:07:37+00:00</updated>
<author>
<name>murilo ijanc</name>
</author>
<published>2026-03-25T05:07:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/commit/?id=7aff2e1d279a4e442b32f49ca0a0eca065355787'/>
<id>7aff2e1d279a4e442b32f49ca0a0eca065355787</id>
<content type='text'>
DHT-backed encrypted pastebin with two binaries (tp/tpd),
XChaCha20-Poly1305 encryption, content-addressed storage,
and Unix socket + HTTP interfaces.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
DHT-backed encrypted pastebin with two binaries (tp/tpd),
XChaCha20-Poly1305 encryption, content-addressed storage,
and Unix socket + HTTP interfaces.
</pre>
</div>
</content>
</entry>
</feed>
