Skip to content

Commit 9076e41

Browse files
committed
Hashing and using the hash as the ID was causing a massive slowdown. This remedies it by using integers.
1 parent 26b64ac commit 9076e41

File tree

3 files changed

+9
-9
lines changed

3 files changed

+9
-9
lines changed

async_substrate_interface/async_substrate.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
SubstrateMixin,
4949
Preprocessed,
5050
)
51-
from async_substrate_interface.utils import hex_to_bytes, json, generate_unique_id
51+
from async_substrate_interface.utils import hex_to_bytes, json, get_next_id
5252
from async_substrate_interface.utils.decoding import (
5353
_determine_if_old_runtime_call,
5454
_bt_decode_to_dict_or_list,
@@ -620,7 +620,7 @@ async def send(self, payload: dict) -> int:
620620
id: the internal ID of the request (incremented int)
621621
"""
622622
# async with self._lock:
623-
original_id = generate_unique_id(json.dumps(payload))
623+
original_id = get_next_id()
624624
# self._open_subscriptions += 1
625625
try:
626626
await self.ws.send(json.dumps({**payload, **{"id": original_id}}))

async_substrate_interface/sync_substrate.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
Preprocessed,
3131
ScaleObj,
3232
)
33-
from async_substrate_interface.utils import hex_to_bytes, json, generate_unique_id
33+
from async_substrate_interface.utils import hex_to_bytes, json, get_next_id
3434
from async_substrate_interface.utils.decoding import (
3535
_determine_if_old_runtime_call,
3636
_bt_decode_to_dict_or_list,
@@ -1688,8 +1688,7 @@ def _make_rpc_request(
16881688

16891689
ws = self.connect(init=False if attempt == 1 else True)
16901690
for payload in payloads:
1691-
payload_str = json.dumps(payload["payload"])
1692-
item_id = generate_unique_id(payload_str)
1691+
item_id = get_next_id()
16931692
ws.send(json.dumps({**payload["payload"], **{"id": item_id}}))
16941693
request_manager.add_request(item_id, payload["id"])
16951694

async_substrate_interface/utils/__init__.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import importlib
2-
import hashlib
2+
from itertools import cycle
33

4+
id_cycle = cycle(range(1, 999))
45

5-
def generate_unique_id(item: str, length=10):
6-
hashed_value = hashlib.sha256(item.encode()).hexdigest()
7-
return hashed_value[:length]
6+
7+
def get_next_id():
8+
return next(id_cycle)
89

910

1011
def hex_to_bytes(hex_str: str) -> bytes:

0 commit comments

Comments
 (0)