Перейти к публикации
Форум - ComputerCraft
Laine_prikol

Opencomputers [Beta] [Client/Server] OCcoins - Валюта/Магазин

Рекомендованные сообщения

Итак сегодня я наконец сделал свою "мега-крутую" программу. Это так сказать "криптовалюта" только без того самого крипта, блокчейна и всякие другие вещи которые есть в реальных криптовалютах. Но, все принципы майнинга здесь есть - вы жрете электричество и мощности своего компьютера чтобы заработать монетку работает это крайне примитивно, НО РАБОТАЕТ!

Так как всё-таки это бета версия. То тут всё ещё есть баги и код написан не очень хорошо, в дальнейшем это будет всё фикситься и т.д.

Работа программы:

В моей программе клиент/сервер в клиентской стороне - 3 программы и серверный код на PHP который будет на каком-нибудь веб-хостинге. Итак разбор скриптов:

Сервер:

index.php - страница-заглушка. сделана чисто для галочки чтобы если кто-то зашёл с реального браузера, то увидел мини-инструкцию по установке

config.php - конфиг (в разработке)

balance.php - баланс, пишет в ответ баланс пользователя

buy.php - записывает список покупок пользователя

register.php - регистрация

service.php - основной скрипт "майнинга" как раз он генерирует хэши и проверяет пароли (хотя почти во всех скриптах есть проверка на правильный пароль)

shop.php - скрипт покупки проверяет сколько валюты у пользователя и отнимает значение.

product_list.lua - конфиг файл в котором хранятся: названия товаров, ид товаров, цена

Клиент:

Occoinclient.lua - сам клиент для "майнинга"

shop.lua - программа для заказа предметов у себя дома или ещё где (аналог интернет-магазина где заказываем товар)

market.lua - программа для выдачи заказа игроку. (аналог почты с который нам приходит посылка с магазина) также это программа требует дебаг-карту для выдачи вещей

Скриншоты:

JiGC6YR.png

BrPOuii.png

 

Установка и авторы

Загрузка: wget https://raw.githubusercontent.com/LaineZ/OCCoins/master/Client/installer.lua

Установка: installer.lua

 

Авторы:

kikito - автор библиотеки md5.lua

ECS - автор библиотеки windows.lua

Laine_prikol - автор программы и серверных скриптов

 

Репо на гитхабе

 

------- ЛОВИТЕ БАГИ И ГЛЮКИ -------

Изменено пользователем Laine_prikol
  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 только вопрос: зачем и нафига?

 

Лагодромщики, сэр.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сейчас бы майнить на компах из ОС... хотя, занятие интересное, за сколько времени они заработают единицу валюты?) Надо написать клиент и закинуть на все сервера с ОС, будем-с майнить беспалевно))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Эх, этот энтузиазм да в нужное русло...

Криптовалюта без крипты, принципы без принципов, хеши md5, не шифрованный протокол!11

Лучше напиши простую, но оригинальную игру - лайками закидают.

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обновление

В config.php появилась настройка $limit которая позволяет установить лимит монеток на каждого игрока. СКАЖИ "НЕТ" ЛАГОДРОНАМ

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Эх, этот энтузиазм да в нужное русло...

Криптовалюта без крипты, принципы без принципов, хеши md5, не шифрованный протокол!11

Лучше напиши простую, но оригинальную игру - лайками закидают.

Можно просто убрать клиент для майнинга и зарабатывать монетки за другие действия

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Майнинг... Держите меня семеро. Сначала день допрашивать, как разрешить только опенкомпам на сервер запросы отсылать, запретив любым другим прогам (в том числе курле всякой), и игнорить ответы; теперь релизить полупрогу с полукрипто полувалютой. Упорный, однако.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно просто убрать клиент для майнинга и зарабатывать монетки за другие действия

 

А в чём фишка системы тогда вообще?

Это просто сервер с базой данных, где записано число монеток для каждого ника? Или там даже базы данных нет?

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сейчас бы майнить на компах из ОС... хотя, занятие интересное, за сколько времени они заработают единицу валюты?) Надо написать клиент и закинуть на все сервера с ОС, будем-с майнить беспалевно))

1 монетку за 20-30 секунд

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В случае реальных криптовалют - майнинг имеет прямое практическое значение. При майнинге пользователи подтверждают транзации.

То есть валюта держится на майнерах. Они - её основной двигатель и заодно гарант безопасности.

 

В твоём случае именно модель майнинга имеет только ролевое значение - можно "отыграть" роль "майнера криптовалют".

Но это можно сделать проще, и с меньшими нагрузками на сервер.

 

То есть на практике у тебя просто есть набор аккаунтов, на которые, с большими лагами начисляются виртуальные монетки. Всё.

Может тогда взять модель криптовалюты Nimses? Пользователь создаёт аккаунт и просто получает монетки за просто так. С какой-то фиксированной скоростью.

Нуль нагрузки на сервера - а эффект такой же.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нуль нагрузки на сервера - а эффект такой же.

На игровой может быть, а на веб останется такая-же

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На игровой может быть, а на веб останется такая-же

 

Ну веб в нашем случае - меньшее из зол.

К тому же, теоретически, можно вообще не выполнять вычислений на вебе, а просто запомнить точное время предыдущего запроса и состояние счёта на тот момент.

Когда клиент снова захочет узнать состояние счёта - мы рассчитываем разницу во времени между запросами, конвертируем её по обменному курсу к валюте и прибавляем к состоянию счёта в последний раз.

Вуаля. Сервер вообще не нагружен, если не считать собственно обработки запросов. =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кстати, я заметил на эмуляторе OC скорость хэшей 1.53, а на реальном OC 0.08. То-есть майнить на компе в майнкрафте выгоднее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

как разрешить только опенкомпам на сервер запросы отсылать, запретив любым другим прогам (в том числе курле.

Легко, там записывается адрес компьютера ОС. Если его неправильный ид то он не пускает

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Легко, там записывается адрес компьютера ОС. Если его неправильный ид то он не пускает

Где записывается адрес компьютера OC?

Кто не пускает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Где записывается адрес компьютера OC?

Кто не пускает?

на сервере, и сервер не пускает если ид компа неправильный

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

на сервере, и сервер не пускает если ид компа неправильный

А откуда сервер знает, кто посылает id? Запрос от OpenComputers не отличается от запроса, полученного от обычного компьютера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А откуда сервер знает, кто посылает id? Запрос от OpenComputers не отличается от запроса, полученного от обычного компьютера.

Обычным GET-запросом адреса компонента компьютера.

 

Как определяются правильные ID?

Просто, клиент отправляет GET-запрос а сервер ищет правильный ID, если не нашёл то, аксесс денайд, регай аккаунт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обычным GET-запросом адреса компонента компьютера.

И чем GET-запрос от OpenComputers отличается от любого другого GET-запроса?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я не смотрел код, но мне кажется, можно вместо встроенного майнера майнить на реальном компе, а результаты отсылать через прогу. И к тому же, если прога юзает DataCard (или как там она называлась) то её можно просто подменить виртуальным компонентом. А он вычисляет на реальном компе. к тому же, если данные хранятся на внешнем сервере, то можно в локалке поставить over90k компов (если реальный, конечно потянет) и майнить на один акк, это решает проблему лагов, но создаёт новую - гигаинфляция. Ну а если не прав я - пойду исходники читать

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×