Bitcoin Forum
May 13, 2024, 11:00:27 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 »  All
  Print  
Author Topic: Давайте создадим с нуля биржу Open Source?  (Read 32171 times)
This is a self-moderated topic. If you do not want to be moderated by the person who started this topic, create a new topic. (5 posts by 1+ user deleted.)
ligor
Full Member
***
Offline Offline

Activity: 1246
Merit: 138


Hodl DeepOnion


View Profile WWW
October 02, 2019, 01:49:08 PM
 #321

Серъезно, она же еле ползает наверно.

Отнюдь.

1715641227
Hero Member
*
Offline Offline

Posts: 1715641227

View Profile Personal Message (Offline)

Ignore
1715641227
Reply with quote  #2

1715641227
Report to moderator
1715641227
Hero Member
*
Offline Offline

Posts: 1715641227

View Profile Personal Message (Offline)

Ignore
1715641227
Reply with quote  #2

1715641227
Report to moderator
1715641227
Hero Member
*
Offline Offline

Posts: 1715641227

View Profile Personal Message (Offline)

Ignore
1715641227
Reply with quote  #2

1715641227
Report to moderator
The trust scores you see are subjective; they will change depending on who you have in your trust list.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715641227
Hero Member
*
Offline Offline

Posts: 1715641227

View Profile Personal Message (Offline)

Ignore
1715641227
Reply with quote  #2

1715641227
Report to moderator
SteepPepper
Jr. Member
*
Offline Offline

Activity: 198
Merit: 8


View Profile WWW
October 05, 2019, 12:19:28 PM
 #322

Вашу биржу пытаются взломать методом социальной инженерии. говорят что знают вас. хороший признак. значит других методов нет)
подробности тут
https://discord.gg/QAnjK7U

Сори но я вынужден опубликовать здесь, так как потребляю ваш код но еще не доконца не углубился в него. извините. думаю будут буртить


SteepPepper
Jr. Member
*
Offline Offline

Activity: 198
Merit: 8


View Profile WWW
October 05, 2019, 01:22:59 PM
 #323

Жесть. Бутят. Очень быстро. Скорость Брута зависит от исходящего канала. нужно тайминг вставить.
Соль нельзя сменить после первого пуска или я не понял как.
Нужно тайминг вставить, что-бы ответ на неверный пароль приходил с задержкой а не мгновенно..
Я понимаю что капча решает, но она уже давно не нужна от слова совсем, ну разве людей только мучать.

startsts
Sr. Member
****
Offline Offline

Activity: 1092
Merit: 273



View Profile
October 05, 2019, 03:22:18 PM
 #324

Серъезно, она же еле ползает наверно.

Отнюдь.

Тут в принципе не подходит sqlite так как в ней нет блокировки на уровне строк, при большой нагрузке это необходимо иначе операции просто пойдут неправильно.

Жесть. Бутят. Очень быстро. Скорость Брута зависит от исходящего канала. нужно тайминг вставить.
Соль нельзя сменить после первого пуска или я не понял как.
Нужно тайминг вставить, что-бы ответ на неверный пароль приходил с задержкой а не мгновенно..
Я понимаю что капча решает, но она уже давно не нужна от слова совсем, ну разве людей только мучать.


У меня был опыт управления биржей, решается тут все просто, каптча появляется после 2 неверных попыток ввода пароля.  После 10 неверных попыток блокировать доступ на час.

SteepPepper
Jr. Member
*
Offline Offline

Activity: 198
Merit: 8


View Profile WWW
October 05, 2019, 11:20:38 PM
 #325

У меня был опыт управления биржей, решается тут все просто, каптча появляется после 2 неверных попыток ввода пароля.  После 10 неверных попыток блокировать доступ на час.

не рабочий вариант. узнав логины (скажем из бирживовго чата) можно вредить, блокируя других пользователей на постоянной основе. А не зная логины может тоже можно блокировать вход пользователей, если стучаться очень быстро... зависит от кода на стороне сервера.
startsts
Sr. Member
****
Offline Offline

Activity: 1092
Merit: 273



View Profile
October 06, 2019, 04:06:53 AM
 #326

У меня был опыт управления биржей, решается тут все просто, каптча появляется после 2 неверных попыток ввода пароля.  После 10 неверных попыток блокировать доступ на час.

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

Я имею ввиду бан по IP, а столько прокси чтобы после каждых 2 попыток менять IP хакеры не найдут.
Банить можно как в форме авторизации так и прямо на сервере через iptables, в таком случае у хакера не откроется ни одна страница и уменьшится нагрузка на платформу

kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
October 06, 2019, 08:55:53 PM
 #327

Тут в принципе не подходит sqlite так как в ней нет блокировки на уровне строк, при большой нагрузке это необходимо иначе операции просто пойдут неправильно.


Где про эту особенность sqlite можно почитать?

ЗЫ брутфорс сайта с капчей это бесполезное занятие. Не нужны никакие блокировки.

OpenTrade - Open Source Cryptocurrency Exchange
startsts
Sr. Member
****
Offline Offline

Activity: 1092
Merit: 273



View Profile
October 06, 2019, 10:41:33 PM
 #328

Тут в принципе не подходит sqlite так как в ней нет блокировки на уровне строк, при большой нагрузке это необходимо иначе операции просто пойдут неправильно.


Где про эту особенность sqlite можно почитать?

ЗЫ брутфорс сайта с капчей это бесполезное занятие. Не нужны никакие блокировки.

почитайте о транзакциях в базах данных. Или давайте представим ситуацию: пользователь производит операцию создания ордера и у него баланс 0.01 BTC который вычитается и в базу записывается 0, и в этот же момент у него срабатывает другой ордер который также видит баланс 0.01 и хочет прибавить к нему 0.005 за исполненный ордер на продажу.  В зависимости от того какая операция запишет в базу первая или вторая баланс будет либо 0 либо 0.015 и то и другое неправильно. Должна быть блокировка на уровне строки которая не позволит получить баланс пользователя из базы пока не завершена другая операция. В sqlite можно блокировать только таблицу полностью, это сильно уменьшит производительность

laiyskylone
Sr. Member
****
Offline Offline

Activity: 378
Merit: 252


View Profile
October 07, 2019, 02:42:32 AM
 #329

Тут в принципе не подходит sqlite так как в ней нет блокировки на уровне строк, при большой нагрузке это необходимо иначе операции просто пойдут неправильно.


Где про эту особенность sqlite можно почитать?

ЗЫ брутфорс сайта с капчей это бесполезное занятие. Не нужны никакие блокировки.

почитайте о транзакциях в базах данных. Или давайте представим ситуацию: пользователь производит операцию создания ордера и у него баланс 0.01 BTC который вычитается и в базу записывается 0, и в этот же момент у него срабатывает другой ордер который также видит баланс 0.01 и хочет прибавить к нему 0.005 за исполненный ордер на продажу.  В зависимости от того какая операция запишет в базу первая или вторая баланс будет либо 0 либо 0.015 и то и другое неправильно. Должна быть блокировка на уровне строки которая не позволит получить баланс пользователя из базы пока не завершена другая операция. В sqlite можно блокировать только таблицу полностью, это сильно уменьшит производительность

Ребята на счет производительности и прочего да, но она сама легковестная и мобильная да и человек делает же сам поэтому использует то что ему нравиться, проект же open source поэтому вы там можете у себя подпилить и юзать хоть mongo хоть postgres и даже закомить в главный реп а там уже  обсудить все и дополнить разработку. А так спорить можно очень долго и рассказывать и про транзакции и прочее
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
October 07, 2019, 04:38:55 AM
 #330

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

В третьих, в sqlite ЕСТЬ транзакции. Внезапно?

OpenTrade - Open Source Cryptocurrency Exchange
startsts
Sr. Member
****
Offline Offline

Activity: 1092
Merit: 273



View Profile
October 07, 2019, 12:31:00 PM
 #331

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

В третьих, в sqlite ЕСТЬ транзакции. Внезапно?

Далеко не все операции можно так сделать. Например два пользователя нажали купить биткоин по 8000 USDT с разницой в миллисекунды,  нужно заблокировать строки базы с ордерами по 8000 пока проводятся операции с балансом первого пользователя, чтобы паралеллельный процесс не использовал эти ордера для второго пользователя а ожидал,  В sqlite нельзя заблокировать строки, блокируется сразу вся база при помощи транзакции EXCLUSIVE и ждать будет не только второй пользователь но и любые пользователи которые просто хотели посмотреть список ордеров или добавить свой ордер

kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
October 07, 2019, 02:52:34 PM
 #332

У меня в коде блокируются ордера по монете пока идет процессинг другого ордера.
Но если по уму, то бухгалтерский сервер должен работать в отдельном процессе и действительно эксклюзивно блокировать бухгалтерскую базу пока идет какая-либо запись или группа записей.
Что за блокировка строки я первый раз слышу?

OpenTrade - Open Source Cryptocurrency Exchange
startsts
Sr. Member
****
Offline Offline

Activity: 1092
Merit: 273



View Profile
October 07, 2019, 04:20:35 PM
 #333

У меня в коде блокируются ордера по монете пока идет процессинг другого ордера.
Но если по уму, то бухгалтерский сервер должен работать в отдельном процессе и действительно эксклюзивно блокировать бухгалтерскую базу пока идет какая-либо запись или группа записей.
Что за блокировка строки я первый раз слышу?

В Mysql InnoDB можно блокировать строки при помощи SELECT FOR UPDATE после начала транзакции,   другая попытка "SELECT FOR UPDATE" на эти же строки будет ожидать завершения транзакции.

Если блокируется в коде то все ок,  просто так можешь запустить приложение только в 1 поток, и не сможешь запустить параллельно

kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
October 07, 2019, 04:22:30 PM
 #334

node.js однопоточна принципиально.

OpenTrade - Open Source Cryptocurrency Exchange
ligor
Full Member
***
Offline Offline

Activity: 1246
Merit: 138


Hodl DeepOnion


View Profile WWW
October 07, 2019, 04:59:07 PM
 #335

В sqlite нельзя заблокировать строки, блокируется сразу вся база при помощи транзакции EXCLUSIVE и ждать будет не только второй пользователь но и любые пользователи которые просто хотели посмотреть список ордеров или добавить свой ордер
На чтение не блокируется, только на запись.

startsts
Sr. Member
****
Offline Offline

Activity: 1092
Merit: 273



View Profile
October 07, 2019, 05:42:53 PM
 #336

node.js однопоточна принципиально.

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


В sqlite нельзя заблокировать строки, блокируется сразу вся база при помощи транзакции EXCLUSIVE и ждать будет не только второй пользователь но и любые пользователи которые просто хотели посмотреть список ордеров или добавить свой ордер
На чтение не блокируется, только на запись.

Тип EXCLUSIVE блокирует и на запись... но автор уже обьяснил что не использует ее а блокирует в коде

ligor
Full Member
***
Offline Offline

Activity: 1246
Merit: 138


Hodl DeepOnion


View Profile WWW
October 07, 2019, 05:50:20 PM
 #337


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

r3l0c
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
December 01, 2019, 11:09:13 AM
 #338

SQLite, серьезно? На любом пампе проект сломается. ТС видимо не знаком с напором торговых роботов. Масштабирование- никакое.
r3l0c
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
December 01, 2019, 02:32:24 PM
 #339

Чувак, если тебе говорят одно и тоже- есть повод задуматься. Я не говорю даже о качестве кода и наличия там велосипедов в виде обертки для базы- первое что я заметил, видимо мы любим делать бесполезную работу и не знаем о sequelize. Чувак, критика- путь к совершенству. И да, я не nodejs разработчик и ни разу с ним не работал, но моего опыта хватает что бы писать об этих недочетах с уверенностью. И советую провести нагрузочное тестирование отработки ордеров. Ну в секунду хотяб 5к ордеров чтоб выставлялось, 1к отменялось и 500 ордеров были бы самопересекающиеся, + параллельно 10к онлайн рандом по сайту. И посчитайте задержки. Я уверен, что нагрузочное тестирование заставит вас задуматься.
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
December 01, 2019, 02:49:01 PM
 #340

Чувак поверь, диванных экспертов я наслушался начиная с первой страницы темы - можешь почитать. Все такие умные, но почему-то такие бедные ))
Можешь сделать лучше - вперед и с песней!

OpenTrade - Open Source Cryptocurrency Exchange
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 »  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!