Page 3 of 4 FirstFirst 1234 LastLast
Results 21 to 30 of 39

Thread: Обсуждение установки OpenTrade

  1. #21
    Новичок
    Join Date
    May 2019
    Posts
    15
    Quote Originally Posted by kzv View Post
    Думаю вы взялись за непосильную для себя задачу. Ваши вопросы действительно настолько банальны, что для ответа на них придется написать целую книгу. Я сейчас коротко отвечу, но в основном - разбирайтесь сами.
    ./marycoin-cli это командная оболочка для монеты Marycoin. Для биткоина будет ./bitcoin-cli, для догов ./dogecoin-cli и т.д. Коммандная оболочка появилась у форков начиная с версии 0.11 вроде. У младших версий ее нет, там были только демоны ./bitcoind ./dogecoind и т.д.
    ~/.coin/coin.conf это файл конфигурации монеты. У биткона это ~/.coin/bitcoin.conf Возможные значения гуглите в вики. rpc host, rpc port, etc... задаются тоже в этом файле конфигурации.
    Возможно вы посоветуете мануал/книгу/ресурс?
    Так или иначе, мне необходимо разобраться в этом.

    Marycoin как я понял Ваша личная криптовалюта, где взять её оболочку?
    И если можно, мануал/инструкцию по этому самому rpc для монет, в принципе.
    Просто как отправную точку, чтобы от неё копать.

    что такое rpc я в курсе, но какую роль он играет для монет?.

  2. #22
    Новичок
    Join Date
    May 2019
    Posts
    15
    И ещё один момент, никак не связанный со всем предыдущим (начал понемногу разбираться с ним со всем, но за любую рекомендованную статью по прежнему буду безмерно благодарен).

    я развернул на vds демон кошелька bitcoind и пытаюсь соединить его с биржей. Сам демон работает и дает отклик в ssh терминале
    Attachment 35

    В скрипт биржи admin.js добавил console.log в пару мест - при отправке тестового rpc,
    Code:
    $('#form-rpc_test').submit(e => {
        e.preventDefault();
        console.log('{coin:"'+ $( "#coins-select option:selected" ).text()+'",\
                command:"'+$( "#coin-rpc_command" ).val()+'",\
                params:"'+ $( "#coin-rpc_params" ).val()+'"\
            }');
        socket.send(JSON.stringify({
            request: 'rpc_test', 
            message: {
                coin: $( "#coins-select option:selected" ).text(),
                command: $( "#coin-rpc_command" ).val(),
                params: $( "#coin-rpc_params" ).val()
            }
        }));
    });
    и при получении

    Code:
    function onSocketMessage(event)
    {
      var data = {}; //
      try { data = JSON.parse(event.data); }
      catch(e) {return;} 
      if (data.request=='rpc_responce') console.log(event.data);
    ...

    Однако же, получаю в качестве ответа ошибку следующего рода (см аттач 1).
    Code:
    {coin:"Bitcoin",            command:"getbalance",            params:"[]"        }
    {"request":"rpc_responce","message":{"result":false}}
    {coin:"Bitcoin",            command:"createwallet",            params:"["ZZZ_HHH"]"        }
    {"request":"rpc_responce","message":{"result":false,"data":{}}}
    Где бы вы посоветовали искать ошибку?

  3. #23
    Администратор
    Join Date
    Oct 2017
    Posts
    539
    мануал по rpc
    https://en.bitcoin.it/wiki/Original_...API_calls_list
    Ну или так: http://bfy.tw/NowA

    Кошельки Мэрикоин https://github.com/multicoins/marycoin/releases

    Чтобы биржа могла взаимодействовать с rpc монеты, надо в панели администратора в разделе coins правильно написать адрес и порт на котором работает rpc монеты. У всех монет есть порт для rpc по умолчанию, но у всех он разный. Можно менять умолчания в файле конфигурации
    https://en.bitcoin.it/wiki/Running_Bitcoin

  4. #24
    Новичок
    Join Date
    May 2019
    Posts
    15
    Демон запущен, порт слушается, обращения - не идут.

    Подскажите плз., в каком файле кода происходит обрашение к rpc-json монеты? хочу поймать точную ошибку, увидеть что именно не так.

  5. #25
    Новичок
    Join Date
    May 2019
    Posts
    15
    вижу логи:
    accountsserver/debug1558349443170.log
    Code:
    Error: unexpected init db error 1
        at g_utils.ForEachSync (/root/opentrade/accountsserver/database.js:386:28)
        at onEndOne (/root/opentrade/accountsserver/utils.js:69:13)
        at Timeout.CreateTable.err [as _onTimeout] (/root/opentrade/accountsserver/database.js:228:13)
        at ontimeout (timers.js:495:15)
        at tryOnTimeout (timers.js:323:5)
        at Timer.listOnTimeout (timers.js:283:5)
    accountsserver/debug.log
    Code:
    Proxy listening on port 40745
    CREATE TABLE IF NOT EXISTS KeyValue (key TEXT UNIQUE PRIMARY KEY, value TEXT)
    это может быть связано с ошибкой соединения rpc?
    то есть он например соединяется ок., но после получения результата пытается обратиться к базе и терпит жесткий облом, и потому фейл?

    дело в том, что bitcoind резко стопорит работу моей vds, и ошибка типа timeout возникает, весьма вероятно, именно поэтому.... или я нахожусь на неверном пути?

  6. #26
    Новичок
    Join Date
    May 2019
    Posts
    15
    Брррррр
    В ходе отладки столько всего всплыло....
    И в плане понимания работы, и в плане ошибок.... взять хотя бы неверные пути к базам данных в accountsserver/constants.js
    Не суть

    Проблема замерла вот в этой точке

    server:
    Code:
    2019-05-28T15:26:12+0000: Coin 3 started RPC command=getbalance user=1
    2019-05-28T15:26:12+0000: rpcPostJSON {"jsonrpc": "1.0", "id":"curltest", "method": "getbalance", "params": [] }
    2019-05-28T15:26:12+0000: host:127.0.0.1; port:40745
    2019-05-28T15:26:12+0000: Status: 200
    2019-05-28T15:26:12+0000: Headers: {"x-powered-by":"Express","date":"Tue, 28 May 2019 15:26:12 GMT","connection":"close","content-length":"0"}
    2019-05-28T15:26:12+0000: Options:{"hostname":"127.0.0.1","port":40745,"path":"/","method":"POST","headers":{"Content-Type":"text/plain","Coin-Info":"eyJuYW1lIjoiQml0Y29pbiIsInRpY2tlciI6IkJUQyIsImhvc3RuYW1lIjoiMTI3LjAuMC4xIiwicG9ydCI6IjgzMzIifQ==","Authorization":"Basic VWx5c3NleXM6WW91clN1cGVyR3JlYXRQYXNzd29yZE51bWJlcl8zODU1OTM="}}
    2019-05-28T15:26:12+0000: Body:{"jsonrpc": "1.0", "id":"curltest", "method": "getbalance", "params": [] }
    2019-05-28T15:26:12+0000: rpcPostJSON: result:false (message: coin RPC is not returned data )
    2019-05-28T15:26:12+0000: Result:{"result":false,"message":"coin RPC is not returned data","data":{"success":false,"data":"","message":"coin RPC is not returned data"}}
    2019-05-28T15:32:45+0000: INSERT INTO sessions VALUES  ('pNWXhFoKdalnlAphiMi1Wxufy+leLNpcdLGui8xfBjc%3D', '1559057565314', '1')
    2019-05-28T15:32:45+0000: INSERT error: undefined
    2019-05-28T15:32:45+0000: UPDATE sessions
    2019-05-28T15:32:45+0000: Coin 3 started RPC command=getbalance user=1
    2019-05-28T15:32:45+0000: rpcPostJSON {"jsonrpc": "1.0", "id":"curltest", "method": "getbalance", "params": [] }
    2019-05-28T15:32:45+0000: host:127.0.0.1; port:40745
    2019-05-28T15:32:45+0000: Status: 200
    2019-05-28T15:32:45+0000: Headers: {"x-powered-by":"Express","date":"Tue, 28 May 2019 15:32:45 GMT","connection":"close","content-length":"0"}
    2019-05-28T15:32:45+0000: Options:{"hostname":"127.0.0.1","port":40745,"path":"/","method":"POST","headers":{"Content-Type":"text/plain","Coin-Info":"eyJuYW1lIjoiQml0Y29pbiIsInRpY2tlciI6IkJUQyIsImhvc3RuYW1lIjoiMTI3LjAuMC4xIiwicG9ydCI6IjgzMzIifQ==","Authorization":"Basic VWx5c3NleXM6WW91clN1cGVyR3JlYXRQYXNzd29yZE51bWJlcl8zODU1OTM="}}
    2019-05-28T15:32:45+0000: Body:{"jsonrpc": "1.0", "id":"curltest", "method": "getbalance", "params": [] }
    2019-05-28T15:32:45+0000: rpcPostJSON: result:false (message: coin RPC is not returned data )
    2019-05-28T15:32:45+0000: Result:{"result":false,"message":"coin RPC is not returned data","data":{"success":false,"data":"","message":"coin RPC is not returned data"}}
    accountsserver
    Code:
    2019-05-28T15:25:47+0000: Proxy listening on port 40745
    2019-05-28T15:25:47+0000: CREATE TABLE IF NOT EXISTS KeyValue (key TEXT UNIQUE PRIMARY KEY, value TEXT)
    2019-05-28T15:25:47+0000: CREATE TABLE IF NOT EXISTS Transactions (hash TEXT UNIQUE PRIMARY KEY, data TEXT, account TEXT, address TEXT, category TEXT, amount TEXT, label TEXT, vout INT, confirmations INT, blockhash INT, timereceived INT)
    2019-05-28T15:25:47+0000: CREATE TABLE IF NOT EXISTS listtransactions (coin TEXT, account TEXT, address TEXT, category TEXT, amount TEXT, label TEXT, vout INT, fee TEXT, confirmations INT, trusted TEXT, blockhash TEXT, blockindex INT, blocktime INT, txid TEXT, time INT, timereceived INT, comment TEXT, otheraccount TEXT, bip125_replaceable TEXT, abandoned TEXT, uid TEXT UNIQUE PRIMARY KEY)
    2019-05-28T15:26:12+0000: New connection from:::ffff:127.0.0.1
    2019-05-28T15:32:45+0000: New connection from:::ffff:127.0.0.1
    ( я немного модифицировал console.log, добавив запись времени, и натыкал его в целой куче мест )

    Ах, да
    в accountsserver/reqHandler.js добавил

    Code:
    async function OnRequest(req, res)
    {
        try
        {
            console.log('Incoming message:'+JSON.stringify(req)); // <M<<== вот это 
            const coin = JSON.parse(new Buffer(req.headers['coin-info'], 'base64').toString('ascii'));
            
            const auth = req.headers['authorization'];
    но никакого incoming message мы не видим.
    Хотя соединение идёт.


    Можете подсказать, где хотя бы примерно искать сбой?

    Демон bitcoind пока остановил, чтобы не мешался, всё равно до него пока что запрос и рядом не доходит............

  7. #27
    Новичок
    Join Date
    May 2019
    Posts
    15
    Отбой
    Соединилось.
    Ошибка - недозволенное JSON.stringify от объекта (почему-то не валилось в error log)

    Спасибо за внимание.

    Кажется, дальше будет только сложнее....

  8. #28
    Новичок
    Join Date
    May 2019
    Posts
    15
    Актуальный вопрос!!!!


    Нужно ли добавлять MaryCoin в секции AddCoins ?

    И, если нет, то где указывать данные её RPC;
    И, если да, то нормально ли это, что в логе появляются строчки навроде
    Code:
    2019-05-30T06:59:27+0000: period=24 queryStr={"market":"MC-MC","period":"24"}
    ---------------

    И ещё вопрос,
    действительно ли нужно закидывать именно в ~/.{coin}/{coin}conf параметры rpc, если они всё равно потом прописываются в базу данных в таблицу coins ? или достаточно оставить конфиг в /etc/{coin} ?

  9. #29
    Администратор
    Join Date
    Oct 2017
    Posts
    539
    Добавляйте Мэрикоин и делайте ее основной монетой. Биржа под нее заточена.
    В конфиги монеты обязательно надо прописать то же самое, что вы потом пишете в веб интерфейсе. Демон монеты и сервер биржи работают с разными базами данных и вообще могут находиться на разных серверах в разных концах света.

  10. #30
    Новичок
    Join Date
    May 2019
    Posts
    15
    Мануал бы какой по установке marycoin а то на гитхабе даже четкой инструкции нигде нет :|

    про конфиг дошло,
    монеты хранят conf файлы в ~/.{coin} а не в /etc/{coin}
    Last edited by Comrade_Woland; 05-30-2019 at 07:55 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •