Development discussion. Logged to https://ddnet.tw/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2018-07-11 00:00:00Z and 2018-07-12 00:00:00Z
@fokkonaut it used to be possible, but now the client gets its news, ddnet server list and newest client version all together from https://info.ddnet.tw/info
@heinrich5991 if you still didn't find the reason of long connecting, try to check the server time. If the time was changed when game servers were up - it might cause this problem.
I dont know if it fits here but: I cant connect to GER nor RUS servers. CHN, CHILE, USA and CANADA works fine. Alrdy restarted router, changed DNS but nothing seems to work. Any ideas whats the problem?
If any donation was missing on /funding the person who donated would complain, if any of them hadn't went to where they went to we'd have servers shut down because we didn't pay for it
[quakenet] <deen> Yuzu: To clarify about "stolen donations". Everyone who doesn't specify their nickname in the donation gets an email from me asking about how they want to be credited. Some never reply to that email, one had a disabled email account.
[quakenet] <heinrich5991> so my current design looks as follows:
18:31
[quakenet] <heinrich5991> servers register with all master servers, clients check one master server to get all servers
18:31
[quakenet] <heinrich5991> servers send info to master server, every time it changes (with some backoff, maybe)
18:32
[quakenet] <heinrich5991> (that stuff all happens in json, btw)
18:32
[quakenet] <heinrich5991> as a change from the previous protocol, a server is allowed multiple addresses (for ipv4+ipv6 support)
18:33
[quakenet] <heinrich5991> [maybe that should be restricted to "at most 1 ipv4 and 1 ipv6 address, at least one of those"
18:33
[quakenet] <heinrich5991> ]
18:33
[quakenet] <deen> player names and scores? do servers keep an http connection to the master open to keep pushing updates or make a new connection on each change?
18:33
[quakenet] <heinrich5991> the PR above lets curl reuse connections
18:33
[quakenet] <heinrich5991> (and it actually does that, I checked)
18:34
[quakenet] <heinrich5991> for backward-compatibility, the masters also send the list of other servers (only their IP addresses), for the client to ping individually
18:34
[quakenet] <heinrich5991> this will be extended by running a serverinfo fetcher on the masters later, so that this list of IP addresses can be dropped eventually
18:35
[quakenet] <heinrich5991> possible extension: some sort of live-update protocol over TCP where the clients only get the changes, instead of downloading the whole list again
18:35
[quakenet] <heinrich5991> the master server would be a process that updates a 'static' file in a reasonable interval (maybe 1 second or so), for the webserver (like nginx) to serve
18:35
[quakenet] <deen> why not over https and just use some json diffs thingy?
18:36
[quakenet] <heinrich5991> yes, https
18:36
[quakenet] <heinrich5991> oh, you mean the diff stuff
18:36
[quakenet] <deen> yeah, you said tcp
18:36
[quakenet] <heinrich5991> yea, that sounded like it was more fit for TCP
18:36
[quakenet] <deen> why?
18:36
[quakenet] <heinrich5991> if you want live updates instead of updates on client pull
18:38
[quakenet] <heinrich5991> but yea, that part isn't as important to discuss, we can do that later when the rest of the stuff works
18:38
[quakenet] <Learath2> hmm
18:38
[quakenet] <deen> well, it would be nice for live notifications of friends joining
18:38
[quakenet] <heinrich5991> true
18:38
[quakenet] <heinrich5991> could be abused though, this part
18:38
[quakenet] <heinrich5991> without having cryptographic user identities
18:39
[quakenet] <Learath2> am I following this correctly? the master now also has all serverinfo so people don't have to getinfo?
18:40
[quakenet] <heinrich5991> yes
18:40
[quakenet] <deen> so no more accurate ping?
18:40
[quakenet] <heinrich5991> yes
18:40
[quakenet] <heinrich5991> we can add a checkbox to ping servers
18:41
[quakenet] <deen> sounds good
18:42
[quakenet] <heinrich5991> cool. Learath2?
18:42
[quakenet] <heinrich5991> :)
18:42
[quakenet] <Learath2> without the liveupdate stuff, sound's like it might be a lot of traffic
18:42
[quakenet] <deen> without the liveupdate just update when user presses refresh
18:42
[quakenet] <deen> should be less traffic than currently
18:43
[quakenet] <deen> only 1 connection, 1 GET, compressed json
18:43
[quakenet] <deen> and can trivially be put behind some cheap anti ddos
18:43
[quakenet] <heinrich5991> yes
18:44
[quakenet] <heinrich5991> that was part of the requirements
18:44
[quakenet] <heinrich5991> that it would be possible to be put behind the free cloudflare offering
18:44
[quakenet] <deen> well but that's why I wondered why you said tcp :D
18:44
[quakenet] <heinrich5991> diffs are dynamic in nature
18:45
[quakenet] <heinrich5991> well, I don't know. let's call that extra for now, and let's see how far I get with the rest :)
18:45
[quakenet] <Learath2> I don't see any problems with it btw, sounds nice
18:45
[quakenet] <deen> what about vanilla servers?
18:46
[quakenet] <heinrich5991> [20:34:14] <@heinrich5991> for backward-compatibility, the masters also send the list of other servers (only their IP addresses), for the client to ping individually
18:46
[quakenet] <heinrich5991> [20:34:42] <@heinrich5991> this will be extended by running a serverinfo fetcher on the masters later, so that this list of IP addresses can be dropped eventually
18:46
[quakenet] <Learath2> we first provide a list of ips
18:46
[quakenet] <deen> but vanilla servers will only register on one master, not all
18:47
[quakenet] <deen> so the master has to get the list from all other masters?
18:47
[quakenet] <heinrich5991> yes. the backward compatibility stuff has to fetch IPs from all 'legacy' masters
18:48
[quakenet] <Learath2> are the cheap ddos solutions good enough for 1 sec resolution?
18:48
[quakenet] <deen> so a potential attacker can still register their vanilla server to get all ip addresses of tw players
18:48
[quakenet] <deen> what about having the master fetch player counts from legacy servers too?
18:49
[quakenet] <heinrich5991> yes
18:49
[quakenet] <Learath2> yeah a fetcher would isolate that
18:49
[quakenet] <heinrich5991> the extension will fix that
18:49
[quakenet] <heinrich5991> but my experience shows that I have to do work with milestones
18:49
[quakenet] <heinrich5991> to get anything done
18:49
[quakenet] <heinrich5991> in fact, the curl sharing stuff was just extracted from my WIP http masterserver branch ^^
18:50
[quakenet] <heinrich5991> maybe we could use my already existing rust tool for fetching vanilla server infos. I'd need to extend it for 64p stuff though
18:51
[quakenet] <Learath2> I was also seeing if there was any ip re-use during the join flood but there appears to be none
18:51
[quakenet] <Learath2> so it most probably is spoofed