valory-xyz / trader-quickstart

A quickstart for the trader agent for AI prediction markets on Gnosis

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Problems when running run_service.sh on Linux running desktop-linux context

gabrielfior opened this issue · comments

I tried following the instructions from the README but had problems when autonomy tried to interact with my (running) Docker service.
Please find the error messages below and some configurations of the system.

Error message
(gnosis310) gabrielfior@gabrielfior-ThinkPad-E14-Gen-2:~/code/gnosis/trader-quickstart$ bash run_service.sh 

---------------
 Trader runner 
---------------

This script will assist you in setting up and running the Trader service (https://github.com/valory-xyz/trader.git).

Python version 3.10.13 is compatible

Your key files are not protected with a password.

Checking the provided RCP...
RPC checks passed.

------------------------------
Setting up 'trader' repository
------------------------------

Installing dependencies from lock file

No dependencies to install or update

Installing the current project: trader (0.1.0)
[2024-03-17 17:36:07,180][INFO] Performing sync @ /home/gabrielfior/code/gnosis/trader-quickstart/trader/packages
[2024-03-17 17:36:07,180][INFO] Checking third party packages.
[2024-03-17 17:36:07,206][INFO] No package was updated.
    _     _____     _    
   / \   | ____|   / \   
  / _ \  |  _|    / _ \  
 / ___ \ | |___  / ___ \ 
/_/   \_\|_____|/_/   \_\
                         
v1.48.0.post1

AEA configurations successfully initialized: {'author': 'valory'}
The following packages are already present in the pyproject.toml and will be skipped:

  • tqdm

If you want to update it to the latest compatible version, you can use `poetry update package`.
If you prefer to upgrade it to the latest available version, you can use `poetry add package@latest`.

Nothing to add.

-----------------------------------------
Checking Autonolas Protocol service state
-----------------------------------------
Updated 'AGENT_ID=14' in ../.trader_runner/.env

Ensuring on-chain service 338 is in DEPLOYED state...
Waiting for RPC to report Service 338 in DEPLOYED state... OK


Finished checking Autonolas Protocol service 338 state.

------------------------------
Starting the trader service...
------------------------------

Your agent instance's address: 0x7dADa0b0ed3B8444Bb4f3f9fA6482b18c42c0474
Your service's Safe address: 0xC53E44dc5A36CAcb558c663886cA48bfd9847BA6

Checking balance of agent instance's address (minimum required 0.0500 DAI):
  - Address: 0x7dADa0b0ed3B8444Bb4f3f9fA6482b18c42c0474
  - Balance: 0.0500 DAI
    OK.

Checking balance of service Safe's address (minimum required 0.5000 DAI):
  - Address: 0xC53E44dc5A36CAcb558c663886cA48bfd9847BA6
  - Balance: 0.5500 DAI
    OK.

Setting up the service...
WARNING: `dependencies` parameter not defined in the service
Building image with agent: valory/trader:0.1.0:bafybeideq5os6xfnvip3ycssba3zm77jbrqaehdcjljiqn3vukskl6l52a

Traceback (most recent call last):
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/urllib3/connectionpool.py", line 714, in urlopen
    httplib_response = self._make_request(
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/urllib3/connectionpool.py", line 415, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/urllib3/connection.py", line 244, in request
    super(HTTPConnection, self).request(method, url, body=body, headers=headers)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/http/client.py", line 1283, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/http/client.py", line 1329, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/http/client.py", line 1278, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/http/client.py", line 1038, in _send_output
    self.send(msg)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/http/client.py", line 976, in send
    self.connect()
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/docker/transport/unixconn.py", line 27, in connect
    sock.connect(self.unix_socket)
FileNotFoundError: [Errno 2] No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/requests/adapters.py", line 489, in send
    resp = conn.urlopen(
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/urllib3/connectionpool.py", line 798, in urlopen
    retries = retries.increment(
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/urllib3/util/retry.py", line 550, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/urllib3/packages/six.py", line 769, in reraise
    raise value.with_traceback(tb)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/urllib3/connectionpool.py", line 714, in urlopen
    httplib_response = self._make_request(
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/urllib3/connectionpool.py", line 415, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/urllib3/connection.py", line 244, in request
    super(HTTPConnection, self).request(method, url, body=body, headers=headers)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/http/client.py", line 1283, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/http/client.py", line 1329, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/http/client.py", line 1278, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/http/client.py", line 1038, in _send_output
    self.send(msg)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/http/client.py", line 976, in send
    self.connect()
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/docker/transport/unixconn.py", line 27, in connect
    sock.connect(self.unix_socket)
urllib3.exceptions.ProtocolError: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/docker/api/client.py", line 214, in _retrieve_server_version
    return self.version(api_version=False)["ApiVersion"]
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/docker/api/daemon.py", line 181, in version
    return self._result(self._get(url), json=True)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/docker/utils/decorators.py", line 46, in inner
    return f(self, *args, **kwargs)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/docker/api/client.py", line 237, in _get
    return self.get(url, **self._set_request_timeout(kwargs))
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/requests/sessions.py", line 600, in get
    return self.request("GET", url, **kwargs)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/requests/sessions.py", line 587, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/requests/sessions.py", line 701, in send
    r = adapter.send(request, **kwargs)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/requests/adapters.py", line 547, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/gabrielfior/miniconda3/envs/gnosis310/bin/autonomy", line 8, in <module>
    sys.exit(cli())
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/click/core.py", line 1126, in __call__
    return self.main(*args, **kwargs)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/click/core.py", line 1051, in main
    rv = self.invoke(ctx)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/click/core.py", line 1393, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/click/core.py", line 752, in invoke
    return __callback(*args, **kwargs)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/autonomy/cli/build_images.py", line 84, in build_image
    _build_image(
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/autonomy/cli/helpers/image.py", line 51, in build_image
    _build_image(
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/autonomy/deploy/image.py", line 74, in build_image
    docker_client = from_env()
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/docker/client.py", line 96, in from_env
    return cls(
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/docker/client.py", line 45, in __init__
    self.api = APIClient(*args, **kwargs)
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/docker/api/client.py", line 197, in __init__
    self._version = self._retrieve_server_version()
  File "/home/gabrielfior/miniconda3/envs/gnosis310/lib/python3.10/site-packages/docker/api/client.py", line 221, in _retrieve_server_version
    raise DockerException(
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

My guess is that autonomy is not targeting the correct docker context (in my case, desktop-linux). Below I illustrate this with my usage of the Python docker client .

import docker
docker.from_env()
# docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
c = docker.DockerClient(base_url='unix:///home/gabrielfior/.docker/desktop/docker.sock')
c.containers.list()
# works

@gabrielfior We will try and fix this with the next release, Until then can you try export DOCKER_HOST='unix:///home/gabrielfior/.docker/desktop/docker.sock' this might fix the from_env issue.

#251 (comment)

@gabrielfior We will try and fix this with the next release, Until then can you try export DOCKER_HOST='unix:///home/gabrielfior/.docker/desktop/docker.sock' this might fix the from_env issue.

Thanks, this works from my side and I'm able to start the trader agent.