Skip to content

feat!: add vn exit UTXO#6955

Merged
sdbondi merged 5 commits intotari-project:feature-dan2from
sdbondi:vn-exit
Apr 22, 2025
Merged

feat!: add vn exit UTXO#6955
sdbondi merged 5 commits intotari-project:feature-dan2from
sdbondi:vn-exit

Conversation

@sdbondi
Copy link
Copy Markdown
Member

@sdbondi sdbondi commented Apr 16, 2025

Description

feat!: add vn exit UTXO (base node and wallet)

Motivation and Context

Allows validator nodes to exit voluntarily in a subsequent epoch. Adds a new consensus constant vn_registration_max_exits_per_epoch, which limits the number of exits queued per epoch e.g. if epoch 15 has vn_registration_max_exits_per_epoch exits and epoch 16 has vn_registration_max_exits_per_epoch - 1 exits, then the validator will exit at epoch 16.

How Has This Been Tested?

Unit tests - TODO: cucumbers and manual testing once integrated into the L2 code

Ref tari-project/tari-ootle#1398

What process can a PR reviewer use to test or verify this change?

Breaking Changes

  • None
  • Requires data directory on base node to be deleted
  • Requires hard fork
  • Other - Please specify

BREAKING CHANGE: Additional sidechain output type variant (hard fork). Incompatible changes in protobuf.

@sdbondi sdbondi requested a review from a team as a code owner April 16, 2025 11:57
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 16, 2025

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@sdbondi sdbondi marked this pull request as draft April 16, 2025 11:58
@sdbondi
Copy link
Copy Markdown
Member Author

sdbondi commented Apr 16, 2025

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 16, 2025

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 16, 2025

Test Results (CI)

    3 files    135 suites   1h 10m 0s ⏱️
1 367 tests 1 367 ✅ 0 💤 0 ❌
4 099 runs  4 099 ✅ 0 💤 0 ❌

Results for commit 9340690.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 16, 2025

Test Results (Integration tests)

 2 files  11 suites   41m 25s ⏱️
36 tests 34 ✅ 0 💤 2 ❌
38 runs  36 ✅ 0 💤 2 ❌

For more details on these failures, see this check.

Results for commit 9340690.

♻️ This comment has been updated with latest results.

@sdbondi sdbondi marked this pull request as ready for review April 22, 2025 04:40
@sdbondi sdbondi merged commit 1886668 into tari-project:feature-dan2 Apr 22, 2025
18 of 19 checks passed
sdbondi added a commit to tari-project/tari-ootle that referenced this pull request Apr 22, 2025
Description
---
feat!: integrates validator node exits
fix!: fixes validator node signature replay issue by binding the
signature to an epoch
feat!: add JSON-RPC call to prompt the validator to create a signed
registration transaction file
feat: implement transaction file submitter in swarm
feat(db-inspector): add custom endpoint for state_transitions column
family
feat(swarm): add `log_to_file` config option (defaults to false, due to
potentially high disk space usage)

Motivation and Context
---
Ref tari-project/tari#6955
Closes #1398 

How Has This Been Tested?
---
Manually 

What process can a PR reviewer use to test or verify this change?
---
Click 'Submit Exit' in swarm on a VN and mine the UTXO in - observe the
VN transitions to Idle

Breaking Changes
---

- [ ] None
- [x] Requires data directory to be deleted
- [ ] Other - Please specify

BREAKING CHANGE: additional layer-one transaction types that require an
updated base layer

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Added support for registering and exiting validator nodes via new RPC
endpoints and UI buttons.
- Introduced a service for managing and processing layer one transaction
files, including validator registration and exit.
- Enhanced node monitoring UI to display detailed node information and
live height updates.
- Implemented atomic and thread-safe handling of the current epoch for
improved reliability.
- Added ability to prepare layer one transactions through JSON-RPC and
client APIs.
- Enabled file-based and gRPC-based submission of various layer one
transaction types.

- **Improvements**
- Refined error handling and logging for transaction processing and
validator node events.
- Updated configuration options for logging and process management,
including file logging and optional process startup.
- Improved modularity and maintainability by refactoring internal data
handling and service initialization.
- Enhanced database inspector with new state transition viewing
capabilities and flexible ordering.

- **Bug Fixes**
  - Corrected UI and test messages for clarity and accuracy.
- Fixed logic for block and state transition queries in database tools.

- **Documentation**
- Improved code comments and documentation for clarity in configuration
and trait usage.

- **Style**
- Refined UI component structure and periodic refresh logic for better
user experience.

- **Tests**
- Added and updated tests for fee pool address derivation, block
queries, and configuration behaviors.

- **Chores**
- Updated dependencies and configuration files for improved build and
deployment processes.
  - Removed deprecated or unused code and data structures.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
sdbondi added a commit to sdbondi/tari that referenced this pull request Jun 23, 2025
* feature-dan2: (47 commits)
  chore: update feature-dan2 with latest development (tari-project#7227)
  fix(sidechain): verify-side fixes for commit proofs (tari-project#7136)
  fix(sidechain): minor updates for PR tari-dan#1437 (tari-project#7084)
  fix(sidechain): minor API improvements (tari-project#7003)
  fix(sidechain)!: smaller sidechain proof header (tari-project#6981)
  feat!: add vn exit UTXO (tari-project#6955)
  chore!: update feature dan2 from development (tari-project#6932)
  fix: add shard_key to ValidatorNodeChange (tari-project#6797)
  feat!: implement command inclusion proof for eviction (tari-project#6724)
  feat!: add sidechain eviction proof transaction (tari-project#6702)
  feat: wallet grpc get fee for template registration (tari-project#6706)
  chore: bumped git2 version (tari-project#6690)
  feat: trickle validators (tari-project#6660)
  chore!: update feature-dan2 (tari-project#6644)
  chore: update feature dan2 (tari-project#6420)
  v1.0.0-dan.11
  ci: remove unnecessary build platforms
  v1.0.0-dan.10
  ci: fix version check
  refactor: use workspace version (tari-project#6279)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant