По поводу моего рандомайзера...
Я понял, что он не такой идеальный и прозрачный, как я думал. А ещё я не ожидал от дтферов, что они первым же делом пойдут засирать сервер как только можно.
У сайта две основные проблемы:
- Кто угодно крутит сколько хочет любой пост
- Многие не доверяют серверу и мне
После долгих раздумий в душе, а также прочтения ВСЕХ ваших комментариев на том посте, я нашёл для себя решение обеих проблем!
Огромное спасибо Нехороший русский и Algebra за очень классные советы.
Что планируется сделать для решения первой проблемы
Будет некое подобие системы авторизации. Но не переживайте, никаких логинов и паролей от вас не надо.
Вы просто напишите моему боту @NikosBot в ЛС и он сгенерирует вам случайный код, который затем будет сохранён в базе данных вместе с вашим id.
Далее идёте на сайт рандомайзера и вводите этот код. Только после его проверки появится возможность указать ссылку на пост.
Вам не придётся повторять это каждый раз, потому что я могу сохранить его в куках.
После крутки будет ещё одна проверка: сравнение автора поста с тем id, который был сохранён за этим кодом. Если автор не совпадает, то ничего не получится.
Таким образом, каждый сможет крутить только свои посты. Конечно, всё ещё можно будет засрать историю своими постами, но по крайней мере мы будем знать, кто это делает.
Что планируется сделать для решения второй проблемы
Постараюсь объяснить попроще, чтобы все поняли.
Перед отправкой ссылки на пост, вы нажмёте кнопку получить хэш. Сервер создаст некое уникальное значение от случайного сида (зерно). Оно работает так, что если повторить зерно, то всегда получите тот же хэш. Как в играх с генерируемым миром, типа майнкрафта или 7dtd. Вот вы получите конкретный мир, но пока не зерно.
Далее вы отправляете ссылку на пост. Сервер находит победителя и шлёт вам назад его, список участников и сид.
После чего вы идёте в майнкрафт, создаёте новый мир с этим сидом и проверяете, на тех же ли местах деревья. Шучу, не надо идти ни в какой майнкрафт. Прогоняете список участников и сид через опубликованный алгоритм и проверяете, что победитель тот же, а хэш совпадает с тем, что вы получили изначально.
Это значит, что никакого обмана со стороны сервера быть не могло, ведь он не мог заранее знать, на какой пост вы запросите крутку.
Это всё может звучать слишком сложно, но на деле вам не надо будет ничего делать, просто жмите кнопки на сайте.
Имел ли смысл вообще мой сайт?
Многие писали, что разницы никакой с дтфпассом нет, потому что код не публичный и что там тоже может быть всё подстроено. Проблему доверия, думаю, мы закроем с помощью описанного выше метода.
Но что касается разницы, то тут я остаюсь при своём мнении: логика крутки на сервере гораздо честнее и безопаснее клиентской. Я сделал небольшое видео, чтобы продемонстрировать, что я имею в виду.
Ссылка на "честный" результат из видео: