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
@@ -42,7 +42,10 @@ namespace PrivaPub.Federation.Objects
|
||||
|
||||
public async Task<JobOutcome> Handle(Job job, CancellationToken token)
|
||||
{
|
||||
await Describe(job.Payload, crawled: false, default, token);
|
||||
// a description that failed (Smithereen serves no NodeInfo until its admin writes a description) frees its
|
||||
// week's key, so the server's next arrival, an hour on at the soonest, asks again
|
||||
if (!await Describe(job.Payload, crawled: false, default, token) && !string.IsNullOrEmpty(job.DedupeKey))
|
||||
await DB.Default.Update<Job>().MatchID(job.ID).Modify(j => j.DedupeKey, $"{job.DedupeKey}|failed|{job.ID}").ExecuteAsync(token);
|
||||
return JobOutcome.Done;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user