HydroProtocol / hydro-scaffold-dex

A Decentralized Exchange Scaffold - launch a DEX in minutes
Apache License 2.0
197 stars 189 forks source link

Offline with mainnet ? #67

Closed buildog closed 4 years ago

buildog commented 4 years ago

I try to run the dex on mainnet on my mac via docker-compose -f docker-compose-mainnet.yaml up (with updated addresses in docker-compose-mainnet.yaml) but admin cli give me offline status for every services except web.

docker-compose exec admin sh
/ # hydro-dex-ctl status
{
  "data": {
    "api": "offline",
    "engine": "offline",
    "launcher": "offline",
    "watcher": "offline",
    "web": "online",
    "websocket": "offline"
  },
  "desc": "success",
  "status": 0
}

Which is strange as I can post datas to admin and api ports via postman.

On the other side, when I try to add a pair via CLI I also receive an error :

/ # hydro-dex-ctl market new MKR-USDT \
>   --baseTokenAddress=0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2 \
>   --quoteTokenAddress=0xdAC17F958D2ee523a2206206994597C13D831ec7
cannot find Symbol by address 0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2 on chain
buildog commented 4 years ago
Capture d’écran 2019-12-17 à 19 28 09
davidqhr commented 4 years ago

To prevent adding wrong asset address, it will check if the token address exists on the ethereum node you are connecting with. It seems you provided a correct MRK address. You should check your ethereum environment, I think you are not using the mainnet environment. For the offline issue, I will check.

davidqhr commented 4 years ago

I tried the status command. It seems working, but not 100% correct. I got the result:

{
  "data": {
    "api": "online",
    "engine": "online",
    "launcher": "online",
    "watcher": "offline",
    "web": "online",
    "websocket": "online"
  },
  "desc": "success",
  "status": 0
}

The watcher container seems not serving a metrics server on port 4003. @kevinxzhang Can you help to fix this?

buildog commented 4 years ago

To prevent adding wrong asset address, it will check if the token address exists on the ethereum node you are connecting with. It seems you provided a correct MRK address. You should check your ethereum environment, I think you are not using the mainnet environment. For the offline issue, I will check.

@davidqhr I'm using mainnet environment docker-compose -f docker-compose-mainnet.yaml up -d with updated addresses.

I tried the status command. It seems working, but not 100% correct. I got the result:

{
  "data": {
    "api": "online",
    "engine": "online",
    "launcher": "online",
    "watcher": "offline",
    "web": "online",
    "websocket": "online"
  },
  "desc": "success",
  "status": 0
}

The watcher container seems not serving a metrics server on port 4003. @kevinxzhang Can you help to fix this?

For me status command return online with test environnement (docker-compose pull && docker-compose up -d) but offline (except web) on mainnet (docker-compose -f docker-compose-mainnet.yaml up -d), while container are running.

kevinxzhang commented 4 years ago

I tried the status command. It seems working, but not 100% correct. I got the result:

{
  "data": {
    "api": "online",
    "engine": "online",
    "launcher": "online",
    "watcher": "offline",
    "web": "online",
    "websocket": "online"
  },
  "desc": "success",
  "status": 0
}

The watcher container seems not serving a metrics server on port 4003. @kevinxzhang Can you help to fix this?

The METRICS_PORT were missing on mainnet environnement, I will fix it soon.

kevinxzhang commented 4 years ago

I try to run the dex on mainnet on my mac via docker-compose -f docker-compose-mainnet.yaml up (with updated addresses in docker-compose-mainnet.yaml) but admin cli give me offline status for every services except web.

docker-compose exec admin sh
/ # hydro-dex-ctl status
{
  "data": {
    "api": "offline",
    "engine": "offline",
    "launcher": "offline",
    "watcher": "offline",
    "web": "online",
    "websocket": "offline"
  },
  "desc": "success",
  "status": 0
}

Which is strange as I can post datas to admin and api ports via postman.

On the other side, when I try to add a pair via CLI I also receive an error :

/ # hydro-dex-ctl market new MKR-USDT \
>   --baseTokenAddress=0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2 \
>   --quoteTokenAddress=0xdAC17F958D2ee523a2206206994597C13D831ec7
cannot find Symbol by address 0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2 on chain

It was a bug when create market 'MKR-USDT', I will fix it.

buildog commented 4 years ago

@kevinxzhang thanks, I tried with an other pair and it worked like a charm.

I'm not looking to use the MKR/USDT pair, it was just a test, but it might be usefull to know why it failed.

Could you please also tell me if it's normal that my address is not listed as relayer on https://hydroscan.io/relayers ? Does it require more then just running the containers on mainnet ? Maybe it require at least an order placed ?

kevinxzhang commented 4 years ago

@kevinxzhang thanks, I tried with an other pair and it worked like a charm.

I'm not looking to use the MKR/USDT pair, it was just a test, but it might be usefull to know why it failed.

Could you please also tell me if it's normal that my address is not listed as relayer on https://hydroscan.io/relayers ? Does it require more then just running the containers on mainnet ? Maybe it require at least an order placed ?

@buildog the problem of MKR/USDT pair was the method symbol of MKR return a bytes32 value (nomarl erc20 token's symbol method return a string value). And our code not support a bytes32 return value, so you got such an error when new market MKR/USDT market. I had already fixed this problem.

And your address would listed as relayer on https://hydroscan.io/relayers when a trade happend on you relayer.