-
Notifications
You must be signed in to change notification settings - Fork 36
chore(framework): Remove the iota-bridge #7263
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
Draft
miker83z
wants to merge
1
commit into
develop
Choose a base branch
from
vm-lang/chore/bridge-removal
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…es (#6863) # Description of change This PR completely removes a package from the iota-framework that was never enabled/used: the `bridge`. Associated to that there was a whole set of tools to setup and run the bridge infra: - `iota-bridge` - `iota-bridge-cli` - `iota-bridge-indexer` - `bridge` directory for managing the EVM side 1. So the first step was simply to delete these crates and the package from `iota-framework`. 1. The second step was to remove the remaining dependencies on these. This means mostly tests and iota-types. 1. The protocol flag `bridge` was removed (because it was never set to true), while the `bridge_should_try_to_finalize_committee` flag was left because it was previously set to `Some` (and removing this means we would modify previous protocol config digests, [discussion](#6863 (comment))) 1. Two variants from the `EndOfEpochTransactionKind` were removed: `BridgeStateCreate` and `BridgeCommitteeInit`. Transactions of these kinds SHOULD NOT exist in Devnet, Testnet and Mainnet because the `bridge` protocol flag was never enabled. This has implications on all crates related to public APIs. 1. `EpochStartConfiguration` was modified to remove `bridge_obj_initial_shared_version` and `bridge_committee_initiated`. 1. Genesis changes: - given that genesis on the Testnet and Mainnet was run with a framework including the `bridge`, we need to support the replay of such process. - This means being able to run a genesis with protocol versions <= 8 with no issues (because the framework-snapshot of protocol versions <= 8 will forever include the `bridge` package snapshot). - No bridge objects were created during genesis, however the `bridge` package was verified before being published. In order to pass the verification, the `0xb::bridge::create` function should be treated as privileged because it uses a UID parameter to create a new object (not a valid operation normally). So, this function is kept in the list of `FUNCTIONS_TO_SKIP` in the `iota-verifier`. This also means we SHOULD NOT reuse the `0xb` address in the future or handle it carefully. 1. iota-framework-snapshot changes: - some changes were required to enable the `check_manifest_against_tomls` test - this test checks that the name and id of each entry in `manifest.json` match the metadata in the `Move.toml` files of the `iota-framework` packages. - as suggested by the function comment that was there, this test now checks out the git revision of the package listed in the manifest and then use those files for the check. This allows us to modify name, id and remove packages every time we create a new protocol version. - it was necessary to use the long version of git revision in the `manifest.json` so that the fetch of commits during the `check_manifest_against_tomls` test execution would be more efficient (it fetches each commit instead of the whole history). Moreover, some revs in the manifest were pointing to commits not belonging to any branch (squashed), so these were manually updated. ## TODO - update the sdk2 repo and then openapi -> iotaledger/iota-rust-sdk#36 and #7262 - update the TS types (should be just EndOfEpochTransactionKind) -> #7245 ## Links to any relevant issues fixes #6847 ## Type of change - Breaking change (fix or feature that would cause existing functionality to not work as expected) ## How the change has been tested CI. - [x] Basic tests (linting, compilation, formatting, unit/integration tests) - [ ] Patch-specific tests (correctness, functionality coverage) ### Infrastructure QA TODO @iotaledger/infrastructure - [ ] Synchronization of the indexer from genesis for a network including migration objects. - [ ] Restart of indexer synchronization locally without resetting the database. - [ ] Restart of indexer synchronization on a production-like database. - [ ] Deployment of services using Docker. - [ ] Verification of API backward compatibility. ### Release Notes <!-- Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. --> - [x] Protocol: Removed bridge flag (never enabled) and disabled bridge_should_try_to_finalize_committee flag. Now the bridge functionalities won't be present anymore. Removed the bridge framework package. - [x] Nodes (Validators and Full nodes): Removed `bridge_obj_initial_shared_version` and `bridge_committee_initiated` from `EpochStartConfiguration` - [ ] Indexer: - [x] JSON-RPC: Removed `BridgeReadApi` including `getLatestBridge` and `getBridgeObjectInitialSharedVersion`. Removed `EndOfEpochTransactionKind::BridgeStateCreate` and `EndOfEpochTransactionKind::BridgeCommitteeInit` variants. - [x] GraphQL: Removed `EndOfEpochTransactionKind::BridgeStateCreate` and `EndOfEpochTransactionKind::BridgeCommitteeInit` variants and related types. - [x] CLI: Removed `bridge-committee-init`, `validator register-bridge-committee` and `update-bridge-committee-node-url` commands. - [x] Rust SDK: Removed `EndOfEpochTransactionKind::BridgeStateCreate` and `EndOfEpochTransactionKind::BridgeCommitteeInit` variants. - [ ] REST API: --------- Co-authored-by: Dkwcs <[email protected]> Co-authored-by: miker83z <[email protected]> Co-authored-by: Mirko Zichichi <[email protected]> Co-authored-by: Thibault Martinez <[email protected]>
The latest updates on your projects. Learn more about Vercel for Git ↗︎ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
ci
Issues related to our CI pipeline
documentation
Improvements or additions to documentation
vm-language
Issues related to the VM & Language Team
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of change
This PR completely removes a package from the iota-framework that was never enabled/used: the
bridge
.Stack
TODO
Links to any relevant issues
fixes #6847
Type of change
How the change has been tested
CI.
Infrastructure QA
TODO @iotaledger/infrastructure
Release Notes TODO
bridge_obj_initial_shared_version
andbridge_committee_initiated
fromEpochStartConfiguration
BridgeReadApi
includinggetLatestBridge
andgetBridgeObjectInitialSharedVersion
. RemovedEndOfEpochTransactionKind::BridgeStateCreate
andEndOfEpochTransactionKind::BridgeCommitteeInit
variants.EndOfEpochTransactionKind::BridgeStateCreate
andEndOfEpochTransactionKind::BridgeCommitteeInit
variants and related types.bridge-committee-init
,validator register-bridge-committee
andupdate-bridge-committee-node-url
commands.EndOfEpochTransactionKind::BridgeStateCreate
andEndOfEpochTransactionKind::BridgeCommitteeInit
variants.