пару недель назад по совету @ultrastod начал делать игрушку. Потихонечку дело движется. Уже можно играть, вернее по правилам перекладывать карты со стопки на стопку. Работы еще куча. Надо сделать прием ставок, управление балансом, подсчет очков. Да много чего. Всяких мелочей как обычно на 80% от всего объема. Да и выглядит страшно, и лучше наверное не будет. Не селён еще.
Одна из проблем, что надо решить, это авторизация. С выходных думаю и не знаю как быть. Все встало, мысли не мыслят - дилемма.
Я — в кризисе. Душа нема.
«Ни дня без строчки», — друг мой дрочит.
А у меня —
ни дней, ни строчек.
Поэтому хочу спросить у старожилов, которые на этом всем собаку съели. Как быть?
Есть два варианта:
Авторизация происходит постинг ключем, все ходы записываются в блокчейн от имени пользователя, на сервере проверяется только правильность ходов. Постинг ключ дальше вашего браузера не уходит. Ни на сервер, ни куда либо. Что бы играть, игрок переводит некую сумму на баланс (специальный аккаунт, управляемый сервером), в любом клиенте голоса своим активным ключем. А уже собственно игра, управление балансом, все остальное делается с помощью постинг-ключа. Вернее им подписываются транзакции и отправляются в блокчейн.
Второй вариант, по сути никак не связан с блокчейном голос. Только пополнение баланса. Пользователь авторизируется на сайте с игрушкой, паролем который выдает сайт. Никакие ключи от голоса вводить не надо, играй себе на здоровье. Соотвественно без ключей, я никак не смогу записывать пользовательские ходы в блокчейн. Игра получается отдельно от блокчейна.
Мне нравится первый вариант больше, но проблема в том, что я недавно на голосе и боюсь никто не станет пихать ключи в сайт с игрушкой сделанный незнамо кем, человеком без репутации. Хоть и постинг ключ, но все равно. На нем завязанны TIPсы, или не страшно за них? Короче тупо боюсь, что играть по такому варианту никто не будет. Аудитория голоса 70 человек. Итак не приходится расчитывать на столпотворение.
Второй вариант более доверительный, так как я ключи от квартиры где деньги лежат не получаю, порог входа меньше, не споткнетесь. Рискуете только ставкой. Проблема только в самой авторизации, надо ее делать, а не охота. Наметки есть, есть готовые сервера, надо только блокчейн прикрутить. @lex говорил, что будет когда то общественный авторизационный сервер, но неизвестно когда по срокам. Ну и неинтересный для меня второй вариант, так как хочется поработать с блокчейном. А тут по сути просто софт. Для этого я и пришел сюда - попрактиковаться с блокчейнами. С другой стороны можно взять софт и пойти на другой блокчейн, если тут не приживусь.
Ответье в коментах пожалуйста, если не трудно. Если я сделаю первый вариант с постинг ключем, вы рискнете довериться мне? Если таковы найдутся, хоть два человека, то буду делать первый вариант.
Дальше скучное, мои задумки. Что-то вроде плана действий. При условии, что будет делаться вариант 1.
Под баланс я заведу отдельный аккаунт на голосе, на который игрок будет переводить свои монетки.(выполнил, спасибо @lex)- Перед началом игры, игрок возможно будет выбирать сложность игры (от этого будет зависить размер выигрыша). Для определения сложности я запустил программу, которая генерирует различные комбинации колоды и пытается их решить и сообщает минимальное число ходов, требуемое для решения головоломки. У меня уже за две недели набралось 25 тысяч вариантов, их и буду предлагать. Чем больше требуемое число ходов, тем сложнее и тем выше выигрыш.
- Для начала игры, игрок отправит транзакцию в блокчейн, сайт в ответ запостит в блокчейн хэшкод колоды.
- Как только начинается игра, на еще один аккаунт (reserved), будут переведена ставка (-10% моих комиссионных :) ) и предполагаемая сумма выигрыша. Что бы не получилось так, что игрок сделал ставку, а в банке не осталось средств, пока он играл.
- Игра будет ограничена 3 днями, что бы не замораживать на долго средства. Не доиграл, сервер автоматически вернет все в банк. И наверное будет ограничение по числу ходов. К примеру при простой игре, неограниченное число ходов, при средней сложности 350 ходов, при повышенной сложности 210.
- Во время игры, сайт будет генерировать список ходов (почти как в шахматах) и отправлять их переодически в блокчейн. Ходы будет проверять сервер.
- При выигрыше, игроку вернется его ставка + сумма выигрыша, или как то так. Надо еще почитать, как это делается в подобных делах. Выигрышь будет уменьшаться в зависимости от числа отмененных ходов.
- Сайт запостит в блокчейн исходную колоду, для проверки, не мухлевал ли сервер. При желании можно будет сделать анимацию, как проходила игра. Зная исходное состояние и ходы сделанные игроком это не очень сложно. Блокчейн в блокчейне. Принцип собственно как в шахматах, с записью партии.
Возможно много еще чего не учел, по ходу дела буду решать.
@bitwheeze, вот все ходы в блокчейн писать не надо. Это слишком много информации. Фиксировать можно только операции с токенами. Пополненение баланса, перевод выигрыша. Максимум хэш колоды ещё. Или все ходы записывать в одну итоговую транзакцию. Для чего надо продумать струкутру custom. При этом это должен быть один и тот же custom для всех операций игры, только с разными данными в нём.
@retroscope, сейчас 90% пустых блоков генерируется. Ну накинет игрой чуток, убудет от делегатов? Как @blockchained сказал, "как на бомжа поссать", хуже не станет. Данных там за несколько лет уже, за 2016-2018 там вообще как удав с поросем в желудке.
Ну и думаю ходы буду группировать, то-есть не каждый ход по отдельности будет записываться в блокчейн, а пачками. 3-5 ходов.
Мне что нравится с записью в блокчейн, я в любой момент при порче данных в своей базе данных смогу восстановить все из блокчейна. Можно блоки зареплеить за последние три дня, и все на месте, можно продолжать играть с того же места. Ну и игра, на монеты же, тут для обоих сторон страховка, что все почестному, и что все можно восстановить. Слетит ли все на стороне клиента или у меня. Можно сесть и разобраться.
@bitwheeze, хотел поумничать, но @lex уже опередил)
@bitwheeze, кмк даже неопытные пользователи в случае предчувствия рисков способны сделать 2-ой аккаунт для игр и прочего, перевести туда сколько-то токенов и ни в чём себе не отказывать 😊
По авторизации, да, OAuth с API в планах, возможно даже в ближ. месяцы...
@lex, я неопытный и мне только на ум приходит wallet от ноды, что бы создать аккаунт. Или можно как то подругому? Или имеется ввиду через регулярную регистрацию?
Но да, как вариант решения дилеммы. )
@bitwheeze, ну а позже, может ты прикрутишь к игре сразу и регистрацию,
на днях добавим анонс выделения реги в микросервис
тут пока черновой вариант Golos Auth & Registration Service
https://github.com/golos-blockchain/ui-auth/blob/master/API.md
@bitwheeze, я про твоё
что тем кто боится, добро пожаловать сделать новый аккаунт за 5 минут и играть не боясь потерять токены с основного аккаунта и пр.
тем более сейчас это можно сделать без ввода телефонов, емейл адресов, создать инвайт и с ним пройти регистрацию 2-го аккаунта
@lex, вон как, а я подумал, что это просто при регистрации можно указать себя, что бы потом типа монетки грести с приглашенного. А оно вон как. Поставил на понижение, что бы получить наличку. Надо тоже зарегистрировать, глядишь в топ по приглашенным выйду. 😂
И да, это собственно снимает всю проблему. Спасибо!
@bitwheeze, и при регистрации, прописывать себя как реферера, или давать инвайт с рефкой и ссылкой на текущие реги.
Отправил немного налички для теста )
@lex, спасибо, зарегистрировал аккаунт под игру. Работает. 😎
@bitwheeze,
но удобная ключница о которой говорит лекс избавила бы от костылей
@blockchained,
Второй раз мне предлагают делать ставки типсами. В принципе можно, но мне кажется это для пользователей неудобно. Завести можно, а вывод ждать несколько дней. Получается игра только для своих.
Я подумаю. В крайнем случае можно сделать обменник. Жалко, что на типсы не идет начисление, как на СГ. Я только потому, все полученные типсы перевожу в СГ. С мой точки зрения сейчас награждать некого, а просто так хранить в типсах, ждать когда хороший пост появится, жалко. Пускай уж работают.
Спасибо
@bitwheeze, тогда если хочешь делать ставки именно в ликвиде то есть смысл подождать OAuth о котором говорит лекс, не надо тогда будет городить костыли и брать на себя лишнюю ответсвенность с ключами, а во время ожидания можно отшлифвать игру, например