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

Tracking issue: LQT #5010

Open
21 of 28 tasks
erwanor opened this issue Jan 28, 2025 · 1 comment
Open
21 of 28 tasks

Tracking issue: LQT #5010

erwanor opened this issue Jan 28, 2025 · 1 comment
Assignees
Labels
consensus-breaking breaking change to execution of on-chain data _P-high High priority state-breaking breaking change to on-chain data

Comments

@erwanor
Copy link
Member

erwanor commented Jan 28, 2025

Draft ADR: Link to follow

This is a tracking issue for end-to-end support of LQT in the Penumbra stack.

Issues:

The TODO below is turned into Github issues that contain a sketch of an implementation plan. Either copy-pasted/augmented from the ADR, or a few words about why it is not necessary.

Release process:

  1. PRs are made against protocol/lqt_branch and require review.
  2. PRs are squashed into protocol/lqt_branch

Tasks:

  1. DEX component
    1. dex: create epoch-based cumulative volume indices #5015
    2. dex: instrument staking token pairs #5028
    3. dex: add volume events #5067
    4. dex: relax inner guard for withdrawn LP updates #5051
  2. SCT component
    1. sct: extend CommitmentSourcewith LQT notes #5011
  3. Distributions component
    1. distributions: add LQT chain parameters #5012
    2. distributions: implement pool budget #5025
    3. distributions: implement RPC services #5039
    4. distributions: add distributions events #5041
  4. Funding component
    1. funding: add LQT chain parameters #5013
    2. funding: stub LQT actions #5014
    3. funding: create epoch LQT nullifier set #5029
    4. funding: implement execute ActionLiquidityTournamentVote #5033
    5. funding: implement tally logic #5032
    6. funding: apportion rewards to voters/LPs #5035
    7. Implement LQT reward distribution #5045
    8. funding: second pass on tally implementation #5047
    9. LQT: Correctly account for compact block costs #5053
    10. funding: issue delegation token rewards #5046
    11. funding: add minting/vote events #5066
    12. funding: implement query services #5058
  5. Prax: Tracking issue: LQT mechanism web#2022
  6. Indexing
    1. pindexer: create an Lqt AppView
    2. pindexer: prepare Lqt stats
    3. pindexer: prepare volume leaderboard
    4. pindexer: prepare LQT LP leaderboard
    5. pindexer: prepare asset leaderboard
  7. Pcli
    1. pcli: tx tournament-vote <asset> <pct> #5068
    2. pcli: tx lp withdraw <position> #5069
@erwanor erwanor added _P-high High priority consensus-breaking breaking change to execution of on-chain data labels Jan 28, 2025
@erwanor erwanor added this to Penumbra Jan 28, 2025
@github-project-automation github-project-automation bot moved this to Backlog in Penumbra Jan 28, 2025
@erwanor erwanor added the state-breaking breaking change to on-chain data label Jan 28, 2025
conorsch added a commit that referenced this issue Feb 4, 2025
## Describe your changes

A bit of spring cleaning for the CI suite. These changes aim at faster
run times on PRs, mostly via reusing common tooling, and reducing setup
time. These changes _don't_ affect which tests run, out of an abundance
of caution, because we have ongoing development in a feature branch
right now (#5010).

The longest-running CI check is currently the check-all-features job,
which clocks in at ~14m with these changes. That's an improvement over
the ~20m or so it's been taking on other PRs. For full details on the
changes, see the commit messages; to summarize:

* smoke tests use the existing tooling env
* most checks can now be run locally via a justfile target, e.g. `just
check`, to make CI failures more easily replicable locally
* test names have been reformatted for readability
* the noisy "release" checks are removed from PR runs

Overall the checks seem to complete >5m faster than before, which is
good enough to merge as progress. I'm deferring more substantive changes
like kicking long-running jobs to schedules, rather than on-every-PR,
until we have a chance to observe these improvements over time, and
until after the LQT push.

### Example of CI job display _before_ changes


![pz-gh-ci-before](https://github.com/user-attachments/assets/253f991c-c2c8-400b-9e6e-0e5836c0a373)

### Example of CI job display _after_ changes


![pz-gh-ci-after](https://github.com/user-attachments/assets/66fa4c61-4f24-4a6b-afb5-0e0ee9bee348)


## Issue ticket number and link

N/A 

## Checklist before requesting a review

- [x] If this code contains consensus-breaking changes, I have added the
"consensus-breaking" label. Otherwise, I declare my belief that there
are not consensus-breaking changes, for the following reason:

  > ci and test code only, application logic remains unchanged
conorsch added a commit that referenced this issue Feb 5, 2025
We want to publish the protobuf changes in `protocol/lqt_support` (#5010)
to unblock web integrations. In order to run the workflow ad-hoc on a branch,
we need to permit `workflow_dispatch` runs. The `workflow_call`
additions are not currently used, but have been in the past, and permit
triggering via cross-repo API.
conorsch added a commit that referenced this issue Feb 5, 2025
We want to publish the protobuf changes in `protocol/lqt_support` (#5010)
to unblock web integrations. In order to run the workflow ad-hoc on a branch,
we need to permit `workflow_dispatch` runs. The `workflow_call`
additions are not currently used, but have been in the past, and permit
triggering via cross-repo API.

Also updates the buf lint job to run against *all* PRs, not just those
against main. This effectively reverts
b3204b1, which is over a year old, and
predates the stabilization of the protos.
conorsch added a commit that referenced this issue Feb 5, 2025
## Describe your changes

We want to publish the protobuf changes in `protocol/lqt_support`
(#5010) to unblock web integrations. In order to run the workflow ad-hoc
on a branch, we need to permit `workflow_dispatch` runs. The
`workflow_call` additions are not currently used, but have been in the
past, and permit triggering via cross-repo API.

While authoring these changes, I noticed that the protobuf lint job is
_not_ running against feature branches, meaning the PRs into
`protocol/lqt_support` have skipped that check. We've been careful in
authoring the proto changes, but we should still verify that check
passes on the feature branch, prior to publishing.


## Issue ticket number and link
Refs #5010. 

## Checklist before requesting a review


- [ ] If this code contains consensus-breaking changes, I have added the
"consensus-breaking" label. Otherwise, I declare my belief that there
are not consensus-breaking changes, for the following reason:

> no code changes, only affects CI. will result in new protobuf changes
to published to the repo.
@TalDerei
Copy link
Collaborator

TalDerei commented Feb 5, 2025

prax modeling to be tracked in penumbra-zone/web#2022

conorsch added a commit that referenced this issue Feb 7, 2025
## Describe your changes
Bumps the protocol version to denote the addition of LQT functionality.
Also bumps the crate versions from 1.0.x -> 2.0.x, as an alpha. No tag
has been created, to avoid triggering the formal release workflows,
since we're still testing.

## Issue ticket number and link

#5010.

## Testing and review

I'm submitting this PR ahead of a planned testnet upgrade, so we'll
shortly learn how effective the overall upgrade process is. However,
special attention should be given to the proposed versions strings. In
particular, the transition from `0.81.x` to `1.0.x` maintained
compatibility with APP_VERSION 9, and that may present difficulties
during the upgrade for nodes on one or the other version.

## Checklist before requesting a review

- [x] I have added guiding text to explain how a reviewer should test
these changes.

- [x] If this code contains consensus-breaking changes, I have added the
"consensus-breaking" label. Otherwise, I declare my belief that there
are not consensus-breaking changes, for the following reason:

> explicitly denotes consensus-breaking changes, and therefore targets a
protocol feature branch, rather than main
conorsch added a commit that referenced this issue Feb 7, 2025
## Describe your changes

Follow-up to #5073, which should have included a no-op migration.

## Issue ticket number and link

Towards #5010. 

## Testing and review

This work will be used to perform a chain upgrade on the PL testnet.
Once that's done, we should expect CI to pass fully on this PR, in
particular the "testnet-integration" suite.

## Checklist before requesting a review

- [x] I have added guiding text to explain how a reviewer should test
these changes.

- [x] If this code contains consensus-breaking changes, I have added the
"consensus-breaking" label. Otherwise, I declare my belief that there
are not consensus-breaking changes, for the following reason:

  > provides migration logic for proposed protocol-breaking changes
conorsch added a commit that referenced this issue Feb 10, 2025
## Describe your changes

Bumps the version in the LQT branch. Doing this to disambiguate between
active versions, in order to roll out
#5075 to the active
testnet.

## Issue ticket number and link

Refs #5010, #5075.

## Checklist before requesting a review

- [x] If this code contains consensus-breaking changes, I have added the
"consensus-breaking" label. Otherwise, I declare my belief that there
are not consensus-breaking changes, for the following reason:

  > version info only, no code changes
conorsch added a commit to prax-wallet/prax that referenced this issue Feb 13, 2025
Capturing recent dev env setup, as explained by @TalDerei.
See related discussion in historical PR [0]. Used these steps to test
locally against the testnet, which is running an alpha version of LQT
support [1]. I believe this docs update is sufficient to close [2].

[0] penumbra-zone/web#1884 (comment)
[1] penumbra-zone/penumbra#5010
[2] #149
conorsch added a commit to prax-wallet/prax that referenced this issue Feb 13, 2025
Capturing recent dev env setup, as explained by @TalDerei.
See related discussion in historical PR [0]. Used these steps to test
locally against the testnet, which is running an alpha version of LQT
support [1]. I believe this docs update is sufficient to close [2].

[0] penumbra-zone/web#1884 (comment)
[1] penumbra-zone/penumbra#5010
[2] #149
TalDerei pushed a commit to prax-wallet/prax that referenced this issue Feb 13, 2025
Capturing recent dev env setup, as explained by @TalDerei.
See related discussion in historical PR [0]. Used these steps to test
locally against the testnet, which is running an alpha version of LQT
support [1]. I believe this docs update is sufficient to close [2].

[0] penumbra-zone/web#1884 (comment)
[1] penumbra-zone/penumbra#5010
[2] #149
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
consensus-breaking breaking change to execution of on-chain data _P-high High priority state-breaking breaking change to on-chain data
Projects
Status: Backlog
Development

No branches or pull requests

5 participants