Extend reconfig test; sync on wallet init; fix blob fetching.#4437
Merged
afck merged 4 commits intolinera-io:mainfrom Aug 29, 2025
Merged
Extend reconfig test; sync on wallet init; fix blob fetching.#4437afck merged 4 commits intolinera-io:mainfrom
wallet init; fix blob fetching.#4437afck merged 4 commits intolinera-io:mainfrom
Conversation
deuszx
reviewed
Aug 28, 2025
deuszx
reviewed
Aug 28, 2025
| .await?; | ||
| Result::<(), ChainClientError>::Ok(()) | ||
| let blobs = future::join_all(blob_ids.iter().map(|blob_id| async move { | ||
| remote_node.try_download_blob(*blob_id).await.unwrap() |
Contributor
There was a problem hiding this comment.
Right, b/c the blobs in blob_ids can only come from the certificate (otherwise it would have been the "unexpected blob" error)?
deuszx
reviewed
Aug 28, 2025
Comment on lines
+1645
to
+1647
| chain_client | ||
| .synchronize_chain_state_from_committee(committee) | ||
| .await?; |
Contributor
There was a problem hiding this comment.
This is for the CLI only, what about other clients? Are they all supposed to do that manually?
Contributor
Author
There was a problem hiding this comment.
Yes, also on initialization.
Contributor
Author
There was a problem hiding this comment.
(But this is still a hack; needs a proper solution, but I hope this can already unblock us.)
deuszx
approved these changes
Aug 28, 2025
eldios
pushed a commit
that referenced
this pull request
Aug 29, 2025
## Motivation We want to make sure the network works fine even after many reconfigurations, and even if none of the genesis validators are left. ## Proposal At the end of the reconfiguration end-to-end test, initialize a new client, request a chain and publish a blob. This test actually failed! The following two changes make it pass: * In `wallet init`, synchronize the admin chain, trusting the validators provided by the faucet (part of #4434). * Fix a bug in `process_certificates`: Since we are handling a _certificate_, not a block proposal, we don't need additional proof for the missing blobs: The certificate itself is proof for them. So we should only download the blobs themselves, and not try to get another certificate for them. ## Test Plan The reconfiguration test was extended. ## Release Plan - These changes should be backported to the latest `testnet` branch, then - be released in a new SDK. ## Links - _Partly_ addresses #4434. - [reviewer checklist](https://github.com/linera-io/linera-protocol/blob/main/CONTRIBUTING.md#reviewer-checklist)
github-merge-queue bot
pushed a commit
that referenced
this pull request
Sep 1, 2025
## Motivation In #4437 I used the existing `currentValidators` faucet query in `wallet init` and then made the client synchronize the initial admin chain from a committee where all these validators have the same weight. ## Proposal Add a `currentCommittee` query that returns the actual current committee, and use that to synchronize. ## Test Plan The reconfiguration test exercises this. ## Release Plan - These changes should be backported to devnet and testnet, published in an SDK and deployed in the faucet. ## Links - Closes #4434. - [reviewer checklist](https://github.com/linera-io/linera-protocol/blob/main/CONTRIBUTING.md#reviewer-checklist)
eldios
pushed a commit
that referenced
this pull request
Sep 3, 2025
## Motivation We want to make sure the network works fine even after many reconfigurations, and even if none of the genesis validators are left. ## Proposal At the end of the reconfiguration end-to-end test, initialize a new client, request a chain and publish a blob. This test actually failed! The following two changes make it pass: * In `wallet init`, synchronize the admin chain, trusting the validators provided by the faucet (part of #4434). * Fix a bug in `process_certificates`: Since we are handling a _certificate_, not a block proposal, we don't need additional proof for the missing blobs: The certificate itself is proof for them. So we should only download the blobs themselves, and not try to get another certificate for them. ## Test Plan The reconfiguration test was extended. ## Release Plan - These changes should be backported to the latest `testnet` branch, then - be released in a new SDK. ## Links - _Partly_ addresses #4434. - [reviewer checklist](https://github.com/linera-io/linera-protocol/blob/main/CONTRIBUTING.md#reviewer-checklist)
afck
added a commit
to afck/linera-protocol
that referenced
this pull request
Sep 4, 2025
…a-io#4457) ## Motivation In linera-io#4437 I used the existing `currentValidators` faucet query in `wallet init` and then made the client synchronize the initial admin chain from a committee where all these validators have the same weight. ## Proposal Add a `currentCommittee` query that returns the actual current committee, and use that to synchronize. ## Test Plan The reconfiguration test exercises this. ## Release Plan - These changes should be backported to devnet and testnet, published in an SDK and deployed in the faucet. ## Links - Closes linera-io#4434. - [reviewer checklist](https://github.com/linera-io/linera-protocol/blob/main/CONTRIBUTING.md#reviewer-checklist)
ma2bd
pushed a commit
that referenced
this pull request
Sep 5, 2025
## Motivation In #4437 I used the existing `currentValidators` faucet query in `wallet init` and then made the client synchronize the initial admin chain from a committee where all these validators have the same weight. ## Proposal Add a `currentCommittee` query that returns the actual current committee, and use that to synchronize. ## Test Plan The reconfiguration test exercises this. ## Release Plan - These changes should be backported to devnet and testnet, published in an SDK and deployed in the faucet. ## Links - Closes #4434. - [reviewer checklist](https://github.com/linera-io/linera-protocol/blob/main/CONTRIBUTING.md#reviewer-checklist)
ma2bd
pushed a commit
that referenced
this pull request
Sep 5, 2025
## Motivation In #4437 I used the existing `currentValidators` faucet query in `wallet init` and then made the client synchronize the initial admin chain from a committee where all these validators have the same weight. ## Proposal Add a `currentCommittee` query that returns the actual current committee, and use that to synchronize. ## Test Plan The reconfiguration test exercises this. ## Release Plan - These changes should be backported to devnet and testnet, published in an SDK and deployed in the faucet. ## Links - Closes #4434. - [reviewer checklist](https://github.com/linera-io/linera-protocol/blob/main/CONTRIBUTING.md#reviewer-checklist)
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
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.
Motivation
We want to make sure the network works fine even after many reconfigurations, and even if none of the genesis validators are left.
Proposal
At the end of the reconfiguration end-to-end test, initialize a new client, request a chain and publish a blob. This test actually failed! The following two changes make it pass:
wallet init, synchronize the admin chain, trusting the validators provided by the faucet (part of Onwallet init, request a trusted committee from the faucet and synchronize the admin chain. #4434).process_certificates: Since we are handling a certificate, not a block proposal, we don't need additional proof for the missing blobs: The certificate itself is proof for them. So we should only download the blobs themselves, and not try to get another certificate for them.Test Plan
The reconfiguration test was extended.
Release Plan
testnetbranch, thenLinks
wallet init, request a trusted committee from the faucet and synchronize the admin chain. #4434.