Skip to content
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

Node state for the RPC server #67

Merged
merged 154 commits into from
Mar 19, 2024
Merged

Node state for the RPC server #67

merged 154 commits into from
Mar 19, 2024

Conversation

IAvecilla
Copy link
Contributor

@IAvecilla IAvecilla commented Feb 21, 2024

What ❔

Make the ReplicaState struct and additional information about the node state available on the RPC server side.

Why ❔

For future tests, it would be necessary to have access to the state of different running nodes in order to assess the behavior of the entire consensus network. This could involve getting different metrics such as the last saved view for each node, proposals, highest vote or quorum certificate (QC), etc.

IAvecilla and others added 30 commits January 10, 2024 18:34
Co-authored-by: Bruno França <[email protected]>
@IAvecilla IAvecilla marked this pull request as ready for review February 26, 2024 20:53
@pompon0
Copy link
Collaborator

pompon0 commented Mar 4, 2024

You seem to expose just the view number from the replica state. Is that intended?

Base automatically changed from k8s_node_communication_test to main March 7, 2024 13:38
@IAvecilla IAvecilla requested a review from brunoffranca as a code owner March 7, 2024 14:24
@IAvecilla IAvecilla requested a review from pompon0 March 8, 2024 13:57
@IAvecilla
Copy link
Contributor Author

You seem to expose just the view number from the replica state. Is that intended?

Yes, it is intended. In the future, we may require additional information from the storage. I've introduced another endpoint that could prove useful, especially considering the basic tests planned with the chaos-mesh tool. The intention is to incorporate more endpoints as we develop further tests and additional information from the node is needed.

@pompon0
Copy link
Collaborator

pompon0 commented Mar 11, 2024

I mean, why not just dump the whole ReplicaState?

node/tools/src/k8s.rs Outdated Show resolved Hide resolved
node/tools/src/k8s.rs Outdated Show resolved Hide resolved
@IAvecilla
Copy link
Contributor Author

I mean, why not just dump the whole ReplicaState?

Is there a way to obtain the replica state from the executor? With the latest changes to the ReplicaState, I don't see a clear way to do this. That's why I went with the solution to obtain the BlockStore and then pick the view and the last message through the CommitQC. If obtaining the replica state is indeed feasible, that would be a better approach.

@IAvecilla IAvecilla requested a review from pompon0 March 12, 2024 15:47
@pompon0
Copy link
Collaborator

pompon0 commented Mar 15, 2024

Is there a way to obtain the replica state from the executor? With the latest changes to the ReplicaState, I don't see a clear way to do this. That's why I went with the solution to obtain the BlockStore and then pick the view and the last message through the CommitQC. If obtaining the replica state is indeed feasible, that would be a better approach.

Right, you would need to pass ReplicaStore to the rpc server, which is not cloneable as of today. It is fine as is then.

@brunoffranca brunoffranca merged commit 20eddf2 into main Mar 19, 2024
4 checks passed
@brunoffranca brunoffranca deleted the rpc_execution_connection branch March 19, 2024 20:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants