spesmilo / electrumx

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

electrumx crashes on debian 12 #256

Closed cipig closed 4 months ago

cipig commented 4 months ago

i had to move all my electrums to a new server... the old server had debian 11, the new one has debian 12 when i start the electrum for RVN i get this error:

electrumx_server[76145]: ERROR:electrumx:ElectrumX server terminated abnormally
electrumx_server[76145]: Traceback (most recent call last):
electrumx_server[76145]:   File "/usr/local/bin/electrumx_server", line 35, in main
electrumx_server[76145]:     asyncio.run(controller.run())
electrumx_server[76145]:   File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run
electrumx_server[76145]:     return runner.run(main)
electrumx_server[76145]:            ^^^^^^^^^^^^^^^^
electrumx_server[76145]:   File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run
electrumx_server[76145]:     return self._loop.run_until_complete(task)
electrumx_server[76145]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
electrumx_server[76145]:   File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
electrumx_server[76145]:   File "/usr/local/lib/python3.11/dist-packages/electrumx/lib/server_base.py", line 129, in run
electrumx_server[76145]:     await server_task
electrumx_server[76145]:   File "/usr/local/lib/python3.11/dist-packages/electrumx/lib/server_base.py", line 102, in serve
electrumx_server[76145]:     await self.serve(shutdown_event)
electrumx_server[76145]:   File "/usr/local/lib/python3.11/dist-packages/electrumx/server/controller.py", line 134, in serve
electrumx_server[76145]:     async with OldTaskGroup() as group:
electrumx_server[76145]:   File "/usr/local/lib/python3.11/dist-packages/aiorpcx/curio.py", line 297, in __aexit__
electrumx_server[76145]:     await self.join()
electrumx_server[76145]:   File "/usr/local/lib/python3.11/dist-packages/electrumx/lib/util.py", line 370, in join
electrumx_server[76145]:     task.result()
electrumx_server[76145]:   File "/usr/local/lib/python3.11/dist-packages/electrumx/server/db.py", line 209, in populate_header_merkle_cache
electrumx_server[76145]:     await self.header_mc.initialize(length)
electrumx_server[76145]:   File "/usr/local/lib/python3.11/dist-packages/electrumx/lib/merkle.py", line 216, in initialize
electrumx_server[76145]:     self.level = self._level(await self.source_func(0, length))
electrumx_server[76145]:                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
electrumx_server[76145]:   File "/usr/local/lib/python3.11/dist-packages/electrumx/server/db.py", line 493, in fs_block_hashes
electrumx_server[76145]:     return [self.coin.header_hash(header) for header in headers]
electrumx_server[76145]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
electrumx_server[76145]:   File "/usr/local/lib/python3.11/dist-packages/electrumx/server/db.py", line 493, in <listcomp>
electrumx_server[76145]:     return [self.coin.header_hash(header) for header in headers]
electrumx_server[76145]:             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
electrumx_server[76145]:   File "/usr/local/lib/python3.11/dist-packages/electrumx/lib/coins.py", line 3312, in header_hash
electrumx_server[76145]:     return x16r_hash.getPoWHash(header)
electrumx_server[76145]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
electrumx_server[76145]: SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats

other coins are working fine any idea why i get this error with RVN?

cipig commented 4 months ago

getting same error with ECA:

electrumx_server[76675]: ERROR:electrumx:ElectrumX server terminated abnormally
electrumx_server[76675]: Traceback (most recent call last):
electrumx_server[76675]:   File "/usr/local/bin/electrumx_server", line 35, in main
electrumx_server[76675]:     asyncio.run(controller.run())
electrumx_server[76675]:   File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run
electrumx_server[76675]:     return runner.run(main)
electrumx_server[76675]:            ^^^^^^^^^^^^^^^^
electrumx_server[76675]:   File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run
electrumx_server[76675]:     return self._loop.run_until_complete(task)
electrumx_server[76675]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
electrumx_server[76675]:   File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
electrumx_server[76675]:   File "/usr/local/lib/python3.11/dist-packages/electrumx/lib/server_base.py", line 129, in run
electrumx_server[76675]:     await server_task
electrumx_server[76675]:   File "/usr/local/lib/python3.11/dist-packages/electrumx/lib/server_base.py", line 102, in serve
electrumx_server[76675]:     await self.serve(shutdown_event)
electrumx_server[76675]:   File "/usr/local/lib/python3.11/dist-packages/electrumx/server/controller.py", line 134, in serve
electrumx_server[76675]:     async with OldTaskGroup() as group:
electrumx_server[76675]:   File "/usr/local/lib/python3.11/dist-packages/aiorpcx/curio.py", line 297, in __aexit__
electrumx_server[76675]:     await self.join()
electrumx_server[76675]:   File "/usr/local/lib/python3.11/dist-packages/electrumx/lib/util.py", line 370, in join
electrumx_server[76675]:     task.result()
electrumx_server[76675]:   File "/usr/local/lib/python3.11/dist-packages/electrumx/server/db.py", line 209, in populate_header_merkle_cache
electrumx_server[76675]:     await self.header_mc.initialize(length)
electrumx_server[76675]:   File "/usr/local/lib/python3.11/dist-packages/electrumx/lib/merkle.py", line 216, in initialize
electrumx_server[76675]:     self.level = self._level(await self.source_func(0, length))
electrumx_server[76675]:                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
electrumx_server[76675]:   File "/usr/local/lib/python3.11/dist-packages/electrumx/server/db.py", line 493, in fs_block_hashes
electrumx_server[76675]:     return [self.coin.header_hash(header) for header in headers]
electrumx_server[76675]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
electrumx_server[76675]:   File "/usr/local/lib/python3.11/dist-packages/electrumx/server/db.py", line 493, in <listcomp>
electrumx_server[76675]:     return [self.coin.header_hash(header) for header in headers]
electrumx_server[76675]:             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
electrumx_server[76675]:   File "/usr/local/lib/python3.11/dist-packages/electrumx/lib/coins.py", line 3414, in header_hash
electrumx_server[76675]:     return nist5_hash.getPoWHash(header)
electrumx_server[76675]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
electrumx_server[76675]: SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats

i have BTC and KMD running fine atm

cipig commented 4 months ago

ok, problem are the involved python modules, some are older and don't work with python >= 3.10 managed to fix RVN by using other modules then ones from pip repo for RVN i did this instead:

sudo pip3 install git+https://github.com/brian112358/x16r_hash --break-system-packages
sudo pip3 install git+https://github.com/RavenCommunity/x16rv2_hash --break-system-packages

couldn't find a newer nist5_hash module though

cipig commented 4 months ago

closing, not related to electrumx code