Bitcoin Forum
April 24, 2024, 05:36:44 AM *
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 32147 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.)
Coin-1
Legendary
*
Offline Offline

Activity: 2436
Merit: 2169



View Profile
January 21, 2020, 02:39:41 AM
Merited by klarki (1)
 #361

Единственное отличие sqlite от "взрослых" СУБД в том, что у неё есть только встроенные функции и нет родного языка для написания новых функций. Однако, во многих случаях можно писать функции на том же языке, на котором пишется приложение, использующее sqlite. Для этого в api присутствуют функции sqlite3_create_function и sqlite3_create_window_function. При разработке на c/c++ не составляет проблем определить функцию, которой можно будет пользоваться в запросах, в sqlite для .Net присутствует аналогичная функциональность. То же верно и для модулей к иным средам и средствам разработки, однако node-sqlite в их число не входит. Если сильно надо, то можно написать расширение на c++ или использовать другой модуль sqlite, их для ноды много.

Да, верно. Эта, на первый взгляд, простая система управления базами данных тоже поддерживает создание и использование дополнительных нестандартных функций в SQL-запросах:
https://sqlite.org/c3ref/create_function.html

Исходя из представленной документации, в интерфейсе SQLite можно на языке C/C++ написать аналогичные функции buybtcR() и sellbtcR() и задать пойнтеры на них в соотвествующих параметрах xFunc, xStep и xFinal. Про другие языки программирования ничего не сказано.

Оказывается, SQLite не такой уж и Лайт. Smiley
1713937004
Hero Member
*
Offline Offline

Posts: 1713937004

View Profile Personal Message (Offline)

Ignore
1713937004
Reply with quote  #2

1713937004
Report to moderator
You can see the statistics of your reports to moderators on the "Report to moderator" pages.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1713937004
Hero Member
*
Offline Offline

Posts: 1713937004

View Profile Personal Message (Offline)

Ignore
1713937004
Reply with quote  #2

1713937004
Report to moderator
1713937004
Hero Member
*
Offline Offline

Posts: 1713937004

View Profile Personal Message (Offline)

Ignore
1713937004
Reply with quote  #2

1713937004
Report to moderator
Balthazar
Legendary
*
Offline Offline

Activity: 3108
Merit: 1358



View Profile
January 21, 2020, 03:46:17 AM
 #362

Про другие языки программирования ничего не сказано.
Это на совести разработчиков модулей. Если речь о ноде, то при использовании этого модуля, к примеру, можно писать функции на яваскрипте. Но сначала придется переписать весь зависимый код в приложении, вряд ли kzv будет этим заниматься.
dzyk
Legendary
*
Offline Offline

Activity: 1792
Merit: 1028


dzyk.ru


View Profile WWW
January 23, 2020, 12:30:27 PM
Last edit: March 10, 2020, 07:37:24 AM by dzyk
 #363

Вручную запустил 10 экземпляров приложения-тестировщика. Локов не было.
Функции написаны на дефолтном языке. Функция купли или продажи содержит всего 250 строк включая пробелы и комментарии и другие артефакты для отладки


kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
January 23, 2020, 02:11:38 PM
 #364

У меня обработка ордера это многоэтапная процедура.

1. Добавление ордера
Проверить токен доступа для пользователя
Проверить валидность запроса от веб интерфестайса
Проверить: не заблокированы ли коины для ордера
Проверить баланс пользователя
Если с балансом пользователя что-то не так, по привести его в соответствие с блокчейном и историей оредеров
Добавить ордер в таблицу
Еще раз проверить баланс пользователя.

2. Матчинг орера по какой-то монете
Блокирование монеты для торгов
Получение двух перекрывающихся по цене ордеров
Блокирование ордеров для отмены
Блокирование пользователей в ордерах для торгов
Обновление ордеров
Обновление балансов пользователей ордеров
Обновление балансов по комиссиям донаторов и рефералов
Обновление истории торгов
Разблокирование всех кого ранее блокировал

То есть пока исполняется один ордер по какой-то монете, все остальные ордера по этой монете и все остальные ордера двух пользователей которые участвуют в обмене - просто курят в сторонке.
Довольно топорно конечно, но у меня не так много денег чтобы кормить хакеров которые с удовольствием пользуются любыми багами в открытом коде. Лучше пусть помедленней, но с перестраховками.


OpenTrade - Open Source Cryptocurrency Exchange
Mr.Elf
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
January 23, 2020, 02:56:51 PM
 #365

Ребята мне нужна подсказка, возможно это банальный вопрос, но у меня возникла такая ошибка при запуске движка биржи:

SSL Proxy listening on port 443
events.js:180
      throw er; // Unhandled 'error' event
      ^
Error: connect ECONNREFUSED IP:40545
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1056:14)

Emitted 'error' event at:
    at ClientRequest.<anonymous> (/home/opentrade/node_modules/ws/lib/websocket.js:554:15)
    at ClientRequest.emit (events.js:203:13)
    at Socket.socketErrorListener (_http_client.js:402:9)
    at Socket.emit (events.js:203:13)
    at emitErrorNT (internal/streams/destroy.js:91:Cool
    at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
    at processTicksAndRejections (internal/process/task_queues.js:77:11) {
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: 'IP',
  port: 40545
}


Движок c офф. репозитория запускаю на Ubuntu 18.04 LTS, все зависимости node установились без ошибок.
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
January 23, 2020, 03:08:04 PM
Merited by Symmetrick (1)
 #366

У вас сервер базы данных не работает.
Следуйте инструкциям на гитхабе

Code:
cd ~/opentrade/databaseServer
[sudo] forever start main.js
cd ~/opentrade/accountsserver
git checkout master
[sudo] forever start main.js
cd  ~/opentrade/server
[sudo] forever start main.js

OpenTrade - Open Source Cryptocurrency Exchange
Mr.Elf
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
January 26, 2020, 02:40:31 PM
 #367

Новая ошибка, запускаю движок совместно с Apache2 для роботы с доменом

Apache2 настроен по этой инструкции 
https://www.digitalocean.com/community/tutorials/how-to-install-the-apache-web-server-on-ubuntu-18-04

Зависимости для движка биржи по этой:
https://github.com/UbuntuEvangelist/opentrade

Запускаю этой командой и ошибка:
     
root@opentrade:/var/www/opentrade/server# node main.js
/var/www/opentrade/node_modules/ws/lib/websocket.js:347
      ...options
      ^^^

SyntaxError: Unexpected token ...
    at createScript (vm.js:74:10)
    at Object.runInThisContext (vm.js:116:10)
    at Module._compile (module.js:533:28)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/var/www/opentrade/node_modules/ws/index.js:3:19)
progof
Jr. Member
*
Offline Offline

Activity: 157
Merit: 4


View Profile
January 28, 2020, 03:15:11 PM
 #368

KZV, на вашей бирже есть биткоин и вес его блокейна +\- 300 ГБ и с каждым дней вес растет. Как вы решили эту проблему? Не думаю что у вас выделенный сервер с полным блокчейном битка.

PS: можете мне ответить в лс Smiley
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
January 28, 2020, 04:56:05 PM
 #369

> Mr.Elf
Скорее всего у вас старая версия node.js
если бы вы все делали по моей инструкции с гитхаба, то установили бы версию 12.6.0
Проверить версию можно командой
Code:
node -v
Если версия неправильная, то введите команды
Code:
nvm install 12.6.0
nvm use 12.6.0

>progof
Для биржи я держу два выделенных сервера и один виртуальный.
Один выделенный для базы данных, другой выделенный для демонов монет, виртуальный для бэкапов.
На любой из выделенных у меня легко влезет хоть пять полных блокчейнов биткоина, но я так не делаю ибо в битке есть команда prune. С этой командой блокчейн биткоина у меня весит около 3 гигов.
У большинства нормальных форков эта команда тоже есть.
Из нормальных форков этой команды нет у догов и приходится хранить весь из сучий блокчейн целиком ))
У всяких шитков на конструкторах этой команды может не быть, но там размер блокчейна и не превысит никогда одного гигабайта...

OpenTrade - Open Source Cryptocurrency Exchange
progof
Jr. Member
*
Offline Offline

Activity: 157
Merit: 4


View Profile
January 28, 2020, 09:16:58 PM
 #370

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

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
January 29, 2020, 06:08:21 AM
Merited by Symmetrick (1)
 #371

Ввод вывод фиата возможен только через купоны (коды) биржи. Сделать купон можно из любой валюты в кошельке, погасить купон можно там же. Купить/продать купоны на бирже нельзя, это типа внебиржевой актив.
Я планировал добавить прямой ввод/вывод фиата через payer, там все довольно просто. Но меня что-то сдерживает внутренняя чуйка...
Пока на бирже нет фиата, биржа ничем не отличается от онлайн игры с игровыми токенами. Как только там появится фиат, биржей заинтересуются регуляторы которых будет нельзя игнорировать. То есть вслед за настоящим вводом/выводом фиата, практически сразу, по независящим от меня причинам, последует KYC, AML и все остальные "прелести". 

OpenTrade - Open Source Cryptocurrency Exchange
progof
Jr. Member
*
Offline Offline

Activity: 157
Merit: 4


View Profile
January 29, 2020, 05:04:31 PM
 #372

KZV, спасибо за объяснение и предыдущие ответы, запустил последнюю версию движка, но когда запускаю еще демон битка с обрезанным блокчейном - то биржа вылетает и сервер говорит что ему не достаточно памяти. Хотя в df -h cвободно 18 из 25 ГБ, использую Ubuntu 18.04 LTS 25 SSD 1 RAM
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
January 29, 2020, 06:23:13 PM
 #373

KZV, спасибо за объяснение и предыдущие ответы, запустил последнюю версию движка, но когда запускаю еще демон битка с обрезанным блокчейном - то биржа вылетает и сервер говорит что ему не достаточно памяти. Хотя в df -h cвободно 18 из 25 ГБ, использую Ubuntu 18.04 LTS 25 SSD 1 RAM

Биржа (которая на гитхабе) это три независимых сервера: сервер аккаунтов, сервер базы данных, торговый сервер.
Когда вы говорите "биржа вылетает", то не совсем ясно: вылетают все три сервера одновременно?

OpenTrade - Open Source Cryptocurrency Exchange
progof
Jr. Member
*
Offline Offline

Activity: 157
Merit: 4


View Profile
January 29, 2020, 07:07:21 PM
 #374

KZV, спасибо за объяснение и предыдущие ответы, запустил последнюю версию движка, но когда запускаю еще демон битка с обрезанным блокчейном - то биржа вылетает и сервер говорит что ему не достаточно памяти. Хотя в df -h cвободно 18 из 25 ГБ, использую Ubuntu 18.04 LTS 25 SSD 1 RAM

Биржа (которая на гитхабе) это три независимых сервера: сервер аккаунтов, сервер базы данных, торговый сервер.
Когда вы говорите "биржа вылетает", то не совсем ясно: вылетают все три сервера одновременно?


В моём случае это три сервера которые крутятся на одной машине + демон биткоина
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
January 29, 2020, 07:26:16 PM
 #375

В моём случае это три сервера которые крутятся на одной машине + демон биткоина

И все вместе разом вылетает?
У меня не вылетало даже на VDS с 4 гб памяти (+4 гб swap). Даже не знаю, чем тут могу помочь... Попробуйте на другом сервере?

OpenTrade - Open Source Cryptocurrency Exchange
SteepPepper
Jr. Member
*
Offline Offline

Activity: 198
Merit: 8


View Profile WWW
February 05, 2020, 07:44:50 PM
 #376

Всем привет! Скажите алгоритм торгов правильно работает в соответствии с правилами бирж с прямыми сделками?
Вот че у меня получается

1) Беру и искуственно покупаю лонги за марикоины не по лучшему предложению а по худшему для себя


2) то есть вместо цены 0.05 беру цену 0.1


3) После закрытия ордера вроде все норм: минус 100 МС,  плюс 1000 лонг


Но! Сделка закрывалась как и должна по лучшей цене, - по 0.05, то есть тот кто продавал лонги получил свои 50 марикоинов и потратил 1000 лонгов (у него точно все норм)

и 50 марикоинов испарилось!

Может так и должно быть? также на других биржах с прямыми сделками? Кто знает скажите. Прошу разъяснить. может так и должно быть типа не косячь - будь внимательным!

SteepPepper
Jr. Member
*
Offline Offline

Activity: 198
Merit: 8


View Profile WWW
February 06, 2020, 08:30:09 AM
 #377

Не это косяк образовался после рефакторинга кода

потестил эту https://trade.crypton.cf/market/LNG-MC

здесь все правильно. сделки закрываются по лучшим ордерам без исчезновения валюты. Ищите ошибку!
PS. И не говорите спасибо)
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
February 06, 2020, 02:32:13 PM
 #378

PS. И не говорите спасибо)

Ну от чего же? Дайте ваш Мэрикоин адрес, переведу 1000 МС за подробное и правильное описание бага. Баг исправил, можете проверить. На будущее: лучше подобное обсуждать через письмо в суппорт биржи.

OpenTrade - Open Source Cryptocurrency Exchange
SteepPepper
Jr. Member
*
Offline Offline

Activity: 198
Merit: 8


View Profile WWW
February 06, 2020, 09:52:03 PM
 #379

PS. И не говорите спасибо)

Ну от чего же? Дайте ваш Мэрикоин адрес, переведу 1000 МС за подробное и правильное описание бага. Баг исправил, можете проверить. На будущее: лучше подобное обсуждать через письмо в суппорт биржи.

Ура!!! MNmrwyTJKKdSssSTqGYmpDFBACDuDvtnTk
SteepPepper
Jr. Member
*
Offline Offline

Activity: 198
Merit: 8


View Profile WWW
February 08, 2020, 12:31:17 AM
 #380

Еще в Ask должна попадать лучшая цена (то есть наименьшая) из sell-ордеров (Lowest Ask)
А в Bid должна попадать лучшая цена (то есть наибольшая) из buy-ордеров (Highest Bid)
Англоязычная аудитория привыкла что Ask всегда больше Bid. У вас перепутано.
Нужно вот как здесь https://crex24.com/exchange/LTC-BTC

MC: MNmrwyTJKKdSssSTqGYmpDFBACDuDvtnTk  Tongue
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!