Bitcoin Forum
November 19, 2024, 04:04:46 PM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 [4] 5 6 7 »  All
  Print  
Author Topic: Ваша собственная криптовалютная биржа  (Read 14368 times)
#Cryptoman
Member
**
Offline Offline

Activity: 980
Merit: 48


View Profile
July 26, 2018, 06:28:32 AM
 #61

Quote
Для high load исключена работа с БД, все держится в памяти.

На бинансе(это самая крупная криптобиржа) происходят десятки сделок в секунду, для серверов баз данных, это вообще не проблема (хоть 10 тысяч в секунду)... Поэтому в памяти держать базу данных не имеет смысла.

Ну и на небольших криптобиржах, если происходит одна сделка в минуту, то это уже не так плохо, а на маленьких биржах, одна сделка может быть в несколько часов или даже дней.

https://indx.ru криптобиржа от вебмоней, не воруют, не требуют доказательств происхождения средств.
BuyOwnEx (OP)
Member
**
Offline Offline

Activity: 128
Merit: 12


View Profile WWW
July 26, 2018, 09:59:23 AM
 #62

Quote
Для high load исключена работа с БД, все держится в памяти.

На бинансе(это самая крупная криптобиржа) происходят десятки сделок в секунду, для серверов баз данных, это вообще не проблема (хоть 10 тысяч в секунду)... Поэтому в памяти держать базу данных не имеет смысла.

Ну и на небольших криптобиржах, если происходит одна сделка в минуту, то это уже не так плохо, а на маленьких биржах, одна сделка может быть в несколько часов или даже дней.

Не могу полностью согласиться.

В памяти не держится БД. Есть криптовалютное ядро, которое написано на C#, оно весьма упрощенно содержит следующую информацию в памяти:
1. Список торговых счетов в разрезе каждого пользователя и каждый счет содержит информацию о текущем балансе свободных средств, сумме заблокированных средств под ордера и размере комиссии
2. Список валютных пар и в разрезе каждой пары содержится информация о текущих (активных) ордерах в стакане на продажу и на покупку

Торговое ядро не держит в памяти информацию о сделках, оно только производит мэтчинг ордеров в текущем стакане и если есть условие для совершения сделки, то производятся манипуляции с балансами и ордерами. А информация о сделке поступает в систему уведомлений, которая в сою очередь и заносит информацию в БД PostgreSQL. Таким образом, у нас память не нагружается лишней информацией.

Теперь по поводу производительности БД. Помимо вставки информации о сделках, в БД есть список пользователей, их текущие настройки, список валют, список торговых пар, список как текущих ордеров, так и исполненных, список как внешних счетов, так и торговых счетов, системные счета, данные для графиков OHLC и многое другое. И кроме вставки данных производится множество запросов к БД, часть из них, естественно кэшируется, но тем не менее. Поэтому говорить о том, что вставка 10 тысяч сделок в секунду не проблема это не верно.

Посмотрим на криптовалютную биржу Binance, которая согласно coinmarketcap имеет суточный объем в два миллиарда долларов (2 000 000 000 $). На каждой бирже есть минимальный объем ордера и примерно равен 1$. Средний объем ордера можно принять за 10$. Таким образом, если равномерно за 24 часа распределить скорость генерации сделок, то получиться что биржа binance генерирует (2 000 000 000 $/10 $/ 24 часа/ 60 минут/ 60 секунд = 2314 сделок в секунду)

2314 сделок в секунду вполне приемлемое время для серверов на ssd дисках, особенно в raid массиве.

Что касается других бирж, соглашусь, что на многих сделки совершаются не так часто.

Теперь немного о тестах производительности торгового ядра:

Для нагрузочного тестирования были созданы следующие предварительные условия:
•   Был выставлен ордер на продажу 1000 BTC по цене 1000 EUR
•   Затем под этот специально заготовленный ордер была отослана команда PlaceLimitStressTest (ее нет в реальности, она была добавлена только на время теста), где в цикле из 500 000 итераций выполнялась команда PlaceLimit (размещение встречного ордера на покупку 0.001 BTC по цене 1000 EUR). Сформировалось 500 000 сообщений  (Сообщение о новой сделке (NewTrade)), в котором указывается время формирования сообщения в тиках.
•   Данные о сделках не писались в БД

В результате проведенного теста на следующей конфигурации ПК:

•   Процессор: Intel Core i7-4770 CPU @ 3.40 GHz
•   RAM: 8Гб
•   ОС: Windows 7 64x
•   HDD: Seagate Barracuda ST500DM002
o   Объем кэш-памяти 16MБ
o   Скорость вращения шпинделя 7200rpm
o   Максимальная скорость интерфейса 600 МБ/с
o   Буферизированная скорость чтения 202 МБ/с
o   Средняя скорость чтения 125 МБ/с

Результаты следующие:

•   Время формирования 1-ой сделки (timestamp): 1523970522.36384 сек
•   Время формирования 500 000-ой сделки (timestamp): 1523970531.14784 сек
•   Итого: 500 000 сделок за 9 сек

В данной архитектуре не особо важно, когда мы запишем информацию о сделках в БД, через доли секунд, через секунду или минуту, поскольку вся информация о стакане содержится в оперативной памяти криптовалютного ядра. Система не позволит выставить “плохой” ордер.
BuyOwnEx (OP)
Member
**
Offline Offline

Activity: 128
Merit: 12


View Profile WWW
October 09, 2018, 02:17:02 PM
Last edit: March 04, 2020, 07:36:09 PM by BuyOwnEx
 #63

Новая версия выложена на https://buyownex.com

- Кардинально изменен интерфейс. Теперь он в стиле Бинанс и можно посмотреть не регистрируясь в системе. Например, вот тут: https://demo.buyownex.com/trader/trading/USDT/BTC
- Полностью реализовано API биржи
- Реализована система персональных уведомлений пользователя
- Добавлено изменение объема за 24 часа
- Улучшен график: добавлены периоды 1 мин, 5 мин, 4 часа, 1 неделя; добавлены индикаторы SMA, EMA, MACD, RSI

Возможны добавления иных индикаторов.
YuriyBum34
Jr. Member
*
Offline Offline

Activity: 105
Merit: 1


View Profile
November 05, 2018, 05:15:48 PM
 #64

Поторговать монетами на демо счете впринципе интересно
BuyOwnEx (OP)
Member
**
Offline Offline

Activity: 128
Merit: 12


View Profile WWW
December 05, 2018, 10:40:23 PM
 #65

Совсем скоро выложим рабочую версию в демо, где можно будет не только демо монетами поторговать, но и залезть в лонг или шорт.
Плечо будет 5х
DeathCrash
Member
**
Offline Offline

Activity: 182
Merit: 12


View Profile
December 08, 2018, 04:28:57 PM
 #66

Круто
RedWojak
Jr. Member
*
Offline Offline

Activity: 32
Merit: 1


View Profile
December 24, 2018, 12:27:29 PM
 #67

А вы сейчас на тестовых сетях делаете ? или уже на реальной ? Как вообще долго подключать новую валюту ?

По подключению новой валюты необходимо использование API explorer-а новой валюты. По времени подключения сложно предугадать: здесь нужно учитывать сложность взаимодействия, а также необходимо в обязательном порядке провести тесты, прежде чем запускать это взаимодействие. Это может занимать порядка 2-5 дней

Плохо.
Эксплореру нельзя доверять. Можно доверять только самому блокчейну.
BuyOwnEx (OP)
Member
**
Offline Offline

Activity: 128
Merit: 12


View Profile WWW
December 24, 2018, 12:48:59 PM
 #68

А вы сейчас на тестовых сетях делаете ? или уже на реальной ? Как вообще долго подключать новую валюту ?

По подключению новой валюты необходимо использование API explorer-а новой валюты. По времени подключения сложно предугадать: здесь нужно учитывать сложность взаимодействия, а также необходимо в обязательном порядке провести тесты, прежде чем запускать это взаимодействие. Это может занимать порядка 2-5 дней

Плохо.
Эксплореру нельзя доверять. Можно доверять только самому блокчейну.
После общения с разработчиками, от этой идеи мы отказались. И теперь, естественно,  развернуты ноды 5 монет на серверах, через которые осуществляется взаимодействие по вводу выводу монет через rpc вызовы
RedWojak
Jr. Member
*
Offline Offline

Activity: 32
Merit: 1


View Profile
December 25, 2018, 06:07:25 AM
 #69

А вы сейчас на тестовых сетях делаете ? или уже на реальной ? Как вообще долго подключать новую валюту ?

По подключению новой валюты необходимо использование API explorer-а новой валюты. По времени подключения сложно предугадать: здесь нужно учитывать сложность взаимодействия, а также необходимо в обязательном порядке провести тесты, прежде чем запускать это взаимодействие. Это может занимать порядка 2-5 дней

Плохо.
Эксплореру нельзя доверять. Можно доверять только самому блокчейну.
После общения с разработчиками, от этой идеи мы отказались. И теперь, естественно,  развернуты ноды 5 монет на серверах, через которые осуществляется взаимодействие по вводу выводу монет через rpc вызовы

А как вы храните приватные ключи от депозитных кошельков? В стандартном wallet.dat соответствующего воллета?

Вопрос не праздный. Поясню - во-первых, Bitcoind имеет ряд ограничений, в частности он не умеет эффективно создавать транзакции, если у вас много (>10 000) адресов с рассыпаной по ним мелочовкой - если использовать его то выводы начнут тормозить и не исполняться.

Во-вторых если вы используете стандартные методы хранения (да и если нет - тоже) вы должны разграничивать права доступа каждого кошелька, поскольку разработчик может в сорсе спрятать код, который вы не увидите и в лучшем случае вас кинут на эти койны, а в худшем - на все что можно. Вы это делаете?
BuyOwnEx (OP)
Member
**
Offline Offline

Activity: 128
Merit: 12


View Profile WWW
December 25, 2018, 09:20:45 AM
 #70

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

По второму пункту, мы делать такого рода разграничения прав не будем, поскольку разработчики у нас довольно близкие, доверенные лица.
dzyk
Legendary
*
Offline Offline

Activity: 1792
Merit: 1028


dzyk.ru


View Profile WWW
December 28, 2018, 12:43:09 PM
 #71

А вы сейчас на тестовых сетях делаете ? или уже на реальной ? Как вообще долго подключать новую валюту ?

По подключению новой валюты необходимо использование API explorer-а новой валюты. По времени подключения сложно предугадать: здесь нужно учитывать сложность взаимодействия, а также необходимо в обязательном порядке провести тесты, прежде чем запускать это взаимодействие. Это может занимать порядка 2-5 дней

Плохо.
Эксплореру нельзя доверять. Можно доверять только самому блокчейну.
После общения с разработчиками, от этой идеи мы отказались. И теперь, естественно,  развернуты ноды 5 монет на серверах, через которые осуществляется взаимодействие по вводу выводу монет через rpc вызовы

А как вы храните приватные ключи от депозитных кошельков? В стандартном wallet.dat соответствующего воллета?

Вопрос не праздный. Поясню - во-первых, Bitcoind имеет ряд ограничений, в частности он не умеет эффективно создавать транзакции, если у вас много (>10 000) адресов с рассыпаной по ним мелочовкой - если использовать его то выводы начнут тормозить и не исполняться.

Во-вторых если вы используете стандартные методы хранения (да и если нет - тоже) вы должны разграничивать права доступа каждого кошелька, поскольку разработчик может в сорсе спрятать код, который вы не увидите и в лучшем случае вас кинут на эти койны, а в худшем - на все что можно. Вы это делаете?

А парень то прав. дыр может быть больше, чем у kzv)))

BuyOwnEx (OP)
Member
**
Offline Offline

Activity: 128
Merit: 12


View Profile WWW
February 12, 2019, 12:23:35 PM
 #72

А вы сейчас на тестовых сетях делаете ? или уже на реальной ? Как вообще долго подключать новую валюту ?

По подключению новой валюты необходимо использование API explorer-а новой валюты. По времени подключения сложно предугадать: здесь нужно учитывать сложность взаимодействия, а также необходимо в обязательном порядке провести тесты, прежде чем запускать это взаимодействие. Это может занимать порядка 2-5 дней

Плохо.
Эксплореру нельзя доверять. Можно доверять только самому блокчейну.
После общения с разработчиками, от этой идеи мы отказались. И теперь, естественно,  развернуты ноды 5 монет на серверах, через которые осуществляется взаимодействие по вводу выводу монет через rpc вызовы

А как вы храните приватные ключи от депозитных кошельков? В стандартном wallet.dat соответствующего воллета?

Вопрос не праздный. Поясню - во-первых, Bitcoind имеет ряд ограничений, в частности он не умеет эффективно создавать транзакции, если у вас много (>10 000) адресов с рассыпаной по ним мелочовкой - если использовать его то выводы начнут тормозить и не исполняться.

Во-вторых если вы используете стандартные методы хранения (да и если нет - тоже) вы должны разграничивать права доступа каждого кошелька, поскольку разработчик может в сорсе спрятать код, который вы не увидите и в лучшем случае вас кинут на эти койны, а в худшем - на все что можно. Вы это делаете?

А парень то прав. дыр может быть больше, чем у kzv)))

Получил некоторые ответы от разработчика:

>А как вы храните приватные ключи от депозитных кошельков? В стандартном wallet.dat соответствующего воллета?

да, wallet.dat
по дефолту он не зашифрован
мы его сразу шифруем, и он там все хранит


>он не умеет эффективно создавать транзакции, если у вас много (>10 000)

Имеется ввиду что если надо сделать перевод на большую сумму, допустим один биткоин а эта суммма расыпана на 10000 адресов то думаю да. Поэтому надо иметь адрес на котором есть большая сумма, для выплат, обычно это отдельный адрес

BuyOwnEx (OP)
Member
**
Offline Offline

Activity: 128
Merit: 12


View Profile WWW
February 14, 2019, 06:29:42 PM
 #73

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

Как и обещали... выложена новая версия с маржиналкой

Маржиналка активирована только на паре BTC/USDT

Позже опишем что еще было сделано
BuyOwnEx (OP)
Member
**
Offline Offline

Activity: 128
Merit: 12


View Profile WWW
February 15, 2019, 06:17:31 PM
 #74

Итак, немного поподробнее:

- Теперь, поскольку активирована маржиналка, для предотвращения скачков, каждому вновь зарегистрированному демо пользователю выделяется определенное количество монет по каждой из валют:
1 BTC
75 LTC
3000 USDT
25 BCH
25 ETH
1400 WAVES
135 000 NXT

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

neiros
Legendary
*
Offline Offline

Activity: 3556
Merit: 1100



View Profile WWW
March 25, 2019, 08:39:44 AM
 #75


Моя собственная криптовалютная схема распределения и работы - https://bitcointalk.org/index.php?topic=5123471.0

Можете за одно ещё и эту схему добавить и протестировать.
Самое время для этого.
Довольно уникальный шанс выпадает, для тех кто хоть что-то понимает, по-моему.

BuyOwnEx (OP)
Member
**
Offline Offline

Activity: 128
Merit: 12


View Profile WWW
March 26, 2019, 08:33:29 PM
 #76


Моя собственная криптовалютная схема распределения и работы - https://bitcointalk.org/index.php?topic=5123471.0

Можете за одно ещё и эту схему добавить и протестировать.
Самое время для этого.
Довольно уникальный шанс выпадает, для тех кто хоть что-то понимает, по-моему.

Спасибо, изучим.

На первый взгляд возникает несколько вопросов:
1. Что делать бирже при накоплении комиссии по сделкам купли продажи данных монет? Модель этого не описывает
2. Интересно было бы изучить данную модель при возможности маржинальной торговли.
neiros
Legendary
*
Offline Offline

Activity: 3556
Merit: 1100



View Profile WWW
March 27, 2019, 04:13:51 AM
 #77

1. Что делать бирже при накоплении комиссии по сделкам купли продажи данных монет? Модель этого не описывает

Это уже на усмотрение самой биржи.

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


2. Интересно было бы изучить данную модель при возможности маржинальной торговли.

Самому любопытно. Особенно если ещё будет возможность для каждого пользователя применять подобную схему. Но это дело возможно будет востребовано на конечном этапе размещения, когда бонусы станут минимальными и коридор приблизится к 10%



valsha
Jr. Member
*
Offline Offline

Activity: 66
Merit: 6


View Profile
March 30, 2019, 10:59:54 AM
 #78

Новая версия выложена на https://buyownex.com
Демо, это значит что вы ее продаете или что? А то не совсем понятно для чего демо.
BuyOwnEx (OP)
Member
**
Offline Offline

Activity: 128
Merit: 12


View Profile WWW
March 30, 2019, 11:05:19 AM
 #79

Новая версия выложена на https://buyownex.com
Демо, это значит что вы ее продаете или что? А то не совсем понятно для чего демо.

Демо версия нужна для того, чтобы потенциальный покупатель смог ознакомиться с продуктом
valsha
Jr. Member
*
Offline Offline

Activity: 66
Merit: 6


View Profile
March 30, 2019, 11:10:18 AM
 #80

Новая версия выложена на https://buyownex.com
Демо, это значит что вы ее продаете или что? А то не совсем понятно для чего демо.

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

Да, нашел вашу тему с продажей биржи. Ознакомился, конечно громадный минус это то что ядро закрыто.
Pages: « 1 2 3 [4] 5 6 7 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!