Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- nicatrontg [3:34 PM]
- yeah
- nicatrontg [3:34 PM]
- I noticed the work factor of 10 was a wee bit much
- nicatrontg [3:34 PM]
- 12 was definitely 1-2 seconds
- nicatrontg [3:35 PM]
- @enerdy: you could experiment with higher work factors
- enerdy [3:35 PM]
- I could
- olink [3:41 PM]
- locking main thread for 2 seconds, sounds like a bad idea
- nicatrontg [3:42 PM]
- yeah
- nicatrontg [3:42 PM]
- not sure why you would set a work factor high enough that your server would lock for 1-2 seconds calculating it
- enerdy [3:43 PM]
- inb4 async
- enerdy [3:43 PM]
- And ruin the whole purpose of it at the same time
- enerdy [3:43 PM]
- :kappa:
- nicatrontg [3:44 PM]
- even if you async it, you’d still delay login
- enerdy [3:44 PM]
- yeah but you won't stop the main thread
- olink [3:44 PM]
- login and register both have no immediate feedback requirements
- enerdy [3:44 PM]
- ^
- olink [3:44 PM]
- theres no reason not to dump it to another thread
- nicatrontg [3:44 PM]
- sighs
- enerdy [3:44 PM]
- You could even add a "Logging in..." message if the work factor was higher than x
- olink [3:45 PM]
- esp if its that easy to lock the server for seconds
- enerdy [3:45 PM]
- Or send a status packet with that lol
- olink [3:45 PM]
- good use of bad terraria Kappa
- olink [3:45 PM]
- hmmm should make a status api
- enerdy [3:45 PM]
- Totally
- olink [3:45 PM]
- so multiple plugins can use it safely
- enerdy [3:45 PM]
- Status is one of those things that has potential
- nicatrontg [3:45 PM]
- http://wildlyinaccurate.com/bcrypt-choosing-a-work-factor/
- Bcrypt is a Blowfish-based hashing algorithm which is commonly used for password hashing because of its potentially expensive key setup phase. A Bcrypt hash has the following structure:$2a$(2 chars work)$(22 chars salt)(31 chars hash)The reason th...
- enerdy [3:45 PM]
- But can totally mess up if everybody starts using it atm
- nicatrontg [3:46 PM]
- work factor is 2^n
- enerdy [3:46 PM]
- mhm
- enerdy [3:46 PM]
- So it increases exponentially
- nicatrontg [3:47 PM]
- which is why it’s silly to set it to like 12
- nicatrontg [3:48 PM]
- I mean you could make the argument that you could async every db operation
- nicatrontg [3:48 PM]
- because non-important
- nicatrontg [3:48 PM]
- or that servers with mysql already risk lockups because of one reason or another
- enerdy [3:50 PM]
- Yeah but we said tshock would never be async in its core, so I can use that argument when considering db queries to be part of tshock's core
- enerdy [3:50 PM]
- :kappa:
- nicatrontg [3:51 PM]
- if anything, it’s outside the scope of this particular PR
- nicatrontg [3:52 PM]
- if you set the work factor abnormally high, you’ll screw up your server and make it unusable
- off [3:52 PM]
- That language
- off [3:52 PM]
- O
- off [3:52 PM]
- Chat didnt refresh
- off [3:52 PM]
- :rip:
- nicatrontg [3:52 PM]
- also, if you host your mysql server on a hot air balloon with satellite internet, your sha512 password comparisons will suck
- nicatrontg [3:52 PM]
- waiting for db operations that take minutes to complete
- enerdy [3:53 PM]
- >if you host your mysql server on a hot air balloon with satellite internet
- enerdy [3:53 PM]
- :kappa:
- enerdy [3:54 PM]
- ^Because I read that literally
- nicatrontg [3:54 PM]
- oops
- nicatrontg [3:54 PM]
- I forgot
- nicatrontg [3:54 PM]
- raspberry pi* on a hot air balloon
- nicatrontg [3:54 PM]
- with a potato battery to usb converter
- enerdy [3:54 PM]
- :ok_hand:
- enerdy [3:54 PM]
- And a generator?
- olink [3:55 PM]
- shank you seem offended when people, specifically me, offer legit concerns over your code
- olink [3:55 PM]
- stop taking it personally
- olink [3:55 PM]
- im not attacking you or your code
- olink [3:55 PM]
- i voiced a concern about locking up the main thread
- nicatrontg [3:55 PM]
- I’m not offended, really
- olink [3:56 PM]
- and your argument has a flaw, 1)the db code is there and should be async at its core, but unfortunately its there to stay. 2)all your code is brand new and isnt subject to being poorly developed
- olink [3:56 PM]
- its the same argument i made about patrikks potential pr, just because it works doesnt make it ideal
- olink [3:57 PM]
- if we have the option of making it better now then there is no reason to commit as is and go fix!later
- olink [3:57 PM]
- im sorry if you think im just trying to shoot down your pr, im not
- olink [3:58 PM]
- im trying to make our project look less hacky and less prone to issues, the api runs poorly as is, no reason to make it potentially worse everytime someone logs in
- nicatrontg [4:10 PM]
- I’m not going to continue this tangent, because again, by default, its as performant as sha512
- nicatrontg [4:11 PM]
- like I said, you could host your mysql server on google’s balloon based internet and it would slow it down, just like raising the BCryptWorkFactor would
- olink [4:13 PM]
- Yes, and you ignore everything someone says if you dont want to face facts, its ok
- olink [4:14 PM]
- You cant use the existing db code as an argument to not do something NEW
- nicatrontg [4:14 PM]
- Let’s face the facts here: you’re inhibiting an objectively good change because of a variety of misplaced paranoid antics
- olink [4:14 PM]
- Paranoid? no, again.
- nicatrontg [4:14 PM]
- you called our current solution “not insecure" (edited)
- olink [4:14 PM]
- If you want to be a trash tier developer
- olink [4:14 PM]
- Then be a trash tier developer
- nicatrontg [4:14 PM]
- you’re now saying it’s not performant
- olink [4:14 PM]
- I'm saying and I quote , >locking main thread for 2 seconds, sounds like a bad idea
- nicatrontg [4:15 PM]
- it really does
- olink [4:15 PM]
- Even 500 ms is bad.
- nicatrontg [4:15 PM]
- but again, it can only do that if you raise the work factor
- olink [4:15 PM]
- whats the timing on 7?
- olink [4:15 PM]
- did you time it?
- nicatrontg [4:15 PM]
- at a work factor of 7 on an i3, it takes 1/100th of a second
- nicatrontg [4:15 PM]
- I believe I linked benchmarks earlier
- olink [4:16 PM]
- Then use that as your argument
- nicatrontg [4:16 PM]
- I did.
- olink [4:16 PM]
- Not that shitty code some shitty developer wrote
- olink [4:16 PM]
- >like I said, you could host your mysql server on google’s balloon based internet and it would slow it down, just like raising the BCryptWorkFactor would
- olink [4:16 PM]
- You have a funny way of spelling benchmarks
- nicatrontg [4:16 PM]
- Please, go do something productive instead of yell at me
- olink [4:16 PM]
- Dude if you have a problem with someone raising any issues with your code just remove me from the projct
- olink [4:16 PM]
- Because thats why I'm here
- olink [4:16 PM]
- To make sure the code is as good as possible.
- olink [4:17 PM]
- If you dont want to deal with someone giving feedback
- olink [4:17 PM]
- just fucking get it over with
- olink [4:17 PM]
- Every
- olink [4:17 PM]
- Single
- olink [4:17 PM]
- Criticism
- olink [4:17 PM]
- I
- olink [4:17 PM]
- Make
- olink [4:17 PM]
- You
- olink [4:17 PM]
- Take
- olink [4:17 PM]
- Personally
- olink [4:17 PM]
- Hell, im not the only person who expressed concerns with locking the main thread
- olink [4:17 PM]
- But apparently because I raised the issue, its not something you care about.
- olink [4:17 PM]
- I get it
- olink [4:17 PM]
- Just
- olink [4:17 PM]
- remove me
- olink [4:18 PM]
- Otherwise I will continue to complain about bad code
- nicatrontg [4:23 PM]
- Let me put it like this: in calculus, we apply limits to things so that the results make sense. Sure, given an infinite amount of “what-if” possibilities, this code can be used to slow down the server. This, however, can happen the same way in a multitude of different ways.
- You can comment on my code, but please, do so in a way that reflects that you understand what you’re talking about, rather than jumping in head first and saying that “1-2 seconds on the main thread is bad => this code is bad.” Understanding the BCrypt work factor is a critical component to being able to review this code, because without that understanding, it may appear that it abnormally raises the time required to do something. This, however, is not the case, and in fact, is quite contrary to the default I set it to. I’ve been trying to make this point several times, using statistics (linking benchmarks), pointing out the growth rate, the default, and saying several times that it already computes to something equivalent in hash speed for SHA512. When that didn’t work, I used a common literature method called hyperbole to dramatize the fact that increasing the work factor could, just as hosting a remote MySQL server, cause performance issues, but that these were all up to the server owner to configure and decide for themselves. Don’t make me repeat myself several times to try to emphasize the same point.
- olink [4:24 PM]
- Point me to the benchmarks
- olink [4:25 PM]
- Plesae
- olink [4:25 PM]
- because finding anything in slack is useless
- olink [4:25 PM]
- especially considering not everyone is on a pc and use the mobile device
- like2omg [4:25 PM]
- @nicatrontg: @olink is right. I experience that exact problem as well
- nicatrontg [4:26 PM]
- http://wildlyinaccurate.com/bcrypt-choosing-a-work-factor/
- olink [4:26 PM]
- I hadnt seen any timings from a server so I assumed there were none, but if I missed them in teh see of spam
- olink [4:26 PM]
- I appologize/
- olink [4:26 PM]
- Ok, so let me take a stab before I click this link
- olink [4:26 PM]
- That you actually never timed your implementation on a terraria server?
- olink [4:26 PM]
- Which is what i am asking for
- olink [4:27 PM]
- Not what some guy tested in his specific use case.
- nicatrontg [4:27 PM]
- Okay, then I haven’t built fucking timing tests on the Terraria server
- nicatrontg [4:27 PM]
- because you know, I have a life
- olink [4:27 PM]
- Ok, so my concern of it potentially being a problem given the increased effort of encryption
- nicatrontg [4:27 PM]
- I thought “this is an easy way to future proof the terraria server, and it won’t take long, I’ll just go do it"
- olink [4:27 PM]
- Was valid
- olink [4:27 PM]
- And you thought being an asshole about a valid concern was mature.
- olink [4:27 PM]
- I get it.
- nicatrontg [4:28 PM]
- No, you’re being an asshole
- olink [4:28 PM]
- Your life is greater than my concern of making shitty software shittier.
- olink [4:28 PM]
- I get it.
- nicatrontg [4:28 PM]
- you’re an asshole
- olink [4:28 PM]
- Sure, after some douch threw mud at me for expressing concern over code being implemented, which is kind of my fucking job here.
- nicatrontg [4:29 PM]
- Nobody appointed you Dr. Criticism
- simon311 [4:29 PM]
- I don't think the work factor is so much of a problem when people can set it to 1 :kappa:
- nicatrontg [4:29 PM]
- your job is not to make TShock Capital P Professional quality software
- olink [4:29 PM]
- Its not critism when its a fucking valid point
- nicatrontg [4:29 PM]
- your job is to help improve it for the user and plugin groups
- nicatrontg [4:29 PM]
- that’s all
- olink [4:29 PM]
- "Oh, effort? Fuck that id rather sit here and argue with you and ignore your concerns because I dont give a fuck about how well our software runs"
- olink [4:29 PM]
- I think youve made your point clear as day
- olink [4:30 PM]
- If i wanted professional quality, id have asked you to remove yourself from the coding team.
- olink [4:30 PM]
- But that isn't what I want.
- nicatrontg [4:30 PM]
- Really?
- nicatrontg [4:30 PM]
- Because it sure feels fucking like it
- olink [4:30 PM]
- You wrote questionable code, and get upset someone critiques it, gg.
- nicatrontg [4:30 PM]
- Fucking really?
- olink [4:31 PM]
- Its questionable until someone times it.
- nicatrontg [4:31 PM]
- MarioE sent me criticism
- nicatrontg [4:31 PM]
- so I fixed it
- nicatrontg [4:31 PM]
- it looks good to him
- nicatrontg [4:31 PM]
- in fact, nothing was *wrong* with the initial implementation; it worked *fine*
- olink [4:31 PM]
- It can look as good as Brad Pitt, doesnt mean hes a good actor.
- nicatrontg [4:31 PM]
- the only thing that was wrong was minor style changes in brackets and some other bugs that I didn’t know about and fixed because they’re present in the current version
- olink [4:32 PM]
- Yes, sure, so one developer decided not to ask you how fast it was.
- olink [4:32 PM]
- Guess what?
- olink [4:32 PM]
- I did.
- nicatrontg [4:32 PM]
- I’m not being paid to develop this software
- nicatrontg [4:32 PM]
- I’m not going to go write a giant test suite in Terraria of all things, to test one crypto library
- olink [4:33 PM]
- A test suite? Must suck being such a bad developer to not be able to implement a simple timer.
- nicatrontg [4:33 PM]
- when the work factor is quite obviously 2^work factor calculations
- olink [4:33 PM]
- Can I direct you to google?
- nicatrontg [4:33 PM]
- Get out.
- olink [4:33 PM]
- Naw, I think we can both say whatever we want.
- nicatrontg [4:33 PM]
- Leave, bye, adios
- olink [4:33 PM]
- You dont want to listen to me.
- olink [4:33 PM]
- I dont want to listen to you, its mutal.
- nicatrontg [4:33 PM]
- Your business is appreciated, thanks.
- olink [4:33 PM]
- mutual*
- olink [4:36 PM]
- slackbot [6:35 PM]
- You have been removed from the group admins by @nicatrontg
- alerek [4:40 PM]
- improving on code is not cause for butthurt, just saying
- alerek [4:41 PM]
- pls dont act demickey and get along
- simon311 [4:41 PM]
- >improving the code
- simon311 [4:42 PM]
- I thought they were arguing about whetever it is improving or not
- simon311 [4:42 PM]
- But yeah, still no reason for that big of a fight
- alerek [4:42 PM]
- i dont know and i dont care, all that matters is a suggestion was mmade, should be considered just like anything else and etc etc
Advertisement
Add Comment
Please, Sign In to add comment