• XSS.stack #1 – первый литературный журнал от юзеров форума

Запуск полноценной биржи для экзит-скама.

PR1SM-NSA

(L2) cache
Забанен
Регистрация
23.10.2019
Сообщения
309
Реакции
379
Гарант сделки
1
Пожалуйста, обратите внимание, что пользователь заблокирован
Нам понадобится сервер примерно следующей конфигурации Intel Xeon E3-1275 v5 | 64 GB RAM DDR4 | 2 x 480 GB SSD | 1 Gbit с установленной CentOS 7

Разворачивать мы будем эту опенсорс биржу https://github.com/xunibidev/CoinExchange (про версия продается за деньги не удалось связаться с продавцом для покупки, а было реальное желание и средства...)

Я делал все в виртуалке выделил 8 ядер, 16 Гб (могу себе позволить ? )



Установка и настройка серверной инфраструктуры.

За основу взято руководство https://github.com/xunibidev/CoinExchange/tree/master/09_DOC
1. Развертывание сервера

Действия выполняются на сервере с CentOS 7 x64.
Обновляем систему:
# yum update
# yum upgrade
yum install net-tools gcc g++ epel-release maven nginx git wget
Установка MySQL.

Устанавливаем MariaDB:

# yum install mariadb-server mariadb

По умолчанию в CentOS 7 используется MariaDB 5.5

Для изменения версии MariaDB производим следующие действия:

Создадим файл /etc/yum.repos.d/mariadb.repo :

# touch /etc/yum.repos.d/mariadb.repo

Открываем файл /etc/yum.repos.d/mariadb.repo в любом редакторе ( vi, nano, mcedit ) и добавляем в него следующие строки:

# MariaDB 10.5 CentOS repository list — created 2018-08-23 03:33 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Сохраняем изменения и в командной строке выполняем:

# systemctl stop mariadb

# yum update

# systemctl start mariadb

# mysql_upgrade

Проверяем версию MariaDB:

# mysql -V

Скачиваем скрипт для создания таблиц в базе данных: https://raw.githubusercontent.com/xunibidev/CoinExchange/master/00_framework/sql/bizzan.sql или https://sysad.su/wp-content/uploads/2021/03/bizzan.sql_.txt

# wget https://raw.githubusercontent.com/xunibidev/CoinExchange/master/00_framework/sql/bizzan.sql

Заходим в консоль MySQL:
# mysql

Создаём базу данных bitrade:
mysql> create database if not exists bitrade default character set = 'utf8';
mysql> use bitrade;

Создаём пользователя:
mysql> CREATE USER 'bitrade'@'localhost' IDENTIFIED BY 'bitrade';
mysql> GRANT ALL PRIVILEGES ON bitrade.* TO 'bitrade'@'localhost';

Выполняем скрипт для создания таблиц в базе данных:
mysql> source bizzan.sql;


Установка Redis 6.2 ( рекомендуется ставить из рапозитория, см.ниже )

В файл /etc/sysctl.conf добавляем опцию vm.overcommit_memory = 1 и выполняем:
# sysctl -p

Попробовать установку Redis через epel.

# cd /usr/local/src
# wget http://download.redis.io/releases/redis-6.2.1.tar.gz
# tar zxvf ./redis-6.2.1.tar.gz
# cd ./redis-6.2.1
# make MALLOC=libc

После завершения компиляции в каталоге src находятся три исполняемых файла redis-server,redis-benchmark,redis-cli, в текущем каталоге находится конфигурационный файл redis.conf

# mkdir /opt/redis
# cp redis.conf /opt/redis
# cd ./src
# cp redis-server /opt/redis
# cp redis-benchmark /opt/redis
# cp redis-cli /opt/redis
# cd /opt/redis

Стартуем Redis:
./redis-server redis.conf &

Проверяем:
# netstat -antupl | grep redis

Проверяем с помощью клиента:
# ./redis-cli
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> get foo
"bar"

Устанавливаем пароль, для этого вносим изменения в файл redis.conf:
requirepass pass1234

Для включения удалённого доступа требуется изменить опции:
bind 127.0.0.1
и
protected-mode no
Вариант 2. Установка Redis из репозитория.

# yum install redis

# systemctl enable redis
# systemctl start redis

Устанавливаем пароль, для этого вносим изменения в файл /etc/redis.conf:
requirepass pass1234

# systemctl restart redis

Проверяем:
# netstat -antupl | grep redis

Проверяем с помощью клиента:
# ./redis-cli
127.0.0.1:6379> auth pass1234
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> get foo
"bar"

Установка Kafka

# useradd -d /opt/kafka -m kafka

# cd /usr/local/src
# wget https://downloads.apache.org/kafka/2.7.0/kafka_2.12-2.7.0.tgz
# tar zxvf ./kafka_2.12-2.7.0.tgz
# cp -a ./kafka_2.12-2.7.0/* /opt/kafka
# mkdir /opt/kafka/logs
# mkdir /opt/kafka/data
# chown -R kafka /opt/kafka

Конфигурирование Kafka

В каталоге /opt/kafka/config вносим изменения в server.properties
#broker.id=0
listeners = PLAINTEXT://localhost:9092
advertised.listeners=PLAINTEXT://localhost:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/opt/kafka/logs
num.partitions=1
num.recovery.threads.per.data.dir=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=6000

В каталоге /opt/kafka/config вносим изменения в zookeeper.propertiess
dataDir=/opt/kafka/data

Запуск:
# /opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties
# /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties

Проверка работоспособности.
В одной консоли сервера запускаем:
# /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

Во второй консоли:
# /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test

При наборе символов в первой консоли во второй будут отображаться введённые символы.


Настройка запуска через systemd.

Создаём файл для запуска zookeeper:
# touch /usr/lib/systemd/system/zookeeper.service
В файл добавляем строки:
[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
User=kafka
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

# systemctl enable zookeeper.service
# systemctl start zookeeper.service

Создаём файл для запуска kafka:
# touch /usr/lib/systemd/system/kafka.service
В файл добавляем строки:
[Unit]
Requires=zookeeper.service
After=zookeeper.service

[Service]
Type=simple
User=kafka
ExecStart=/bin/sh -c ‘/home/kafka/kafka/bin/kafka-server-start.sh /home/kafka/kafka/config/server.properties > /home/kafka/kafka/kafka.log 2>&1’
ExecStop=/home/kafka/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

# systemctl enable kafka.service
# systemctl start kafka.service
Установка MongoDB

Подключаем репозиторий MongoDB:
# touch /etc/yum.repos.d/mongodb-org.repo
В файл добавляем строки:
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc

Устанавливаем MongoDB:
# yum repolist
# yum install mongodb-org

Запуск MongoDB:
# systemctl enable mongod
# systemctl start mongod

Каталог с базами /var/lib/mongodb
Лог-файлы /var/log/mongodb

Создание пользователя и подключение.

Подключаемся в MongoDB и переключаемся на базу admin:
# mongo
> use admin

Создаём пользователя admin:
> db.createUser( {user: "admin",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})

После добавления пользователей вы можете использовать show users или db.система.users.find () просмотр существующих пользователей.

Выходим из оболочки MongoDB и повторно подключаемся:
# mongo
> use admin
> db.auth("admin","123456")

Создаём нового пользователя:
> use bitrade
> db.createUser({user: "root",pwd: "root",roles: [{ role: "readWrite", db: "bitrade" }]})

Разлогиниваемся из MongoDB и проверяем:
# mongo
> use bitrade
> db.auth("root","root")
> show collections

2. Настройка Web Front и Web Admin

Веб-интерфейс написан на NodeJS, для работы требуется установка на сервер соответствующего ПО.

Устанавливаем NVM (Node Version Manager):
# curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash

Перелогиниваемся в консоль и проверяем версию NVM:
# nvm --version

Проверяем доступные версии Node:
# nvm list-remote

Нам требуется версия NodeJS — 9.11.2
# nvm install 9.11.2

Проверяем установленные версии:
# nvm ls
# npm --version

На этом этапе клонируем проект CoinExchange с git.com в локальный каталог:
# cd /usr/local/src
# git clone https://github.com/xunibidev/CoinExchange.git

Создаём рабочие каталоги:
# mkdir -p /opt/www/admin
# mkdir -p /opt/www/web

Копируем проекты в рабочие каталоги:
# cp -a /usr/local/src/CoinExchange/04_Web_Admin/* /opt/www/admin
# cp -a /usr/local/src/CoinExchange/05_Web_Front/* /opt/www/web

Устанавливаем зависимости:
# cd /opt/www/admin
# npm install
# cd /opt/www/web
# npm install

В пакетах 04_Web_Admin и 05_Web_Front есть ошибки, связанные с неправильным регистром в названиях файлов проекта. Поэтом при сборке проектов возникают ошибки (около десятка в каждом).
Сообщения об ошибках выводится в таком виде:
ERROR in ./src/router/router.js
Module not found: Error: Can't resolve '@/views/otc/OrderManage.vue' in '/opt/www/admin/src/router'

Находим в /opt/www/admin/src/views/otc/ файл OrderManage.vue , там он прописан с маленькой буквы оrderManage.vue . Для исправления ошибки переименовываем файл в оrderManage.vue или в /opt/www/admin/src/router/router.js находим включение файла в проект:
{ id: 77, path: 'orderManage', icon: 'document', component: resolve => { require(['@/views/otc/OrderManage.vue'], resolve) } },
и заменяем OrderManage.vue на orderManage.vue

Данное действие выполняем для каждой ошибки 04_Web_Admin и 05_Web_Front

Для того, чтобы к проекту можно было обращаться снаружи в файлах конфигурации требуется прописать реальное имя хоста.
В /opt/www/admin/build/webpack.dev.config.js изменяем 127.0.0.1 на имя хоста.
В /opt/www/web/config/index.js изменяем 127.0.0.1 на имя хоста.

Сборка проектов:
# cd /opt/www/admin
# npm run build
# cd /opt/www/web
# npm run build

Запуск проектов:
# cd /opt/www/web/ && node /opt/www/web/node_modules/.bin/webpack-dev-server --inline --progress --config build/webpack.dev.conf.js &
# cd /opt/www/admin/ && node /opt/www/admin/node_modules/.bin/webpack-dev-server --content-base ./ --open --inline --hot --compress --config build/webpack.dev.config.js &

Доступ в админку: ИмяХоста:9576

Доступ к веб-интерфейсу: ИмяХоста:8080


Часть 3. Установка и настройка Framework.
Нужна виртуальная машину с установленной CentOS 6.9

Устанавливаем сборщик maven:
# yum install maven
Копируем исходный код
# git clone https://github.com/xunibidev/CoinExchange.git
Переходим в папку CoinExchange/00_framework/config
И редактируем application-prod.properties (вбиваем туда свои пароли и названия баз данных которые создали)
Компиляция проекта:
# mvn compile

Сборка jar:
mvn package -Pprod

Копируем все jar файлы из поддиректорий с виртуальной машины на сервер

Запускаем:
nohup java -jar /web/app/cloud.jar >/dev/null 2>&1 &
nohup java -jar /web/app/exchange.jar >/dev/null 2>&1 &
nohup java -jar /web/app/market.jar >/dev/null 2>&1 &
nohup java -jar /web/app/exchange-api.jar >/dev/null 2>&1 &
nohup java -jar /web/app/ucenter-api.jar >/dev/null 2>&1 &
nohup java -jar /web/app/otc-api.jar >/dev/null 2>&1 &
nohup java -jar /web/app/chat.jar >/dev/null 2>&1 &
nohup java -jar /web/app/wallet.jar >/dev/null 2>&1 &
nohup java -jar /web/app/admin.jar >/dev/null 2>&1 &


Готово.

На кракозябры у меня в админке не обращаем внимания это нормально) Так как по дефолту админка на китайском, позже напишу правки как включить инглиш и мануал как оредактировать лендинг и придать ему немного другой вид + убрать сообщение о том что для покупки про версии нужно писать в QQ автору.

Сори за капс, это важно.
КТО ЗНАЕТ КАК УСТАНОВИТЬ ЭТО ГОВНО (мессенеджер QQ) БЕЗ КИТАЙСКОГО НОМЕРА И ЕСТЬ ЛИ ТАМ ПРИЛЫ С ИНГЛИШ ИНТЕРФЕЙСОМ ЧИРКАНИТЕ ПЛИЗ А ТО АВТОР ПО МЫЛУ ИГНОРИТ, А Я БЫ МОЖЕТ КУПИЛ ПРО ВЕРСИЮ И В ПАБЛИК СЛИЛ СЮДА.

Screenshot_20210416_045102.png
Screenshot_20210416_045117.png



Позже вставлю ссылку на готовый настроенный образ виртуалки.


Ссылку на полностью настроенную биржу дам позже. Переходите, регистрируйтесь закидывайте битки и побольше у нас выгодные курсы ?
(шутка разумеется)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Зарезервировал для мануала по тонкой настройке фронтенда и мана по запускам демонов криптовалют.
 
Готовы проинвестировать в подобного рода проект
 
Пожалуйста, обратите внимание, что пользователь заблокирован
можно готовый настроенный образ виртуалки ?
Позже залью у меня спутниковый.
Интересно, можно ли как нибудь встроенными методами рисовать ликвидность там?
Насколько я понял только в про версии которую разраб продает за 30к USDT
 
Зарезервировал для мануала по тонкой настройке фронтенда и мана по запускам демонов криптовалют.
Благодарю за биржу! Будет ли продолжение?)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Поясните пожалуйста, почему такие требования к серверной аппаратуре Intel Xeon E3-1275 v5 | 64 GB RAM DDR4 | 2 x 480 GB SSD | 1 Gbit с установленной CentOS 7 ? по моему завышенные.
Если пользователей не много будет, Да и Centos сейчас 8 вроде как почему 7-ка?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Поясните пожалуйста, почему такие требования к серверной аппаратуре Intel Xeon E3-1275 v5 | 64 GB RAM DDR4 | 2 x 480 GB SSD | 1 Gbit с установленной CentOS 7 ? по моему завышенные.
Если пользователей не много будет, Да и Centos сейчас 8 вроде как почему 7-ка?
Ну java демоны каждый сжирают по 2гб. + Базы отъедают прилично. Полностью чистый сервер с работающей биржей отжирает 36Гб оперативки. Если к конфигах прописать менее жоские требования к оперативке начинает заметно тормозить интерфейс биржи и админка.


Да и Centos сейчас 8 вроде как почему 7-ка?
А это требование разраба вообще. На 8ке не реально скомпилировать java демоны биржи. Куча несовместимых зависимостей.

Другими словами сделано все что бы люди только запустили это и это им понравилось и потом пошли к разработчику покупать продакшн версию за 30к USDT...
 
Парни, а кто за оплату может развернуть данную биржу? Сервак предоставлю.
В личку пожалуйста
PR1SM-NSA написал же мануал по установке, выполняй действия по очереди и сам поставишь себе биржу))))
 
PR1SM-NSA написал же мануал по установке, выполняй действия по очереди и сам поставишь себе биржу))))
Читать умею.
Нет времени, иначе не писал бы.
Есть кто за деньги поставит? Посмотреть хочу..
 
Читать умею.
Нет времени, иначе не писал бы.
Есть кто за деньги поставит? Посмотреть хочу..
Напиши stooper
По фану будет, если готов оплатить человекочасы.
 
Читать умею.
Нет времени, иначе не писал бы.
Есть кто за деньги поставит? Посмотреть хочу..
Сервер куплен? Или ты хочешь чтоб поставили под ключ?
 
Зарезервировал для мануала по тонкой настройке фронтенда и мана по запускам демонов криптовалют.

Добрый день,

Планируете 2-ую часть запускать?)
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх