Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/8.3.0rc3 #2390

Open
wants to merge 69 commits into
base: master
Choose a base branch
from
Open

Release/8.3.0rc3 #2390

wants to merge 69 commits into from

Conversation

ibraheem-opentensor
Copy link
Contributor

8.3.0rc3 /2024-11-05

What's Changed

thewhaleking and others added 30 commits October 16, 2024 17:38
Expands the type registry to include all the available options
Introducing a new subprocess for the commit-reveal mechanism alongside necessary utility functions. Also added end-to-end tests to ensure proper functionality of the new subprocess feature.
Replace hardcoded log file paths with constants for stdout and stderr log files. This improves code readability and maintainability by centralizing the log file paths. Removed redundant code that reads and prints the log files.
This commit introduces a check for whether commit-reveal is enabled before setting weights. If enabled, weights will be committed with a generated salt; otherwise, weights are set directly. Additionally, this commit adjusts the sleep interval for the subprocess and removes an unnecessary comment.
…th tests (#2352)

* add `bittensor.core.subtensor.Subtensor.register`, `bittensor.core.subtensor.Subtensor.difficulty` and related staff with tests

* remove commented code

* update `_terminate_workers_and_wait_for_exit` by review
…le` and related extrinsics (#2359)

* added to Subtensor: `burned_register`, `get_subnet_burn_cost`, `recycle` and related extrinsics

* formatter

* Update bittensor/core/extrinsics/registration.py

Co-authored-by: Benjamin Himes <[email protected]>

---------

Co-authored-by: Benjamin Himes <[email protected]>
Added an option for starting the commit reveal subprocess during the Subtensor initialization. Enhanced subprocess management and logging details to capture wallet and commit information more clearly. Streamlined error handling in set_weights module.
Enhanced the commit-reveal mechanism by adding a subprocess with sleep interval control, class-based handling in commit_reveal.py, and improved reveal checking. Adjusted tests and utils accordingly to ensure functionality and performance consistency.
Introduce a method to calculate the number of blocks remaining until the next epoch for a specific subnet. This addition aids in network governance and operational planning by providing essential timing information within the Bittensor blockchain.
Added the version_key parameter to function signatures across multiple files for better version tracking. Updated docstrings for enhanced clarity and consistency, improving code readability and maintainability.
* add `get_delegate_by_hotkey`, update `DelegateInfo` in chain data

* add `root_register_extrinsic`, `set_root_weights_extrinsic` and related stuff

* add `Subtensor.get_all_subnets_info` method and related stuff

* add `Subtensor.get_delegate_take` method and tests

* ruff

* remove unused import
Introduced batch processing for weight reveal operations in the Bittensor network. This includes a new method `batch_reveal_weights` and necessary changes to accommodate batch transactions, ensuring efficiency and scalability. Additionally, the commit/reveal intervals were replaced with periods for more precise control.
Introduce a function to verify local reveal list consistency with the Subtensor chain every 100 iterations. Refactor `check_reveal` and `reveal_candidates` to improve clarity and extract logic for retrieving all commits. Update docstrings and handle logs for better readability and debugging.
Subprocess initialization is now disabled by default. Reorganized socket server code with ThreadPoolExecutor and improved error handling. Removed redundant return type annotations and added docstrings.
Renamed subprocess utility scripts from `/scripts` to `/bittensor/utils`. Updated import paths and refactored handling of subprocess logging by adding dynamic PID log management. Adjusted tests accordingly to reflect these changes.
Rearranged calls to 'convert_weights_and_uids_for_emit' to align with the logic flow across test_reveal_weights.py and set_weights.py. This ensures 'convert_weights_and_uids_for_emit' is invoked only in commit-reveal scenarios, enhancing code clarity and maintaining intended functionality.
Moved weight conversion and normalization steps into the beginning of the `set_weights` function, ensuring consistency between weight submission and commit operations. This update affects both the `set_weights` logic and its corresponding end-to-end tests.
Introduces a test to validate the commit-reveal mechanism for weights when the number of commits exceeds the limit. The test sets up a subnet, registers a neuron, and verifies behavior when attempting more than the allowed number of weight commits.
Added logic to conditionally start the commit reveal subprocess based on existing commits and introduced an expire block to manage commit object lifecycle. Updated tests and utilities to reflect these changes, ensuring proper subprocess and database handling.
Added 'max_retries' parameter to set_weights to handle retries. Updated commit log in commit_reveal to include commit_block. Also removed unnecessary part of the check_reveal function docstring for clarity.
Set `wait_for_inclusion` to `True` for weight commits, ensuring inclusion before proceeding. Added debug prints for commit hashes and blocks in the `subtensor` and `commit_reveal` modules to assist with troubleshooting and monitoring.
… subtensor + add revealed flag

This commit adjusts the commit weights process by ensuring the commit_reveal subprocess starts appropriately, checking for its readiness, and syncing commit data. It also simplifies the test cases and enhances the subprocess logging mechanism.
Refactor the commit reveal process to only include candidates with a reveal block less than or equal to the current block. Also, remove unnecessary logging of received requests to improve code readability and reduce noise.
…alignment with commits

Reduced the max_retries parameter to 1 in multiple methods to expedite failure recognition. Refactored inline substrate call compositions to use a more functional approach by passing the composed extrinsic directly into the retry wrapper, streamlining the code and improving readability.
…on check to subprocess.

Updated references from 'commit_reveal_periods' to 'commit_reveal_weights_interval' across multiple files for consistency. Also casted float values explicitly for consistency in data types.
Corrected a typo from `conn.committed()` to `conn.commit()` in `subprocess_utils.py` to ensure proper database commit operations. Added a newline at the end of the file for consistency.
roman-opentensor and others added 23 commits November 4, 2024 16:49
* create the copy of `bittensor/core/subtensor.py` with async suffix.

* add async_substrate_interface.py

* update `bittensor.utils.format_error_message` to be compatible with async_subtensor

* update `bittensor.core.chain_data`

* update `bittensor.core.async_subtensor.py` from btcli

* add DelegatesDetails for async_subtensor

* add validate_chain_endpoint for async_subtensor

* update async_substrate_interface.py by Optional where acceptable and doesn't brake logic

* improve settings for async_subtensor.py

* fix format errors

* fix annotations

* add  async_subtensor.py with adaptation to SDK (all methods checked and work well)

* update settings.py to be compatible with async_extrinsics

* add async_transfer extrinsic

* add async_registration extrinsic

* add async_root extrinsics

* ruff

* Update bittensor/core/extrinsics/async_transfer.py

Co-authored-by: Benjamin Himes <[email protected]>

* fix comments review

* avoid non-direct import within inner code (fix circular import)

* del unused code

* update AsyncSubtensor (add methods, fix tests)

* Update bittensor/core/async_subtensor.py

Co-authored-by: Paweł Polewicz <[email protected]>

* fix await properties and remove double format_error_message call

* fix review comments

* improve docstrings

* fix

---------

Co-authored-by: Benjamin Himes <[email protected]>
Co-authored-by: Paweł Polewicz <[email protected]>
…prompt-from-sdk

# Conflicts:
#	bittensor/core/async_subtensor.py
#	bittensor/core/extrinsics/async_root.py
Refactored the commit and reveal weight functions to simplify code, eliminate retry loops, and remove user prompts. The subprocess handling has been improved for better subprocess control, and utility functions have been moved to a new module.
Refactored the commit and reveal weight functions to simplify code, eliminate retry loops, and remove user prompts. The subprocess handling has been improved for better subprocess control, and utility functions have been moved to a new module.
# Conflicts:
#	bittensor/core/extrinsics/commit_weights.py
#	bittensor/core/extrinsics/set_weights.py
#	bittensor/core/subtensor.py
#	tests/e2e_tests/test_commit_weights.py
#	tests/unit_tests/test_subtensor.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants