Pasture: Smithereen 1.0.3, and failed server descriptions retried
Smithereen joins the pasture (tools/pasture/peers/smithereen.sh): its image on the shared MySQL, with imgproxy and a file server behind Caddy, a JDK trust store with the pasture's CA, accounts from its signup form, and a password grant for a local application. scenarios/smithereen.sh drives its VKontakte-like API: friends as mutual follows, wall posts, comments, likes, reposts (quotes there), polls, edits, deletions, private messages, the unfollow and statistics, 30 checks. A post on someone else's wall never reaches PrivaPub, since Smithereen sends it only to servers whose actors publish a wall: G-0009, waiting for the owner. PrivaPub: a server description that failed (Smithereen serves no NodeInfo until it has a description) frees its week, so the server's next arrival asks again instead of a week later. The shared Postgres takes 400 connections: at 100 the village seed ran it dry (Sharkey's API answered 500, Misskey dropped deliveries). The seeder records a follow that stands from an earlier seed when the step itself fails, so the checker no longer expects that follower to see nothing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
1 parent
7b0377c85f
commit
5f150b7a59
12 files changed
+367
-5
No files matched your search
@@ -753,6 +753,31 @@ PeerTube's own instance account announces each new video too, which we drop: nob
|
||||
follow only PeerTube-like channels and accounts, never a persona. It checks the `Host` header against its own name,
|
||||
without a port, before it gives out its OAuth client.
|
||||
|
||||
### Smithereen 1.0.3
|
||||
|
||||
- **Walls:** a post is a `Note`; one written on someone else's wall carries the wall (`sm:wall`, FEP-400e) as its
|
||||
`target`, and the wall's owner tells its followers with `Add{Note}`. Smithereen sends both only to servers whose
|
||||
actors have a wall (`Server.Feature.WALL_POSTS`, learnt from an actor's `sm:wall`), so PrivaPub never sees a post on
|
||||
someone else's wall (G-0009: a persona's wall waits for the owner). Comments are replies addressed to the post's
|
||||
author, never to followers.
|
||||
- **Friends are mutual follows.** A request is an `Offer{Follow}` sent only to actors with
|
||||
`sm:supportsFriendRequests`; anyone else gets a plain `Follow`, so a persona is followed, and following back makes
|
||||
them friends there.
|
||||
- **A repost is a quote:** a `QuoteRequest` to the quoted author, then a `Create{Note}` quoting the post. Its API
|
||||
answers 500 when `wall.repost` has no `message`, even an empty one.
|
||||
- **Private messages** are `Note`s to their recipients, in threads.
|
||||
- **Polls:** a vote is a `Note` with `name` and `inReplyTo`, as Mastodon's.
|
||||
- **Running it:** its NodeInfo throws until the server has a short description (`Objects.requireNonNull` where
|
||||
`requireNonNullElse` was meant); its HTTP client refuses private addresses; its schema updater makes stored
|
||||
functions, which MySQL takes only with `log_bin_trust_function_creators`. A database whose first update failed is
|
||||
left without its triggers, and the server then answers 404 to activities about anything it knows.
|
||||
- **Pasture evidence (2026-10-05, Smithereen 1.0.3, `tools/pasture/scenarios/smithereen.sh`):** 30 checks pass and one
|
||||
gap is expected (G-0009): smuser follows alice and she follows back, which makes them friends there; wall posts both
|
||||
ways; comments both ways; likes both ways; smuser's repost is a quote alice's policy lets in, and alice's boost is a
|
||||
repost there; smuser's poll and alice's vote; edits and deletions both ways; private messages both ways; the
|
||||
unfollow; statistics. PrivaPub changed for it: a server description that failed is asked again on the server's next
|
||||
arrival instead of a week later.
|
||||
|
||||
### Loops (1.0.0-beta.14) and Pixelfed (0.14.4)
|
||||
|
||||
- **Loops:**
|
||||
|
||||
Reference in new issue
Block a user