# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 196300
# self = https://watcher.sour.is?offset=166938
# next = https://watcher.sour.is?offset=167038
# prev = https://watcher.sour.is?offset=166838
@lyse Uhh, nice. Haven’t seen a sunset like that in a while, I think. πŸ€”
@lyse Uhh, nice. Haven’t seen a sunset like that in a while, I think. πŸ€”
@bender haha funny! though i just realized my ISP is the only one with fiber pulled to the property so i would have to get a phone line from them some how. The other ISP in the area is basically a mobile hotspot.
@bender haha funny! though i just realized my ISP is the only one with fiber pulled to the property so i would have to get a phone line from them some how. The other ISP in the area is basically a mobile hotspot.
[47Β°09β€²19β€³S, 126Β°43β€²18β€³W] --bad checksum--
Xuu has shutdown his pod now, probably to avoid losing connectivity.
@xuu need a modem? I got a couple of 33.6K, and one 28.8K. :-P
@abucci Can you please check if you reported @xuu's IP address 162.211.155.2 on mistake and let his ISP know that this was some false alarm? They're monitoring his traffic to your server and treating this as continued abuse. :-(

(His twts have been synced to your yarnd by yarnd's gossip protocol.)
> We received the abuse report below regarding network abuse from the IP address indicated.
> On researching I see that HTTPS (tcp 443) traffic is continuing and originating from you NAT IP address 100.64.x.x
> This was further found to be originating from your firewall/router at 192.168.x.x (MAC D8:58:D7:x:x:x).
> This abuse is continuing and constitues a violation of \n Acceptable Use Policy and Terms of Service.
> Please take action to identify the source of the abuse and prevent it from continuing.
> Failure to stop the abuse may result in suspension or cancellation of service.
>
> Thank you,
> We received the abuse report below regarding network abuse from the IP address indicated.
> On researching I see that HTTPS (tcp 443) traffic is continuing and originating from you NAT IP address 100.64.x.x
> This was further found to be originating from your firewall/router at 192.168.x.x (MAC D8:58:D7:x:x:x).
> This abuse is continuing and constitues a violation of Senawave's Acceptable Use Policy and Terms of Service.
> Please take action to identify the source of the abuse and prevent it from continuing.
> Failure to stop the abuse may result in suspension or cancellation of service.
>
> Thank you,
> We received the abuse report below regarding network abuse from the IP address indicated.
> On researching I see that HTTPS (tcp 443) traffic is continuing and originating from you NAT IP address 100.64.x.x
> This was further found to be originating from your firewall/router at 192.168.x.x (MAC D8:58:D7:x:x:x).
> This abuse is continuing and constitues a violation of [ISP] Acceptable Use Policy and Terms of Service.
> Please take action to identify the source of the abuse and prevent it from continuing.
> Failure to stop the abuse may result in suspension or cancellation of service.
>
> Thank you,
> We received the abuse report below regarding network abuse from the IP address indicated.
> On researching I see that HTTPS (tcp 443) traffic is continuing and originating from you NAT IP address 100.64.x.x
> This was further found to be originating from your firewall/router at 192.168.x.x (MAC D8:58:D7:x:x:x).
> This abuse is continuing and constitues a violation of [ISP] Acceptable Use Policy and Terms of Service.
> Please take action to identify the source of the abuse and prevent it from continuing.
> Failure to stop the abuse may result in suspension or cancellation of service.
>
> Thank you,
@xuu wow, not cool.
he emailed my ISP about causing logging abuse. This is the only real ISP in my area, its gonna basically send me back to dialup.
he emailed my ISP about causing logging abuse. This is the only real ISP in my area, its gonna basically send me back to dialup.
@xuu For what reason?
@abucci Just making sure you're seeing @xuu's twt, in case he's still on your blacklist:

> Hey so.. i just got an email from my ISP saying they will terminate my service. Did i break something @abucci ?
>
> – https://txt.sour.is/twt/oohzbqa
Hey so.. i just got an email from my ISP saying they will terminate my service. Did i break something @abucci ?
Hey so.. i just got an email from my ISP saying they will terminate my service. Did i break something @abucci ?
@abucci No worries! All in the name of better reliability and security πŸ˜…
@abucci No worries! All in the name of better reliability and security πŸ˜…
@stigatle Thanks! Sooo cold πŸ₯Ά
@stigatle Thanks! Sooo cold πŸ₯Ά
@stigatle no problems πŸ‘Œ one problem solved at least 🀣
@prologic sleep well!
@stigatle no problems πŸ‘Œ one problem solved at least 🀣
Anyway, I'm gonna have to go to bed... We'll continue this on the weekend. Still trying to hunt down some kind of suspected mult-GB avatar using @stigatle 's pod's cache:


$ (echo "URL Bytes"; sort -n -k 2 -r < avatars.txt | head) | column -t
URL                                                                                                       Bytes
https://birkbak.neocities.org/avatar.jpg                                                                  667640
https://darch.neocities.org/avatar.png                                                                    652960
http://darch.dk/avatar.png                                                                                603210
https://social.naln1.ca/media/0c4f65a4be32ff3caf54efb60166a8c965cc6ac7c30a0efd1e51c307b087f47b.png        327947
...


But so far nothing much... Still running the search...
Anyway, I'm gonna have to go to bed... We'll continue this on the weekend. Still trying to hunt down some kind of suspected mult-GB avatar using @stigatle 's pod's cache:


$ (echo "URL Bytes"; sort -n -k 2 -r < avatars.txt | head) | column -t
URL                                                                                                       Bytes
https://birkbak.neocities.org/avatar.jpg                                                                  667640
https://darch.neocities.org/avatar.png                                                                    652960
http://darch.dk/avatar.png                                                                                603210
https://social.naln1.ca/media/0c4f65a4be32ff3caf54efb60166a8c965cc6ac7c30a0efd1e51c307b087f47b.png        327947
...


But so far nothing much... Still running the search...
@prologic @abucci my /tmp is fine now, no avatars there. I have to drive my daughter to a birthday party now, but I keep things running and I'll check when I get back.
Out of interest, are you able to block whole ASN(s)? I blocked the entirely of teh AWS and Facebook ASN(s) recently.
Out of interest, are you able to block whole ASN(s)? I blocked the entirely of teh AWS and Facebook ASN(s) recently.
@abucci Oh 🀣 Well my IP is a known subnet and static, so if you need to know what it is, Email me πŸ˜…
@abucci Oh 🀣 Well my IP is a known subnet and static, so if you need to know what it is, Email me πŸ˜…
@abucci Seems to be okay now hmmm
@abucci Seems to be okay now hmmm
@abucci Hmm I can see your twts on my pod now πŸ€”
@abucci Hmm I can see your twts on my pod now πŸ€”
@stigatle Sweet, thank you! I've been shooting myself in the foot over here and want to make sure the situation is getting fixed!
@abucci yeah I can see it :)
@stigatle @prologic testing 1 2 3 can either of you see this?
Hmm, I wonder if I banned too many IPs and caused these issues for myself πŸ˜†
twts are taking a very long time to post from yarn after the latest upgrade. Like a good 60 seconds.
@prologic I don't know if this is new, but I'm seeing:


Jul 25 16:01:17 buc yarnd[1921547]: time="2024-07-25T16:01:17Z" level=error msg="https://yarn.stigatle.no/user/stigatle/twtxt.txt: client.Do fail: Get \\"https://yarn.stigatle.no/user/stigatle/twtxt.txt\\": dial tcp 185.97.32.18:443: i/o timeout (Client.Timeout exceeded while awaiting headers)" error="Get \\"https://yarn.stigatle.no/user/stigatle/twtxt.txt\\": dial tcp 185.97.32.18:443: i/o timeout (Client.Timeout exceeded while awaiting headers)"


I no longer see twts from @stigatle at all.
[47Β°09β€²21β€³S, 126Β°43β€²24β€³W] Reading: 1.12 Sv
@prologic Have you been seeing any of my replies?
@abucci / @abucci Any interesting errors pop up in the server logs since the the flaw got fixed (_unbounded receieveFile()_)? πŸ€”
@abucci / @abucci Any interesting errors pop up in the server logs since the the flaw got fixed (_unbounded receieveFile()_)? πŸ€”
Hmmm 🧐


for url in $(jq -r '.Twters[].avatar' cache.json | sed '/^$/d' | grep -v -E '(twtxt.net|anthony.buc.ci|yarn.stigatle.no|yarn.mills.io)' | sort -u); do echo "$url $(curl -I -s -o /dev/null -w '%header{content-length}' "$url")"; done
...


πŸ˜… Let's see... πŸ€”
Hmmm 🧐


for url in $(jq -r '.Twters[].avatar' cache.json | sed '/^$/d' | grep -v -E '(twtxt.net|anthony.buc.ci|yarn.stigatle.no|yarn.mills.io)' | sort -u); do echo "$url $(curl -I -s -o /dev/null -w '%header{content-length}' "$url")"; done
...


πŸ˜… Let's see... πŸ€”
It shows up in my twtxt feed so that's good.
@movq My issue is, now that we have the chance of getting something fast, people artificially slow it down again. Wether they think it's cool that they added some slow animation or just lack of knowledge or whatever. The absolute performance does not translate to the relative performance that I observe. Completely wasted potential. :-(

In today's economy, nobody optimizes something if it can be just called good enough with the next generation hardware. That's especially the mindset of big coorporations.

Anyway, getting sidetracked from the original post. :-)
@prologic will do, thanks for the tip!
This is a test. I am not seeing twts from @stigatle and it seems like @prologic might not be seeing twts from me. Do people see this?
@prologic I am not seeing twts from @stigatle anymore. Are you seeing twts from me?
@stigatle The one you sent is fine. I'm inspecting it now. I'm just saying, do yourself a favor and nuke your pod's garbage cache 🀣 It'll rebuild automatically in a much more prestine state.
@stigatle The one you sent is fine. I'm inspecting it now. I'm just saying, do yourself a favor and nuke your pod's garbage cache 🀣 It'll rebuild automatically in a much more prestine state.
@prologic you want a new cache from me - or was the one I sent OK for what you needed?
That was also a source of abuse that also got plugged (_being able to fill up the cache with garbage data_)
That was also a source of abuse that also got plugged (_being able to fill up the cache with garbage data_)
Ooof


$ jq '.Feeds | keys[]' cache.json | wc -l
4402


If you both don't mind dropping your caches. I would recommend it. Settings -> Poderator Settings -> Refresh cache.
Ooof


$ jq '.Feeds | keys[]' cache.json | wc -l
4402


If you both don't mind dropping your caches. I would recommend it. Settings -> Poderator Settings -> Refresh cache.
Ooof


$ jq '.Feeds | keys[]' cache.json | wc -l
4402


If you both don't mind dropping your caches. I would recommend it. Settings -> Poderator Settings -> Reset cache.
@prologic

./tools/dump_cache.sh: line 8: bat: command not found
No Token Provided



I don't have bat on my VPS and there is no package for installing it. Is cat a reasonable alternate?
@prologic No worries, thanks for working on the fix for it so fast :)
@prologic Yup. Didn't regret climbing these three hundred odd meters of elevation. :-)
@stigatle Thank you! πŸ™
@stigatle Thank you! πŸ™
@prologic Try hitting this URL:

https://twtxt.net/external?nick=nosuchuser&uri=https://foo.com

Change nosuchuser to any phrase at all.

If you hit https://twtxt.net/external?nick=nosuchuser , you're given an error. If you hit that URL above with the uri parameter, you can a legitimate-looking page. I think that is a bug.
@prologic here you go:
https://drive.proton.me/urls/XRKQQ632SG#LXWehEZMNQWF
@stigatle Ta. I hope my theory is right πŸ˜…
@stigatle Ta. I hope my theory is right πŸ˜…
@prologic Hitting that URL returns a bunch of HTML even though there is no user named lovetocode999 on my pod. I think it should 404, and maybe with a delay, to discourage whatever this abuse is. Basically this can be used to DDoS a pod by forcing it to generate a hunch of HTML just by doing a bogus GET like this.
@prologic thank you. I run it now as you said, I'll get the files put somewhere shortly.
But just have a look at the yarnd server logs too. Any new interesting errors? πŸ€” No more multi-GB tmp files? πŸ€”
But just have a look at the yarnd server logs too. Any new interesting errors? πŸ€” No more multi-GB tmp files? πŸ€”
@stigatle You want to run backup_db.sh and dump_cache.sh They pipe JSON to stdout and prompt for your admin password. Example:


URL=<your_pod_url> ADMIN=<your_admin_user> ./tools/dump_cache.sh > cache.json
@stigatle You want to run backup_db.sh and dump_cache.sh They pipe JSON to stdout and prompt for your admin password. Example:


URL=<your_pod_url> ADMIN=<your_admin_user> ./tools/dump_cache.sh > cache.json
I'm seeing GETs like this over and over again:

"GET /external?nick=lovetocode999&uri=https://vuf.minagricultura.gov.co/Lists/Informacin%20Servicios%20Web/DispForm.aspx?ID=8375144 HTTP/1.1" 200 35861 17.077914ms


always to nick=lovetocode999, but with different uris. What are these calls?
@stigatle Worky, worky now! :-)

Mate, these are some really nice gems! What a stunning landscape. I love it. Holy cow, that wooden church looks really sick. Even though, I'm not a scroll guy and prefer simple, straight designs, I have to say, that the interior craftmanship is something to admire.
@prologic so, if I'm correct the dump tool made a pods.txt and a stats.txt file, those are the ones you want? or do you want the output that it spits out in the console window?
@prologic so, if I'm correct the dump tool made a pods.txt and a stats.txt file, those are the ones you want?
Just thinking out loud here... With that PR merged (_or if you built off that branch_), you _might_ hopefully see new errors popup and we might catch this problematic bad feed in the act? Hmmm 🧐
Just thinking out loud here... With that PR merged (_or if you built off that branch_), you _might_ hopefully see new errors popup and we might catch this problematic bad feed in the act? Hmmm 🧐
@slashdot I _thought_ Sunday was the hottest day on Earth πŸ€¦β€β™‚οΈ wtf is wrong with Slashdot these days?! 🀣
@slashdot I _thought_ Sunday was the hottest day on Earth πŸ€¦β€β™‚οΈ wtf is wrong with Slashdot these days?! 🀣
if we can figure out wtf is going on here and my theory is right, we can blacklist that feed, hell even add it to the codebase as an "asshole".
if we can figure out wtf is going on here and my theory is right, we can blacklist that feed, hell even add it to the codebase as an "asshole".
@stigatle The problem is it'll only cause the attack to stop and error out. It won't stop your pod from trying to do this over and over again. That's why I need some help inspecting both your pods for "bad feeds".
@stigatle The problem is it'll only cause the attack to stop and error out. It won't stop your pod from trying to do this over and over again. That's why I need some help inspecting both your pods for "bad feeds".
@prologic I'm running it now. I'll keep an eye out for the tmp folder now (I built the branch you have made). I'll let you know shortly if it helped on my end.
@prologic Ok, I'm running it now. I'll keep an eye out for the tmp folder now (I built the branch you have made). I'll let you know shortly if it helped on my end.
@abucci / @stigatle Please git pull, rebuild and redeploy.

There is also a shell script in ./tools called dump_cache.sh. Please run this, dump your cache and share it with me. πŸ™
@abucci / @stigatle Please git pull, rebuild and redeploy.

There is also a shell script in ./tools called dump_cache.sh. Please run this, dump your cache and share it with me. πŸ™
I'm going to merge this...
I'm going to merge this...
@abucci Yeah I've had to block entire ASN(s) recently myself from bad actors, mostly bad AI bots actually from Facebook and Caude AI
@abucci Yeah I've had to block entire ASN(s) recently myself from bad actors, mostly bad AI bots actually from Facebook and Caude AI
@stigatle I used the following hack to keep my VPS from running out of space: watch -n 60 rm -rf /tmp/yarn-avatar-*, run in tmux so it keeps running.
The vast majority of this traffic was coming from a single IP address. I blocked that IP on my VPS, and I sent an abuse report to the abuse email of the service provider. That ought to slow it down, but the vulnerability persists and I'm still getting traffic from other IPs that seem to be doing the same thing.
Or if y'all trust my monkey-ass coding skillz I'll just merge and you can do a git pull and rebuild πŸ˜