Giter VIP home page Giter VIP logo

atomicals-electrumx's Introduction

https://api.cirrus-ci.com/github/spesmilo/electrumx.svg?branch=master

ElectrumX - Reimplementation of electrum-server

Licence:MIT
Language:Python (>= 3.10)
Original Author:Neil Booth

This project is a fork of kyuupichan/electrumx. The original author dropped support for Bitcoin, which we intend to keep.

ElectrumX allows users to run their own Electrum server. It connects to your full node and indexes the blockchain, allowing efficient querying of the history of arbitrary addresses. The server can be exposed publicly, and joined to the public network of servers via peer discovery. As of May 2020, a significant chunk of the public Electrum server network runs ElectrumX.

Documentation

See readthedocs.

atomicals-electrumx's People

Contributors

alexv525 avatar atomicals avatar bauerj avatar cipig avatar cryptcoin-junkey avatar domob1812 avatar ecdsa avatar erasmospunk avatar eukreign avatar evil-maid avatar gooddaisy avatar jeremyrand avatar justintarthur avatar laodc avatar lclc avatar lucky2077 avatar peerchemist avatar romanz avatar shadowv0vshadow avatar shsmith avatar sombernight avatar sphericale avatar subpar42 avatar thelazier avatar valesi avatar wakiyamap avatar whizz avatar wizz-wallet-dev avatar yakimka avatar zebra-lucky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

atomicals-electrumx's Issues

Canot `init-dft` in regtest net

when i run yarn cli init-dft command in regtest,
in electromx log:

ERROR:MemPool:skipping atomicals parsing due to error in mempool 581bee9b75176f2d5c4678800793e9d2c504369d8ae3060c9867128953d29e6d: type object 'BitcoinRegtest' has no attribute 'coin'

please.

electrumx .env file:

DAEMON_URL=http://xxx:[email protected]:18443/
COIN=BitcoinSegwit
NET=regtest
REQUEST_TIMEOUT=25
DB_DIRECTORY=xxx/data
DB_ENGINE=leveldb
SERVICES=tcp://0.0.0.0:50010,ws://:50020,rpc://:8000
HOST=""
ALLOW_ROOT=true
CACHE_MB=400
MAX_SEND=3000000
COST_SOFT_LIMIT=100000
COST_HARD_LIMIT=1000000
REQUEST_SLEEP=100
INITIAL_CONCURRENT=10

ElectrumX server terminated abnormally on bitcoin testnet

An invalid argument to function sha256() results in TypeError: object supporting the buffer API required

electrumx version:

git status
HEAD detached at v1.3.1
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   electrumx/lib/util_atomicals.py
	modified:   electrumx_compact_history
	modified:   electrumx_rpc
	modified:   electrumx_server

no changes added to commit (use "git add" and/or "git commit -a")

local code changes:

git diff
diff --git a/electrumx/lib/util_atomicals.py b/electrumx/lib/util_atomicals.py
index 8a76494..f1a4443 100644
--- a/electrumx/lib/util_atomicals.py
+++ b/electrumx/lib/util_atomicals.py
@@ -33,6 +33,7 @@ from electrumx.lib.util import pack_le_uint64, unpack_le_uint16_from, unpack_le_
 from electrumx.lib.hash import hash_to_hex_str, hex_str_to_hash, double_sha256
 import re
 import sys
+import json
 import base64
 import krock32
 import pickle
@@ -1653,6 +1654,10 @@ def validate_dmitem_mint_args_with_container_dmint(mint_args, mint_data_payload,
     if not main or not isinstance(main, str):
         print(f'validate_dmitem_mint_args_with_container_dmint: main is not valid str')
         return False
+    print('test')
+    print(json.dumps(mint_data_payload))
+    print(main)
+    print('test end')
     main_data = mint_data_payload.get(main)
     if not main_data:
         print(f'get_dmitem_parent_container_info: main element is not defined')
diff --git a/electrumx_compact_history b/electrumx_compact_history
index 423aa56..16026a2 100755
--- a/electrumx_compact_history
+++ b/electrumx_compact_history
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env /home/atomicals/miniconda3/envs/electrumx/bin/python3
 #
 # Copyright (c) 2017, Neil Booth
 #
diff --git a/electrumx_rpc b/electrumx_rpc
index a087fb8..6c7cf2e 100755
--- a/electrumx_rpc
+++ b/electrumx_rpc
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env /home/atomicals/miniconda3/envs/electrumx/bin/python3
 #
 # Copyright (c) 2016-2018, Neil Booth
 #
diff --git a/electrumx_server b/electrumx_server
index efbe5d4..ed0c372 100755
--- a/electrumx_server
+++ b/electrumx_server
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env /home/atomicals/miniconda3/envs/electrumx/bin/python3
 #
 # Copyright (c) 2016-2018, Neil Booth
 #

logs:

Nov 30 13:19:27 605035 systemd[1]: Started Electrumx-testnet.
Nov 30 13:19:27 605035 electrumx_server[9015]: INFO:electrumx:ElectrumX server starting
Nov 30 13:19:27 605035 electrumx_server[9015]: INFO:electrumx:logging level: INFO
Nov 30 13:19:27 605035 electrumx_server[9015]: INFO:Controller:Python version: 3.8.0 (default, Nov  6 2019, 21:49:08)  [GCC 7.3.0]
Nov 30 13:19:27 605035 electrumx_server[9015]: INFO:Controller:software version: ElectrumX 1.16.0
Nov 30 13:19:27 605035 electrumx_server[9015]: INFO:Controller:aiorpcX version: 0.22.1
Nov 30 13:19:27 605035 electrumx_server[9015]: INFO:Controller:supported protocol versions: 1.4-1.4.3
Nov 30 13:19:27 605035 electrumx_server[9015]: INFO:Controller:event loop policy: None
Nov 30 13:19:27 605035 electrumx_server[9015]: INFO:Controller:reorg limit is 8,000 blocks
Nov 30 13:19:27 605035 electrumx_server[9015]: INFO:Daemon:daemon #1 at 127.0.0.1:18332/ (current)
Nov 30 13:19:27 605035 electrumx_server[9015]: INFO:DB:switching current directory to /data/atomicals/electrumx-testnet-data/db
Nov 30 13:19:27 605035 electrumx_server[9015]: INFO:DB:using leveldb for DB backend
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:DB:opened UTXO DB (for sync: True)
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:DB:UTXO DB version: 8
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:DB:coin: Bitcoin
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:DB:network: testnet
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:DB:height: 2,541,008
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:DB:tip: 00000000000000134f71b3ca60c57372ea9fb062dfcdcaa203d61ea2a710529c
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:DB:tx count: 67,583,716
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:DB:atomical count: 226
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:DB:flushing DB cache at 1,200 MB
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:History:history DB version: 1
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:History:flush count: 167
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:Prefetcher:catching up to daemon height 2,541,023 (15 blocks behind)
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:SessionManager:RPC server listening on localhost:58010
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:spend_atomicals_utxo: utxo_db. location_id=6684c83156a092165bbd3f56a24d106e96bed2dd14e45e07d5757332d6c9d24ei0 atomical_id=1298c2a256e06b6d01bd127c6457574c869de0a5392c72db32f2e2db956d6c6ai0, value=b'nJ\x0b\xdfK\x97\x8e\x92 \x97\x7f\xc3q\xd6\x19Y\xaf\x8fq\xe5Wm_\xd3\xe1\xed\xf5\x94\t\xc8\x03\xd4mv\xd3}\xc9s\xc8\x86\x82\x03\xab\xe8\x03\x00\x00\x00\x00\x00\x00_>\x07\x04\x00'
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:atomicals_transferred_list - tx_hash=62c2aeb69c48fe0df98d4ba773576c9e10dc59e8ce4532a7133f533878151f28, txin_index=1, txin_hash=6684c83156a092165bbd3f56a24d106e96bed2dd14e45e07d5757332d6c9d24e, txin_previdx=0, atomical_id_spent=6a6c6d95dbe2f232db722c39a5e09d864c5757647c12bd016d6be056a2c2981200000000
Nov 30 13:19:28 605035 electrumx_server[9015]: Atomicals op script found: 036d6f64
Nov 30 13:19:28 605035 electrumx_server[9015]: Atomicals envelope and operation found: mod
Nov 30 13:19:28 605035 electrumx_server[9015]: Atomicals envelope payload: a26461726773a36474696d651a6567f52e656e6f6e63651a0055d06a68626974776f726b63613765646d696e74a661766131656974656d73056572756c657381a26170622e2a68626974776f726b636439393939666d65726b6c6578403761633338623139363964623361323837633964663539643266363633623236656636656665373639376432646130366434353461386134646166333333393169696d6d757461626c65f56b6d696e745f6865696768741a0026c5c7
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:advance_txs: atomicals_operations_found_at_inputs operation_found=mod, operation_input_index=0, size_payload=218, tx_hash=62c2aeb69c48fe0df98d4ba773576c9e10dc59e8ce4532a7133f533878151f28, commit_txid=76b3007656af0f2179b6b17a39a777b273094813e2b4d0eb7a4138bef83071ae, commit_index=0, reveal_location_txid=62c2aeb69c48fe0df98d4ba773576c9e10dc59e8ce4532a7133f533878151f28, reveal_location_index=0
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:get_atomicals_id_mint_info atomical_id=000000001298c2a256e06b6d01bd127c6457574c869de0a5392c72db32f2e2db956d6c6a
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:get_atomicals_id_mint_info general_data_cache atomical_id=b'jlm\x95\xdb\xe2\xf22\xdbr,9\xa5\xe0\x9d\x86LWWd|\x12\xbd\x01mk\xe0V\xa2\xc2\x98\x12\x00\x00\x00\x00'
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:get_atomicals_id_mint_info atomical_id=000000001298c2a256e06b6d01bd127c6457574c869de0a5392c72db32f2e2db956d6c6a
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:put_or_delete_state_updates: operations_found_at_inputs={'op': 'mod', 'payload': {'args': {'time': 1701311790, 'nonce': 5623914, 'bitworkc': '7'}, 'dmint': {'v': '1', 'items': 5, 'rules': [{'p': '.*', 'bitworkc': '9999'}], 'merkle': '7ac38b1969db3a287c9df59d2f663b26ef6efe7697d2da06d454a8a4daf33391', 'immutable': True, 'mint_height': 2540999}}, 'payload_bytes': b'\xa2dargs\xa3dtime\x1aeg\xf5.enonce\x1a\x00U\xd0jhbitworkca7edmint\xa6ava1eitems\x05erules\x81\xa2apb.*hbitworkcd9999fmerklex@7ac38b1969db3a287c9df59d2f663b26ef6efe7697d2da06d454a8a4daf33391iimmutable\xf5kmint_height\x1a\x00&\xc5\xc7', 'input_index': 0, 'commit_txid': b'\xaeq0\xf8\xbe8Az\xeb\xd0\xb4\xe2\x13H\ts\xb2w\xa79z\xb1\xb6y!\x0f\xafVv\x00\xb3v', 'commit_index': 0, 'commit_location': b'\xaeq0\xf8\xbe8Az\xeb\xd0\xb4\xe2\x13H\ts\xb2w\xa79z\xb1\xb6y!\x0f\xafVv\x00\xb3v\x00\x00\x00\x00', 'reveal_location_txid': b'(\x1f\x15x8S?\x13\xa72E\xce\xe8Y\xdc\x10\x9elWs\xa7K\x8d\xf9\r\xfeH\x9c\xb6\xae\xc2b', 'reveal_location_index': 0}
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:put_or_delete_state_updates: op=mod, height=2541009, atomical_id=6a6c6d95dbe2f232db722c39a5e09d864c5757647c12bd016d6be056a2c2981200000000, tx_hash=62c2aeb69c48fe0df98d4ba773576c9e10dc59e8ce4532a7133f533878151f28
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:put_or_delete_state_updates: operations_found_at_inputs={'op': 'mod', 'payload': {'args': {'time': 1701311790, 'nonce': 5623914, 'bitworkc': '7'}, 'dmint': {'v': '1', 'items': 5, 'rules': [{'p': '.*', 'bitworkc': '9999'}], 'merkle': '7ac38b1969db3a287c9df59d2f663b26ef6efe7697d2da06d454a8a4daf33391', 'immutable': True, 'mint_height': 2540999}}, 'payload_bytes': b'\xa2dargs\xa3dtime\x1aeg\xf5.enonce\x1a\x00U\xd0jhbitworkca7edmint\xa6ava1eitems\x05erules\x81\xa2apb.*hbitworkcd9999fmerklex@7ac38b1969db3a287c9df59d2f663b26ef6efe7697d2da06d454a8a4daf33391iimmutable\xf5kmint_height\x1a\x00&\xc5\xc7', 'input_index': 0, 'commit_txid': b'\xaeq0\xf8\xbe8Az\xeb\xd0\xb4\xe2\x13H\ts\xb2w\xa79z\xb1\xb6y!\x0f\xafVv\x00\xb3v', 'commit_index': 0, 'commit_location': b'\xaeq0\xf8\xbe8Az\xeb\xd0\xb4\xe2\x13H\ts\xb2w\xa79z\xb1\xb6y!\x0f\xafVv\x00\xb3v\x00\x00\x00\x00', 'reveal_location_txid': b'(\x1f\x15x8S?\x13\xa72E\xce\xe8Y\xdc\x10\x9elWs\xa7K\x8d\xf9\r\xfeH\x9c\xb6\xae\xc2b', 'reveal_location_index': 0}
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:put_atomicals_utxo: atomical_id=1298c2a256e06b6d01bd127c6457574c869de0a5392c72db32f2e2db956d6c6ai0, location_id=62c2aeb69c48fe0df98d4ba773576c9e10dc59e8ce4532a7133f533878151f28i0, value=6e4a0bdf4b978e9220977fc371d61959af8f71e5576d5fd3e1edf59409c803d46d76d37dc973c8868203abe803000000000000f73e070400
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:advance_txs: color_atomicals_outputs atomical_ids_transferred. atomical_id=6a6c6d95dbe2f232db722c39a5e09d864c5757647c12bd016d6be056a2c2981200000000, tx_hash=62c2aeb69c48fe0df98d4ba773576c9e10dc59e8ce4532a7133f533878151f28
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:advance_txs: create_or_delete_pow_records tx_hash=62c2aeb69c48fe0df98d4ba773576c9e10dc59e8ce4532a7133f533878151f28
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:advance_txs: has_at_least_one_valid_atomicals_operation tx_hash=62c2aeb69c48fe0df98d4ba773576c9e10dc59e8ce4532a7133f533878151f28
Nov 30 13:19:28 605035 electrumx_server[9015]: Atomicals op script found: 036e6674
Nov 30 13:19:28 605035 electrumx_server[9015]: Atomicals envelope and operation found: nft
Nov 30 13:19:28 605035 electrumx_server[9015]: Atomicals envelope payload: a16461726773a46474696d651a6567f37f656e6f6e63651a001e494568626974776f726b63646236636671726571756573745f636f6e7461696e65726470657065
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:advance_txs: atomicals_operations_found_at_inputs operation_found=nft, operation_input_index=0, size_payload=98, tx_hash=688a1b80f8d14d1ada142298d87027e39589e84e4b56a1d7a3618d139d392f6a, commit_txid=b6cfcd792f90122d5839e537f745883cb31b970c2841034e321ea7fe7be2fb11, commit_index=0, reveal_location_txid=688a1b80f8d14d1ada142298d87027e39589e84e4b56a1d7a3618d139d392f6a, reveal_location_index=0
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:put_name_element_template: db_prefix_key=b'co', optional_subject_prefix=b'', subject=pepe, tx_num=67583739, payload_value=11fbe27bfea71e324e0341280c971bb33c8845f737e539582d12902f79cdcfb600000000
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:put_atomicals_utxo: atomical_id=b6cfcd792f90122d5839e537f745883cb31b970c2841034e321ea7fe7be2fb11i0, location_id=688a1b80f8d14d1ada142298d87027e39589e84e4b56a1d7a3618d139d392f6ai0, value=f84baef56c1b988b8137ea2ead0a60a2ba9615d10c739169c305155092f17f3a32719ed165839fa22a1eb8e803000000000000193f070400
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:validate_and_create_nft_mint_utxo: atomical_id=b6cfcd792f90122d5839e537f745883cb31b970c2841034e321ea7fe7be2fb11i0, tx_hash=688a1b80f8d14d1ada142298d87027e39589e84e4b56a1d7a3618d139d392f6a, mint_info={'id': b'\x11\xfb\xe2{\xfe\xa7\x1e2N\x03A(\x0c\x97\x1b\xb3<\x88E\xf77\xe59X-\x12\x90/y\xcd\xcf\xb6\x00\x00\x00\x00', 'ref': 'pv7wty9fj092tp1swmvzehc87jshq5rc510g6khj3tkzwyz2zc8gi0', 'atomical_id': b'\x11\xfb\xe2{\xfe\xa7\x1e2N\x03A(\x0c\x97\x1b\xb3<\x88E\xf77\xe59X-\x12\x90/y\xcd\xcf\xb6\x00\x00\x00\x00', 'commit_txid': b'\x11\xfb\xe2{\xfe\xa7\x1e2N\x03A(\x0c\x97\x1b\xb3<\x88E\xf77\xe59X-\x12\x90/y\xcd\xcf\xb6', 'commit_index': 0, 'commit_location': b'\x11\xfb\xe2{\xfe\xa7\x1e2N\x03A(\x0c\x97\x1b\xb3<\x88E\xf77\xe59X-\x12\x90/y\xcd\xcf\xb6\x00\x00\x00\x00', 'reveal_location_txid': b'j/9\x9d\x13\x8da\xa3\xd7\xa1VKN\xe8\x89\x95\xe3\'p\xd8\x98"\x14\xda\x1aM\xd1\xf8\x80\x1b\x8ah', 'reveal_location_index': 0, 'reveal_location': b'j/9\x9d\x13\x8da\xa3\xd7\xa1VKN\xe8\x89\x95\xe3\'p\xd8\x98"\x14\xda\x1aM\xd1\xf8\x80\x1b\x8ah\x00\x00\x00\x00', 'reveal_location_scripthash': b'.\xad\n`\xa2\xba\x96\x15\xd1\x0cs\x91i\xc3\x05\x15P\x92\xf1\x7f:2q\x9e\xd1e\x83\x9f\xa2*\x1e\xb8', 'reveal_location_hashX': b'\xf8K\xae\xf5l\x1b\x98\x8b\x817\xea', 'reveal_location_value': 1000, 'reveal_location_script': b'Q |\xd5\xbfR\xa8\xae\xf4\x03\xe8\xda\xba\x8f \xbfp\x8c\xc1\xc2V\xbc\x8b=@:\x079\xd2\t\xddl@\xaf', 'args': {'time': 1701311359, 'nonce': 1984837, 'bitworkc': 'b6cf', 'request_container': 'pepe'}, 'ctx': {}, 'meta': {}, 'init': {}, '$bitwork': {'bitworkc': 'b6cf', 'bitworkr': None}, 'type': 'NFT', '$request_container': 'pepe', '$bitworkc': 'b6cf', 'number': 226, 'commit_tx_num': 67583739, 'commit_height': 2541009, 'reveal_location_header': b"\x00\x00@ \x9cR\x10\xa7\xa2\x1e\xd6\x03\xa2\xca\xcd\xdfb\xb0\x9f\xears\xc5`\xca\xb3qO\x13\x00\x00\x00\x00\x00\x00\x00\x84^\xda\xda\x8dPf\xd56QVk\x8b\xc1\xf7\xb5CD\xe4\xf7\xf49\xc1$)\xc4\xb1\x11G\xd0\x18X\xee\xf6ge\xff\xff\x00\x1d/'\x88\xdf", 'reveal_location_height': 2541009, 'reveal_location_tx_num': 67583769}
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:advance_txs: create_or_delete_atomical created_atomical_id atomical_id=11fbe27bfea71e324e0341280c971bb33c8845f737e539582d12902f79cdcfb600000000, tx_hash=688a1b80f8d14d1ada142298d87027e39589e84e4b56a1d7a3618d139d392f6a
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:advance_txs: create_or_delete_pow_records tx_hash=688a1b80f8d14d1ada142298d87027e39589e84e4b56a1d7a3618d139d392f6a
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:advance_txs: has_at_least_one_valid_atomicals_operation tx_hash=688a1b80f8d14d1ada142298d87027e39589e84e4b56a1d7a3618d139d392f6a
Nov 30 13:19:28 605035 electrumx_server[9015]: Atomicals op script found: 036e6674
Nov 30 13:19:28 605035 electrumx_server[9015]: Atomicals envelope and operation found: nft
Nov 30 13:19:28 605035 electrumx_server[9015]: Atomicals envelope payload: b900026461726773b900086e726571756573745f646d6974656d6570756e6b31646d61696e69696d6167652e706e676169f56570726f6f6687b900026170f46164784030623036353163656539653031356131303435316462626630656534666662656638626138333330383936346435386337353530383434326138356562356533b900026170f56164784030393331663733626339626530393732373132643736323635303431343864336637636430343561656330393063623665306135366330663330663731336632b900026170f56164784038393132346661396432396162353266353863653336383765396165386365613366653165343830303137313233393466623662363137323964656635376262b900026170f56164784065613235373038616162366635373765666132646135306238306366613530333631396132303837383465613734383765333165643437316432376331393133b900026170f56164784064633931373834616661613263306231313837646465313537336431613161656339326365376434613263313835386237633333613535383430346331613837b900026170f56164784031366636316636623134643634356666303861636161353962353037356263393533313863333963636339323232346632386263663561653262666361396363b900026170f5616478403362333864326263353363623837666332353162323639383131376266356435626365656336386534663533306432613337393361303135373561373034306170706172656e745f636f6e7461696e6572784261646365323638666334616366623234363365356338666537646135343037383862343330396634353532353361373031633761333462396537373663636132693068626974776f726b636461626364656e6f6e63656833383835333038366474696d651a6567f2f569696d6167652e706e67b900016224627901823839353034653437306430613161306130303030303030643439343834343532303030303030313830303030303031383038303630303030303065303737336466383030303030303838343934343431353437386461363336303138383465303366313464336336663036353739336133346233303036633338616432636638646631613236343733333062353030633437623238303261393666633266623439373835363339383035333033656135393663303064656130656436343162313034643935323461326363313330316331626136643830323432373836383538313061366336303063366338303663336334633862353030633339353435653639633538633561383632303132643832653866663830343533326261653534333237393931326630313137353763383035346338306439333963346362356432313433643738613835353166353064356235333462333030303033333666343461393561336361346466303030303030303034393435346534346165343236303832
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:advance_txs: atomicals_operations_found_at_inputs operation_found=nft, operation_input_index=0, size_payload=1137, tx_hash=262cf07de428b8eef9d8978abc7840f21ceb1ea378cf36fa2f312cb2f32c17c9, commit_txid=abcd5865c7db1c892e5145f327cf4432e78819d6efa7faef27b0d3330deacc94, commit_index=0, reveal_location_txid=262cf07de428b8eef9d8978abc7840f21ceb1ea378cf36fa2f312cb2f32c17c9, reveal_location_index=0
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:get_atomicals_id_mint_info atomical_id=00000000adce268fc4acfb2463e5c8fe7da540788b4309f455253a701c7a34b9e776cca2
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:get_atomicals_id_mint_info general_data_cache atomical_id=b'\xa2\xccv\xe7\xb94z\x1cp:%U\xf4\tC\x8bx@\xa5}\xfe\xc8\xe5c$\xfb\xac\xc4\x8f&\xce\xad\x00\x00\x00\x00'
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:get_dmitem_parent_container_info: mint_info {'id': b"\x94\xcc\xea\r3\xd3\xb0'\xef\xfa\xa7\xef\xd6\x19\x88\xe72D\xcf'\xf3EQ.\x89\x1c\xdb\xc7eX\xcd\xab\x00\x00\x00\x00", 'ref': 'nf6ngse7vce8jbjh8qsjfkt46bkrg6epxykznvs7p39k63fasja0i0', 'atomical_id': b"\x94\xcc\xea\r3\xd3\xb0'\xef\xfa\xa7\xef\xd6\x19\x88\xe72D\xcf'\xf3EQ.\x89\x1c\xdb\xc7eX\xcd\xab\x00\x00\x00\x00", 'commit_txid': b"\x94\xcc\xea\r3\xd3\xb0'\xef\xfa\xa7\xef\xd6\x19\x88\xe72D\xcf'\xf3EQ.\x89\x1c\xdb\xc7eX\xcd\xab", 'commit_index': 0, 'commit_location': b"\x94\xcc\xea\r3\xd3\xb0'\xef\xfa\xa7\xef\xd6\x19\x88\xe72D\xcf'\xf3EQ.\x89\x1c\xdb\xc7eX\xcd\xab\x00\x00\x00\x00", 'reveal_location_txid': b'\xc9\x17,\xf3\xb2,1/\xfa6\xcfx\xa3\x1e\xeb\x1c\xf2@x\xbc\x8a\x97\xd8\xf9\xee\xb8(\xe4}\xf0,&', 'reveal_location_index': 0, 'reveal_location': b'\xc9\x17,\xf3\xb2,1/\xfa6\xcfx\xa3\x1e\xeb\x1c\xf2@x\xbc\x8a\x97\xd8\xf9\xee\xb8(\xe4}\xf0,&\x00\x00\x00\x00', 'reveal_location_scripthash': b'<S\xbf!\xa9\xb09d\xc5\xfdJ\x07\xb1\x83\x08f\x15n\xae\x05;\xc7c\t0\nL\x7f\xd5\xe4\xe3\x95', 'reveal_location_hashX': b'\xa5Zz3\n\x87\xb9\xe6&)S', 'reveal_location_value': 1000, 'reveal_location_script': b'Q \xe5+u\x98p\xdce"\xb9\x82\x84\xb9\x9e\x02\xaf\x8c\xf3X\xfa^\xc7\xc8\xa5n\x95F2\xd0\xd0\xc7;\x95', 'args': {'request_dmitem': 'punk1', 'main': 'image.png', 'i': True, 'proof': [{'p': False, 'd': '0b0651cee9e015a10451dbbf0ee4ffbef8ba83308964d58c75508442a85eb5e3'}, {'p': True, 'd': '0931f73bc9be0972712d7626504148d3f7cd045aec090cb6e0a56c0f30f713f2'}, {'p': True, 'd': '89124fa9d29ab52f58ce3687e9ae8cea3fe1e48001712394fb6b61729def57bb'}, {'p': True, 'd': 'ea25708aab6f577efa2da50b80cfa503619a208784ea7487e31ed471d27c1913'}, {'p': True, 'd': 'dc91784afaa2c0b1187dde1573d1a1aec92ce7d4a2c1858b7c33a558404c1a87'}, {'p': True, 'd': '16f61f6b14d645ff08acaa59b5075bc95318c39ccc92224f28bcf5ae2bfca9cc'}, {'p': True, 'd': '3b38d2bc53cb87fc251b2698117bf5d5bceec68e4f530d2a3793a01575a7040a'}], 'parent_container': 'adce268fc4acfb2463e5c8fe7da540788b4309f455253a701c7a34b9e776cca2i0', 'bitworkc': 'abcd', 'nonce': '38853086', 'time': 1701311221}, 'ctx': {}, 'meta': {}, 'init': {}, '$bitwork': {'bitworkc': 'abcd', 'bitworkr': None}, 'type': 'NFT', '$request_dmitem': 'punk1', '$parent_container': 'adce268fc4acfb2463e5c8fe7da540788b4309f455253a701c7a34b9e776cca2i0', '$immutable': True, '$bitworkc': 'abcd', 'number': 227, 'commit_tx_num': 67583773, 'commit_height': 2541009, 'reveal_location_header': b"\x00\x00@ \x9cR\x10\xa7\xa2\x1e\xd6\x03\xa2\xca\xcd\xdfb\xb0\x9f\xears\xc5`\xca\xb3qO\x13\x00\x00\x00\x00\x00\x00\x00\x84^\xda\xda\x8dPf\xd56QVk\x8b\xc1\xf7\xb5CD\xe4\xf7\xf49\xc1$)\xc4\xb1\x11G\xd0\x18X\xee\xf6ge\xff\xff\x00\x1d/'\x88\xdf", 'reveal_location_height': 2541009, 'reveal_location_tx_num': 67583774}
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:get_applicable_rule_by_height: get_applicable_rule_by_height: rule_mint_mod_history [{'tx_num': 67579436, 'height': 2540936, 'txid': '5dc557af192e95fd044b2546dd598bc4cabd3e7d5dbfb82607dcdcc57b54c132', 'index': 0, 'data': {'desc': 'punk a collection of unique art', 'name': 'PUNK', 'image': 'atom:btc:dat:c98cc2b6f7c4a2d2a7151d143fa3842557edbaa47bf373e1a763f43f87e0edbdi0/cover.jpg', 'legal': {'terms': '', 'license': 'CC'}, 'links': {'x': {'v': 'https://x.com/punk'}}}}, {'tx_num': 67579280, 'height': 2540935, 'txid': '5c82e97244fbbb502543ab553b8050b69f2e68a9e4f9d47c58a4d9260f5f6b89', 'index': 0, 'data': {'args': {'time': 1701255734, 'nonce': 5922291, 'bitworkc': '7'}, 'dmint': {'v': '1', 'items': 101, 'rules': [{'p': '0$', 'bitworkc': '00abcd'}, {'p': '.*', 'bitworkc': 'abcd'}], 'merkle': 'd2c7f3814b77edeaf79e34755869aef3597c379a5eb3b0900bfa6d919a9625d2', 'immutable': True, 'mint_height': 0}}}]. parent_atomical_id=a2cc76e7b9347a1c703a2555f409438b7840a57dfec8e56324fbacc48f26cead00000000, proposed_subnameid=punk1, height=2541008
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:get_applicable_rule_by_height: get_applicable_rule_by_height: processing rule item regex_price_point={'p': '0$', 'bitworkc': '00abcd'}. parent_atomical_id=a2cc76e7b9347a1c703a2555f409438b7840a57dfec8e56324fbacc48f26cead00000000, proposed_subnameid=punk1, height=2541008
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:get_applicable_rule_by_height: get_applicable_rule_by_height: invalid pattern match. parent_atomical_id=a2cc76e7b9347a1c703a2555f409438b7840a57dfec8e56324fbacc48f26cead00000000, proposed_subnameid=punk1, height=2541008
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:get_applicable_rule_by_height: get_applicable_rule_by_height: processing rule item regex_price_point={'p': '.*', 'bitworkc': 'abcd'}. parent_atomical_id=a2cc76e7b9347a1c703a2555f409438b7840a57dfec8e56324fbacc48f26cead00000000, proposed_subnameid=punk1, height=2541008
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:BlockProcessor:get_applicable_rule_by_height: get_applicable_rule_by_height: successfully matched pattern and price regex_pattern=.*. parent_atomical_id=a2cc76e7b9347a1c703a2555f409438b7840a57dfec8e56324fbacc48f26cead00000000, proposed_subnameid=punk1, height=2541008
Nov 30 13:19:28 605035 electrumx_server[9015]: test
Nov 30 13:19:28 605035 electrumx_server[9015]: {"args": {"request_dmitem": "punk1", "main": "image.png", "i": true, "proof": [{"p": false, "d": "0b0651cee9e015a10451dbbf0ee4ffbef8ba83308964d58c75508442a85eb5e3"}, {"p": true, "d": "0931f73bc9be0972712d7626504148d3f7cd045aec090cb6e0a56c0f30f713f2"}, {"p": true, "d": "89124fa9d29ab52f58ce3687e9ae8cea3fe1e48001712394fb6b61729def57bb"}, {"p": true, "d": "ea25708aab6f577efa2da50b80cfa503619a208784ea7487e31ed471d27c1913"}, {"p": true, "d": "dc91784afaa2c0b1187dde1573d1a1aec92ce7d4a2c1858b7c33a558404c1a87"}, {"p": true, "d": "16f61f6b14d645ff08acaa59b5075bc95318c39ccc92224f28bcf5ae2bfca9cc"}, {"p": true, "d": "3b38d2bc53cb87fc251b2698117bf5d5bceec68e4f530d2a3793a01575a7040a"}], "parent_container": "adce268fc4acfb2463e5c8fe7da540788b4309f455253a701c7a34b9e776cca2i0", "bitworkc": "abcd", "nonce": "38853086", "time": 1701311221}, "image.png": {"$b": "89504e470d0a1a0a0000000d4948445200000018000000180806000000e0773df8000000884944415478da63601884e03f14d3c6f065793a34b3006c38ad2cf8df1a2647330b500c47b2802a96fc2fb49785639805303ea596c00dea0ed641b104d9524a2cc1301c1ba6d8024278685810a6c600c6c806c3c4c8b500c39545e69c58c5a862012d82e8ff804532bae543279912f011757c8054c80d939c4cb5d2143d78a8551f50d5b534b30000336f44a95a3ca4df0000000049454e44ae426082"}}
Nov 30 13:19:28 605035 electrumx_server[9015]: image.png
Nov 30 13:19:28 605035 electrumx_server[9015]: test end
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:Prefetcher:cancelled; prefetcher stopping
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:SessionManager:closing down server for rpc://localhost:58010
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:Controller:shutting down
Nov 30 13:19:28 605035 electrumx_server[9015]: INFO:Controller:shutdown complete
Nov 30 13:19:28 605035 electrumx_server[9015]: ERROR:electrumx:ElectrumX server terminated abnormally
Nov 30 13:19:28 605035 electrumx_server[9015]: Traceback (most recent call last):
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx_server", line 35, in main
Nov 30 13:19:28 605035 electrumx_server[9015]:     asyncio.run(controller.run())
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/miniconda3/envs/electrumx/lib/python3.8/asyncio/runners.py", line 43, in run
Nov 30 13:19:28 605035 electrumx_server[9015]:     return loop.run_until_complete(main)
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/miniconda3/envs/electrumx/lib/python3.8/asyncio/base_events.py", line 608, in run_until_complete
Nov 30 13:19:28 605035 electrumx_server[9015]:     return future.result()
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx/lib/server_base.py", line 129, in run
Nov 30 13:19:28 605035 electrumx_server[9015]:     await server_task
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx/lib/server_base.py", line 102, in serve
Nov 30 13:19:28 605035 electrumx_server[9015]:     await self.serve(shutdown_event)
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx/server/controller.py", line 137, in serve
Nov 30 13:19:28 605035 electrumx_server[9015]:     await group.spawn(wait_for_catchup())
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/.local/lib/python3.8/site-packages/aiorpcx/curio.py", line 297, in __aexit__
Nov 30 13:19:28 605035 electrumx_server[9015]:     await self.join()
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx/lib/util.py", line 370, in join
Nov 30 13:19:28 605035 electrumx_server[9015]:     task.result()
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx/server/block_processor.py", line 3501, in fetch_and_process_blocks
Nov 30 13:19:28 605035 electrumx_server[9015]:     await group.spawn(self._process_prefetched_blocks())
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/.local/lib/python3.8/site-packages/aiorpcx/curio.py", line 297, in __aexit__
Nov 30 13:19:28 605035 electrumx_server[9015]:     await self.join()
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx/lib/util.py", line 370, in join
Nov 30 13:19:28 605035 electrumx_server[9015]:     task.result()
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx/server/block_processor.py", line 3461, in _process_prefetched_blocks
Nov 30 13:19:28 605035 electrumx_server[9015]:     await self.check_and_advance_blocks(blocks)
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx/server/block_processor.py", line 310, in check_and_advance_blocks
Nov 30 13:19:28 605035 electrumx_server[9015]:     await self.run_in_thread_with_lock(self.advance_blocks, blocks)
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx/server/block_processor.py", line 293, in run_in_thread_with_lock
Nov 30 13:19:28 605035 electrumx_server[9015]:     return await asyncio.shield(run_in_thread_locked())
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx/server/block_processor.py", line 292, in run_in_thread_locked
Nov 30 13:19:28 605035 electrumx_server[9015]:     return await run_in_thread(func, *args)
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/.local/lib/python3.8/site-packages/aiorpcx/curio.py", line 57, in run_in_thread
Nov 30 13:19:28 605035 electrumx_server[9015]:     return await get_event_loop().run_in_executor(None, func, *args)
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/miniconda3/envs/electrumx/lib/python3.8/concurrent/futures/thread.py", line 57, in run
Nov 30 13:19:28 605035 electrumx_server[9015]:     result = self.fn(*self.args, **self.kwargs)
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx/server/block_processor.py", line 494, in advance_blocks
Nov 30 13:19:28 605035 electrumx_server[9015]:     undo_info, atomicals_undo_info = self.advance_txs(block.transactions, is_unspendable, block.header, height)
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx/server/block_processor.py", line 2779, in advance_txs
Nov 30 13:19:28 605035 electrumx_server[9015]:     created_atomical_id = self.create_or_delete_atomical(atomicals_operations_found_at_inputs, atomicals_spent_at_inputs, header, height, tx_num, atomical_num, tx, tx_hash, False)
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx/server/block_processor.py", line 1348, in create_or_delete_atomical
Nov 30 13:19:28 605035 electrumx_server[9015]:     if not self.create_or_delete_dmitem_entry_if_requested(mint_info, operations_found_at_inputs['payload'], height, Delete):
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx/server/block_processor.py", line 1090, in create_or_delete_dmitem_entry_if_requested
Nov 30 13:19:28 605035 electrumx_server[9015]:     parent_container_id, mint_initiated_result = self.get_dmitem_parent_container_info(mint_info, mint_data_payload, height)
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx/server/block_processor.py", line 1209, in get_dmitem_parent_container_info
Nov 30 13:19:28 605035 electrumx_server[9015]:     is_proof_valid = validate_dmitem_mint_args_with_container_dmint(mint_info['args'], mint_data_payload, dmint_validated_status['dmint'])
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx/lib/util_atomicals.py", line 1665, in validate_dmitem_mint_args_with_container_dmint
Nov 30 13:19:28 605035 electrumx_server[9015]:     main_hash = double_sha256(main_data)
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx/lib/hash.py", line 47, in double_sha256
Nov 30 13:19:28 605035 electrumx_server[9015]:     return sha256(sha256(x))
Nov 30 13:19:28 605035 electrumx_server[9015]:   File "/home/atomicals/atomicals-electrumx-testnet/electrumx/lib/hash.py", line 42, in sha256
Nov 30 13:19:28 605035 electrumx_server[9015]:     return _sha256(x).digest()
Nov 30 13:19:28 605035 electrumx_server[9015]: TypeError: object supporting the buffer API required
Nov 30 13:19:29 605035 electrumx_rpc[9037]: cannot connect - is ElectrumX catching up, not running, or is 58010 the wrong RPC port?
Nov 30 13:19:29 605035 systemd[1]: electrumx-testnet.service: Control process exited, code=exited status=1
Nov 30 13:19:29 605035 systemd[1]: electrumx-testnet.service: Failed with result 'exit-code'.

System freezing when running the ElectrumX server on Windows 10 with Ubuntu 22.04 WSL

I am using the latest master branch code to run an ElectrumX server on Windows 10 with Ubuntu 22.04 WSL. The system was freezing after catched up with the latest block for a while. The process can remains output log like "prefetcher xxx". However, any other operation was freezing, such as opening a new WSL session or input commands in other connected sessions. I must use the wsl -t Ubuntu command to terminate the WSL system after it freezes. I have tried running it in Docker and directly on the host, but the same situation occurs. Is there any solution, such as adjusting system arguments?

apt install openssl libleveldb-dev build-essential

pip install '.[ujson,uvloop,crypto]'

HOME='/mnt/d/data/atomicals_electrumx' EVENT_LOOP_POLICY=uvloop SERVICES='tcp://:50010' COIN=BitCoin DB_DIRECTORY='/mnt/d/data/atomicals_electrumx' SSL_CERTFILE='/mnt/d/data/atomicals_electrumx/electrumx.crt' SSL_KEYFILE='/mnt/d/data/atomicals_electrumx/electrumx.key' DAEMON_URL='user:pass@ip:8332' python electrumx_server

image

image

Use genesis snapshot occur error

electrumx.server.block_processor.ChainError: UTXO f2b29aa42f36f2e8d4dedb630aadff142c7dc5952b7ac54522042638a303267f / 0 not found in "h" table
why?

plyvel._plyvel.CorruptionError: b'Corruption: corrupted compressed block contents'

Traceback (most recent call last):
File "electrumx_server", line 35, in main
asyncio.run(controller.run())
File "/Users/admin/miniconda3/envs/atom/lib/python3.8/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/Users/admin/miniconda3/envs/atom/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
return future.result()
File "/Volumes/2TB/Atomicals/atomicals-electrumx-1.3.7.5/electrumx/lib/server_base.py", line 129, in run
await server_task
File "/Volumes/2TB/Atomicals/atomicals-electrumx-1.3.7.5/electrumx/lib/server_base.py", line 102, in serve
await self.serve(shutdown_event)
File "/Volumes/2TB/Atomicals/atomicals-electrumx-1.3.7.5/electrumx/server/controller.py", line 137, in serve
await group.spawn(wait_for_catchup())
File "/Users/admin/miniconda3/envs/atom/lib/python3.8/site-packages/aiorpcx/curio.py", line 297, in aexit
await self.join()
File "/Volumes/2TB/Atomicals/atomicals-electrumx-1.3.7.5/electrumx/lib/util.py", line 370, in join
task.result()
File "/Volumes/2TB/Atomicals/atomicals-electrumx-1.3.7.5/electrumx/server/block_processor.py", line 3646, in fetch_and_process_blocks
await self._first_open_dbs()
File "/Volumes/2TB/Atomicals/atomicals-electrumx-1.3.7.5/electrumx/server/block_processor.py", line 3625, in _first_open_dbs
await self.db.open_for_sync()
File "/Volumes/2TB/Atomicals/atomicals-electrumx-1.3.7.5/electrumx/server/db.py", line 360, in open_for_sync
await self._open_dbs(True, False)
File "/Volumes/2TB/Atomicals/atomicals-electrumx-1.3.7.5/electrumx/server/db.py", line 337, in _open_dbs
self.utxo_flush_count = self.history.open_db(self.db_class, for_sync,
File "/Volumes/2TB/Atomicals/atomicals-electrumx-1.3.7.5/electrumx/server/history.py", line 61, in open_db
self.read_state()
File "/Volumes/2TB/Atomicals/atomicals-electrumx-1.3.7.5/electrumx/server/history.py", line 75, in read_state
state = self.db.get(b'state\0\0')
File "plyvel/_plyvel.pyx", line 310, in plyvel._plyvel.DB.get
File "plyvel/_plyvel.pyx", line 111, in plyvel._plyvel.db_get
File "plyvel/_plyvel.pyx", line 91, in plyvel._plyvel.raise_for_status
plyvel._plyvel.CorruptionError: b'Corruption: corrupted compressed block contents'

The command server-version doesn't work.

It seems that in the js CLI help there's a command for checking server version.

But it returns 500 when execute.

Is it possible to support the version command so we can check the version num of server?

exponent != 0, {'value': 1000, 'exponent': 64050}

when i pull the lastest code, the node can't work ?
File "/mnt/btc_node_disk/atomicals-electrumx/electrumx/lib/atomicals_blueprint_builder.py", line 252, in build_nft_input_idx_to_atomical_map
assert(exponent == 0)
AssertionError
the exponent is

{'value': 1000, 'exponent': 64050}
what happend?

`scripthash` not correct

Get atomicals at location returns wrong scripthash.

request:

curl -v "https://ep.atomicalneutron.com/proxy/blockchain.atomicals.at_location?params=\[%22d21f8ea708b21608b09cfec7ca263e35d69b63e1380db0f68954a2b5b3ba8c8fi0%22\]"

response:

{"success":true,"response":{"location_info":{"location":"d21f8ea708b21608b09cfec7ca263e35d69b63e1380db0f68954a2b5b3ba8c8fi0","txid":"d21f8ea708b21608b09cfec7ca263e35d69b63e1380db0f68954a2b5b3ba8c8f","index":0,"scripthash":"4b2ff9b90f0fca6341f6cac374d414a7ee59379a528990cf3a8d1c74bfa4ef45","script":"0014fb7454e043913f46cee06143ff3f320b6e2f8041","value":546},"atomicals":[{"atomical_id":"9125f03bcf9325f6071762b9aee00b461a0b43ed157c336e2e89e07f47ea6f66i0","atomical_number":149087,"atomical_ref":"j4jz0eyfjcjzc1rqcawtxr0b8rd0pgzd2ny36vheh7g7yhzadxk0i0","type":"FT"}]}}

The scripthash here is "4b2ff9b90f0fca6341f6cac374d414a7ee59379a528990cf3a8d1c74bfa4ef45" .

Not equal to the correct scripthash of address "bc1qld69fczrjyl5dnhqv9pl70ejpdhzlqzpu0mfjh", which should be "8e6cec514958b4af4002f0c0a6f9f7b0a84944fcb7e6034083c112aaf7dea721".

We can get the atomical with the correct scripthash:

curl -v "https://ep.atomicalneutron.com/proxy/blockchain.atomicals.listscripthash?params=\[%228e6cec514958b4af4002f0c0a6f9f7b0a84944fcb7e6034083c112aaf7dea721%22\]"
# response is too large to paste here

curl -v "https://ep.atomicalneutron.com/proxy/blockchain.atomicals.listscripthash?params=\[%224b2ff9b90f0fca6341f6cac374d414a7ee59379a528990cf3a8d1c74bfa4ef45%22\]"
# request with wrong scripthash just returns empty utxos

So I think the scripthash in the response of blockchain.atomicals.at_location is not correct. The script field is correct.

OverflowError while running python electrumx_server in latest version, previuos veron is working.

F:\atomicals-electrumx(master -> origin)
λ python electrumx_server
INFO:electrumx:ElectrumX server starting
INFO:electrumx:logging level: INFO
INFO:Controller:Python version: 3.10.4 (tags/v3.10.4:9d38120, Mar 23 2022, 23:13:41) [MSC v.1929 64 bit (AMD64)]
INFO:Controller:software version: ElectrumX 1.16.0
INFO:Controller:aiorpcX version: 0.22.1
INFO:Controller:supported protocol versions: 1.4-1.4.3
INFO:Controller:event loop policy: None
INFO:Controller:reorg limit is 200 blocks
INFO:Daemon:daemon #1 at localhost:8332/ (current)
INFO:DB:switching current directory to F:\electrumx-data
INFO:DB:using leveldb for DB backend
INFO:DB:opened UTXO DB (for sync: True)
INFO:DB:UTXO DB version: 8
INFO:DB:coin: Bitcoin
INFO:DB:network: mainnet
INFO:DB:height: 828,127
INFO:DB:tip: 00000000000000000001196681106ccd7b11ffc6f6fb644bbb98fa00db4f7deb
INFO:DB:tx count: 960,008,301
INFO:DB:atomical count: 187,476
INFO:DB:flushing DB cache at 400 MB
INFO:History:history DB version: 1
INFO:History:flush count: 4,462
INFO:Prefetcher:catching up to daemon height 828,806 (679 blocks behind)
INFO:SessionManager:RPC server listening on localhost:8000
INFO:Prefetcher:cancelled; prefetcher stopping
INFO:SessionManager:closing down server for rpc://localhost:8000
INFO:Controller:shutting down
INFO:Controller:shutdown complete
ERROR:electrumx:ElectrumX server terminated abnormally
Traceback (most recent call last):
File "F:\atomicals-electrumx\electrumx_server", line 43, in main
asyncio.run(controller.run())
File "C:\Python310\lib\asyncio\runners.py", line 44, in run
return loop.run_until_complete(main)
File "C:\Python310\lib\asyncio\base_events.py", line 646, in run_until_complete
return future.result()
File "F:\atomicals-electrumx\electrumx\lib\server_base.py", line 129, in run
await server_task
File "F:\atomicals-electrumx\electrumx\lib\server_base.py", line 102, in serve
await self.serve(shutdown_event)
File "F:\atomicals-electrumx\electrumx\server\controller.py", line 134, in serve
async with OldTaskGroup() as group:
File "C:\Python310\lib\site-packages\aiorpcx\curio.py", line 297, in aexit
await self.join()
File "F:\atomicals-electrumx\electrumx\lib\util.py", line 370, in join
task.result()
File "F:\atomicals-electrumx\electrumx\server\block_processor.py", line 3418, in fetch_and_process_blocks
async with OldTaskGroup() as group:
File "C:\Python310\lib\site-packages\aiorpcx\curio.py", line 297, in aexit
await self.join()
File "F:\atomicals-electrumx\electrumx\lib\util.py", line 370, in join
task.result()
File "F:\atomicals-electrumx\electrumx\server\block_processor.py", line 3380, in _process_prefetched_blocks
await self.check_and_advance_blocks(blocks)
File "F:\atomicals-electrumx\electrumx\server\block_processor.py", line 316, in check_and_advance_blocks
await self.run_in_thread_with_lock(self.advance_blocks, blocks)
File "F:\atomicals-electrumx\electrumx\server\block_processor.py", line 299, in run_in_thread_with_lock
return await asyncio.shield(run_in_thread_locked())
File "F:\atomicals-electrumx\electrumx\server\block_processor.py", line 298, in run_in_thread_locked
return await run_in_thread(func, *args)
File "C:\Python310\lib\site-packages\aiorpcx\curio.py", line 57, in run_in_thread
return await get_event_loop().run_in_executor(None, func, *args)
File "C:\Python310\lib\concurrent\futures\thread.py", line 58, in run
result = self.fn(*self.args, self.kwargs)
File "F:\atomicals-electrumx\electrumx\server\block_processor.py", line 500, in advance_blocks
undo_info, atomicals_undo_info = self.advance_txs(block.transactions, is_unspendable, block.header, height)
File "F:\atomicals-electrumx\electrumx\server\block_processor.py", line 2795, in advance_txs
blueprint_builder = self.color_atomicals_outputs(atomicals_operations_found_at_inputs, atomicals_spent_at_inputs, tx, tx_hash, tx_num, height)
File "F:\atomicals-electrumx\electrumx\server\block_processor.py", line 1652, in color_atomicals_outputs
blueprint_builder = AtomicalsTransferBlueprintBuilder(self.logger, atomicals_spent_at_inputs, operations_found_at_inputs, tx_hash, tx, self.get_atomicals_id_mint_info, self.is_dmint_activated(height))
File "F:\atomicals-electrumx\electrumx\lib\atomicals_blueprint_builder.py", line 191, in init
nft_output_blueprint, ft_output_blueprint = AtomicalsTransferBlueprintBuilder.calculate_output_blueprint(self.get_atomicals_id_mint_info, self.tx, self.nft_atomicals, self.ft_atomicals, self.atomicals_spent_at_inputs, self.operations_found_at_inputs, self.sort_fifo)
File "F:\atomicals-electrumx\electrumx\lib\atomicals_blueprint_builder.py", line 396, in calculate_output_blueprint
ft_blueprint = AtomicalsTransferBlueprintBuilder.calculate_output_blueprint_fts(tx, ft_atomicals, operations_found_at_inputs, sort_fifo)
File "F:\atomicals-electrumx\electrumx\lib\atomicals_blueprint_builder.py", line 327, in calculate_output_blueprint_fts
return AtomicalsTransferBlueprintBuilder.color_ft_atomicals_regular(ft_atomicals, tx, sort_fifo)
File "F:\atomicals-electrumx\electrumx\lib\atomicals_blueprint_builder.py", line 377, in color_ft_atomicals_regular
ft_coloring_summary = calculate_outputs_to_color_for_ft_atomical_ids(tx, ft_atomicals, sort_fifo)
File "F:\atomicals-electrumx\electrumx\lib\atomicals_blueprint_builder.py", line 71, in calculate_outputs_to_color_for_ft_atomical_ids
sats_needed = get_adjusted_sats_needed_by_exponent(item.total_tokenvalue, use_exponent)
File "F:\atomicals-electrumx\electrumx\lib\atomicals_blueprint_builder.py", line 55, in get_adjusted_sats_needed_by_exponent
return int(value * (10
exponent))
OverflowError: int too large to convert to float

how can i see my atomicals on my regtest?

i had deploy dft on my regtest. how can i see it.
i can not start atomicals-electrumx, and got error below:

 python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [18 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.macosx-13-arm64-cpython-311
      copying sha3.py -> build/lib.macosx-13-arm64-cpython-311
      running build_ext
      building '_pysha3' extension
      creating build/temp.macosx-13-arm64-cpython-311
      creating build/temp.macosx-13-arm64-cpython-311/Modules
      creating build/temp.macosx-13-arm64-cpython-311/Modules/_sha3
      clang -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -DPY_WITH_KECCAK=1 -I/Users/weixuefeng/source/github/atomicals/atomicals-electrumx/env/include -I/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.11/include/python3.11 -c Modules/_sha3/sha3module.c -o build/temp.macosx-13-arm64-cpython-311/Modules/_sha3/sha3module.o
      In file included from Modules/_sha3/sha3module.c:20:
      Modules/_sha3/backport.inc:78:10: fatal error: 'pystrhex.h' file not found
      #include "pystrhex.h"
               ^~~~~~~~~~~~
      1 error generated.
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pysha3

so, anyone cal tell me the dependencies version or provider a clearly document?

Exit on error

INFO:electrumx:ElectrumX server starting
WARNING:Env:lowered maximum sessions from 1,000 to 674 because your open file limit is 1,024
INFO:electrumx:logging level: INFO
INFO:Controller:Python version: 3.10.0 (default, Nov 29 2023, 16:45:59) [GCC 12.2.0]
INFO:Controller:software version: ElectrumX 1.16.0
INFO:Controller:aiorpcX version: 0.22.1
INFO:Controller:supported protocol versions: 1.4-1.4.3
INFO:Controller:event loop policy: None
INFO:Controller:reorg limit is 200 blocks
INFO:Daemon:daemon #1 at localhost:8332/ (current)
INFO:DB:switching current directory to /mnt/electrumx-data/
INFO:DB:using leveldb for DB backend
INFO:DB:opened UTXO DB (for sync: True)
INFO:DB:UTXO DB version: 8
INFO:DB:coin: Bitcoin
INFO:DB:network: mainnet
INFO:DB:height: 823,226
INFO:DB:tip: 0000000000000000000365e705dbbea406f6e383f510d400fa23e40eae71e056
INFO:DB:tx count: 943,688,366
INFO:DB:atomical count: 162,558
INFO:DB:flushing DB cache at 400 MB
INFO:History:history DB version: 1
INFO:History:flush count: 6,122
INFO:SessionManager:RPC server listening on localhost:8000
INFO:Prefetcher:catching up to daemon height 823,540 (314 blocks behind)
INFO:BlockProcessor:chain reorg detected
INFO:BlockProcessor:chain was reorganised replacing 1 block at heights 823,226-823,226
INFO:BlockProcessor:read 1 blocks from disk
INFO:BlockProcessor:backup_txs m=5910
INFO:BlockProcessor:atomicals_undo_info_map={}
INFO:BlockProcessor:atomicals_undo_entry_len 5780 - count 0 - 130 INFO:BlockProcessor:Reorg undo_info_item 5780 1669d42e672f376113b09b34f4046d83a9a829fb7d0fe49a48e2f43dd4d8ea0f000000009d304417368fdcebf51b7e2d2f5c4b7acbd9013d1e170dbebc7aae7f125f3d9200000000ca85d4e89209f9c7477a54c5edffeccbec37a11df7dbe9be3606f551b736055b20a79dc7200afe
f402fb37e8030000000000000000cf553d3800
INFO:BlockProcessor:atomicals_undo_entry_len 5650 - count 1 - 130 INFO:BlockProcessor:Reorg undo_info_item 5650 3800f1d00c8b690cd6564b5369eecc738476f8e7c2de74d53ee460f50e712fa21ca400000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf025910000000086a3fbbf0fad05291d424ca34809494edc83d4080bd10843b99fe23807e6f0efdc1110e318
c182990ca188204e00000000000030e4373800
INFO:BlockProcessor:atomicals_undo_entry_len 5520 - count 2 - 130 INFO:BlockProcessor:Reorg undo_info_item 5520 3800b3faf1ad79dbbd091e0f50f2997d8535394b166022cccb1873f040e23407c07d000000009d304417368fdcebf51b7e2d2f5c4b7acbd9013d1e170dbebc7aae7f125f3d9200000000cd9c692d3cbaecaed41e58fcf50aa4d221af3fc26acde07e70f84308c914f69796cf57f43b
c95760e8d8f8e8030000000000000000cc573d
INFO:BlockProcessor:atomicals_undo_entry_len 5390 - count 3 - 130 INFO:BlockProcessor:Reorg undo_info_item 5390 38005b006345b98be3c1845b87daca7be56eb9cc2662eeae91acdb87bac1e5e9eba9000000009d304417368fdcebf51b7e2d2f5c4b7acbd9013d1e170dbebc7aae7f125f3d920000000037442d9a58501754d65c96d05f63ef5fb6f2067395b48a9625a864b67e576a17ff7fcb2916
ff4112a07ad6e8030000000000000000c9df3d
INFO:BlockProcessor:atomicals_undo_entry_len 5260 - count 4 - 130 INFO:BlockProcessor:Reorg undo_info_item 5260 38000bd2e7ac0f644d5dc391312b5daa6fff6dfc5d819ee0613f64fe35ffa4dd1cf9000000009d304417368fdcebf51b7e2d2f5c4b7acbd9013d1e170dbebc7aae7f125f3d92000000005f0b10b75aa092be3bd7fc469e5e54d14d29b34192ea791aa604d819365e5d2d58a47d747c
fcc3d359ea2fe803000000000000000039263d
INFO:BlockProcessor:atomicals_undo_entry_len 5130 - count 5 - 130 INFO:BlockProcessor:Reorg undo_info_item 5130 513838001551c1d9024b8f2a5e8acd4bcfafdeff6a9ce9a386c8d24c5ffd2f2e4616efe700000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000000d4b65477da43dbd6103706a7644a88803b083e59487073e4761e26e5d9a0a17a093f3e24f185925a2c22d204e000000000000b68137
INFO:BlockProcessor:atomicals_undo_entry_len 5000 - count 6 - 130 
INFO:BlockProcessor:Reorg undo_info_item 5000 000ce5363800e0b6dd34acdfafc2e8f52b21a510b4ed946399e43d68b7d00356af5507d2ad8e00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e000000000000dd
INFO:BlockProcessor:atomicals_undo_entry_len 4870 - count 7 - 130 
INFO:BlockProcessor:Reorg undo_info_item 4870 0000000ae53638007c57c97ac5de32cbbb0e4bf836bd26ed6805f33b201884d7497662ceb1297e3800000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e0000000000
INFO:BlockProcessor:atomicals_undo_entry_len 4740 - count 8 - 130 
INFO:BlockProcessor:Reorg undo_info_item 4740 0000000000deb9363800fe6d361f5af076cdc4affdd49bb9064e694e5e81f7cce37a733a619c972f897400000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e000000
INFO:BlockProcessor:atomicals_undo_entry_len 4610 - count 9 - 130 
INFO:BlockProcessor:Reorg undo_info_item 4610 4e000000000000dcb936380020b0fff7999c15c1c5bb0ffcbc17a4a7e1dc83bf0e05dd3b32f815428fc4b6b800000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e00
INFO:BlockProcessor:atomicals_undo_entry_len 4480 - count 10 - 130
INFO:BlockProcessor:Reorg undo_info_item 4480 62204e000000000000dab93638004ab46d1f7489c565fbac5d9dc0aadf58cf388dddef00c9c10ea8a9e3cf91cae600000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc5866220
INFO:BlockProcessor:atomicals_undo_entry_len 4350 - count 11 - 130
INFO:BlockProcessor:Reorg undo_info_item 4350 f8b74a204e0000000000002dbb363800a80b8165202ac689833878031a39760191eca50af1aec22acf21271da83178d400000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc586
INFO:BlockProcessor:atomicals_undo_entry_len 4220 - count 12 - 130
INFO:BlockProcessor:Reorg undo_info_item 4220 d8a2f8b74a204e000000000000e7513638000ba8b5c2bab22e9e0c5b683b6cae6822cababe2fbf767483d790727a52081ec300000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000a18fbf0f1b383b7d846a778de3d8ea79b7bf2ecd2dc69ab7d92a40a4d2818eefda952dd29151d8a2
INFO:BlockProcessor:atomicals_undo_entry_len 4090 - count 13 - 130
INFO:BlockProcessor:Reorg undo_info_item 4090 9151d8a2f8b74a204e000000000000e1443638004d9009951ad7264789bb74014b792db1f442580f0fe6fe3a38d891f947f4064b00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000a18fbf0f1b383b7d846a778de3d8ea79b7bf2ecd2dc69ab7d92a40a4d2818eefda952dd29151
INFO:BlockProcessor:atomicals_undo_entry_len 3960 - count 14 - 130
INFO:BlockProcessor:Reorg undo_info_item 3960 2dd29151d8a2f8b74a204e0000000000007444363800fbe79d7ba5ce104bfa474bded62ff59ecec9e8a60f7888d047997e483d73127e00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000a18fbf0f1b383b7d846a778de3d8ea79b7bf2ecd2dc69ab7d92a40a4d2818eefda952dd2
INFO:BlockProcessor:atomicals_undo_entry_len 3830 - count 15 - 130
INFO:BlockProcessor:Reorg undo_info_item 3830 da952dd29151d8a2f8b74a204e0000000000004244363800ebb6ddf7625336a6557aeb3530e98d604caa4842a401881932296a7ad0fba27a00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000a18fbf0f1b383b7d846a778de3d8ea79b7bf2ecd2dc69ab7d92a40a4d2818eefda95
INFO:BlockProcessor:atomicals_undo_entry_len 3700 - count 16 - 130
INFO:BlockProcessor:Reorg undo_info_item 3700 8eefda952dd29151d8a2f8b74a204e000000000000d325363800e5262d035a92bd3b264e78954234f8c498d1468818d470d19b9690f928508cb400000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000a18fbf0f1b383b7d846a778de3d8ea79b7bf2ecd2dc69ab7d92a40a4d2818eef
INFO:BlockProcessor:atomicals_undo_entry_len 3570 - count 17 - 130
INFO:BlockProcessor:Reorg undo_info_item 3570 d2818eefda952dd29151d8a2f8b74a204e0000000000009925363800ce8f4c2a70d048edc3009f70b62394510db602fa5bdb651167f6fc525f85a65200000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000a18fbf0f1b383b7d846a778de3d8ea79b7bf2ecd2dc69ab7d92a40a4d281
INFO:BlockProcessor:atomicals_undo_entry_len 3440 - count 18 - 130
INFO:BlockProcessor:Reorg undo_info_item 3440 40a4d2818eefda952dd29151d8a2f8b74a204e0000000000007425363800c4f1874bf18f5fe22c5f6b31c44cda6481cfd0dbf44ef002ac97036fecea271e00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000a18fbf0f1b383b7d846a778de3d8ea79b7bf2ecd2dc69ab7d92a40a4
INFO:BlockProcessor:atomicals_undo_entry_len 3310 - count 19 - 130
INFO:BlockProcessor:Reorg undo_info_item 3310 5e49bb608785524595dae0c85b83c94bc4e803000000000000000036b33d3800bf4774bb02f64e9522c61f9e5a16f3abf8e0a09823dbbf1f46688c417cfa98a100000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000a18fbf0f1b383b7d846a778de3d8ea79b7bf2ecd2dc69ab7d92a
INFO:BlockProcessor:atomicals_undo_entry_len 3180 - count 20 - 130
INFO:BlockProcessor:Reorg undo_info_item 3180 8dbd35a917bd5619dcdfad4b2fcbbd59f1e8030000000000000000ac4b3d380076c8fdced9f05bd7207ca1fa60ac53d310cf4afe87ef6dbd925ffd3fd52398a6000000009d304417368fdcebf51b7e2d2f5c4b7acbd9013d1e170dbebc7aae7f125f3d92000000006c160d5af100be2b124bcde4b6c5db8d577317c72389bb6e6ccb
INFO:BlockProcessor:atomicals_undo_entry_len 3050 - count 21 - 130
INFO:BlockProcessor:Reorg undo_info_item 3050 403036b8bb5ce445594d4384939b69e6b71227e80300000000000021b39437004d16de2d17cdffcdde1c7b3c1022a9c7af696dd3b11ee27799572438e97ea0f1000000009d304417368fdcebf51b7e2d2f5c4b7acbd9013d1e170dbebc7aae7f125f3d920000000098f978c6cbdee7849c972e03ad6629acb4f2d812d629c492ebe5
INFO:BlockProcessor:atomicals_undo_entry_len 2920 - count 22 - 130
INFO:BlockProcessor:Reorg undo_info_item 2790 3dad1cd915ad30869ae17c5e2ceb75b189b734c0149b5ae8030000000000000a4b1e380095bb9ee07ed5cbf36090a215457182e06a75f08efbed13b5b2d0eb80302968ab00000000908ee68352516d76f43f00296a6f91141e57e22b34ca3b2317faafdfaa37675300000000750348df7d09137e5ed2051b8061b36f60e74e7d2348
INFO:BlockProcessor:atomicals_undo_entry_len 2660 - count 24 - 130
INFO:BlockProcessor:Reorg undo_info_item 2660 4cb2fdb2250ef138e03d1a79d7664fcb8fa923ecf9474283f5e80300000000000033781938008c888f847ce2bb87a960b095ef77f6143ecfbcc2fa2df01dae70dd4db9213a560000000041038f27e785606ca0cc1efd8e3aa912a15c72d06f359aeb05243dab2b70a856000000002541d800ca7500b2770a0c0dc18cbbe7acee5d0f
INFO:BlockProcessor:atomicals_undo_entry_len 2530 - count 25 - 130
INFO:BlockProcessor:Reorg undo_info_item 2530 f0dfdf9d3cdea54696f3f9360469c8eb08f455f1d3428b5bf92892204e0000000000005d5536380013909169dad4f6783c2bce0d0cd518a02b8848f335ebbc90a9042abde4b87be00000000072e64078bf0c8e038f19ed5c3ea70d89a0d3638d7efa080b3295cc0c0482d0b10000000054daa08d503c2c00b9a070827948ae5345d7
INFO:BlockProcessor:atomicals_undo_entry_len 2400 - count 26 - 130
INFO:BlockProcessor:Reorg undo_info_item 2400 0e8bf0dfdf9d3cdea54696f3f9360469c8eb08f455f1d3428b5bf92892204e0000000000005b553638009478f3365d19f061c6a263d7742fe318d506998af1543977e5f9d6b543b2108400000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000006fdf2836d43b994f3dd524cdf6170e8b
INFO:BlockProcessor:atomicals_undo_entry_len 2270 - count 27 - 130
INFO:BlockProcessor:Reorg undo_info_item 2270 f6170e8bf0dfdf9d3cdea54696f3f9360469c8eb08f455f1d3428b5bf92892204e0000000000005c553638000b3e4860f19eb98c03166dad3e88fdfcfa8c1ec0fcf4f0f76f0df16ddf832a4c00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000006fdf2836d43b994f3dd524cdf617
INFO:BlockProcessor:atomicals_undo_entry_len 2140 - count 28 - 130
INFO:BlockProcessor:Reorg undo_info_item 2140 72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e00000000000097de3738006d5146d5ff6099c524a26ede850bdedf20c56e2fcd4af93ca42e54a458ffdc2800000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000006fdf2836d43b994f3dd524cd
INFO:BlockProcessor:atomicals_undo_entry_len 2010 - count 29 - 130
INFO:BlockProcessor:Reorg undo_info_item 2010 6d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e00000000000095de373800ed8b53d36a949f60d8482c1fc24fdd858ea8f63288996168e0a6d56d5b36726600000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a
INFO:BlockProcessor:atomicals_undo_entry_len 1880 - count 30 - 130
INFO:BlockProcessor:Reorg undo_info_item 1880 d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e00000000000045de373800ebea12193c790d433c390266d8faf6d850c3c2f9111ac9e3872477f524e3aa3200000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d397
INFO:BlockProcessor:atomicals_undo_entry_len 1750 - count 31 - 130
INFO:BlockProcessor:Reorg undo_info_item 1750 3336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e00000000000043de37380003bf9cbd53639c2e768066c201f5d47039d6268d3a0acf0e07e475c29d6be25800000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336
INFO:BlockProcessor:atomicals_undo_entry_len 1620 - count 32 - 130
INFO:BlockProcessor:Reorg undo_info_item 1620 ca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e000000000000b22f3738005f1132aaae677c7f2890001916aaa1aa782424959324998143428372600400d700000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca26
INFO:BlockProcessor:atomicals_undo_entry_len 1490 - count 33 - 130
INFO:BlockProcessor:Reorg undo_info_item 1490 2f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e0000000000000c1a373800d9a07642b919b132f49f14c1b0312e86d03d4a6f3f45d85326bc4575d877618d00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1a
INFO:BlockProcessor:atomicals_undo_entry_len 1360 - count 34 - 130
INFO:BlockProcessor:Reorg undo_info_item 1360 00002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e000000000000041a373800dfcb2c7f557c1b48f7515d191be0520f70951792b6c6c42223d952d108651be200000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000
INFO:BlockProcessor:atomicals_undo_entry_len 1230 - count 35 - 130
INFO:BlockProcessor:Reorg undo_info_item 1230 000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e000000000000c00b3738007a7529a734d2b03c4918dfcf2f7f4f2bd4545e39a0d3097668b498813cc3689b00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf025910000
INFO:BlockProcessor:atomicals_undo_entry_len 1100 - count 36 - 130
INFO:BlockProcessor:Reorg undo_info_item 1100 2591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e00000000000052f8363800462044380d013a638d53853e89e33c067ba4603ce6d7f275157aee63b689fba000000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591
INFO:BlockProcessor:atomicals_undo_entry_len 970 - count 37 - 130 
INFO:BlockProcessor:Reorg undo_info_item 970 3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e0000000000004cf8363800df7436b48f5acaed90e51263c092fc79b5ea1f123f57897d63f5bcca1cc0123c00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0
INFO:BlockProcessor:atomicals_undo_entry_len 840 - count 38 - 130 
INFO:BlockProcessor:Reorg undo_info_item 840 93cf3bf0259100000000933aed32c6a0855860b8bc806a1a9f619a7a60ef786262be811c3d76070d2fe200ad6dd0c02d45ee48e1e9204e00000000000088ee353800662fca5e1bce7704e8fa1375514a11b660e6f4c892bda8968559271c335853b200000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf
INFO:BlockProcessor:atomicals_undo_entry_len 710 - count 39 - 130 
INFO:BlockProcessor:Reorg undo_info_item 710 f62593cf3bf0259100000000933aed32c6a0855860b8bc806a1a9f619a7a60ef786262be811c3d76070d2fe200ad6dd0c02d45ee48e1e9204e00000000000086ee35380002833dfa23fee4217ccb974318a8700231a24e9e51730a22d8d659566f28098000000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f625
INFO:BlockProcessor:atomicals_undo_entry_len 580 - count 40 - 130 
INFO:BlockProcessor:Reorg undo_info_item 580 bc7aae7f125f3d92000000006c160d5af100be2b124bcde4b6c5db8d577317c72389bb6e6ccb5e49bb608785524595dae0c85b83c94bc4e80300000000000000002cc83d3800870f9189780c39b8931e6f2de878d25abc5090694f608167c397a3e82bdf076a00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707
INFO:BlockProcessor:atomicals_undo_entry_len 450 - count 41 - 130 
INFO:BlockProcessor:Reorg undo_info_item 450 bc7aae7f125f3d9200000000e98683d8186fb180c8b13982f2523bdcf4a6022d8f55291d13f96c293daa945577b4150253aede6187ced6e80300000000000000005e2a3d3800825582bf860a1649aed3949216ad5121d8c43b8e6bc7f8386f43cfa157d241ab000000009d304417368fdcebf51b7e2d2f5c4b7acbd9013d1e170dbe
INFO:BlockProcessor:atomicals_undo_entry_len 320 - count 42 - 130 
INFO:BlockProcessor:Reorg undo_info_item 320 24d9e8d0855162ab00000000f45e6167f7f9bf343b60966a6e8e5a8a5024f579e9d06d98154736f4d7a17f0c223f576db885a38ef5a7b9166b9f06000000000000656c3f380057a024864392b5b97b57d99a0a07c0fda0a240340f4d245e34facc828f4db1ea000000009d304417368fdcebf51b7e2d2f5c4b7acbd9013d1e170dbe
INFO:BlockProcessor:atomicals_undo_entry_len 190 - count 43 - 130 
INFO:BlockProcessor:Reorg undo_info_item 190 28f7aa1dac8e39ab00000000f45e6167f7f9bf343b60966a6e8e5a8a5024f579e9d06d98154736f4d7a17f0c223f576db885a38ef5a7b9166b9f06000000000000656c3f38002c36a372ec221577fef265053c569b7cf6d27ed905fbb3fe6f86f69b5a61e04000000000afdef5feb85029eaf1905e906aef1de6469072155198e1c5
INFO:BlockProcessor:atomicals_undo_entry_len 60 - count 44 - 130  
INFO:BlockProcessor:Reorg undo_info_item 60 d7c6adddc88a61ab00000000f45e6167f7f9bf343b60966a6e8e5a8a5024f579e9d06d98154736f4d7a17f0c223f576db885a38ef5a7b9166b9f06000000000000656c3f38002c36a372ec221577fef265053c569b7cf6d27ed905fbb3fe6f86f69b5a61e04000000000794f82c79db8df571134d60a1c135eb555a67701bcc2753b
INFO:BlockProcessor:atomicals_undo_entry_len -70 - count 45 - 130 
INFO:Prefetcher:cancelled; prefetcher stopping
INFO:SessionManager:closing down server for rpc://localhost:8000  
INFO:Controller:shutting down
INFO:Controller:shutdown complete
ERROR:electrumx:ElectrumX server terminated abnormally
Traceback (most recent call last):
  File "/mnt/atomicals-electrumx/electrumx_server", line 35, in main
    asyncio.run(controller.run())
  File "/usr/local/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/local/lib/python3.10/asyncio/base_events.py", line 641, in run_until_complete
    return future.result()
  File "/mnt/atomicals-electrumx/electrumx/lib/server_base.py", line 129, in run
    await server_task
  File "/mnt/atomicals-electrumx/electrumx/lib/server_base.py", line 102, in serve
    await self.serve(shutdown_event)
  File "/mnt/atomicals-electrumx/electrumx/server/controller.py", line 134, in serve
    async with OldTaskGroup() as group:
  File "/usr/local/lib/python3.10/site-packages/aiorpcx/curio.py", line 297, in __aexit__
    await self.join()
  File "/mnt/atomicals-electrumx/electrumx/lib/util.py", line 370, in join
    task.result()
  File "/mnt/atomicals-electrumx/electrumx/server/block_processor.py", line 3580, in fetch_and_process_blocks
    async with OldTaskGroup() as group:
  File "/usr/local/lib/python3.10/site-packages/aiorpcx/curio.py", line 297, in __aexit__
    await self.join()
  File "/mnt/atomicals-electrumx/electrumx/lib/util.py", line 370, in join
    task.result()
  File "/mnt/atomicals-electrumx/electrumx/server/block_processor.py", line 3542, in _process_prefetched_blocks
    await self.check_and_advance_blocks(blocks)
  File "/mnt/atomicals-electrumx/electrumx/server/block_processor.py", line 323, in check_and_advance_blocks
    await self.reorg_chain()
  File "/mnt/atomicals-electrumx/electrumx/server/block_processor.py", line 365, in reorg_chain
    await self.run_in_thread_with_lock(self.backup_blocks, raw_blocks)
  File "/mnt/atomicals-electrumx/electrumx/server/block_processor.py", line 295, in run_in_thread_with_lock
    return await asyncio.shield(run_in_thread_locked())
  File "/mnt/atomicals-electrumx/electrumx/server/block_processor.py", line 294, in run_in_thread_locked
    return await run_in_thread(func, *args)
  File "/usr/local/lib/python3.10/site-packages/aiorpcx/curio.py", line 57, in run_in_thread
    return await get_event_loop().run_in_executor(None, func, *args)
  File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/mnt/atomicals-electrumx/electrumx/server/block_processor.py", line 3130, in backup_blocks
    self.backup_txs(block.transactions, is_unspendable)
  File "/mnt/atomicals-electrumx/electrumx/server/block_processor.py", line 3303, in backup_txs
    assert(c >= 0)
AssertionError

always exit on height=817983 with ChainError

here is the log

electrumx  | INFO:BlockProcessor:advance_txs: color_atomicals_outputs atomical_ids_transferred. atomical_id=75855c1d2ebdc253c47b13c3ad4a334d77fbf09b36f7f4f8193e287f5e4715ab00000000, tx_hash=fe1949053ea0021b1ac14a6e4646987bf474750fd01e382fa5835b62a4c30b4c
electrumx  | INFO:BlockProcessor:advance_txs: has_at_least_one_valid_atomicals_operation tx_hash=fe1949053ea0021b1ac14a6e4646987bf474750fd01e382fa5835b62a4c30b4c
electrumx  | INFO:BlockProcessor:Calculated Atomicals Block Hash: height=817983, atomicals_block_hash=f6615b84fb701b28a9866f84da3e886056b5ca0005b9ed17a3efb8456d930ada
electrumx  | INFO:Prefetcher:cancelled; prefetcher stopping 
electrumx  | INFO:Controller:shutting down
electrumx  | INFO:Controller:shutdown complete
electrumx  | ERROR:electrumx:ElectrumX server terminated abnormally
electrumx  | Traceback (most recent call last):
electrumx  |   File "/electrumx/electrumx_server", line 35, in main
electrumx  |     asyncio.run(controller.run())
electrumx  |   File "/usr/local/lib/python3.9/asyncio/runners.py", line 44, in run
electrumx  |     return loop.run_until_complete(main)
electrumx  |   File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
electrumx  |   File "/electrumx/electrumx/lib/server_base.py", line 129, in run
electrumx  |     await server_task
electrumx  |   File "/electrumx/electrumx/lib/server_base.py", line 102, in serve
electrumx  |     await self.serve(shutdown_event)
electrumx  |   File "/electrumx/electrumx/server/controller.py", line 137, in serve
electrumx  |     await group.spawn(wait_for_catchup())
electrumx  |   File "/usr/local/lib/python3.9/site-packages/aiorpcx/curio.py", line 297, in __aexit__
electrumx  |     await self.join()
electrumx  |   File "/electrumx/electrumx/lib/util.py", line 370, in join
electrumx  |     task.result()
electrumx  |   File "/electrumx/electrumx/server/block_processor.py", line 3501, in fetch_and_process_blocks
electrumx  |     await group.spawn(self._process_prefetched_blocks())
electrumx  |   File "/usr/local/lib/python3.9/site-packages/aiorpcx/curio.py", line 297, in __aexit__
electrumx  |     await self.join()
electrumx  |   File "/electrumx/electrumx/lib/util.py", line 370, in join
electrumx  |     task.result()
electrumx  |   File "/electrumx/electrumx/server/block_processor.py", line 3461, in _process_prefetched_blocks
electrumx  |     await self.check_and_advance_blocks(blocks)
electrumx  |   File "/electrumx/electrumx/server/block_processor.py", line 310, in check_and_advance_blocks
electrumx  |     await self.run_in_thread_with_lock(self.advance_blocks, blocks)
electrumx  |   File "/electrumx/electrumx/server/block_processor.py", line 293, in run_in_thread_with_lock
electrumx  |     return await asyncio.shield(run_in_thread_locked())
electrumx  |   File "/electrumx/electrumx/server/block_processor.py", line 292, in run_in_thread_locked
electrumx  |     return await run_in_thread(func, *args)
electrumx  |   File "/usr/local/lib/python3.9/site-packages/aiorpcx/curio.py", line 57, in run_in_thread
electrumx  |     return await get_event_loop().run_in_executor(None, func, *args)
electrumx  |   File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 58, in run
electrumx  |     result = self.fn(*self.args, **self.kwargs)
electrumx  |   File "/electrumx/electrumx/server/block_processor.py", line 494, in advance_blocks
electrumx  |     undo_info, atomicals_undo_info = self.advance_txs(block.transactions, is_unspendable, block.header, height)
electrumx  |   File "/electrumx/electrumx/server/block_processor.py", line 2726, in advance_txs
electrumx  |     cache_value = spend_utxo(txin.prev_hash, txin.prev_idx)
electrumx  |   File "/electrumx/electrumx/server/block_processor.py", line 3444, in spend_utxo
electrumx  |     raise ChainError(f'UTXO {hash_to_hex_str(tx_hash)} / {tx_idx:,d} not '
electrumx  | electrumx.server.block_processor.ChainError: UTXO 59840670e5544a3d0b933bf168e887e28d2a87ff92d11f01690d0e9e5640bb20 / 1 not found in "h" table

KeyError: '$request_subrealm'

Testnet crash

 ERROR:electrumx:ElectrumX server terminated abnormally
 Traceback (most recent call last):
   File "/usr/local/bin/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 "/usr/local/lib/python3.10/dist-packages/electrumx/lib/server_base.py", line 129, in run
     await server_task
   File "/usr/local/lib/python3.10/dist-packages/electrumx/lib/server_base.py", line 102, in serve
     await self.serve(shutdown_event)
   File "/usr/local/lib/python3.10/dist-packages/electrumx/server/controller.py", line 134, in serve
     async with OldTaskGroup() as group:
   File "/usr/local/lib/python3.10/dist-packages/aiorpcx/curio.py", line 297, in __aexit__
     await self.join()
   File "/usr/local/lib/python3.10/dist-packages/electrumx/lib/util.py", line 370, in join
     task.result()
   File "/usr/local/lib/python3.10/dist-packages/electrumx/server/block_processor.py", line 3400, in fetch_and_process_blocks
     async with OldTaskGroup() as group:
   File "/usr/local/lib/python3.10/dist-packages/aiorpcx/curio.py", line 297, in __aexit__
     await self.join()
   File "/usr/local/lib/python3.10/dist-packages/electrumx/lib/util.py", line 370, in join
     task.result()
   File "/usr/local/lib/python3.10/dist-packages/electrumx/server/block_processor.py", line 3362, in _process_prefetched_blocks
     await self.check_and_advance_blocks(blocks)
   File "/usr/local/lib/python3.10/dist-packages/electrumx/server/block_processor.py", line 308, in check_and_advance_blocks
     await self.run_in_thread_with_lock(self.advance_blocks, blocks)
   File "/usr/local/lib/python3.10/dist-packages/electrumx/server/block_processor.py", line 291, in run_in_thread_with_lock
     return await asyncio.shield(run_in_thread_locked())
   File "/usr/local/lib/python3.10/dist-packages/electrumx/server/block_processor.py", line 290, in run_in_thread_locked
     return await run_in_thread(func, *args)
   File "/usr/local/lib/python3.10/dist-packages/aiorpcx/curio.py", line 57, in run_in_thread
     return await get_event_loop().run_in_executor(None, func, *args)
   File "/usr/lib/python3.10/concurrent/futures/thread.py", line 58, in run
     result = self.fn(*self.args, **self.kwargs)
   File "/usr/local/lib/python3.10/dist-packages/electrumx/server/block_processor.py", line 492, in advance_blocks
     undo_info, atomicals_undo_info = self.advance_txs(block.transactions, is_unspendable, block.header, height)
   File "/usr/local/lib/python3.10/dist-packages/electrumx/server/block_processor.py", line 2721, in advance_txs
     if self.create_or_delete_subrealm_payment_output_if_valid(tx_hash, tx, tx_num, height, atomicals_spent_at_inputs):
   File "/usr/local/lib/python3.10/dist-packages/electrumx/server/block_processor.py", line 2780, in create_or_delete_subrealm_payment_output_if_valid
     matched_price_point, parent_realm_id, request_subrealm_name = self.get_expected_subrealm_payment_info(found_atomical_id_for_potential_subrealm, height)
   File "/usr/local/lib/python3.10/dist-packages/electrumx/server/block_processor.py", line 592, in get_expected_subrealm_payment_info
     request_subrealm = found_atomical_mint_info_for_potential_subrealm['$request_subrealm']
 KeyError: '$request_subrealm'

Index data error

Using Bitcoin Network, I found that this tx_id is also in line with atomicals protocol.

    "commitTxid": "01238593c66538df0188c546cad3ceecbef94d395c105f1e933fdb61cdcceec1"
    "revealTxid": "c2acaaa3cd87d1865ab10392cd41e615a5785a90ef0a692f3cf2d5b783ad25ce"

This tx_id is a realm, named blocktime.

But I don’t know why this tx_id is not indeed, and similar TX still has

808676 ticker: kekw

    "commitTxid": "6969a78a1656f86339aaae1ae71bc233bfc98bbea7ea7cea9c5f5793420aeaff"
    "revealTxid": "0x0d72b7b63889bd89cb9290060a4ea66c8edfd2b5beb406e759ab50c34f7a777e"

808684 ticker: rekt

    "commitTxid": "13373bdbcf78618fc949854b51101f60379cd2d318328709bbe266a505ced9c9"
    "revealTxid": "ce18bfa286d0f49997715b882f99df27cdc58e05d33e93d15c46164e988a798d"

I would like to know if there are any other rules or conditions to determine if the initialization of

OP_PUSHBYTES_4 61746f6d
OP_PUSHBYTES_3 646d74 (6e6674)

is correct.

UnicodeEncodeError crashing the server without a flush.

My current bets at the issue are either versioning of some python tools or a locale issue.
I feel most of you are running Ubuntu, and this is from a Debian machine.

INFO:BlockProcessor:advance_txs: atomicals_operations_found_at_inputs operation_found=dft, operation_inp
ut_index=0, size_payload=140, tx_hash=d7d3d7142f3e6ff4e392c0561a53717b06fb30de1fdc07979c4645f32847950c,
commit_txid=61452c69a23ae99c669cfd86447d8e8945a5dc7eec582f05c7d4a9231b226929, commit_index=0, reveal_loc
ation_txid=d7d3d7142f3e6ff4e392c0561a53717b06fb30de1fdc07979c4645f32847950c, reveal_location_index=0
INFO:Prefetcher:cancelled; prefetcher stopping
INFO:Controller:shutting down
INFO:Controller:shutdown complete
ERROR:electrumx:ElectrumX server terminated abnormally
Traceback (most recent call last):
  File "/home/atom/code/atomicals-electrumx/./electrumx_server", line 35, in main
    asyncio.run(controller.run())
  File "/usr/lib/python3.9/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
    return future.result()
  File "/home/atom/code/atomicals-electrumx/electrumx/lib/server_base.py", line 129, in run
    await server_task
  File "/home/atom/code/atomicals-electrumx/electrumx/lib/server_base.py", line 102, in serve
    await self.serve(shutdown_event)
  File "/home/atom/code/atomicals-electrumx/electrumx/server/controller.py", line 137, in serve
    await group.spawn(wait_for_catchup())
  File "/home/atom/.local/lib/python3.9/site-packages/aiorpcx/curio.py", line 297, in __aexit__
    await self.join()
  File "/home/atom/code/atomicals-electrumx/electrumx/lib/util.py", line 370, in join
    task.result()
  File "/home/atom/code/atomicals-electrumx/electrumx/server/block_processor.py", line 3402, in fetch_an
d_process_blocks
    await group.spawn(self._process_prefetched_blocks())
  File "/home/atom/.local/lib/python3.9/site-packages/aiorpcx/curio.py", line 297, in __aexit__
    await self.join()
  File "/home/atom/code/atomicals-electrumx/electrumx/lib/util.py", line 370, in join
    task.result()
  File "/home/atom/code/atomicals-electrumx/electrumx/server/block_processor.py", line 3362, in _process
_prefetched_blocks
    await self.check_and_advance_blocks(blocks)
  File "/home/atom/code/atomicals-electrumx/electrumx/server/block_processor.py", line 308, in check_and
_advance_blocks
    await self.run_in_thread_with_lock(self.advance_blocks, blocks)
  File "/home/atom/code/atomicals-electrumx/electrumx/server/block_processor.py", line 291, in run_in_th
read_with_lock
    return await asyncio.shield(run_in_thread_locked())
  File "/home/atom/code/atomicals-electrumx/electrumx/server/block_processor.py", line 290, in run_in_th
read_locked
    return await run_in_thread(func, *args)
  File "/home/atom/.local/lib/python3.9/site-packages/aiorpcx/curio.py", line 57, in run_in_thread
    return await get_event_loop().run_in_executor(None, func, *args)
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/home/atom/code/atomicals-electrumx/electrumx/server/block_processor.py", line 492, in advance_b
locks
    undo_info, atomicals_undo_info = self.advance_txs(block.transactions, is_unspendable, block.header,
height)
  File "/home/atom/code/atomicals-electrumx/electrumx/server/block_processor.py", line 2704, in advance_
txs
    created_atomical_id = self.create_or_delete_atomical(atomicals_operations_found_at_inputs, atomicals
_spent_at_inputs, header, height, tx_num, atomical_num, tx, tx_hash, False)
  File "/home/atom/code/atomicals-electrumx/electrumx/server/block_processor.py", line 1241, in create_o
r_delete_atomical
    valid_create_op_type, mint_info = get_mint_info_op_factory(self.coin, tx, tx_hash, operations_found_
at_inputs, atomicals_spent_at_inputs)
  File "/home/atom/code/atomicals-electrumx/electrumx/lib/util_atomicals.py", line 665, in get_mint_info
_op_factory
    print(f'DFT mint has invalid ticker {tx_hash}, {ticker}. Skipping...')
UnicodeEncodeError: 'latin-1' codec can't encode character '\U0001d54f' in position 125: ordinal not in
range(256)

rockdb install failure in dockerfile

According to https://github.com/atomicals/atomicals-electrumx/blob/master/contrib/Dockerfile

When build the image
docker build -t electrumx .

printout followed error

      rocksdb/_rocksdb.pyx:2413:44: Converting to Python object not allowed without gil
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-b3qywp9c/python-rocksdb_426e6e6d47a4476cbec9cba46b9b4cf5/setup.py", line 21, in <module>
          setup(
        File "/usr/src/app/venv/lib/python3.9/site-packages/setuptools/__init__.py", line 153, in setup
          return distutils.core.setup(**attrs)
        File "/usr/local/lib/python3.9/distutils/core.py", line 148, in setup
          dist.run_commands()
        File "/usr/local/lib/python3.9/distutils/dist.py", line 966, in run_commands
          self.run_command(cmd)
        File "/usr/local/lib/python3.9/distutils/dist.py", line 985, in run_command
          cmd_obj.run()
        File "/usr/src/app/venv/lib/python3.9/site-packages/setuptools/command/install.py", line 61, in run
          return orig.install.run(self)
        File "/usr/local/lib/python3.9/distutils/command/install.py", line 546, in run
          self.run_command('build')
        File "/usr/local/lib/python3.9/distutils/cmd.py", line 313, in run_command
          self.distribution.run_command(command)
        File "/usr/local/lib/python3.9/distutils/dist.py", line 985, in run_command
          cmd_obj.run()
        File "/usr/local/lib/python3.9/distutils/command/build.py", line 135, in run
          self.run_command(cmd_name)
        File "/usr/local/lib/python3.9/distutils/cmd.py", line 313, in run_command
          self.distribution.run_command(command)
        File "/usr/local/lib/python3.9/distutils/dist.py", line 985, in run_command
          cmd_obj.run()
        File "/usr/src/app/venv/lib/python3.9/site-packages/setuptools/command/build_ext.py", line 79, in run
          _build_ext.run(self)
        File "/usr/local/lib/python3.9/distutils/command/build_ext.py", line 340, in run
          self.build_extensions()
        File "/usr/local/lib/python3.9/distutils/command/build_ext.py", line 449, in build_extensions
          self._build_extensions_serial()
        File "/usr/local/lib/python3.9/distutils/command/build_ext.py", line 474, in _build_extensions_serial
          self.build_extension(ext)
        File "/usr/src/app/venv/lib/python3.9/site-packages/setuptools/command/build_ext.py", line 202, in build_extension
          _build_ext.build_extension(self, ext)
        File "/tmp/pip-install-b3qywp9c/python-rocksdb_426e6e6d47a4476cbec9cba46b9b4cf5/.eggs/Cython-3.0.7-py3.9-linux-x86_64.egg/Cython/Distutils/build_ext.py", line 130, in build_extension
          new_ext = cythonize(
        File "/tmp/pip-install-b3qywp9c/python-rocksdb_426e6e6d47a4476cbec9cba46b9b4cf5/.eggs/Cython-3.0.7-py3.9-linux-x86_64.egg/Cython/Build/Dependencies.py", line 1154, in cythonize
          cythonize_one(*args)
        File "/tmp/pip-install-b3qywp9c/python-rocksdb_426e6e6d47a4476cbec9cba46b9b4cf5/.eggs/Cython-3.0.7-py3.9-linux-x86_64.egg/Cython/Build/Dependencies.py", line 1321, in cythonize_one
          raise CompileError(None, pyx_file)
      Cython.Compiler.Errors.CompileError: rocksdb/_rocksdb.pyx
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> python-rocksdb

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

@GoodDaisy Please help.

spawn() got an unexpected keyword argument 'daemon'

INFO:Controller:Python version: 3.8.10 (default, Nov 26 2021, 20:14:08) [GCC 9.3.0]
ERROR:electrumx:ElectrumX server terminated abnormally
Traceback (most recent call last):
File "electrumx_server", line 35, in main
asyncio.run(controller.run())
File "/usr/lib/python3.8/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
return future.result()
File "/home/dannyaw/blockchain/atomicals-electrumx/electrumx/lib/server_base.py", line 118, in run
server_task = await spawn(serve, daemon=True)
TypeError: spawn() got an unexpected keyword argument 'daemon'

ERROR when try to run atomicals-electrumx with Bitcoin testnet.

ERROR:Prefetcher:ignoring unexpected exception
Traceback (most recent call last):
  File "/electrumx/electrumx/server/block_processor.py", line 128, in main_loop
    if not await self._prefetch_blocks():
  File "/electrumx/electrumx/server/block_processor.py", line 198, in _prefetch_blocks
    blocks[0] = self.coin.genesis_block(blocks[0])
  File "/electrumx/electrumx/lib/coins.py", line 166, in genesis_block
    raise CoinError(f'genesis block has hash {header_hex_hash} '
electrumx.lib.coins.CoinError: genesis block has hash 000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943 expected 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

Anyone knows how to make it work?

need snapshots

May I ask if there are height snapshots before 808080?
And the latest snapshot.

crash when chain reorg

version: v1.3.7.2

atomicals  | INFO:electrumx:ElectrumX server starting
atomicals  | INFO:electrumx:logging level: INFO
atomicals  | INFO:Controller:Python version: 3.10.11 (main, May  3 2023, 09:48:29) [GCC 11.2.1 20220219]
atomicals  | INFO:Controller:software version: ElectrumX 1.16.0
atomicals  | INFO:Controller:aiorpcX version: 0.22.1
atomicals  | INFO:Controller:supported protocol versions: 1.4-1.4.3
atomicals  | INFO:Controller:event loop policy: <uvloop.EventLoopPolicy object at 0x7fdb98937d60>
atomicals  | INFO:Controller:reorg limit is 200 blocks
atomicals  | INFO:Daemon:daemon #1 at host.docker.internal:8332/ (current)
atomicals  | INFO:DB:switching current directory to /app/data
atomicals  | INFO:DB:using leveldb for DB backend
atomicals  | INFO:DB:opened UTXO DB (for sync: True)
atomicals  | INFO:DB:UTXO DB version: 8
atomicals  | INFO:DB:coin: Bitcoin
atomicals  | INFO:DB:network: mainnet
atomicals  | INFO:DB:height: 823,226
atomicals  | INFO:DB:tip: 0000000000000000000365e705dbbea406f6e383f510d400fa23e40eae71e056
atomicals  | INFO:DB:tx count: 943,688,366
atomicals  | INFO:DB:atomical count: 140,809
atomicals  | INFO:DB:flushing DB cache at 1,200 MB
atomicals  | INFO:History:history DB version: 1
atomicals  | INFO:History:flush count: 4,871
atomicals  | INFO:Prefetcher:catching up to daemon height 823,261 (35 blocks behind)
atomicals  | INFO:BlockProcessor:chain reorg detected
atomicals  | INFO:BlockProcessor:chain was reorganised replacing 1 block at heights 823,226-823,226
atomicals  | INFO:BlockProcessor:read 1 blocks from disk
atomicals  | INFO:BlockProcessor:backup_txs m=5848
atomicals  | INFO:BlockProcessor:atomicals_undo_info_map={}
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 5718 - count 0 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 5718 1669d42e672f376113b09b34f4046d83a9a829fb7d0fe49a48e2f43dd4d8ea0f000000009d304417368fdcebf51b7e2d2f5c4b7acbd9013d1e170dbebc7aae7f125f3d9200000000ca85d4e89209f9c7477a54c5edffeccbec37a11df7dbe9be3606f551b736055b20a79dc7200afef402fb37e8030000000000000000cf553d3800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 5588 - count 1 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 5588 f1d00c8b690cd6564b5369eecc738476f8e7c2de74d53ee460f50e712fa21ca400000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf025910000000086a3fbbf0fad05291d424ca34809494edc83d4080bd10843b99fe23807e6f0efdc1110e318c182990ca188204e000000000000000030e4373800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 5458 - count 2 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 5458 b3faf1ad79dbbd091e0f50f2997d8535394b166022cccb1873f040e23407c07d000000009d304417368fdcebf51b7e2d2f5c4b7acbd9013d1e170dbebc7aae7f125f3d9200000000cd9c692d3cbaecaed41e58fcf50aa4d221af3fc26acde07e70f84308c914f69796cf57f43bc95760e8d8f8e8030000000000000000cc573d3800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 5328 - count 3 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 5328 5b006345b98be3c1845b87daca7be56eb9cc2662eeae91acdb87bac1e5e9eba9000000009d304417368fdcebf51b7e2d2f5c4b7acbd9013d1e170dbebc7aae7f125f3d920000000037442d9a58501754d65c96d05f63ef5fb6f2067395b48a9625a864b67e576a17ff7fcb2916ff4112a07ad6e8030000000000000000c9df3d3800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 5198 - count 4 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 5198 0bd2e7ac0f644d5dc391312b5daa6fff6dfc5d819ee0613f64fe35ffa4dd1cf9000000009d304417368fdcebf51b7e2d2f5c4b7acbd9013d1e170dbebc7aae7f125f3d92000000005f0b10b75aa092be3bd7fc469e5e54d14d29b34192ea791aa604d819365e5d2d58a47d747cfcc3d359ea2fe803000000000000000039263d3800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 5068 - count 5 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 5068 1551c1d9024b8f2a5e8acd4bcfafdeff6a9ce9a386c8d24c5ffd2f2e4616efe700000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000000d4b65477da43dbd6103706a7644a88803b083e59487073e4761e26e5d9a0a17a093f3e24f185925a2c22d204e0000000000000000b681373800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 4938 - count 6 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 4938 e0b6dd34acdfafc2e8f52b21a510b4ed946399e43d68b7d00356af5507d2ad8e00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e0000000000000000dd51383800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 4808 - count 7 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 4808 7c57c97ac5de32cbbb0e4bf836bd26ed6805f33b201884d7497662ceb1297e3800000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e00000000000000000ce5363800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 4678 - count 8 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 4678 fe6d361f5af076cdc4affdd49bb9064e694e5e81f7cce37a733a619c972f897400000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e00000000000000000ae5363800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 4548 - count 9 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 4548 20b0fff7999c15c1c5bb0ffcbc17a4a7e1dc83bf0e05dd3b32f815428fc4b6b800000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e0000000000000000deb9363800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 4418 - count 10 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 4418 4ab46d1f7489c565fbac5d9dc0aadf58cf388dddef00c9c10ea8a9e3cf91cae600000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e0000000000000000dcb9363800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 4288 - count 11 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 4288 a80b8165202ac689833878031a39760191eca50af1aec22acf21271da83178d400000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e0000000000000000dab9363800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 4158 - count 12 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 4158 0ba8b5c2bab22e9e0c5b683b6cae6822cababe2fbf767483d790727a52081ec300000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000a18fbf0f1b383b7d846a778de3d8ea79b7bf2ecd2dc69ab7d92a40a4d2818eefda952dd29151d8a2f8b74a204e00000000000000002dbb363800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 4028 - count 13 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 4028 4d9009951ad7264789bb74014b792db1f442580f0fe6fe3a38d891f947f4064b00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000a18fbf0f1b383b7d846a778de3d8ea79b7bf2ecd2dc69ab7d92a40a4d2818eefda952dd29151d8a2f8b74a204e0000000000000000e751363800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 3898 - count 14 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 3898 fbe79d7ba5ce104bfa474bded62ff59ecec9e8a60f7888d047997e483d73127e00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000a18fbf0f1b383b7d846a778de3d8ea79b7bf2ecd2dc69ab7d92a40a4d2818eefda952dd29151d8a2f8b74a204e0000000000000000e144363800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 3768 - count 15 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 3768 ebb6ddf7625336a6557aeb3530e98d604caa4842a401881932296a7ad0fba27a00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000a18fbf0f1b383b7d846a778de3d8ea79b7bf2ecd2dc69ab7d92a40a4d2818eefda952dd29151d8a2f8b74a204e00000000000000007444363800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 3638 - count 16 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 3638 e5262d035a92bd3b264e78954234f8c498d1468818d470d19b9690f928508cb400000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000a18fbf0f1b383b7d846a778de3d8ea79b7bf2ecd2dc69ab7d92a40a4d2818eefda952dd29151d8a2f8b74a204e00000000000000004244363800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 3508 - count 17 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 3508 ce8f4c2a70d048edc3009f70b62394510db602fa5bdb651167f6fc525f85a65200000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000a18fbf0f1b383b7d846a778de3d8ea79b7bf2ecd2dc69ab7d92a40a4d2818eefda952dd29151d8a2f8b74a204e0000000000000000d325363800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 3378 - count 18 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 3378 c4f1874bf18f5fe22c5f6b31c44cda6481cfd0dbf44ef002ac97036fecea271e00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000a18fbf0f1b383b7d846a778de3d8ea79b7bf2ecd2dc69ab7d92a40a4d2818eefda952dd29151d8a2f8b74a204e00000000000000009925363800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 3248 - count 19 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 3248 bf4774bb02f64e9522c61f9e5a16f3abf8e0a09823dbbf1f46688c417cfa98a100000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000a18fbf0f1b383b7d846a778de3d8ea79b7bf2ecd2dc69ab7d92a40a4d2818eefda952dd29151d8a2f8b74a204e00000000000000007425363800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 3118 - count 20 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 3118 76c8fdced9f05bd7207ca1fa60ac53d310cf4afe87ef6dbd925ffd3fd52398a6000000009d304417368fdcebf51b7e2d2f5c4b7acbd9013d1e170dbebc7aae7f125f3d92000000006c160d5af100be2b124bcde4b6c5db8d577317c72389bb6e6ccb5e49bb608785524595dae0c85b83c94bc4e803000000000000000036b33d3800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 2988 - count 21 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 2988 4d16de2d17cdffcdde1c7b3c1022a9c7af696dd3b11ee27799572438e97ea0f1000000009d304417368fdcebf51b7e2d2f5c4b7acbd9013d1e170dbebc7aae7f125f3d920000000098f978c6cbdee7849c972e03ad6629acb4f2d812d629c492ebe58dbd35a917bd5619dcdfad4b2fcbbd59f1e8030000000000000000ac4b3d3800
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 2858 - count 22 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 2858 380095bb9ee07ed5cbf36090a215457182e06a75f08efbed13b5b2d0eb80302968ab00000000908ee68352516d76f43f00296a6f91141e57e22b34ca3b2317faafdfaa37675300000000750348df7d09137e5ed2051b8061b36f60e74e7d234863b5b0783f89760c6c622c6ea1c7a3688dca4cf1f048d50000000000004b893a3700
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 2728 - count 23 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 2728 38008c888f847ce2bb87a960b095ef77f6143ecfbcc2fa2df01dae70dd4db9213a560000000041038f27e785606ca0cc1efd8e3aa912a15c72d06f359aeb05243dab2b70a856000000002541d800ca7500b2770a0c0dc18cbbe7acee5d0f3dad1cd915ad30869ae17c5e2ceb75b189b734c0149b5ae80300000000000000000a4b1e
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 2598 - count 24 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 2598 380013909169dad4f6783c2bce0d0cd518a02b8848f335ebbc90a9042abde4b87be00000000072e64078bf0c8e038f19ed5c3ea70d89a0d3638d7efa080b3295cc0c0482d0b10000000054daa08d503c2c00b9a070827948ae5345d74cb2fdb2250ef138e03d1a79d7664fcb8fa923ecf9474283f5e8030000000000000000337819
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 2468 - count 25 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 2468 38009478f3365d19f061c6a263d7742fe318d506998af1543977e5f9d6b543b2108400000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000006fdf2836d43b994f3dd524cdf6170e8bf0dfdf9d3cdea54696f3f9360469c8eb08f455f1d3428b5bf92892204e00000000000000005d5536
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 2338 - count 26 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 2338 38000b3e4860f19eb98c03166dad3e88fdfcfa8c1ec0fcf4f0f76f0df16ddf832a4c00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000006fdf2836d43b994f3dd524cdf6170e8bf0dfdf9d3cdea54696f3f9360469c8eb08f455f1d3428b5bf92892204e00000000000000005b5536
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 2208 - count 27 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 2208 38006d5146d5ff6099c524a26ede850bdedf20c56e2fcd4af93ca42e54a458ffdc2800000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000006fdf2836d43b994f3dd524cdf6170e8bf0dfdf9d3cdea54696f3f9360469c8eb08f455f1d3428b5bf92892204e00000000000000005c5536
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 2078 - count 28 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 2078 3800ed8b53d36a949f60d8482c1fc24fdd858ea8f63288996168e0a6d56d5b36726600000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e000000000000000097de37
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 1948 - count 29 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 1948 3800ebea12193c790d433c390266d8faf6d850c3c2f9111ac9e3872477f524e3aa3200000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e000000000000000095de37
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 1818 - count 30 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 1818 380003bf9cbd53639c2e768066c201f5d47039d6268d3a0acf0e07e475c29d6be25800000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e000000000000000045de37
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 1688 - count 31 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 1688 38005f1132aaae677c7f2890001916aaa1aa782424959324998143428372600400d700000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e000000000000000043de37
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 1558 - count 32 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 1558 3800d9a07642b919b132f49f14c1b0312e86d03d4a6f3f45d85326bc4575d877618d00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e0000000000000000b22f37
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 1428 - count 33 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 1428 3800dfcb2c7f557c1b48f7515d191be0520f70951792b6c6c42223d952d108651be200000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e00000000000000000c1a37
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 1298 - count 34 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 1298 38007a7529a734d2b03c4918dfcf2f7f4f2bd4545e39a0d3097668b498813cc3689b00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e0000000000000000041a37
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 1168 - count 35 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 1168 3800462044380d013a638d53853e89e33c067ba4603ce6d7f275157aee63b689fba000000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e0000000000000000c00b37
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 1038 - count 36 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 1038 3800df7436b48f5acaed90e51263c092fc79b5ea1f123f57897d63f5bcca1cc0123c00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e000000000000000052f836
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 908 - count 37 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 908 3800662fca5e1bce7704e8fa1375514a11b660e6f4c892bda8968559271c335853b200000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf02591000000002f1aca263336d3976d8a72938866d40400570d3f2c900e412fa87d072adbda03c9d2b1de67d82bcbc58662204e00000000000000004cf836
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 778 - count 38 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 778 380002833dfa23fee4217ccb974318a8700231a24e9e51730a22d8d659566f28098000000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000933aed32c6a0855860b8bc806a1a9f619a7a60ef786262be811c3d76070d2fe200ad6dd0c02d45ee48e1e9204e000000000000000088ee35
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 648 - count 39 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 648 3800870f9189780c39b8931e6f2de878d25abc5090694f608167c397a3e82bdf076a00000000666fea477fe0892e6e337c15ed430b1a460be0aeb9621707f62593cf3bf0259100000000933aed32c6a0855860b8bc806a1a9f619a7a60ef786262be811c3d76070d2fe200ad6dd0c02d45ee48e1e9204e000000000000000086ee35
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 518 - count 40 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 518 3800825582bf860a1649aed3949216ad5121d8c43b8e6bc7f8386f43cfa157d241ab000000009d304417368fdcebf51b7e2d2f5c4b7acbd9013d1e170dbebc7aae7f125f3d92000000006c160d5af100be2b124bcde4b6c5db8d577317c72389bb6e6ccb5e49bb608785524595dae0c85b83c94bc4e80300000000000000002cc83d
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 388 - count 41 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 388 380057a024864392b5b97b57d99a0a07c0fda0a240340f4d245e34facc828f4db1ea000000009d304417368fdcebf51b7e2d2f5c4b7acbd9013d1e170dbebc7aae7f125f3d9200000000e98683d8186fb180c8b13982f2523bdcf4a6022d8f55291d13f96c293daa945577b4150253aede6187ced6e80300000000000000005e2a3d
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 258 - count 42 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 258 38002c36a372ec221577fef265053c569b7cf6d27ed905fbb3fe6f86f69b5a61e04000000000afdef5feb85029eaf1905e906aef1de6469072155198e1c524d9e8d0855162ab00000000f45e6167f7f9bf343b60966a6e8e5a8a5024f579e9d06d98154736f4d7a17f0c223f576db885a38ef5a7b9166b9f06000000000000656c3f
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len 128 - count 43 - 130
atomicals  | INFO:BlockProcessor:Reorg undo_info_item 128 38002c36a372ec221577fef265053c569b7cf6d27ed905fbb3fe6f86f69b5a61e04000000000794f82c79db8df571134d60a1c135eb555a67701bcc2753b28f7aa1dac8e39ab00000000f45e6167f7f9bf343b60966a6e8e5a8a5024f579e9d06d98154736f4d7a17f0c223f576db885a38ef5a7b9166b9f06000000000000656c3f
atomicals  | INFO:BlockProcessor:atomicals_undo_entry_len -2 - count 44 - 130
atomicals  | INFO:Prefetcher:cancelled; prefetcher stopping
atomicals  | INFO:Controller:shutting down
atomicals  | INFO:Controller:shutdown complete
atomicals  | ERROR:electrumx:ElectrumX server terminated abnormally
atomicals  | Traceback (most recent call last):
atomicals  |   File "/app/electrumx_server", line 35, in main
atomicals  |     asyncio.run(controller.run())
atomicals  |   File "/usr/local/lib/python3.10/asyncio/runners.py", line 44, in run
atomicals  |     return loop.run_until_complete(main)
atomicals  |   File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
atomicals  |   File "/app/electrumx/lib/server_base.py", line 129, in run
atomicals  |     await server_task
atomicals  |   File "/app/electrumx/lib/server_base.py", line 102, in serve
atomicals  |     await self.serve(shutdown_event)
atomicals  |   File "/app/electrumx/server/controller.py", line 134, in serve
atomicals  |     async with OldTaskGroup() as group:
atomicals  |   File "/usr/local/lib/python3.10/site-packages/aiorpcx/curio.py", line 297, in __aexit__
atomicals  |     await self.join()
atomicals  |   File "/app/electrumx/lib/util.py", line 370, in join
atomicals  |     task.result()
atomicals  |   File "/app/electrumx/server/block_processor.py", line 3580, in fetch_and_process_blocks
atomicals  |     async with OldTaskGroup() as group:
atomicals  |   File "/usr/local/lib/python3.10/site-packages/aiorpcx/curio.py", line 297, in __aexit__
atomicals  |     await self.join()
atomicals  |   File "/app/electrumx/lib/util.py", line 370, in join
atomicals  |     task.result()
atomicals  |   File "/app/electrumx/server/block_processor.py", line 3542, in _process_prefetched_blocks
atomicals  |     await self.check_and_advance_blocks(blocks)
atomicals  |   File "/app/electrumx/server/block_processor.py", line 323, in check_and_advance_blocks
atomicals  |     await self.reorg_chain()
atomicals  |   File "/app/electrumx/server/block_processor.py", line 365, in reorg_chain
atomicals  |     await self.run_in_thread_with_lock(self.backup_blocks, raw_blocks)
atomicals  |   File "/app/electrumx/server/block_processor.py", line 295, in run_in_thread_with_lock
atomicals  |     return await asyncio.shield(run_in_thread_locked())
atomicals  |   File "/app/electrumx/server/block_processor.py", line 294, in run_in_thread_locked
atomicals  |     return await run_in_thread(func, *args)
atomicals  |   File "/usr/local/lib/python3.10/site-packages/aiorpcx/curio.py", line 57, in run_in_thread
atomicals  |     return await get_event_loop().run_in_executor(None, func, *args)
atomicals  |   File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
atomicals  |     result = self.fn(*self.args, **self.kwargs)
atomicals  |   File "/app/electrumx/server/block_processor.py", line 3130, in backup_blocks
atomicals  |     self.backup_txs(block.transactions, is_unspendable)
atomicals  |   File "/app/electrumx/server/block_processor.py", line 3303, in backup_txs
atomicals  |     assert(c >= 0)
atomicals  | AssertionError
atomicals exited with code 0

regtest network mode cannot init-dft

In the regtest network mode, the ATOMICALS_ACTIVATION_HEIGHT, ATOMICALS_ACTIVATION_HEIGHT_DMINT, ATOMICALS_ACTIVATION_HEIGHT_COMMITZ, and ATOMICALS_ACTIVATION_HEIGHT_DENSITY parameters use the bitcointestnet network parameters, resulting in the init-dft transaction being unable to index. It is recommended to change them to 1, 2, 3, 4.
` # ATOMICALS_ACTIVATION_HEIGHT = 2505238
# ATOMICALS_ACTIVATION_HEIGHT_DMINT = 2540296
# ATOMICALS_ACTIVATION_HEIGHT_COMMITZ = 2543936
# ATOMICALS_ACTIVATION_HEIGHT_DENSITY = 2572729

ATOMICALS_ACTIVATION_HEIGHT = 1
ATOMICALS_ACTIVATION_HEIGHT_DMINT = 2
ATOMICALS_ACTIVATION_HEIGHT_COMMITZ = 3 
ATOMICALS_ACTIVATION_HEIGHT_DENSITY = 4`

Code Format

Is it necessary to format the code?
We forked your code and formatted it. After the new tag was generated, there were many conflicts when we merged it.

@atomicals

wrong atomicals block hash

During our process of running the indexer, we have recently encountered some issues with mismatched atomicals block hashes

The phenomenon is as follows:

In the past two days, I have been running data from scratch. In version 1.3.7.5, starting from a certain height, the atomic block hash does not match with other nodes, nor does it match with third parties,

The other nodes were already running before.

The specific blocks and hash are as follows:

block height: 826309

tx hash: 14c04cda9d6ea6e84e0143871c9a8e495be346a428091555b6af72b1cb1d2a90

error hash:

        "826301": "d21c6a86c4c87318d4559cfc98400dcc0e4e68ed617b54d59c63c61d37f0aea3",
        "826302": "bdf18e69b983d1b07e299d53ddbeefbd64766719751072ff15b5af6f5afe3069",
        "826303": "ff4f604f9dbc3d507a257044dc7d47b7185dd38a4c5e6ec6edfff864c6abed94",
        "826304": "832a3a89d21aaf532130e005657c58374e8ec7ec0b9f3c28d3370edb89391915",
        "826305": "c566edd568c532e7f28b7366eed3697202acdb25802765af1dcef85fd0df9905",
        "826306": "4de7739d67d9cfaf65e6b68f470e1c74b252bc9f92c37ec49c4fead5e1fac8c1",
        "826307": "fc89e4f23463ce31ebe4ff21deaafad941d22117b7e11d3392e890ca49b097ed",
        "826308": "91c084528b61d722e9869d49db3022c2936090a55a3f6fc46eab43d430d7a6c5",
        **"826309": "6510639a449461bc0fd43c741cdc5b5f1cfab65a1c3bd7c0db77bc9dc5855584",**
        "826310": "6959756a4106bb719ac942255b16bd491b9724d05ab272c0a7b0aaf27650eb8a",
        "826311": "b074f0a42b966b7ad7c42b47693ee20ba876f94bc0b065299333b8857b5e27b6",
        "826312": "50061ffef80d9c80980dbd82a8544f71d53469fa50f19a10f25f6ee413c46dff",
        "826313": "ccc9688b86f1437aaf9f17e9b60bcae1f4a0b10a12cb891155b9ae60326e4632",
        "826314": "2e065ce92a71ccbe5c527dd78d05f55a5c5a2caa8e1d8d850afa72b5f97b3327",
        "826315": "0e206b8052cec401b7f207c72c63cda9bd2dd9a14d85ec3f466518bf40772349",

normal:

"826304": "832a3a89d21aaf532130e005657c58374e8ec7ec0b9f3c28d3370edb89391915",
"826305": "c566edd568c532e7f28b7366eed3697202acdb25802765af1dcef85fd0df9905",
"826306": "4de7739d67d9cfaf65e6b68f470e1c74b252bc9f92c37ec49c4fead5e1fac8c1",
"826307": "fc89e4f23463ce31ebe4ff21deaafad941d22117b7e11d3392e890ca49b097ed",
"826308": "91c084528b61d722e9869d49db3022c2936090a55a3f6fc46eab43d430d7a6c5",
**"826309": "6cf66e08c81fbca2639fd624a6bb5c5ead2bf177c730c2b19527eb02e7697bb4",**
"826310": "ec5615f9a80ac9b259559b71d65f778763528f8093f3c3b0a6b77db50f1c2228",
"826311": "71f8af8aeea8860073ffd2f5955d35d586d865d9b1c2ffdaa62ed2090fae7018",
"826312": "c70a7bc0722d6faccbd28218efb61211a98023cafbf91b4083df4483845d3447",
"826313": "b03a3cb32156ffb2835cbe5bbfb2b8347829c55eb2ef4f076b4438fc7abeed2e",
"826314": "11b13a1acf13846487055d16905bbf2718f09993e93db40b8f050c9d34956016",
"826315": "deec42e1f9744a6eec440296e479962b71720870b2bd05bcc60faa3a391072ca",

normal:
6cf66e08c81fbca2639fd624a6bb5c5ead2bf177c730c2b19527eb02e7697bb4
error:
6510639a449461bc0fd43c741cdc5b5f1cfab65a1c3bd7c0db77bc9dc5855584

txhash log:

1848961-atomicals-electrumx-server  | INFO:BlockProcessor:get_expected_dmitem_payment_info: not found_parent_mint_info found_atomical_id_for_potential_dmitem=b'\xf7\x89#\xc8\xfc(\x03(\x98\xef\xe7\xaf\x99+\xcf\xe2\xa7A\xcaz,\x86p\xfe\x9f\xa8\xe6\x0e\xa6j\x88\x88\x00\x00\x00\x00'
1848962:atomicals-electrumx-server  | WARNING:BlockProcessor:create_or_delete_dmitem_payment_output_if_valid: 14c04cda9d6ea6e84e0143871c9a8e495be346a428091555b6af72b1cb1d2a90 NOT MATCHED PRICE - create_or_delete_dmitem_payment_output_if_valid found_atomical_id_for_potential_dmitem 88886aa60ee6a89ffe70862c7aca41a7e2cf2b99afe7ef98280328fcc82389f7i0

[Notice] 1.3.8.x need reindex

tx:

https://mempool.space/zh/tx/6de82a789040954655faf66c854287519546d4302a43eb8e1f122f37173057a2

https://ep.atomicals.xyz/proxy/blockchain.atomicals.get_block_txs?params=[820551]&pretty

"result": [
"1af8163a112f0c03ab3302181af1dcdf93d3608a0108fffe74948a2dfd004fc5",
"7590eedcc4327d951ab6901be8355931e32cfb26755079fe90fd6d94b04cb15e",
"6de82a789040954655faf66c854287519546d4302a43eb8e1f122f37173057a2",
"1e2e3a7b981f0ac7771f6e72f760510480a7b6800bdffd48305b83cd86fe22db",
"37138fc4c3187ecdfad7764fcd050842606227d4b4ad489ad54f1141d3c327de",

image

https://ep.atomicalmarket.com/proxy/blockchain.atomicals.get_block_txs?params=[820551]&pretty
https://ep.nextdao.xyz/proxy/blockchain.atomicals.get_block_txs?params=[820551]&pretty

"result": [
"1af8163a112f0c03ab3302181af1dcdf93d3608a0108fffe74948a2dfd004fc5",
"7590eedcc4327d951ab6901be8355931e32cfb26755079fe90fd6d94b04cb15e",
"1e2e3a7b981f0ac7771f6e72f760510480a7b6800bdffd48305b83cd86fe22db",
"37138fc4c3187ecdfad7764fcd050842606227d4b4ad489ad54f1141d3c327de",

After version 1.3.8.x, I believe there has been a change in the logic of b'dmpay, which resulted in this situation being recognized normally afterwards. The specific code is as follows:

            # Check if there were any payments for dmitems in tx
                if self.create_or_delete_subname_payment_output_if_valid(tx_hash, tx, tx_num, height, atomicals_operations_found_at_inputs, atomicals_spent_at_inputs,  b'dmpay', self.dmpay_data_cache, self.get_expected_dmitem_payment_info, False):
                    self.logger.debug(f'advance_txs: found valid dmitem payment create_or_delete_subname_payment_output_if_valid {hash_to_hex_str(tx_hash)}')
                    has_at_least_one_valid_atomicals_operation = True

The previous version should not have recognized this transaction.

The other issue:

#90

too many mints detected in db (1.3.8.4)

using the latest 1.3.8.4 release. After running python3 electrumx_server, the program terminated due the following error

line 2595, in create_or_delete_decentralized_mint_output
raise IndexError(f'create_or_delete_decentralized_mint_outputs: Fatal IndexError decentralized_mints > max_mints for {location_id_bytes_to_compact(dmt_mint_atomical_id)}. Too many mints detected in db')
IndexError: create_or_delete_decentralized_mint_outputs: Fatal IndexError decentralized_mints > max_mints for 0d5e64d42e4520e17bc204fe25662b0cf2d2a65c350766d6171facaadccb371bi0. Too many mints detected in db

minted realm doesn't count in?

hey guys,
I just mint a realm "abox" a few hours ago with this
yarn cli mint-realm abox --satsbyte 51
I can see every thing is perfect as followed:

Bitwork matches commit txid!  11092e5e1e58723f5230334725fab07f4f5127e95b1981c242bce98a37ddf258 @ time: 1702436383
rawtx 01000000000101c86f4bb4b6cf1ac8a2de86d83f2c73c4cf438c14ee0e719ac239f868df9918160100000000ffffffff012521000000000000225120056923ab1bc6a2b9f1b0c6d1d1f4b222e4fce002309bf0271a8ae1454dc48b2a01407733745b735e2c77894831b0958a820f93b4425b75459b30f474db6cc36fae4e561bf6373a3a0e8e0c7e33085a4afe858a584186e1efcc7d4d678ceaa11ac25600000000
Success sent tx:  11092e5e1e58723f5230334725fab07f4f5127e95b1981c242bce98a37ddf258
...
...
...
...
...
Detected Funding UTXO (11092e5e1e58723f5230334725fab07f4f5127e95b1981c242bce98a37ddf258:0) with value 8485 for funding...

Broadcasting tx... f44ef1e4412f74bd5def95b8dd0945981426980df52fac2ea2a2fd396be922b0
rawtx 0100000000010158f2dd378ae9bc42c281195be927514f7fb0fa25473330523f72581e5e2e09110000000000ffffffff01e80300000000000022512066910a41c5079f535bd8aaa30c408d7fbc29123d190f9ba4b7a3ee40bed908c20340a6f6c9adac8262f0edb6963800033703f8f59b44756d3009abc841ba85aba1e9f231929fb76fb5eb7e964c62d169e629727b9c9161d9d0b1a89edadf8cf8fa4c6c20726a5db89d55d3ac7548ba84a39dc14d48857a43145b3d65b8b0683f89792582ac00630461746f6d036e66743da16461726773a46474696d651a65791e1f656e6f6e63651a00050aeb68626974776f726b6364313130396d726571756573745f7265616c6d6461626f786821c0726a5db89d55d3ac7548ba84a39dc14d48857a43145b3d65b8b0683f8979258200000000
Success sent tx:  f44ef1e4412f74bd5def95b8dd0945981426980df52fac2ea2a2fd396be922b0
{
  "success": true,
  "data": {
    "commitTxid": "11092e5e1e58723f5230334725fab07f4f5127e95b1981c242bce98a37ddf258",
    "revealTxid": "f44ef1e4412f74bd5def95b8dd0945981426980df52fac2ea2a2fd396be922b0",
    "atomicalId": "11092e5e1e58723f5230334725fab07f4f5127e95b1981c242bce98a37ddf258i0"
  }
}

But when my txs is confirmed I still can't see "abox" in my account.
When I check https://realm.name/_search, it says "Realm +abox is still available to claim!"
Why?

api unavailable

I started the node, but how do I use the api calls
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:60022 0.0.0.0:* LISTEN

curl http://127.0.0.1:8000/health | jq
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (1) Received HTTP/0.9 when not allowed

why error on broadcast: too long mempool chain

data: {
  success: false,
  code: 1,
  message: 'the transaction was rejected by network rules.\n' +
    '\n' +
    'too-long-mempool-chain, too many descendants for tx aabbccafb8ef1196a5acda9447eb006180da169b4d2c5a3e42e9d0ba5c427e02 [limit: 25]\n' +
    '[010000000001016903a3d047b7bdcaf32e325591a3afd42554ce5e817290eeaca4b883cfccbbaa010000000048cf35f302ce810000000000002251205eee7699f1178895007732da1057ca234eccc5a84f7f68e48e409859996219b84a55010000000000225120d57cbafdc296699d0e839cae23c69ccf32cae3a3c95f2dea9357e14a076c15f00140ffb81b46ad1258a96ed7d10a1ca18bb4175fb0a0baa2d5d4f8163c11c78bb42b03dc6bd517c87a1c47f62bc041c79a1c1dfcf8a915dbc2b8c7a8b81062ce244d00000000]'
}

when release v1.3.4

I saw the v1.3.3 release said:

Note: Must upgrade immediately to v1.3.4 to fix a split handling error.

Found a branch named v1.3.4, is it? Found the v1.3.5 branch too.😄

[Improvement]Log file can not be rotate daily without restarting

After running server for long time ,log file is large, we want to rotate log files daily by using logrotate.
But for now , the code only support logging.FileHandler
https://github.com/atomicals/atomicals-electrumx/blob/master/electrumx_server#L29, so we need to restart server after rotate the log file.

Can we use WatchedFileHandler ? or can we add a choice to support WatchedFileHandler?

If add support to rotate log directly RotatingFileHandler would be more nicer.

Assertion in advance block thread - Blueprint merge introduce bug

File "/home/bitcoin/atomicals-electrumx/electrumx/server/block_processor.py", line 498, in advance_blocks
undo_info, atomicals_undo_info = self.advance_txs(block.transactions, is_unspendable, block.header, height)
File "/home/bitcoin/atomicals-electrumx/electrumx/server/block_processor.py", line 2676, in advance_txs
blueprint_builder = self.color_atomicals_outputs(atomicals_operations_found_at_inputs, atomicals_spent_at_inputs, tx, tx_hash, tx_num, height)
File "/home/bitcoin/atomicals-electrumx/electrumx/server/block_processor.py", line 1626, in color_atomicals_outputs
blueprint_builder = AtomicalsTransferBlueprintBuilder(self.logger, atomicals_spent_at_inputs, operations_found_at_inputs, tx_hash, tx, self.get_atomicals_id_mint_info, self.is_dmint_activated(height))
File "/home/bitcoin/atomicals-electrumx/electrumx/lib/atomicals_blueprint_builder.py", line 191, in init
nft_output_blueprint, ft_output_blueprint = AtomicalsTransferBlueprintBuilder.calculate_output_blueprint(self.get_atomicals_id_mint_info, self.tx, self.nft_atomicals, self.ft_atomicals, self.atomicals_spent_at_inputs, self.operations_found_at_inputs, self.sort_fifo)
File "/home/bitcoin/atomicals-electrumx/electrumx/lib/atomicals_blueprint_builder.py", line 395, in calculate_output_blueprint
nft_blueprint = AtomicalsTransferBlueprintBuilder.calculate_output_blueprint_nfts(get_atomicals_id_mint_info, tx, nft_atomicals, atomicals_spent_at_inputs, operations_found_at_inputs, sort_fifo)
File "/home/bitcoin/atomicals-electrumx/electrumx/lib/atomicals_blueprint_builder.py", line 313, in calculate_output_blueprint_nfts
nft_map = AtomicalsTransferBlueprintBuilder.build_nft_input_idx_to_atomical_map(get_atomicals_id_mint_info, atomicals_spent_at_inputs)
File "/home/bitcoin/atomicals-electrumx/electrumx/lib/atomicals_blueprint_builder.py", line 250, in build_nft_input_idx_to_atomical_map
assert(exponent == 0)
AssertionError

Wrong NFT / FT balance

version: 1.3.7.5

https://ep.atomicals.xyz/proxy/blockchain.atomicals.get_nft_balances_scripthash?params=[%22%22]&pretty

{
    "id1":{
        "id":"",
        "confirmed":2000,
        "bitwork":{
            "bitworkc":"ab4172",
            "bitworkr":null
        }
    },
    "id2":{
        "id":"",
        "confirmed":2000,
        "subtype":"dmitem",
        "dmitem":"",
        "request_dmitem":"",
        "parent_container":"",
        "parent_container_name":"",
        "bitwork":{
            "bitworkc":"b1d0",
            "bitworkr":null
        }
    },
    "id3":{
        "id":"",
        "confirmed":2000
    }
}

https://ep.atomicals.xyz/proxy/blockchain.atomicals.get_ft_balances_scripthash?params=[%22%22]&pretty

{
    "dc0038f5313f5fbbcfc51aaab7370e43507bdc661760f55ba634aefb5ad15c57i0":{
        "id":"dc0038f5313f5fbbcfc51aaab7370e43507bdc661760f55ba634aefb5ad15c57i0",
        "ticker":"dragon",
        "confirmed":2000
    },
    "9125f03bcf9325f6071762b9aee00b461a0b43ed157c336e2e89e07f47ea6f66i0":{
        "id":"9125f03bcf9325f6071762b9aee00b461a0b43ed157c336e2e89e07f47ea6f66i0",
        "ticker":"quark",
        "confirmed":4000
    }
}

https://ep.atomicals.xyz/proxy/blockchain.atomicals.listscripthash?params=[%22%22]&pretty

The error is in the following code:

https://github.com/atomicals/atomicals-electrumx/blob/master/electrumx/server/session.py#L2116

 for returned_utxo in returned_utxos: 
            for atomical_id_entry_compact in returned_utxo['atomicals']:
                atomical_id_basic_info = atomicals_id_map[atomical_id_entry_compact]
                atomical_id_compact = atomical_id_basic_info['atomical_id']
                assert(atomical_id_compact == atomical_id_entry_compact)
                if atomical_id_basic_info.get('$ticker'):
                    if return_struct['balances'].get(atomical_id_compact) == None:
                        return_struct['balances'][atomical_id_compact] = {}
                        return_struct['balances'][atomical_id_compact]['id'] = atomical_id_compact
                        return_struct['balances'][atomical_id_compact]['ticker'] = atomical_id_basic_info.get('$ticker')
                        return_struct['balances'][atomical_id_compact]['confirmed'] = 0
                    if returned_utxo['height'] > 0:
                        return_struct['balances'][atomical_id_compact]['confirmed'] += returned_utxo['value']

https://github.com/atomicals/atomicals-electrumx/blob/master/electrumx/server/session.py#L2148

        for utxo in utxos:
            if (utxo.tx_hash, utxo.tx_pos) in spends:
                continue
            atomicals = self.db.get_atomicals_by_utxo(utxo, True)
            atomicals_basic_infos = []
            for atomical_id in atomicals: 
                # This call is efficient in that it's cached underneath
                # For now we only show the atomical id because it can always be fetched separately and it will be more efficient
                atomical_basic_info = await self.session_mgr.bp.get_base_mint_info_rpc_format_by_atomical_id(atomical_id) 
                atomical_id_compact = location_id_bytes_to_compact(atomical_id)
                atomicals_id_map[atomical_id_compact] = atomical_basic_info
                atomicals_basic_infos.append(atomical_id_compact)
                if len(atomicals) > 0:
                    returned_utxos.append({'txid': hash_to_hex_str(utxo.tx_hash),
                    'index': utxo.tx_pos,
                    'vout': utxo.tx_pos,
                    'height': utxo.height, 
                    'value': utxo.value,
                    'atomicals': atomicals_basic_infos})

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.