-
Notifications
You must be signed in to change notification settings - Fork 11.2k
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
[bridge 73] add eth_contracts_start_block_fallback
#17239
Merged
Merged
Conversation
This file contains 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
The latest updates on your projects. Learn more about Vercel for Git ↗︎
3 Ignored Deployments
|
longbowlu
requested review from
lxfind,
patrickkuo,
Bridgerz,
mwtian,
arun-koshy,
mystenmark and
dariorussi
and removed request for
arun-koshy
April 18, 2024 22:48
patrickkuo
approved these changes
Apr 22, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks for the change!
patrickkuo
pushed a commit
that referenced
this pull request
May 2, 2024
## Description This PR adds `eth_contracts_start_block_fallback` in `BridgeNodeConfig`. The comment describes it enough: ``` /// The starting block for EthSyncer to monitor eth contracts. /// It is required when `run_client` is true. Usually this is /// the block number when the bridge contracts are deployed. /// When BridgeNode starts, it reads the contract watermark from storage. /// If the watermark is not found, it will start from this fallback block number. /// If the watermark is found, it will start from the watermark. /// this v.s.`eth_contracts_start_block_override`: pub eth_contracts_start_block_fallback: Option<u64>, /// The starting block for EthSyncer to monitor eth contracts. It overrides /// the watermark in storage. This is useful when we want to reprocess the events /// from a specific block number. /// Note: this field has to be reset after starting the BridgeNode, otherwise it will /// reprocess the events from this block number every time it starts. #[serde(skip_serializing_if = "Option::is_none")] pub eth_contracts_start_block_override: Option<u64>, ``` Overall, this field provides the ability to give a fallback block to start when no cursor found in DB. While `eth_contracts_start_block_override` is more intrusive because of its highest precedence and stickiness (you need to remove it from config before restarting the node to void it) . To better test the behavior, i spin out `get_sui_modules_to_watch` and `get_eth_contracts_to_watch`. ## Test plan existing and new unit tests --- ## 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. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK:
patrickkuo
pushed a commit
that referenced
this pull request
May 8, 2024
## Description This PR adds `eth_contracts_start_block_fallback` in `BridgeNodeConfig`. The comment describes it enough: ``` /// The starting block for EthSyncer to monitor eth contracts. /// It is required when `run_client` is true. Usually this is /// the block number when the bridge contracts are deployed. /// When BridgeNode starts, it reads the contract watermark from storage. /// If the watermark is not found, it will start from this fallback block number. /// If the watermark is found, it will start from the watermark. /// this v.s.`eth_contracts_start_block_override`: pub eth_contracts_start_block_fallback: Option<u64>, /// The starting block for EthSyncer to monitor eth contracts. It overrides /// the watermark in storage. This is useful when we want to reprocess the events /// from a specific block number. /// Note: this field has to be reset after starting the BridgeNode, otherwise it will /// reprocess the events from this block number every time it starts. #[serde(skip_serializing_if = "Option::is_none")] pub eth_contracts_start_block_override: Option<u64>, ``` Overall, this field provides the ability to give a fallback block to start when no cursor found in DB. While `eth_contracts_start_block_override` is more intrusive because of its highest precedence and stickiness (you need to remove it from config before restarting the node to void it) . To better test the behavior, i spin out `get_sui_modules_to_watch` and `get_eth_contracts_to_watch`. ## Test plan existing and new unit tests --- ## 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. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK:
patrickkuo
pushed a commit
that referenced
this pull request
May 9, 2024
## Description This PR adds `eth_contracts_start_block_fallback` in `BridgeNodeConfig`. The comment describes it enough: ``` /// The starting block for EthSyncer to monitor eth contracts. /// It is required when `run_client` is true. Usually this is /// the block number when the bridge contracts are deployed. /// When BridgeNode starts, it reads the contract watermark from storage. /// If the watermark is not found, it will start from this fallback block number. /// If the watermark is found, it will start from the watermark. /// this v.s.`eth_contracts_start_block_override`: pub eth_contracts_start_block_fallback: Option<u64>, /// The starting block for EthSyncer to monitor eth contracts. It overrides /// the watermark in storage. This is useful when we want to reprocess the events /// from a specific block number. /// Note: this field has to be reset after starting the BridgeNode, otherwise it will /// reprocess the events from this block number every time it starts. #[serde(skip_serializing_if = "Option::is_none")] pub eth_contracts_start_block_override: Option<u64>, ``` Overall, this field provides the ability to give a fallback block to start when no cursor found in DB. While `eth_contracts_start_block_override` is more intrusive because of its highest precedence and stickiness (you need to remove it from config before restarting the node to void it) . To better test the behavior, i spin out `get_sui_modules_to_watch` and `get_eth_contracts_to_watch`. ## Test plan existing and new unit tests --- ## 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. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK:
patrickkuo
pushed a commit
that referenced
this pull request
May 9, 2024
## Description This PR adds `eth_contracts_start_block_fallback` in `BridgeNodeConfig`. The comment describes it enough: ``` /// The starting block for EthSyncer to monitor eth contracts. /// It is required when `run_client` is true. Usually this is /// the block number when the bridge contracts are deployed. /// When BridgeNode starts, it reads the contract watermark from storage. /// If the watermark is not found, it will start from this fallback block number. /// If the watermark is found, it will start from the watermark. /// this v.s.`eth_contracts_start_block_override`: pub eth_contracts_start_block_fallback: Option<u64>, /// The starting block for EthSyncer to monitor eth contracts. It overrides /// the watermark in storage. This is useful when we want to reprocess the events /// from a specific block number. /// Note: this field has to be reset after starting the BridgeNode, otherwise it will /// reprocess the events from this block number every time it starts. #[serde(skip_serializing_if = "Option::is_none")] pub eth_contracts_start_block_override: Option<u64>, ``` Overall, this field provides the ability to give a fallback block to start when no cursor found in DB. While `eth_contracts_start_block_override` is more intrusive because of its highest precedence and stickiness (you need to remove it from config before restarting the node to void it) . To better test the behavior, i spin out `get_sui_modules_to_watch` and `get_eth_contracts_to_watch`. ## Test plan existing and new unit tests --- ## 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. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK:
patrickkuo
pushed a commit
that referenced
this pull request
May 9, 2024
## Description This PR adds `eth_contracts_start_block_fallback` in `BridgeNodeConfig`. The comment describes it enough: ``` /// The starting block for EthSyncer to monitor eth contracts. /// It is required when `run_client` is true. Usually this is /// the block number when the bridge contracts are deployed. /// When BridgeNode starts, it reads the contract watermark from storage. /// If the watermark is not found, it will start from this fallback block number. /// If the watermark is found, it will start from the watermark. /// this v.s.`eth_contracts_start_block_override`: pub eth_contracts_start_block_fallback: Option<u64>, /// The starting block for EthSyncer to monitor eth contracts. It overrides /// the watermark in storage. This is useful when we want to reprocess the events /// from a specific block number. /// Note: this field has to be reset after starting the BridgeNode, otherwise it will /// reprocess the events from this block number every time it starts. #[serde(skip_serializing_if = "Option::is_none")] pub eth_contracts_start_block_override: Option<u64>, ``` Overall, this field provides the ability to give a fallback block to start when no cursor found in DB. While `eth_contracts_start_block_override` is more intrusive because of its highest precedence and stickiness (you need to remove it from config before restarting the node to void it) . To better test the behavior, i spin out `get_sui_modules_to_watch` and `get_eth_contracts_to_watch`. ## Test plan existing and new unit tests --- ## 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. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK:
patrickkuo
pushed a commit
that referenced
this pull request
May 9, 2024
## Description This PR adds `eth_contracts_start_block_fallback` in `BridgeNodeConfig`. The comment describes it enough: ``` /// The starting block for EthSyncer to monitor eth contracts. /// It is required when `run_client` is true. Usually this is /// the block number when the bridge contracts are deployed. /// When BridgeNode starts, it reads the contract watermark from storage. /// If the watermark is not found, it will start from this fallback block number. /// If the watermark is found, it will start from the watermark. /// this v.s.`eth_contracts_start_block_override`: pub eth_contracts_start_block_fallback: Option<u64>, /// The starting block for EthSyncer to monitor eth contracts. It overrides /// the watermark in storage. This is useful when we want to reprocess the events /// from a specific block number. /// Note: this field has to be reset after starting the BridgeNode, otherwise it will /// reprocess the events from this block number every time it starts. #[serde(skip_serializing_if = "Option::is_none")] pub eth_contracts_start_block_override: Option<u64>, ``` Overall, this field provides the ability to give a fallback block to start when no cursor found in DB. While `eth_contracts_start_block_override` is more intrusive because of its highest precedence and stickiness (you need to remove it from config before restarting the node to void it) . To better test the behavior, i spin out `get_sui_modules_to_watch` and `get_eth_contracts_to_watch`. ## Test plan existing and new unit tests --- ## 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. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK:
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
This PR adds
eth_contracts_start_block_fallback
inBridgeNodeConfig
. The comment describes it enough:Overall, this field provides the ability to give a fallback block to start when no cursor found in DB. While
eth_contracts_start_block_override
is more intrusive because of its highest precedence and stickiness (you need to remove it from config before restarting the node to void it) .To better test the behavior, i spin out
get_sui_modules_to_watch
andget_eth_contracts_to_watch
.Test plan
existing and new unit tests
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.