Skip to content

Commit db18a8e

Browse files
nonastDkwcsmiker83zthibault-martinez
authored
chore(framework): Remove the Bridge package and all its functionalities (#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]>
1 parent b80df15 commit db18a8e

File tree

226 files changed

+1202
-41384
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

226 files changed

+1202
-41384
lines changed

.github/CODEOWNERS

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -152,10 +152,3 @@ vercel.json @iotaledger/tooling
152152
# Disable code ownership for these auto-generated files
153153
/Cargo.lock
154154
/pnpm-lock.yaml
155-
156-
# TODO
157-
# Bridge related stuff will be skipped for now
158-
# /crates/iota-bridge/
159-
# /crates/iota-bridge-cli/
160-
# /crates/iota-bridge-indexer/
161-
# /bridge/

.github/crates-filters.yml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,6 @@ iota-aws-orchestrator:
1414
- "crates/iota-aws-orchestrator/**"
1515
iota-benchmark:
1616
- "crates/iota-benchmark/**"
17-
iota-bridge:
18-
- "crates/iota-bridge/**"
19-
iota-bridge-cli:
20-
- "crates/iota-bridge-cli/**"
21-
iota-bridge-indexer:
22-
- "crates/iota-bridge-indexer/**"
2317
iota-cluster-test:
2418
- "crates/iota-cluster-test/**"
2519
iota-common:

0 commit comments

Comments
 (0)