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

mock-client: 👀 implement ViewClient (work in progress) #3958

Closed
wants to merge 5 commits into from

Conversation

cratelyn
Copy link
Contributor

@cratelyn cratelyn commented Mar 5, 2024

see #3913, and #3588.

NB: this branch is based upon #3902.

this is a speculative hack at providing a ViewClient implementation for the mock client.

for now, only todo!() stubs are provided.

cratelyn and others added 5 commits March 1, 2024 12:12
fixes #3816.

this provides extension facilities to the mock consensus test node
builder, which allows penumbra-app tests to define a single validator,
and subsequently retrieve it from the chain state.

see `mock_consensus_can_define_a_genesis_validator`. when run with
`--no-capture` enabled, these logs will be visible:

```
  2024-02-28T23:00:43.751036Z DEBUG penumbra_stake::component::stake: adding validator identity to consensus set index, validator: penumbravalid172v76yyqwngcln2dxrs8ht0sjgswer3569yyhezgsz6aj97ecvqqyf3h9h
    at crates/core/component/stake/src/component/stake.rs:533
    in penumbra_stake::component::stake::staking

[...]

  2024-02-28T23:00:43.776880Z  INFO penumbra_app::server::consensus: genesis state is a full configuration
    at crates/core/app/src/server/consensus.rs:145

  2024-02-28T23:00:43.780436Z DEBUG penumbra_app::app: finished committing state, jmt_root: RootHash("46dc0e9561f17eee61a2c13f517036d4d0a4c77c60362cb6cc165083675dcaf7")
    at crates/core/app/src/app/mod.rs:592
```

logging facilities are provided so that helper warnings should be given
to users that forget to call `with_penumbra_single_validator`, or
provide an `AppState` object whose validator list would be overwritten.

the `serde_json` dependency is removed from the mock consensus library,
it is no longer used.

a warning is added to the mock consensus library to note to future
contributors that other penumbra dependencies should be avoided in that
library.

a new `http::Extensions` field is added to the builder. it is not used
internally, but provides extension traits a place to hold additional
state.

* #3588
* #3816
for context, see:

- #3902 (comment)
- #3902 (comment)

Co-authored-by: Henry de Valence <hdevalence@penumbralabs.xyz>
see #3913.

this is a speculative hack at providing a `ViewClient` implementation
for the mock client.

for now, only `todo!()` stubs are provided.
@cratelyn cratelyn added the A-mock-consensus Area: Relates to the mock consensus engine label Mar 5, 2024
@cratelyn cratelyn added this to the Sprint 1 milestone Mar 5, 2024
@cratelyn cratelyn self-assigned this Mar 5, 2024
Base automatically changed from kate/mock-consensus-genesis-validator to main March 7, 2024 17:09
@cratelyn
Copy link
Contributor Author

cratelyn commented Mar 7, 2024

i'm going to close this, based on some conversation from yesterday. we would like to keep the mock client minimal, and using the "real" view server means we'll gain additional assurance that's working properly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-mock-consensus Area: Relates to the mock consensus engine
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant