| Time |
Nick |
Message |
| 00:20 |
* mrcheese |
ends up too late for the game jam :P |
| 00:20 |
user333_ |
by 40s iirc |
| 00:21 |
mrcheese |
something like that ;-; |
| 00:21 |
MTDiscord |
<wsor4035> by 2 minutes |
| 00:21 |
MTDiscord |
<wsor4035> well technically 24h2m |
| 00:21 |
MTDiscord |
<wsor4035> the 24h was for getting it approved, not getting it in |
| 00:22 |
mrcheese |
lol fair |
| 00:22 |
mrcheese |
note to self: dont try to figure out how to use ContentDB while you have 5 minutes left ;-; |
| 00:24 |
|
SFENCE joined #luanti |
| 00:26 |
mrcheese |
tbh the game was kinda badly put together (it was not a good game by any standard ;-;) |
| 00:26 |
MTDiscord |
<greenxenith> You have some license issues to fix but if you can address them in like a minute flat and no one scores anything in the meantime, you might be able to sneak in |
| 00:27 |
mrcheese |
yea i was hoping that wasnt gonna happen (was trying to figure out this and that. safe to say trying to get it ready was a pain) |
| 00:28 |
MTDiscord |
<greenxenith> I think all you need to change is select LGPL on CDB and add a line to the readme prompting to reference the MTG files for licenses and it can probably be approved |
| 00:30 |
MTDiscord |
<greenxenith> And if you can do that in the next few minutes, you might get lucky |
| 00:36 |
mrcheese |
ok set the license to LGPL-2.1-or-later and added "see respective mods readme/license files for more information" to the readme. is that sufficient? |
| 00:36 |
MTDiscord |
<greenxenith> @wsor |
| 00:37 |
MTDiscord |
<wsor4035> needs to be in the license file |
| 00:38 |
mrcheese |
? (yea sorry. first time doing this stuff) |
| 00:38 |
MTDiscord |
<greenxenith> Add the "see respective licenses" thing to the license file |
| 00:39 |
MTDiscord |
<greenxenith> chop chop |
| 00:39 |
MTDiscord |
<wsor4035> "see respective mods readme/license files for more information" to line 23 of https://github.com/IonicCheese/superposition/blob/main/LICENSE |
| 00:40 |
mrcheese |
ook got that added |
| 00:44 |
MTDiscord |
<greenxenith> mrcheese: Since only you had rated anything on the rating page so far, your package is able to sneak in, and I dont have to go to the trouble of editing the backend/frontend to filter your package out. The cost is you will need to redo whatever ranking you had done. Fair trade, I think |
| 00:45 |
mrcheese |
fair enough |
| 00:45 |
mrcheese |
thanks for getting it approved though :) |
| 00:57 |
|
kamdard joined #luanti |
| 01:12 |
|
SFENCE joined #luanti |
| 01:32 |
|
SFENCE joined #luanti |
| 01:49 |
|
runxiyu joined #luanti |
| 01:51 |
user333_ |
you can thank me for that game's terrible flashlight texture |
| 01:53 |
|
fluxionary joined #luanti |
| 02:04 |
mrcheese |
xD |
| 02:04 |
mrcheese |
i mean. it works xD |
| 02:36 |
|
___nick___ joined #luanti |
| 02:40 |
|
___nick___ joined #luanti |
| 02:46 |
|
mrcheese joined #luanti |
| 03:34 |
|
sparky4 joined #luanti |
| 04:13 |
|
SFENCE joined #luanti |
| 04:17 |
|
SFENCE_arch joined #luanti |
| 04:41 |
|
SFENCE joined #luanti |
| 05:00 |
|
MTDiscord joined #luanti |
| 05:12 |
cheapie |
hydraulic piston *nods* https://cheapiesystems.com/media/2025-11-29%2023-11-17.webm |
| 05:57 |
|
SFENCE joined #luanti |
| 08:13 |
|
SFENCE joined #luanti |
| 08:19 |
|
YuGiOhJCJ joined #luanti |
| 08:19 |
|
FeXoR joined #luanti |
| 08:20 |
MTDiscord |
<et086> amazing |
| 08:26 |
|
SFENCE joined #luanti |
| 08:37 |
|
VinAdmin joined #luanti |
| 08:44 |
|
VinAdmin joined #luanti |
| 09:15 |
|
mrcheese joined #luanti |
| 09:15 |
|
mrcheese joined #luanti |
| 09:22 |
|
Warr1024 joined #luanti |
| 09:47 |
|
Warr1024 joined #luanti |
| 10:12 |
|
mrkubax10 joined #luanti |
| 10:27 |
|
SFENCE joined #luanti |
| 10:39 |
|
repetitivestrain joined #luanti |
| 11:01 |
repetitivestrain |
luatic: why don't you consider reimplementing LuaJIT string buffers and the LuaJIT serializer for PUC Lua, rather than string.pack? |
| 11:01 |
repetitivestrain |
Hmm |
| 11:02 |
repetitivestrain |
luatic7: what was said above, and to continue, it's much more performant under luajit and is well optimized for luajit's ffi facilities |
| 11:02 |
repetitivestrain |
which, despite not being available to secure mods, is still quite availing in luanti modding |
| 11:21 |
|
jaca122 joined #luanti |
| 11:27 |
|
SFENCE joined #luanti |
| 11:52 |
|
Talkless joined #luanti |
| 12:26 |
|
mrkubax10 joined #luanti |
| 12:59 |
|
runxiyu joined #luanti |
| 13:08 |
|
fuckfuck joined #luanti |
| 13:17 |
|
ireallyhateirc joined #luanti |
| 13:27 |
|
cx384 joined #luanti |
| 13:33 |
|
mrkubax10 joined #luanti |
| 13:40 |
|
Sharpman joined #luanti |
| 13:54 |
|
Sharpman joined #luanti |
| 13:57 |
|
PoochInquisitor joined #luanti |
| 13:58 |
MinetestBot |
[git] cx384 -> luanti-org/luanti: Move SoundMaker out of game.cpp and some refactoring (#16703) d1ec7a9 https://github.com/luanti-org/luanti/commit/d1ec7a9356fe9593ebea07136a80c1c74b464973 (2025-11-30T13:57:44Z) |
| 13:59 |
|
noname1234 joined #luanti |
| 14:00 |
noname1234 |
What do you think about modern Minecraft? |
| 14:00 |
noname1234 |
I haven't played modern Minecraft for years now! |
| 14:03 |
noname1234 |
The problem is: it was currently owned by Microsoft and someone trying to made this game even worse than before |
| 14:07 |
repetitivestrain |
noname1234: then play mineclonia haha |
| 14:07 |
erle |
noname1234 if you want something like that, go play mineclonia. if you have a *really* beefy PC, set the mapgen to “singlenode”, allegedly halon made a mapgen that is EXACTLY LIKE MINECRAFT (though i do not have any computer good enough to test it i think). |
| 14:08 |
erle |
noname1234 if you want an anarchy server experience, go join oysterity. it's one of the few servers where it becomes painfully obvious that the map is too small for true PvP play (because you can't hide well unless you do it in the end sky or so). |
| 14:14 |
noname1234 |
repetitivestrain: I don't have enough time to play mineclonia |
| 14:15 |
repetitivestrain |
noname1234: how would it place more demands on your time than other games, or microsoft minecraft? |
| 14:16 |
noname1234 |
repetitivestrain: i don't play games mostly |
| 14:16 |
repetitivestrain |
hmm, but what prompted you to ask us for our Views on minecraft |
| 14:19 |
Krock |
what is minecraft |
| 14:21 |
noname1234 |
Krock: sandbox video game created by mojang and it was created in 2009 by notch |
| 14:21 |
MTDiscord |
<rollerozxa> this minecraft thing sounds interesting, wonder if it will ever take off |
| 14:24 |
repetitivestrain |
i think it's time i took a moment to remind all and sundry what is realizable with client side modding: https://streamable.com/0aoqbf |
| 14:26 |
repetitivestrain |
to, i hope, motivate people to direct more attention towards sscsm, and once that is in place, perhaps adopting the APIs mineclonia's client side mod requires |
| 14:27 |
erle |
rollerozxa non-free software, no lua modding |
| 14:27 |
erle |
repetitivestrain have you looked into the openra traits system by now? |
| 14:28 |
repetitivestrain |
erle: no, not yet |
| 14:29 |
repetitivestrain |
however, i stand by my opinion that no declarative system is capable of substituting for client-side modding |
| 14:29 |
erle |
yes, it looks unclean. like the firing mode of the tesla coil and obelisk of light is a single trait (for two buildings), not used anywhere else i think (maybe for the tesla tank? idk, it's about the charging sounds and animation, the thing powers down if the target gets out of range). but it is very interesting how they *have* lua scripts but only need it for the most convoluted minigames, not for the main tasks. |
| 14:30 |
repetitivestrain |
particularly when it is necessary to implement unanticipated technical facilities on the client |
| 14:30 |
erle |
repetitivestrain and i stand by my opinion that you should always use the system that gets you to your target with the least amount of computational power invested |
| 14:30 |
erle |
repetitivestrain when you get to it, check out the base openra game, then check out combined arms. it has implemented new traits. |
| 14:31 |
erle |
repetitivestrain have you read the LANGSEC papers? and “web architecture from 10k feet” by the OG web developer tim berners-lee? |
| 14:33 |
repetitivestrain |
erle: no, i don't develop for the web, i am just a lowly staff engineer who hacks on miscellaneous components of C programs for a living, and emacs and luanti games as a pastime |
| 14:33 |
erle |
repetitivestrain as an example: when someone does layout or animations on web pages with js it's usually overengineered and worse performance than doing it with CSS/SVG. unless you do stuff like an n-body simulation where you can add random bodies. can't do that in a declarative system. |
| 14:34 |
repetitivestrain |
but i have observed in the course of implementing all of minecraft's features in mineclonia that it is not feasible to anticipate every requirement that a game might pose ahead of time |
| 14:35 |
repetitivestrain |
and that most of my energy was devoted to onerously implementing facilities in the engine or in lua that no one could possibly have conceived of in advance |
| 14:36 |
erle |
repetitivestrain that's trivially true, but also “we can't anticipate everything, so we need a turing complete system” gets you to places where everything is possible but nothing is performant or secure. |
| 14:36 |
repetitivestrain |
e.g., fixed dtimes in the main game loop with intervening frames created through interpolation |
| 14:36 |
erle |
that's a pretty classic game engine thing |
| 14:36 |
repetitivestrain |
transferring biome data from two independent and incompatible biome systems to the client |
| 14:36 |
erle |
like, A LOT of engines have it |
| 14:36 |
repetitivestrain |
Luanti doesn't |
| 14:37 |
erle |
the biome thing is part of “this grew organically, no requirements engineer ever worked it out before implementation” i'd argue |
| 14:37 |
erle |
repetitivestrain i don't want to argue much rn, but i suggest to read Security Applications of Formal Language Theory https://langsec.org/papers/langsec-tr.pdf and https://langsec.org/papers/langsec-tr.pdf http://langsec.org/papers/langsec-cwes-secdev2016.pdf |
| 14:37 |
repetitivestrain |
or, just today, deterministically spawning particles around a player into a vertex buffer on each frame to give the appearance of motion |
| 14:37 |
erle |
repetitivestrain you do not have to agree with me or the authors, but it *will* make you a better developer if any of it is new to you |
| 14:39 |
erle |
(reading and understanding both papers is worth about 3 months of code review by a senior dev) |
| 14:39 |
erle |
(who is on the same project) |
| 14:40 |
repetitivestrain |
all of these required modifications to the engine's C++ and facilities to support them in mcl_localplayer, and granted, these requirements are now known and could be exposed declaratively, but it will not be possible to accommodate the next developer to encounter a requirement that was not |
| 14:42 |
|
noname1234 left #luanti |
| 14:42 |
repetitivestrain |
erle: i would just recommend reading https://codeberg.org/halon/mcl_localplayer/ and the very eclectic improvements upon the engine in https://codeberg.org/halon/Minetest, and considering whether or not it would be feasible for engine developers, having no prior knowledge of these facilities, to provide for this mod's functionality by declarative server-side means |
| 14:47 |
erle |
repetitivestrain “it will not be possible to accommodate the next developer to encounter a requirement that was not” – good systems do precisely that, bad systems do not. |
| 14:48 |
erle |
repetitivestrain you might know about signal messenger. the signal main dev was like “federation is bullshit, you can't innovate with that” – and yet, there exist dozens of interoperable XMPP-based messengers and a lot of games use it as in-game chat etc. – you just have to accept that you don't have central control (motivated reasoning here). |
| 14:49 |
erle |
repetitivestrain i do agree though that with the, uh, way APIs in luanti are designed you are probably not going to get anything, because “this is easy to implement” is often prioritized over anything else. |
| 14:49 |
repetitivestrain |
erle: like i said, how would you propose that luanti accommodate, declaratively, a biome system that does not exist in the engine and requires that biome data be read from mod storage on the server, transferred to clients in units of 64-byte strings, and deciphered and randomized with reference to the level's seed by a singular algorithm, all of which are, i emphasize, nonexistent in the engine |
| 14:49 |
erle |
repetitivestrain what's the deal with the 64 byte strings? |
| 14:49 |
repetitivestrain |
it's the run-length encoded format in which compressed biome data is saved in mod storage |
| 14:50 |
erle |
repetitivestrain i am not a domain expert on biome systems, so i doubt i can come up with a good proposal right now. but just from a cursory look, your requirements look not abstract enough to me,. |
| 14:50 |
repetitivestrain |
in minecraft and in mcl_levelgen, biome data is generated with each chunk and recorded permanantly so that biomes in existing chunks may remain intact after upgrades that modify the biome map |
| 14:51 |
erle |
repetitivestrain now *that* is a solid abstract requirement |
| 14:51 |
repetitivestrain |
erle: they can't be generalized because the requirements are _very exacting_ |
| 14:51 |
erle |
well the general thing you probably already know you want is “give me a facility for chunk meta analogous to node meta” |
| 14:52 |
repetitivestrain |
they must be carried out to the letter so that the biome data as viewed by the client may be exactly identical to the biome data as viewed by a minecraft client at the same position and with the same seed |
| 14:52 |
erle |
like, that seems like it is a part of a solution, or not? |
| 14:52 |
repetitivestrain |
erle: i have already proposed this, but how do you propose to generalize this algorithm? |
| 14:53 |
repetitivestrain |
https://codeberg.org/mineclonia/mineclonia/src/commit/main/mods/MAPGEN/mcl_levelgen/biomes.lua#L6853 |
| 14:54 |
erle |
repetitivestrain as i have said, i am not a domain expert. you may be, idk. but being a domain expert IMO doesn't actually matter much unless you are a core developer, as you can see from a bunch of things (query me about it if you want evidence, i don't want to spam this channel). |
| 14:55 |
erle |
repetitivestrain i think you learning about how other games have abstracted it and about LANGSEC is a more promising idea than me trying to gain the domain knowledge. |
| 14:55 |
repetitivestrain |
erle: that's the reason i'm posting my requirements and my results here |
| 14:55 |
repetitivestrain |
other games aren't attempting to clone minecraft unto the last block |
| 14:56 |
erle |
this is btw how i always acted when doing corporate workshops: try to teach some new techniques to the people who *already* know the domain, but might see some useful things in the general techniques i am presenting. |
| 14:56 |
erle |
repetitivestrain openra is an RTS engine. |
| 14:56 |
erle |
repetitivestrain have you read the AOSA books? they are useful too |
| 14:56 |
erle |
repetitivestrain architecture of open source applications |
| 14:57 |
erle |
afk now, eating and playing heroes of might and magic III |
| 14:57 |
erle |
:3 |
| 14:57 |
repetitivestrain |
erle: that it may be, but i am confident in stating categorically that you cannot reproduce minecraft player physics in openra by purely declarative means |
| 14:57 |
erle |
it's a 2D RTS, not a 3D block game |
| 14:58 |
erle |
also that proves nothing useful |
| 14:58 |
repetitivestrain |
why not? |
| 14:58 |
erle |
repetitivestrain btw, i understand that having different use cases is better for generalizing. like if you compare contentdb (luanti) to BaNaNas (openttd) to whatever wesnoth uses, you'll probably have some insights. but even with a single domain you *can* figure out some things. |
| 14:59 |
erle |
repetitivestrain because as i said, you only need to make a system as powerful as it needs to be to fulfil the tasks. read the LANGSEC papers for why. |
| 14:59 |
repetitivestrain |
recreating minecraft is a very apposite application for a program that is, for good or ill, minecraft's only viable competitor |
| 15:00 |
repetitivestrain |
erle: it's not possible without specifically programming mechanics designed for the purpose of emulating minecraft into the engine, which would be justly repugnant to luanti core developers |
| 15:01 |
repetitivestrain |
with client-side modding, it is possible to incorporate only the truly general facilities into the engine |
| 15:01 |
MTDiscord |
<a.corp.serot> what are you guys conversing about? like how does langsec applies to luanti? |
| 15:02 |
repetitivestrain |
while devolving the responsibility for reproducing minecraft's mechanics on me |
| 15:02 |
MTDiscord |
<a.corp.serot> (i've read the general strokes of the paper. i'm just not seeing the connection) |
| 15:02 |
repetitivestrain |
erle's arguing against CSMs |
| 15:02 |
MTDiscord |
<luatic> repetitivestrain: the point of string.pack/string.unpack is a somewhat simple API to read/write binary data |
| 15:02 |
MTDiscord |
<luatic> luajit string buffers do not quite solve the same problem, do they? |
| 15:02 |
repetitivestrain |
luatic: luajit's _serializer_, which writes into string buffers, does |
| 15:03 |
[MatrxMT] |
<birdlover32767> ive seen lots and lots of ai generated assets on this game jam |
| 15:03 |
repetitivestrain |
https://luajit.org/ext_buffer.html#serialize |
| 15:03 |
[MatrxMT] |
<birdlover32767> also been seeing them in general |
| 15:03 |
MTDiscord |
<luatic> repetitivestrain: no, but that's a slightly different problem? |
| 15:03 |
MTDiscord |
<a.corp.serot> repetitivestrain: so what, erle wants a restrictive DSL instead of lua? |
| 15:03 |
MTDiscord |
<luatic> it's serialization of lua data structures |
| 15:03 |
repetitivestrain |
and primitives, such as numbers, into binary data |
| 15:05 |
repetitivestrain |
it is string.pack, only without forcing you to define your data's format as a format string, and i think substantially more performant than the serialization facilities currently available in the engine |
| 15:05 |
repetitivestrain |
though i can't attest to how it compares with string.(un)pack, as i have not benchmarked the two |
| 15:05 |
MTDiscord |
<luatic> i do see that it is valuable for lua value serialization, but that's not exactly what i would use string.pack for |
| 15:06 |
MTDiscord |
<luatic> string.[un]pack is for when you have some fixed binary format you need to comply with |
| 15:06 |
MTDiscord |
<luatic> and i do not see how string buffers help with that |
| 15:08 |
repetitivestrain |
Hmm |
| 15:08 |
repetitivestrain |
you have a point |
| 15:12 |
MTDiscord |
<luatic> for SSCSM, might want to take a look at https://github.com/luanti-org/luanti/pull/15818, that's where it's currently headed |
| 15:13 |
MTDiscord |
<luatic> the plan is that SSCSMs will run in a separate process, and only interact with the main game process via an event loop |
| 15:18 |
|
SFENCE joined #luanti |
| 15:23 |
repetitivestrain |
luatic: hmm, has anyone measured the performance impact of doing so? |
| 15:29 |
sfan5 |
how would you do that? |
| 15:33 |
repetitivestrain |
sfan5: benchmarking the overhead incurred by an rpc roundtrip and multiplying the same by the number of luanti API calls my csm issues every globalstep |
| 15:33 |
repetitivestrain |
and deciding whether the product is acceptable |
| 15:33 |
|
silverwolf73827_ joined #luanti |
| 15:33 |
repetitivestrain |
one moment |
| 15:34 |
sfan5 |
the result may be interesting but this requirement is not negotiable |
| 15:41 |
repetitivestrain |
well, if the overhead (which has not yet been measured) isn't adequate, then the corollary is that sscsm will not be capable of realizing many of the functions that are expected of it... |
| 15:42 |
repetitivestrain |
anyway mcl_localplayer issues 6 to 98 calls to functions in the core table per globalstep, with a median of 12 |
| 15:43 |
ireallyhateirc |
nice wall of text |
| 15:43 |
ireallyhateirc |
@grok make a summary of the above |
| 15:43 |
sfan5 |
IIRC the ipc latency was already discussed in some PR and it turned out to be in the order of microseconds |
| 15:44 |
repetitivestrain |
that's not bad at all |
| 15:44 |
repetitivestrain |
if it's just microseconds it should absolutely be possible for mineclonia to adopt sscsm once it's available |
| 15:46 |
|
SFENCE joined #luanti |
| 16:04 |
|
mrkubax10 joined #luanti |
| 16:19 |
|
SFENCE joined #luanti |
| 17:05 |
|
SFENCE joined #luanti |
| 17:21 |
|
m33 joined #luanti |
| 17:48 |
|
SFENCE joined #luanti |
| 18:24 |
|
SFENCE joined #luanti |
| 18:25 |
erle |
rubenwardy what would need to be changed about contentdb so it could host CSMs? |
| 18:25 |
rubenwardy |
CSMs would first need to become supported by the engine rather than experimental |
| 18:26 |
rubenwardy |
from the ContentDB side, it's just adding a new package type |
| 18:27 |
rubenwardy |
something like worlds/schematics would be more complicated as it's drastically different |
| 18:27 |
erle |
wdym supported by the engine? the CSM functions are *very* lacking compared to dragonwire, waspsaliva and whatever that cheater team with the bugged backend had come up with … but i managed to use intiface to get rumble feedback every time a player was damaged. and i have read about people doing stuff with 3D audio (engine tells you where the player is). |
| 18:27 |
erle |
dragonfire |
| 18:28 |
erle |
like, vanilla CSMs have been used for a loooooong time |
| 18:28 |
MinetestBot |
[git] cx384 -> luanti-org/luanti: Rename hud.h/cpp to hud_element.h/cpp dc48f98 https://github.com/luanti-org/luanti/commit/dc48f98a20d002a395cd36e4925389e1e00c1b87 (2025-11-30T18:26:22Z) |
| 18:28 |
MinetestBot |
[git] cx384 -> luanti-org/luanti: Rename sound.h to sound_spec.h 5a799b9 https://github.com/luanti-org/luanti/commit/5a799b9b248ca63b0b7cb73f87b91a8fc3e55249 (2025-11-30T18:26:22Z) |
| 18:28 |
MinetestBot |
[git] cx384 -> luanti-org/luanti: Move serialisation code out of sound_spec.h d4c3529 https://github.com/luanti-org/luanti/commit/d4c3529af7b1a57b3e6af836ba9d79a91eaec0c9 (2025-11-30T18:26:22Z) |
| 18:28 |
rubenwardy |
https://github.com/luanti-org/luanti/blob/master/doc/client_lua_api.md#introduction |
| 18:28 |
erle |
rubenwardy you mean a client GUI? |
| 18:28 |
rubenwardy |
CSMs are experimental and unsupported, there's no client GUI or guarantees on the aPI |
| 18:29 |
ireallyhateirc |
luanti moment |
| 18:30 |
erle |
yeah lol |
| 18:31 |
erle |
functionality can not change for years, but as developers declare it “experimental”, they reserve the right to be the pontius pilate of API design |
| 18:32 |
erle |
also the last time i tried to add a CSM client GUI via a mod the result was that it is now no longer possible to change the main menu via a mod ._. |
| 18:33 |
erle |
rubenwardy so what would you say could be some steps to making CSMs non-experimental and supported? |
| 18:35 |
rubenwardy |
https://github.com/luanti-org/luanti/issues/16005 |
| 18:37 |
erle |
> There seem to have been no major CSM API features in recent years […] |
| 18:39 |
erle |
maybe because everyone who *does* implement new CSM APIs has some suspicions about it getting into luanti? |
| 18:39 |
erle |
given that there are entire servers with CSM-built rail systems … (no cheating here, users still need to dig the resources out of the ground) |
| 18:41 |
erle |
auto-eat, tracers, “rotate me exactly that way”, “go to this position i have put a waypoint on”, “log every particle spammer in a CSM so that we can remove possible infoleaks” |
| 18:42 |
erle |
like yeah, if you don't accept the new functionality that people are willing to implement (and are using right now), there won't be any new functionality |
| 18:45 |
|
Guest26 joined #luanti |
| 18:47 |
BuckarooBanzai4 |
rubenwardy: fyi, i'm getting timeouts on http://content.luanti.org |
| 18:47 |
rubenwardy |
I'm being DDOSed |
| 18:47 |
BuckarooBanzai4 |
welcome to the club :D |
| 18:47 |
BuckarooBanzai4 |
that bad? |
| 18:49 |
SFENCE_arch |
What somebody need to DDOS contentdb ? :D |
| 18:49 |
rubenwardy |
I'm getting requests from 900 unique ip addresses from Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07) |
| 18:49 |
rubenwardy |
many 100s per second |
| 18:50 |
rubenwardy |
updating iptables did nothing, probably conflicting with ufw |
| 18:50 |
Guest26 |
uwf? ubuntu host? |
| 18:51 |
ireallyhateirc |
perhaps Microsoft sent its minions |
| 18:51 |
ireallyhateirc |
or someone is just testing their botnet lol |
| 18:51 |
BuckarooBanzai4 |
a short term "solution" would be to filter the requests by user-agent, not really something for the long-term though |
| 18:52 |
rubenwardy |
okay ufw is slow at adding 900 rules |
| 18:53 |
BuckarooBanzai4 |
anubis has some user-agent anti-bot rules if you want to go down that route |
| 18:53 |
sfan5 |
ufw feeds into iptables |
| 18:53 |
|
SFENCE joined #luanti |
| 18:55 |
rubenwardy |
okay back online |
| 18:55 |
Guest26 |
is it nginx? you can configure a 444 response based on user agent |
| 18:56 |
rubenwardy |
I've blocked the ip addresses and also the user agent via nginx |
| 18:56 |
Guest26 |
ayee |
| 18:56 |
rubenwardy |
it looks it's rotating to other ip addresses now |
| 18:56 |
BuckarooBanzai4 |
nice, thanks for hosting/supporting the cdb btw ❤️ |
| 18:58 |
rubenwardy |
❤️ |
| 18:59 |
erle |
rubenwardy idk what it was called, but a friend of mine once had a setup where accessing a common filename that was never linked anywhere (think wordpress login or so) would trigger a ban. ig that's one way to keep out misbehaving bots. |
| 18:59 |
rubenwardy |
fail2ban |
| 18:59 |
erle |
i only noticed because it was banning me … for requesting the favicon |
| 19:03 |
rubenwardy |
I would rather avoid anubis but maybe I should have it set up for emergencies |
| 19:04 |
rubenwardy |
could automatically turn on when under ddos |
| 19:05 |
rubenwardy |
I am forwever thankful that I'm not on AWS/GCP/Azure |
| 19:08 |
rubenwardy |
they supposedly have a complaints form https://fankui.sogou.com/index.php/web/web/index?type=4 |
| 19:09 |
|
HuguesRoss joined #luanti |
| 19:09 |
|
darylsun joined #luanti |
| 19:09 |
|
fgaz joined #luanti |
| 19:09 |
|
jfred joined #luanti |
| 19:09 |
|
ursa-major joined #luanti |
| 19:09 |
|
anemofilia joined #luanti |
| 19:10 |
|
z812 joined #luanti |
| 19:10 |
|
HamAdams joined #luanti |
| 19:10 |
sfan5 |
did you check if it's the ip range they usually use? |
| 19:12 |
rubenwardy |
I would need to double check that yeah could be someone else |
| 19:13 |
rubenwardy |
https://gist.github.com/rubenwardy/cadcf87cf2456c3a71ae5caf7804444b |
| 19:19 |
sfan5 |
looking at my own collected logs that generally matches the IP's I have seen the same bot from |
| 19:19 |
sfan5 |
weird |
| 19:24 |
|
kamdard_ joined #luanti |
| 19:25 |
|
heavygale joined #luanti |
| 19:26 |
|
krisbug joined #luanti |
| 19:26 |
|
sugarbeet joined #luanti |
| 19:27 |
rubenwardy |
also looks like the bottleneck was postgres |
| 19:27 |
rubenwardy |
If I ever needed to scale CDB up it would probably be a good idea to cache most public pages |
| 19:27 |
rubenwardy |
rather than hitting the DB every time |
| 19:35 |
|
mrcheese joined #luanti |
| 19:35 |
|
mrcheese joined #luanti |
| 19:44 |
erle |
<rubenwardy> I am forwever thankful that I'm not on AWS/GCP/Azure |
| 19:44 |
erle |
rubenwardy what would that have done? infinite money payment glitch? |
| 19:44 |
rubenwardy |
yeah. Surprise! Large bill |
| 19:45 |
erle |
autoscaler? you receive a big beautiful bill! |
| 19:48 |
erle |
rubenwardy from my experience, varnish (a caching solution by PHK) can easily turn “someone is hitting my API” into a non-issue. like, *as long as you get the caching keys right* and your architecture isn't absolutely uncacheable (i.e. you do actual REST and not “i have read what REST is on a phpBB 20 years ago and i am totally doing it”) you can easily serve a hundred times more traffic, maybe even a thousand times |
| 19:51 |
|
jaca122 joined #luanti |
| 19:57 |
|
SFENCE joined #luanti |
| 20:32 |
|
SFENCE joined #luanti |
| 20:34 |
|
SFENCE joined #luanti |
| 20:56 |
|
sparky4 joined #luanti |
| 21:13 |
|
SFENCE joined #luanti |
| 21:56 |
|
SFENCE joined #luanti |
| 22:49 |
|
mrcheese joined #luanti |
| 22:53 |
|
crazylad joined #luanti |
| 23:00 |
|
crazylad joined #luanti |
| 23:23 |
|
Trifton joined #luanti |
| 23:27 |
|
chloetax joined #luanti |
| 23:32 |
|
panwolfram joined #luanti |
| 23:38 |
|
FeXoR joined #luanti |