- Сообщения
- 1 873
- Реакции
- 402
- Баллы
- 103

Для просмотра скрытого содержимого вы должны войти или зарегистрироваться.
Установка
Настройка WebSockets
Закрытые ключи и шифрование WS
Рекапча
Для авторизации на сайте необходима Recaptcha.
Шаги для включения Recaptcha:
- Создать токен Recaptcha v2
- Создайте файл /storage/recaptcha.keyи поместите в него токен
- Запустите npm run dev, чтобы активировать Recaptcha
- Установить recaptcha_secret_keyв настройках панели администратора
Сгенерировать пустые ключи php artisan webpush:vapid
.envфайл
Скопируйте .env.exampleфайл и переименуйте его в .env, затем запустите php artisan key:generate.
Измените APP_URLURL-адрес на ваш веб-сайт (важно для веб-хуков!)
Закрытые ключи
Для нашей реализации клиент-серверной WS требуются открытый ключ RSA и ключ сервера для предотвращения кражи токена доступа.
Процесс генерации прост: запустите php artisan win5x:keys.
Если вы собираетесь использовать сервис BitGo, сделайте резервную копию BITGO_PASSPHRASEгде .env-нибудь, чтобы случайно не потерять доступ к кошельку BitGo.
Примечание: вам нужно выполнить npm run dev, чтобы включить открытый ключ RSA в исходный код js. Если вы тестируете веб-сайт сразу после без компиляции, он не аутентифицирует вас на сервере WS.
Планировщик
Настроить планировщик:
crontab -e
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
Установка WS-сервера
laravel-echo-server init # When asked, use port 2096 and setup SSL if you want to use it
Изменить laravel-echo-server.json
"databaseConfig": {
"redis": {
"password": "redis password (set "redis" to {} if none)"
},
"sqlite": {
"databasePath": "/database/laravel-echo-server.sqlite"
},
"listenWhishper": true,
"prefixWhishper": "whisper"
},
Наконец, запустите win5x:subscribe:
php artisan win5x:subscribe
Боты
Чтобы создать фальшивое присутствие пользователей, вы можете запустить бота, который это сделает. Перейдите к /admin/bot, измените настройки в соответствии с вашими потребностями и нажмите «Старт».
Если вы хотите остановить появление ботов, используйте php artisan queue:clear.
Примечание: эта команда очищает все задания в очереди. После этого необходимо перезапустить очередь многопользовательской игры с помощью php artisan game:chain all.
Величина ставки жестко запрограммирована и является случайной в диапазоне от 1$ до 25$ (определяется на основе текущей CoinGeckoцены), более высокие ставки встречаются реже.
Установка кошелька
Мы поддерживаем два способа предоставления кошельков на вашем сайте. Вы можете настроить доступные валюты в панели администратора.
BitGo
Сторонний поставщик кошелька Bitcoin. Этот метод быстрее в установке, чем локальные узлы, и вам не придется тратить ресурсы сервера.
1. Установите BitGoJS:
cd BitGoJS/modules/express
npm ci
Примечание: Мы не рекомендуем устанавливать BitGo Express от имени пользователя root, но если вам это необходимо, вам необходимо выполнить npm ci --unsafe-permпоследний шаг вместо npm ci.
Запуск BitGo Express
Из папки экспресс-модуля ( modules/express) выполните следующую команду:
npm run start
Вы должны увидеть запуск BitGo Express в тестовой среде по умолчанию:
BitGo-Express running
Environment: test
Base URI: http://localhost:3080
Запуск в производство
При запуске BitGo Express против производственной среды BitGo с использованием реальных средств следует убедиться, что NODE_ENVпеременная окружения установлена в значение production. Это отключит некоторую отладочную информацию, которая может привести к утечке информации о системе, на которой запущен BitGo Express. Если обнаружена небезопасная конфигурация, BitGo Express выдаст предупреждение при запуске. В будущей версии BitGo Express это превратится в серьезную ошибку, и BitGo Express не запустится.
Кроме того, при работе в производственной среде и прослушивании внешних интерфейсов BitGo Express должен быть запущен с включенным TLS путем установки параметров конфигурации keyPathи crtPath, в противном случае BitGo Express при запуске выдаст следующее сообщение об ошибке:
Fatal error: Must enable TLS when running against prod and listening on external interfaces!
Error: Must enable TLS when running against prod and listening on external interfaces!
Мы настоятельно рекомендуем всегда включать TLS при работе с производственной средой BitGo. Однако, если вам необходимо отказаться от этого требования, вы можете сделать это, установив disableSSLпараметр конфигурации. Используйте на свой страх и риск, так как это может позволить злоумышленнику получить доступ к конфиденциальной информации, поскольку она передается по сети в открытом виде.
Вебхук
Webhook ( https://<url>/api/bitgoWebhook) создается автоматически для кошельков BitGo.
Собственные узлы биткойнов
Если вы хотите использовать локальные узлы BTC, то мы предоставляем 7 криптовалют.
cd nodes/<node folder>/bin
./start.sh
Измените учетные данные в файлах start.sh.
Полная синхронизация может занять до 1 недели, в среднем 3 дня, в зависимости от интернет-соединения сервера/процессора и т. д.
Не синхронизируйте более 2 узлов одновременно, это снизит производительность!
Эфириум
./start.sh находится в папке geth.
Для корректной работы узла Ethereum lightclient необходимы одноранговые узлы.
Запускается web3.jsв корне проекта для обработки платежей Ethereum.
cd <your website root>
npm install -g pm2
pm2 start web3.js
ТРХ
Этот кошелек работает на удаленном узле. Примечание: депозиты на нем не мгновенные, это займет от 1 до 10 минут в зависимости от нагрузки на ваш/удаленный узел сервера.
ЭРК-20
ERC-20 работает на протоколе Ethereum, поэтому используется клиент geth.
Вам не нужно ничего делать: если Ethereum работает, то ERC-20 тоже будет работать.
URL-адреса RPC
Этот скрипт использует узел RPC для управления кошельками.
Разместите эти URL-адреса в панели администратора на странице «Валюты».
БТД -http://user: password@localhost:8445
БЧХ -http://user: password@localhost:8446
ДОЖ -http://user: password@localhost:22555
ЛТК -http://user: password@localhost:9332
Удаленный сервер кошелька
Пропустите этот шаг, если вы будете запускать узлы и RuneRuby на одном сервере.
Возможна настройка узлов на отдельном сервере.
- Копирование двоичных файлов узла web3.jsс главного сервера на сервер кошелька
- Заменить URL-адреса RPC:
- Измените blocknotify.sh и walletnotify.sh:
- Запустить узлы на втором сервере
Некоторые настройки кошелька изначально изменить нельзя, так как они генерируются автоматически.
Для автоматической настройки требуется, чтобы все узлы были запущены (кроме ERC-20 и TRX)
Откройте /admin/wallet/autoSetupбраузер (авторизованный как администратор), когда все собственные узлы работают.
Резервные копии кошелька находятся в /storage/app. Сохраните их и удалите с сервера, чтобы предотвратить утечки. Сохраните адреса ETH и TRX/закрытые ключи в текстовом файле вручную.
Многопользовательские игры
Первый шаг — настройка супервизора.
После завершения настройки необходимо запустить цепочку, чтобы игра работала бесконечно ( php artisan game:chain <game_id>).
Пример:
php artisan queue:clear # Clear queue so unexpected things wouldn't happen
php artisan game:chain all # Start chain for all games
# Example (debugging)
php artisan game:chain crash # Start chain for Crash only
Текущие идентификаторы многопользовательских игр:
- крушение
- баккара
- слайд
- бык против медведя
Поскольку в этой игре Coinbase Pro APIвместо стандартной системы доказуемой честности используется экземпляр NodeJS для извлечения данных в реальном времени.
npm install -g pm2
pm2 start bullvsbear.js
Примечание: это все еще экземпляр MultiplayerGame. Вам нужно использовать php artisan game:chainкоманду для запуска этой игры!
Не забудьте отредактировать SERVER_IPстроку в вашем .envфайле.
Поиск неисправностей
Результаты доказуемой честности на веб-сайте и на стороне клиента различаются
Точность чисел с плавающей точкой в PHP работает по-другому, поэтому будут небольшие различия.
Разница очень мала, но иногда ее достаточно, чтобы сделать результат недействительным.
Чтобы исправить это, внесите следующие изменения php.ini:
float_precision = -1
«Подключение к серверу...»
Убедитесь, что сервер WS ( php artisan win5x:subscribeс laravel-echo-server) запущен.
После установки
Используйте этот скрипт оболочки для быстрого запуска сервера WS, очереди Laravel и многопользовательских игр:
./start.sh
Примечания
- Никогда не запускайте php artisan win5x:subscribeдважды. Если вам нужно перезапустить его, завершите предыдущий процесс, иначе события будут обработаны дважды - чат будет дублировать сообщения, пользователи могут слить свой баланс.
- Никогда не запускайте php artisan game:chainдважды. Если вам нужно очистить и перезапустить цепочку очередей, запустите ее php artisan queue:clearраньше.
- Команда Subscribe использует кэшированные php-классы для игр. Если вы их изменили - перезапустите команду, чтобы изменения вступили в силу.
- Некоторые валюты поддерживаются BitGo, а некоторые поддерживаются как собственные. Хотя большинство валют разделяют балансы пользователей, мы рекомендуем выбрать что-то один раз и никогда не менять, потому что если вы удалите Bitcoin SV и полностью перейдете на локальные узлы, ваши пользователи потеряют свои средства.