-
Notifications
You must be signed in to change notification settings - Fork 247
Feature dan2 #6831
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
base: development
Are you sure you want to change the base?
Feature dan2 #6831
Conversation
Description --- Add claim public key to validator node registration Motivation and Context --- This claim key is informational and will be used in L2 to restrict fee claims to a particular signing key How Has This Been Tested? --- Existing tests What process can a PR reviewer use to test or verify this change? --- Run register validator node wallet command <!-- Checklist --> <!-- 1. Is the title of your PR in the form that would make nice release notes? The title, excluding the conventional commit tag, will be included exactly as is in the CHANGELOG, so please think about it carefully. --> Breaking Changes --- - [ ] None - [x] Requires data directory on base node to be deleted - [x] Requires hard fork - [ ] Other - Please specify <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain -->
New seeds
Description --- Add clone to BalancedBinaryMerkleTree. Motivation and Context --- In the upcoming PR to cache the BalancedBinaryMerkleTree it will come handy. Breaking Changes --- - [x] None
# Conflicts: # Cargo.lock # applications/minotari_app_grpc/Cargo.toml # applications/minotari_app_grpc/src/conversions/sidechain_feature.rs # applications/minotari_app_utilities/Cargo.toml # applications/minotari_console_wallet/Cargo.toml # applications/minotari_console_wallet/src/grpc/wallet_grpc_server.rs # applications/minotari_merge_mining_proxy/Cargo.toml # applications/minotari_miner/Cargo.toml # applications/minotari_node/Cargo.toml # base_layer/common_types/Cargo.toml # base_layer/contacts/Cargo.toml # base_layer/core/Cargo.toml # base_layer/core/src/blocks/genesis_block.rs # base_layer/core/src/chain_storage/lmdb_db/lmdb_db.rs # base_layer/core/src/proto/sidechain_feature.rs # base_layer/core/src/transactions/transaction_components/side_chain/validator_node_signature.rs # base_layer/key_manager/Cargo.toml # base_layer/mmr/Cargo.toml # base_layer/p2p/Cargo.toml # base_layer/service_framework/Cargo.toml # base_layer/wallet/Cargo.toml # base_layer/wallet_ffi/Cargo.toml # common/Cargo.toml # common/tari_features/Cargo.toml # common_sqlite/Cargo.toml # comms/core/Cargo.toml # comms/dht/Cargo.toml # comms/rpc_macros/Cargo.toml # infrastructure/derive/Cargo.toml # infrastructure/shutdown/Cargo.toml # infrastructure/storage/Cargo.toml # infrastructure/test_utils/Cargo.toml
Description --- Motivation and Context --- How Has This Been Tested? --- What process can a PR reviewer use to test or verify this change? --- <!-- Checklist --> <!-- 1. Is the title of your PR in the form that would make nice release notes? The title, excluding the conventional commit tag, will be included exactly as is in the CHANGELOG, so please think about it carefully. --> Breaking Changes --- - [x] None - [ ] Requires data directory on base node to be deleted - [ ] Requires hard fork - [ ] Other - Please specify <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain -->
# Conflicts: # Cargo.lock # applications/minotari_app_grpc/Cargo.toml # applications/minotari_app_utilities/Cargo.toml # applications/minotari_console_wallet/Cargo.toml # applications/minotari_console_wallet/src/ui/widgets/multi_column_list.rs # applications/minotari_merge_mining_proxy/Cargo.toml # applications/minotari_miner/Cargo.toml # applications/minotari_node/Cargo.toml # base_layer/common_types/Cargo.toml # base_layer/contacts/Cargo.toml # base_layer/core/Cargo.toml # base_layer/core/src/blocks/genesis_block.rs # base_layer/key_manager/Cargo.toml # base_layer/mmr/Cargo.toml # base_layer/p2p/Cargo.toml # base_layer/service_framework/Cargo.toml # base_layer/wallet/Cargo.toml # base_layer/wallet_ffi/Cargo.toml # buildtools/multinet_envs.sh # common/Cargo.toml # common/tari_features/Cargo.toml # common_sqlite/Cargo.toml # comms/core/Cargo.toml # comms/dht/Cargo.toml # comms/rpc_macros/Cargo.toml # infrastructure/derive/Cargo.toml # infrastructure/shutdown/Cargo.toml # infrastructure/storage/Cargo.toml # infrastructure/test_utils/Cargo.toml
Description --- Based on #6078 by @Cifko but with latest development updates - for some reason I could not push to the PR directly Update feature-dan2 from development THIS TIME I SET THE BASE BRANCH TO `feature-dan2`! Motivation and Context --- Keep feature branch in sync Breaking Changes --- - [x] None - [ ] Requires data directory on base node to be deleted - [ ] Requires hard fork - [ ] Other <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain --> --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Aaron Feickert <[email protected]> Co-authored-by: Hansie Odendaal <[email protected]> Co-authored-by: Cayle Sharrock <[email protected]> Co-authored-by: SW van Heerden <[email protected]> Co-authored-by: Brian Pearce <[email protected]> Co-authored-by: C.Lee Taylor <[email protected]> Co-authored-by: pad <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Martin Stefcek <[email protected]> Co-authored-by: stringhandler <[email protected]> Co-authored-by: Cifko <[email protected]>
Description --- Updates feature-dan2 to latest development Motivation and Context --- Specifically to include PR #6148 which fixes the build for a fresh Cargo.lock Breaking Changes --- - [x] None - [ ] Requires data directory on base node to be deleted - [ ] Requires hard fork - [ ] Other - Please specify <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain --> --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Aaron Feickert <[email protected]> Co-authored-by: Hansie Odendaal <[email protected]> Co-authored-by: Cayle Sharrock <[email protected]> Co-authored-by: SW van Heerden <[email protected]> Co-authored-by: Brian Pearce <[email protected]> Co-authored-by: C.Lee Taylor <[email protected]> Co-authored-by: pad <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Martin Stefcek <[email protected]> Co-authored-by: stringhandler <[email protected]> Co-authored-by: Cifko <[email protected]>
Co-authored-by: Stan Bondi <[email protected]>
# Conflicts: # .github/workflows/base_node_binaries.json # .github/workflows/base_node_binaries.yml # Cargo.lock # Cargo.toml # README.md # applications/minotari_app_grpc/Cargo.toml # applications/minotari_app_grpc/build.rs # applications/minotari_app_grpc/proto/types.proto # applications/minotari_app_utilities/Cargo.toml # applications/minotari_app_utilities/src/lib.rs # applications/minotari_console_wallet/Cargo.toml # applications/minotari_console_wallet/src/init/mod.rs # applications/minotari_console_wallet/src/lib.rs # applications/minotari_console_wallet/src/ui/components/register_template_tab.rs # applications/minotari_console_wallet/src/ui/state/app_state.rs # applications/minotari_merge_mining_proxy/Cargo.toml # applications/minotari_merge_mining_proxy/src/block_template_data.rs # applications/minotari_merge_mining_proxy/src/block_template_protocol.rs # applications/minotari_merge_mining_proxy/src/error.rs # applications/minotari_merge_mining_proxy/src/proxy.rs # applications/minotari_merge_mining_proxy/src/run_merge_miner.rs # applications/minotari_miner/Cargo.toml # applications/minotari_miner/src/run_miner.rs # applications/minotari_node/Cargo.toml # applications/minotari_node/src/bootstrap.rs # applications/minotari_node/src/config.rs # applications/minotari_node/src/grpc/base_node_grpc_server.rs # applications/minotari_node/src/lib.rs # base_layer/chat_ffi/Cargo.toml # base_layer/common_types/Cargo.toml # base_layer/common_types/src/chain_metadata.rs # base_layer/common_types/src/lib.rs # base_layer/contacts/Cargo.toml # base_layer/contacts/src/chat_client/Cargo.toml # base_layer/core/Cargo.toml # base_layer/core/src/base_node/proto/chain_metadata.rs # base_layer/core/src/base_node/proto/wallet_rpc.rs # base_layer/core/src/base_node/sync/horizon_state_sync/synchronizer.rs # base_layer/core/src/base_node/sync/rpc/sync_utxos_task.rs # base_layer/core/src/base_node/sync/sync_peer.rs # base_layer/core/src/blocks/genesis_block.rs # base_layer/core/src/chain_storage/blockchain_database.rs # base_layer/core/src/chain_storage/db_transaction.rs # base_layer/core/src/chain_storage/lmdb_db/lmdb_db.rs # base_layer/core/src/chain_storage/tests/blockchain_database.rs # base_layer/core/src/common/mod.rs # base_layer/core/src/common/one_sided.rs # base_layer/core/src/consensus/consensus_constants.rs # base_layer/core/src/consensus/consensus_encoding/hashing.rs # base_layer/core/src/lib.rs # base_layer/core/src/proof_of_work/monero_rx/helpers.rs # base_layer/core/src/proof_of_work/monero_rx/mod.rs # base_layer/core/src/test_helpers/blockchain.rs # base_layer/core/src/transactions/key_manager/error.rs # base_layer/core/src/transactions/key_manager/memory_db_key_manager.rs # base_layer/core/src/transactions/key_manager/mod.rs # base_layer/core/src/transactions/mod.rs # base_layer/core/src/transactions/test_helpers.rs # base_layer/core/src/transactions/transaction_components/encrypted_data.rs # base_layer/core/src/transactions/transaction_components/test.rs # base_layer/core/tests/helpers/block_builders.rs # base_layer/core/tests/helpers/sample_blockchains.rs # base_layer/core/tests/helpers/sync.rs # base_layer/core/tests/tests/block_validation.rs # base_layer/core/tests/tests/node_service.rs # base_layer/core/tests/tests/node_state_machine.rs # base_layer/key_manager/Cargo.toml # base_layer/mmr/Cargo.toml # base_layer/p2p/Cargo.toml # base_layer/p2p/src/auto_update/mod.rs # base_layer/service_framework/Cargo.toml # base_layer/tari_mining_helper_ffi/Cargo.toml # base_layer/tari_mining_helper_ffi/src/lib.rs # base_layer/wallet/Cargo.toml # base_layer/wallet/src/output_manager_service/handle.rs # base_layer/wallet/src/output_manager_service/storage/database/mod.rs # base_layer/wallet/src/transaction_service/protocols/transaction_validation_protocol.rs # base_layer/wallet/src/transaction_service/service.rs # base_layer/wallet/src/transaction_service/storage/models.rs # base_layer/wallet/tests/output_manager_service_tests/service.rs # base_layer/wallet/tests/output_manager_service_tests/storage.rs # base_layer/wallet/tests/transaction_service_tests/service.rs # base_layer/wallet_ffi/Cargo.toml # base_layer/wallet_ffi/src/lib.rs # changelog-development.md # changelog-nextnet.md # common/Cargo.toml # common/config/presets/b_peer_seeds.toml # common/src/configuration/network.rs # common/src/configuration/utils.rs # common/tari_features/Cargo.toml # common_sqlite/Cargo.toml # comms/core/Cargo.toml # comms/dht/Cargo.toml # comms/rpc_macros/Cargo.toml # infrastructure/derive/Cargo.toml # infrastructure/libtor/Cargo.toml # infrastructure/metrics/Cargo.toml # infrastructure/shutdown/Cargo.toml # infrastructure/storage/Cargo.toml # infrastructure/tari_script/Cargo.toml # infrastructure/test_utils/Cargo.toml # integration_tests/Cargo.toml # integration_tests/src/merge_mining_proxy.rs # integration_tests/src/miner.rs # integration_tests/tests/features/StressTest.feature # integration_tests/tests/features/TransactionInfo.feature # integration_tests/tests/features/WalletMonitoring.feature # integration_tests/tests/features/WalletQuery.feature # integration_tests/tests/features/WalletRoutingMechanism.feature # integration_tests/tests/features/WalletTransactions.feature # integration_tests/tests/features/WalletTransfer.feature # integration_tests/tests/steps/mining_steps.rs # integration_tests/tests/steps/node_steps.rs # integration_tests/tests/steps/wallet_steps.rs # package-lock.json
Description --- Allows the registration of multiple second layers for validator nodes, templates and burns. The default second layer (Tari) is specified by leaving the `validator_network` field empty. For other networks, they can either be private, where the private key is kept secret or public in which case the `validator_network` private key can be exposed and published. Motivation and Context --- Specifically for testing it will be useful to have multiple second layer testnets run on the same base layer (I intend to use `igor`). For example we may want to run a second layer "ContractNet" specifically for users who wish to run templates and contracts but don't want to test running validator nodes. In contrast, users who are interested in testing validator nodes can run on the default second layer. This way of doing it also allows users who wish to run their own private networks, with their own validator nodes, to run them. How Has This Been Tested? --- Tested manually, and busy testing with changes to the second layer and dan-testing What process can a PR reviewer use to test or verify this change? --- You can register templates and burns in the console wallet. Registering validator nodes is a bit harder. <!-- Checklist --> <!-- 1. Is the title of your PR in the form that would make nice release notes? The title, excluding the conventional commit tag, will be included exactly as is in the CHANGELOG, so please think about it carefully. --> Breaking Changes --- - [ ] None - [ ] Requires data directory on base node to be deleted - [ ] Requires hard fork - [x] Other - Please specify <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain --> BREAKING CHANGE: The merkle tree for validator nodes is calculated in a new manner
Description --- Adds a log and console warning if a GRPC method is called but not allowed
Easier calling of template registration
* development: fix!: avoid `Encryptable` domain collisions (#6275) ci(fix): docker image build fix and ci improvements (#6270) feat: keep smt memory (#6265) feat: show warning when GRPC method is disallowed (#6246) fix(chat): metadata panic (#6247) feat: add monerod detection as an option to the merge mining proxy (#6248) chore(deps): bump h2 from 0.3.24 to 0.3.26 (#6250) feat: improve lmdb dynamic growth (#6242) feat: allow wallet type from db to have preference (#6245) feat: prevent mempool panic (#6239) ci: bump nightly version (#6241) feat: add validation for zero confirmation block sync (#6237) feat: new template with coinbase call (#6226) feat: improve wallet sql queries (#6232) chore: remove ahash as dependancy (#6238) feat: add dynamic growth to lmdb (#6231) chore(deps): bump borsh from 0.10.3 to 1.0.0 in /applications/minotari_ledger_wallet (#6236)
Motivation and Context --- There was a bug in the wallet when using non-interactive that was fixed in #6245 How Has This Been Tested? --- What process can a PR reviewer use to test or verify this change? --- <!-- Checklist --> <!-- 1. Is the title of your PR in the form that would make nice release notes? The title, excluding the conventional commit tag, will be included exactly as is in the CHANGELOG, so please think about it carefully. --> Breaking Changes --- - [x] None - [ ] Requires data directory on base node to be deleted - [ ] Requires hard fork - [ ] Other - Please specify <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain -->
Description --- Use workspace version for more consistent versioning
Description --- Merged development branch into feature-dan2 Breaking Changes --- - [ ] None - [x] Requires data directory on base node to be deleted - [x] Requires hard fork - [ ] Other - Please specify --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: SW van Heerden <[email protected]> Co-authored-by: C.Lee Taylor <[email protected]> Co-authored-by: Hansie Odendaal <[email protected]> Co-authored-by: Aaron Feickert <[email protected]> Co-authored-by: Brian Pearce <[email protected]> Co-authored-by: stringhandler <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Richard Bertok <[email protected]> Co-authored-by: Hansie Odendaal <[email protected]>
Description --- Update feature-dan2 to latest development Breaking Changes --- - [ ] None - [x] Requires data directory on base node to be deleted - [x] Requires hard fork - [ ] Other - Please specify <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain -->
Description --- We allow here only a configured (in Consensus constants) number of validator nodes to be active in an epoch, so this way we avoid having way too much validators appear at the same time. All the validator nodes are saved to the blockchain database, when there is a new validator node registration UTXO, but with a different `start epoch` that is calculated from the already saved validator nodes. There is a new gRPC method called `GetValidatorNodeChanges`, where we can ask base node to give back all the validator node additions and deletions in the given start/end height range. When Layer-2 scans new blocks and sees that there is a change in the validator node set, simply calls this new grpc method and adds/removes validator nodes. This way base node controls fully how many nodes are registered at which epoch. Motivation and Context --- Layer-2 validator nodes are registered all at once when they were added to the chain with a special UTXO, but it allows to register too many nodes at the same time, so consensus can catch up much slower. How Has This Been Tested? --- What process can a PR reviewer use to test or verify this change? --- <!-- Checklist --> <!-- 1. Is the title of your PR in the form that would make nice release notes? The title, excluding the conventional commit tag, will be included exactly as is in the CHANGELOG, so please think about it carefully. --> Breaking Changes --- - [x] None - [ ] Requires data directory on base node to be deleted - [ ] Requires hard fork - [ ] Other - Please specify <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain --> --------- Co-authored-by: Stan Bondi <[email protected]>
Description --- Updated git2 version to latest one to be able to use latest cargo generate as a lib in tari-dan. Motivation and Context --- How Has This Been Tested? --- What process can a PR reviewer use to test or verify this change? --- <!-- Checklist --> <!-- 1. Is the title of your PR in the form that would make nice release notes? The title, excluding the conventional commit tag, will be included exactly as is in the CHANGELOG, so please think about it carefully. --> Breaking Changes --- - [x] None - [ ] Requires data directory on base node to be deleted - [ ] Requires hard fork - [ ] Other - Please specify <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain -->
Description --- For Tari CLI I needed a new grpc method on wallet to get the calculated fee for a new template registration. Motivation and Context --- How Has This Been Tested? --- What process can a PR reviewer use to test or verify this change? --- <!-- Checklist --> <!-- 1. Is the title of your PR in the form that would make nice release notes? The title, excluding the conventional commit tag, will be included exactly as is in the CHANGELOG, so please think about it carefully. --> Breaking Changes --- - [x] None - [ ] Requires data directory on base node to be deleted - [ ] Requires hard fork - [ ] Other - Please specify <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain -->
Description --- sidechain eviction proof transaction validations for eviction proof only single validator node registration permitted Motivation and Context --- How Has This Been Tested? --- What process can a PR reviewer use to test or verify this change? --- <!-- Checklist --> <!-- 1. Is the title of your PR in the form that would make nice release notes? The title, excluding the conventional commit tag, will be included exactly as is in the CHANGELOG, so please think about it carefully. --> Breaking Changes --- - [ ] None - [x] Requires data directory on base node to be deleted - [x] Requires hard fork - [ ] Other - Please specify BREAKING CHANGE: validator node DB changed, new output features
Description --- Add and verify command inclusion proof Motivation and Context --- Adds a JMT implementation to tari_jellyfish crate. Useful for state tree inclusion proofs. Currently used to validate eviction command commit proofs How Has This Been Tested? --- Cucumber test on tari-dan repo What process can a PR reviewer use to test or verify this change? --- <!-- Checklist --> <!-- 1. Is the title of your PR in the form that would make nice release notes? The title, excluding the conventional commit tag, will be included exactly as is in the CHANGELOG, so please think about it carefully. --> Breaking Changes --- - [ ] None - [x] Requires data directory on base node to be deleted - [ ] Requires hard fork - [ ] Other - Please specify BREAKING CHANGE: eviction proof changed
Description --- fix: add shard_key to ValidatorNodeChange Motivation and Context --- This is useful for the validator node base layer scanner. How Has This Been Tested? --- What process can a PR reviewer use to test or verify this change? --- <!-- Checklist --> <!-- 1. Is the title of your PR in the form that would make nice release notes? The title, excluding the conventional commit tag, will be included exactly as is in the CHANGELOG, so please think about it carefully. --> Breaking Changes --- - [x] None - [ ] Requires data directory on base node to be deleted - [ ] Requires hard fork - [ ] Other - Please specify <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Improved validator node management by introducing a new field for specifying a shard key. This enhancement helps streamline node identification in sharded network contexts and ensures the correct format is maintained for better data integrity. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the 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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. 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)
Other keywords and placeholders
CodeRabbit Configuration File (
|
Description --- chore: update feature dan2 from development Motivation and Context --- Use latest development changes in feature-dan2 branch How Has This Been Tested? --- What process can a PR reviewer use to test or verify this change? --- <!-- Checklist --> <!-- 1. Is the title of your PR in the form that would make nice release notes? The title, excluding the conventional commit tag, will be included exactly as is in the CHANGELOG, so please think about it carefully. --> Breaking Changes --- - [ ] None - [x] Requires data directory on base node to be deleted - [ ] Requires hard fork - [ ] Other - Please specify <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain --> --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: C.Lee Taylor <[email protected]> Co-authored-by: SW van Heerden <[email protected]> Co-authored-by: Richard Bertok <[email protected]> Co-authored-by: stringhandler <[email protected]> Co-authored-by: Hansie Odendaal <[email protected]> Co-authored-by: Brian Pearce <[email protected]> Co-authored-by: stringhandler <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Cayle Sharrock <[email protected]> Co-authored-by: Aaron Feickert <[email protected]> Co-authored-by: danhwang88 <[email protected]> Co-authored-by: Maciej Kożuszek <[email protected]> Co-authored-by: Misieq01 <[email protected]> Co-authored-by: Marcin Papież <[email protected]> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: C.Lee Taylor <[email protected]> Co-authored-by: brianp <[email protected]> Co-authored-by: ns212 <[email protected]>
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? --- <!-- Checklist --> <!-- 1. Is the title of your PR in the form that would make nice release notes? The title, excluding the conventional commit tag, will be included exactly as is in the CHANGELOG, so please think about it carefully. --> Breaking Changes --- - [ ] None - [ ] Requires data directory on base node to be deleted - [x] Requires hard fork - [ ] Other - Please specify <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain --> BREAKING CHANGE: Additional sidechain output type variant (hard fork). Incompatible changes in protobuf.
Description --- fix(sidechain)!: smaller sidechain proof header fix(sidechain)!: update fields updated commands Motivation and Context --- Updates the sidechain proof to contain a metadata hash instead of several unused fields. Also updated the block hash construction to be versioned and type safe - allowing for compile errors should the hash construction change on L1/L2. How Has This Been Tested? --- Existing and new unit tests on L2 repo + existing cucumber on L2 What process can a PR reviewer use to test or verify this change? --- <!-- Checklist --> <!-- 1. Is the title of your PR in the form that would make nice release notes? The title, excluding the conventional commit tag, will be included exactly as is in the CHANGELOG, so please think about it carefully. --> Breaking Changes --- - [ ] None - [ ] Requires data directory on base node to be deleted - [x] Requires hard fork - [ ] Other - Please specify <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new metadata hash field for sidechain block headers. - **Bug Fixes** - Updated test fixtures with refreshed cryptographic and blockchain state data. - **Refactor** - Simplified sidechain block header structure by removing several fields, including foreign indexes hash, extra data hash, and related fields. - Streamlined command validation logic and removed unused command variants. - Updated hash calculation methods and introduced a new block metadata hasher. - **Chores** - Cleaned up imports and removed unused functions. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Description --- Minor API improvements/fixes to facilitate usage with the L2 Motivation and Context --- Changes required for tari-project/tari-ootle#1413 to compile. - The QuorumDecision type to be used from the tari_sidechain crate instead of a duplicate type in both repos. - `+ ?Sized` should have already been added to the hasher since it is more permissive, specifically used to allow hashing of slices (`&[T]` did not work previously, `&Vec<T>` required) - Allows the QC id to be calculated from the QuorumCertificate sidechain type How Has This Been Tested? --- N/A What process can a PR reviewer use to test or verify this change? --- N/A <!-- Checklist --> <!-- 1. Is the title of your PR in the form that would make nice release notes? The title, excluding the conventional commit tag, will be included exactly as is in the CHANGELOG, so please think about it carefully. --> Breaking Changes --- - [x] None - [ ] Requires data directory on base node to be deleted - [ ] Requires hard fork - [ ] Other - Please specify <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced decision handling with new utility methods and string representations for quorum decisions. - Improved error messaging for invalid decision inputs. - **Refactor** - Expanded support for serialization methods to accept a wider range of data types. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Description --- Make `tari_consensus_hasher` public Define QC signature fields Remove QC ID calculation (not needed on L1) Fix bug in chain link verification Motivation and Context --- tari-project/tari-ootle#1437 How Has This Been Tested? --- What process can a PR reviewer use to test or verify this change? --- <!-- Checklist --> <!-- 1. Is the title of your PR in the form that would make nice release notes? The title, excluding the conventional commit tag, will be included exactly as is in the CHANGELOG, so please think about it carefully. --> Breaking Changes --- - [x] None - [ ] Requires data directory on base node to be deleted - [ ] Requires hard fork - [ ] Other - Please specify <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced new functions for proposal and timeout vote signature hashing. - Improved error messages for quorum certificate signature verification, now including specific block IDs. - **Refactor** - Updated signature verification logic for quorum certificates, changing how messages are constructed and hashed. - Simplified error handling by allowing original errors to propagate instead of mapping to generic messages. - **Removals** - Removed the method for calculating quorum certificate IDs. - Removed legacy hasher functions related to quorum certificates and vote signatures. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Description --- fix(sidechain): verify-side fixes for commit proofs Motivation and Context --- Related to proof changes in upcoming L2 PR How Has This Been Tested? --- Manually What process can a PR reviewer use to test or verify this change? --- <!-- Checklist --> <!-- 1. Is the title of your PR in the form that would make nice release notes? The title, excluding the conventional commit tag, will be included exactly as is in the CHANGELOG, so please think about it carefully. --> Breaking Changes --- - [x] None - [ ] Requires data directory on base node to be deleted - [ ] Requires hard fork - [ ] Other - Please specify <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain -->
Description --- chore: update feature-dan2 with latest development Motivation and Context --- Update Ootle feature branch with latest code from development How Has This Been Tested? --- Manually What process can a PR reviewer use to test or verify this change? --- <!-- Checklist --> <!-- 1. Is the title of your PR in the form that would make nice release notes? The title, excluding the conventional commit tag, will be included exactly as is in the CHANGELOG, so please think about it carefully. --> Breaking Changes --- - [ ] None - [x] Requires data directory on base node to be deleted - [ ] Requires hard fork - [ ] Other - Please specify <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain --> --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: SW van Heerden <[email protected]> Co-authored-by: C.Lee Taylor <[email protected]> Co-authored-by: C.Lee Taylor <[email protected]> Co-authored-by: Hansie Odendaal <[email protected]> Co-authored-by: stringhandler <[email protected]> Co-authored-by: Marcin Papież <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: brianp <[email protected]> Co-authored-by: Brian Pearce <[email protected]> Co-authored-by: ns212 <[email protected]> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Keith Simon <[email protected]> Co-authored-by: Hansie Odendaal <[email protected]> Co-authored-by: SolfataraEmit <[email protected]> Co-authored-by: Maciej Kożuszek <[email protected]> Co-authored-by: Riccardo Spagni <[email protected]> Co-authored-by: Richard Bertok <[email protected]> Co-authored-by: MoneroOcean <[email protected]>
Description
Motivation and Context
How Has This Been Tested?
What process can a PR reviewer use to test or verify this change?
Breaking Changes