Skip to content

Commit f26db80

Browse files
authored
Merge pull request #2506 from opentensor/release/8.4.3
Release/8.4.3
2 parents 6d88b63 + b7c8bdf commit f26db80

File tree

15 files changed

+97
-81
lines changed

15 files changed

+97
-81
lines changed

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# Changelog
22

3+
## 8.4.3 /2024-12-02
4+
5+
## What's Changed
6+
7+
* Fix logging config parsing by @ibraheem-opentensor in https://github.com/opentensor/bittensor/pull/2500
8+
* Improve `submit_extrinsic` util by @thewhaleking in https://github.com/opentensor/bittensor/pull/2502
9+
* Backmerge master to staging for 843 by @ibraheem-opentensor in https://github.com/opentensor/bittensor/pull/2505
10+
* WS ensure_connected socket catch by @thewhaleking in https://github.com/opentensor/bittensor/pull/2507
11+
12+
**Full Changelog**: https://github.com/opentensor/bittensor/compare/v8.4.2...v8.4.3
13+
314
## 8.4.2 /2024-11-28
415

516
## What's Changed

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
8.4.2
1+
8.4.3

bittensor/core/extrinsics/commit_weights.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def do_commit_weights(
7171
keypair=wallet.hotkey,
7272
)
7373
response = submit_extrinsic(
74-
substrate=self.substrate,
74+
subtensor=self,
7575
extrinsic=extrinsic,
7676
wait_for_inclusion=wait_for_inclusion,
7777
wait_for_finalization=wait_for_finalization,
@@ -184,7 +184,7 @@ def do_reveal_weights(
184184
keypair=wallet.hotkey,
185185
)
186186
response = submit_extrinsic(
187-
substrate=self.substrate,
187+
subtensor=self,
188188
extrinsic=extrinsic,
189189
wait_for_inclusion=wait_for_inclusion,
190190
wait_for_finalization=wait_for_finalization,

bittensor/core/extrinsics/registration.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def _do_pow_register(
6666
)
6767
extrinsic = self.substrate.create_signed_extrinsic(call=call, keypair=wallet.hotkey)
6868
response = submit_extrinsic(
69-
substrate=self.substrate,
69+
self,
7070
extrinsic=extrinsic,
7171
wait_for_inclusion=wait_for_inclusion,
7272
wait_for_finalization=wait_for_finalization,
@@ -297,7 +297,7 @@ def _do_burned_register(
297297
call=call, keypair=wallet.coldkey
298298
)
299299
response = submit_extrinsic(
300-
self.substrate,
300+
self,
301301
extrinsic,
302302
wait_for_inclusion=wait_for_inclusion,
303303
wait_for_finalization=wait_for_finalization,

bittensor/core/extrinsics/root.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def _do_root_register(
3333
call=call, keypair=wallet.coldkey
3434
)
3535
response = submit_extrinsic(
36-
self.substrate,
36+
self,
3737
extrinsic,
3838
wait_for_inclusion=wait_for_inclusion,
3939
wait_for_finalization=wait_for_finalization,
@@ -159,7 +159,7 @@ def _do_set_root_weights(
159159
era={"period": period},
160160
)
161161
response = submit_extrinsic(
162-
self.substrate,
162+
self,
163163
extrinsic,
164164
wait_for_inclusion=wait_for_inclusion,
165165
wait_for_finalization=wait_for_finalization,

bittensor/core/extrinsics/serving.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ def do_serve_axon(
7575
)
7676
extrinsic = self.substrate.create_signed_extrinsic(call=call, keypair=wallet.hotkey)
7777
response = submit_extrinsic(
78-
substrate=self.substrate,
78+
self,
7979
extrinsic=extrinsic,
8080
wait_for_inclusion=wait_for_inclusion,
8181
wait_for_finalization=wait_for_finalization,
@@ -289,7 +289,7 @@ def publish_metadata(
289289

290290
extrinsic = substrate.create_signed_extrinsic(call=call, keypair=wallet.hotkey)
291291
response = submit_extrinsic(
292-
substrate,
292+
self,
293293
extrinsic,
294294
wait_for_inclusion=wait_for_inclusion,
295295
wait_for_finalization=wait_for_finalization,

bittensor/core/extrinsics/set_weights.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ def do_set_weights(
8383
era={"period": period},
8484
)
8585
response = submit_extrinsic(
86-
substrate=self.substrate,
86+
self,
8787
extrinsic=extrinsic,
8888
wait_for_inclusion=wait_for_inclusion,
8989
wait_for_finalization=wait_for_finalization,

bittensor/core/extrinsics/transfer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def do_transfer(
7070
call=call, keypair=wallet.coldkey
7171
)
7272
response = submit_extrinsic(
73-
substrate=self.substrate,
73+
self,
7474
extrinsic=extrinsic,
7575
wait_for_inclusion=wait_for_inclusion,
7676
wait_for_finalization=wait_for_finalization,

bittensor/core/extrinsics/utils.py

Lines changed: 14 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@
55
import threading
66
from typing import TYPE_CHECKING
77

8-
from substrateinterface.exceptions import SubstrateRequestException, ExtrinsicNotFound
8+
from substrateinterface.exceptions import SubstrateRequestException
99

1010
from bittensor.utils.btlogging import logging
1111
from bittensor.utils import format_error_message
1212

1313
if TYPE_CHECKING:
14-
from substrateinterface import SubstrateInterface, ExtrinsicReceipt
14+
from bittensor.core.subtensor import Subtensor
15+
from substrateinterface import ExtrinsicReceipt
1516
from scalecodec.types import GenericExtrinsic
1617

1718
try:
@@ -26,7 +27,7 @@
2627

2728

2829
def submit_extrinsic(
29-
substrate: "SubstrateInterface",
30+
subtensor: "Subtensor",
3031
extrinsic: "GenericExtrinsic",
3132
wait_for_inclusion: bool,
3233
wait_for_finalization: bool,
@@ -39,7 +40,7 @@ def submit_extrinsic(
3940
it logs the error and re-raises the exception.
4041
4142
Args:
42-
substrate (substrateinterface.SubstrateInterface): The substrate interface instance used to interact with the blockchain.
43+
subtensor: The Subtensor instance used to interact with the blockchain.
4344
extrinsic (scalecodec.types.GenericExtrinsic): The extrinsic to be submitted to the blockchain.
4445
wait_for_inclusion (bool): Whether to wait for the extrinsic to be included in a block.
4546
wait_for_finalization (bool): Whether to wait for the extrinsic to be finalized on the blockchain.
@@ -51,20 +52,22 @@ def submit_extrinsic(
5152
SubstrateRequestException: If the submission of the extrinsic fails, the error is logged and re-raised.
5253
"""
5354
extrinsic_hash = extrinsic.extrinsic_hash
54-
starting_block = substrate.get_block()
55+
starting_block = subtensor.substrate.get_block()
5556

5657
timeout = EXTRINSIC_SUBMISSION_TIMEOUT
5758
event = threading.Event()
5859

5960
def submit():
6061
try:
61-
response_ = substrate.submit_extrinsic(
62+
response_ = subtensor.substrate.submit_extrinsic(
6263
extrinsic,
6364
wait_for_inclusion=wait_for_inclusion,
6465
wait_for_finalization=wait_for_finalization,
6566
)
6667
except SubstrateRequestException as e:
67-
logging.error(format_error_message(e.args[0], substrate=substrate))
68+
logging.error(
69+
format_error_message(e.args[0], substrate=subtensor.substrate)
70+
)
6871
# Re-raise the exception for retrying of the extrinsic call. If we remove the retry logic,
6972
# the raise will need to be removed.
7073
raise
@@ -76,28 +79,10 @@ def submit():
7679
response = None
7780
future = executor.submit(submit)
7881
if not event.wait(timeout):
79-
logging.error("Timed out waiting for extrinsic submission.")
80-
after_timeout_block = substrate.get_block()
81-
82-
for block_num in range(
83-
starting_block["header"]["number"],
84-
after_timeout_block["header"]["number"] + 1,
85-
):
86-
block_hash = substrate.get_block_hash(block_num)
87-
try:
88-
response = substrate.retrieve_extrinsic_by_hash(
89-
block_hash, f"0x{extrinsic_hash.hex()}"
90-
)
91-
except ExtrinsicNotFound:
92-
continue
93-
if response:
94-
break
95-
if response is None:
96-
logging.error(
97-
f"Extrinsic '0x{extrinsic_hash.hex()}' not submitted. "
98-
f"Initially attempted to submit at block {starting_block['header']['number']}."
99-
)
100-
raise SubstrateRequestException
82+
logging.error("Timed out waiting for extrinsic submission. Reconnecting.")
83+
# force reconnection of the websocket
84+
subtensor._get_substrate(force=True)
85+
raise SubstrateRequestException
10186

10287
else:
10388
response = future.result()

bittensor/core/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
1616
# DEALINGS IN THE SOFTWARE.
1717

18-
__version__ = "8.4.2"
18+
__version__ = "8.4.3"
1919

2020
import os
2121
import re

0 commit comments

Comments
 (0)