spesmilo / electrumx

Alternative implementation of spesmilo/electrum-server
MIT License
429 stars 343 forks source link

PermissionError: [Errno 13] Permission denied #255

Closed Master-Win closed 4 months ago

Master-Win commented 4 months ago
ERROR:electrumx:ElectrumX server terminated abnormally
Traceback (most recent call last):
File "/home/elex/electrumx/electrumx_server", line 35, in main
asyncio.run(controller.run())
File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
return future.result()
File "/home/elex/electrumx/electrumx/lib/server_base.py", line 129, in run
await server_task
File "/home/elex/electrumx/electrumx/lib/server_base.py", line 102, in serve
await self.serve(shutdown_event)
File "/home/elex/electrumx/electrumx/server/controller.py", line 134, in serve
async with OldTaskGroup() as group:
File "/home/elex/.local/lib/python3.10/site-packages/aiorpcx/curio.py", line 297, in __aexit__
await self.join()
File "/home/elex/electrumx/electrumx/lib/util.py", line 370, in join
task.result()
File "/home/elex/electrumx/electrumx/server/session.py", line 667, in serve
await self._start_external_servers()
File "/home/elex/electrumx/electrumx/server/session.py", line 212, in _start_external_servers
await self._start_servers(service for service in self.env.services
File "/home/elex/electrumx/electrumx/server/session.py", line 185, in _start_servers
sslc = self._ssl_context()
File "/home/elex/electrumx/electrumx/server/session.py", line 178, in _ssl_context
self._sslc.load_cert_chain(self.env.ssl_certfile, keyfile=self.env.ssl_keyfile)
PermissionError: [Errno 13] Permission denied
Feb 26 03:44:09 racknerd-c6f06a systemd[1]: electrumx_.service: Deactivated successfully.
Feb 26 03:44:09 racknerd-c6f06a systemd[1]: electrumx_.service: Consumed 1.277s CPU time.
electrumx_compact_history
INFO:root:Starting history compaction...
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/e_x-1.16.0-py3.10.egg/EGG-INFO/scripts/electrumx_compact_history", line 73, in main
  File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "/usr/local/lib/python3.10/dist-packages/e_x-1.16.0-py3.10.egg/EGG-INFO/scripts/electrumx_compact_history", line 49, in compact_history
  File "/usr/local/lib/python3.10/dist-packages/e_x-1.16.0-py3.10.egg/electrumx/server/env.py", line 46, in __init__
    self.db_dir = self.required('DB_DIRECTORY')
  File "/usr/local/lib/python3.10/dist-packages/e_x-1.16.0-py3.10.egg/electrumx/lib/env_base.py", line 40, in required
    raise cls.Error(f'required envvar {envvar} not set')
electrumx.lib.env_base.EnvBase.Error: required envvar DB_DIRECTORY not set
CRITICAL:root:History compaction terminated abnormally
SomberNight commented 4 months ago

Is there a question? Or more context? The second error message is quite clear. And for the first one, more context would be needed. For example, all the environment variable that you had set.

Master-Win commented 4 months ago

Hello SomberNight

can you tell me how to fix the error in DB_DIRECTORY thanks.

and here are the other settings git clone from https://github.com/spesmilo/electrumx.git

/etc/electrumx.conf

`COIN=Gold Mark DB_DIRECTORY=/electrumdb/GMK DAEMON_URL=http://gMarkrpc:ENk6M8PUZgrqpu579mg2CmsRMjeTPKaQE5wTqAmbQV8o@127.0.0.1:4444/ SERVICES=tcp://:50001,ssl://:50002,wss://:50004,rpc://127.0.0.1 PEER_DISCOVERY=self MAX_SESSIONS=1000 MAX_SEND=2000000 INITIAL_CONCURRENT=50 MAX_SEND=2000000 BANDWIDTH_UNIT_COST=10000

DB_ENGINE=leveldb EVENT_LOOP_POLICY=uvloop

Required for WSS or SSL services SSL_CERTFILE=/etc/letsencrypt/live/electrum1.goldmark.com/fullchain.pem SSL_KEYFILE=/etc/letsencrypt/live/electrum1.goldmark.com/privkey.pem`

/etc/systemd/system/electrumx.service

[Unit] Description=Electrumx After=network.target [Service] User=elex EnvironmentFile=/etc/electrumx.conf ExecStart=/home/elex/electrumx/electrumx_server Restart=always TimeoutSec=120 RestartSec=30 [Install] WantedBy=multi-user.target

cipig commented 4 months ago

this problem is very common... your electrum runs as user "elex" and that user has no access to /etc/letsencrypt/live/electrum1.goldmark.com/fullchain.pem file or directory... i perśonally put the cert/key in some other place, eg the home dir of the user that runs electrumx, in your case "elex"

Master-Win commented 4 months ago

Thanks elex is fix and all work