feat(votemarket-proofs): bulk eth_getProof and batch-verifier artifacts - #61
Draft
pierremarsotlyon1 wants to merge 1 commit into
Draft
feat(votemarket-proofs): bulk eth_getProof and batch-verifier artifacts#61pierremarsotlyon1 wants to merge 1 commit into
pierremarsotlyon1 wants to merge 1 commit into
Conversation
…ts, toolkit repo renamed Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LMZP3iKTaV4C4uNCFxBLAw
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.
Part of ENG-2165 (https://linear.app/stake-dao/issue/ENG-2165).
What
Wires the weekly Votemarket proof generation to the toolkit's bulk mode, so the published JSON gains the batch-verifier node bags (
batchper gauge,batch_pointsper platform) next to the legacy fields, which are untouched. Also renames the checked-out repository to its current name and hardens the checkout step.automation/get_active_users_proofs.mk:VM_BULK_PROOFS=1by default, passing--bulk-proofs(plus the optional--keys-per-call/--batch-max-bytesknobs) tovm_active_proofs.py. The flags are only passed when the checked-out toolkit revision advertises them in its--help, so this job keeps working against a toolkit that predates bulk mode.automation/setup/votemarket-proofs-script.mk: repository renamed tostake-dao/votemarket-proof-toolkit, checkout resets to the fetched ref instead ofgit pull, the access token is no longer echoed into the logs, and dependencies are resolved in their own step so a resolution failure fails there with a clear message instead of inside the proof generation..github/workflows/votemarket-proofs.yml:bulk_proofsandbatch_max_bytesinputs for manual dispatches (the weeklyrepository_dispatchalways uses bulk mode), and the commit step no longer fails when the run produced no change.Why bulk mode: the toolkit groups the storage keys of a gauge into a few
eth_getProofcalls instead of one per proof, which is where the node bags come from at zero extra RPC cost. Measured on a full replay of an epoch: 600 calls and 21 s down to 96 calls and 4.3 s, byte-identical output.Dependencies and rollout
The artifacts themselves only appear once stake-dao/votemarket-proof-toolkit#29 lands on the toolkit's
main, which this job always checks out. Until then the--helpguard keeps the legacy per-request path, so this PR is safe to merge first and changes nothing on its own.Consumers of the new fields: the guard-routed proof-insertion jobs in stake-dao/automation-guard#37, which fall back to the legacy proofs whenever a gauge has no
batch.Testing
To be exercised from this repository before merging, per the usual rule: a manual dispatch of the workflow with
bulk_proofschecked, on a toolkit branch carrying the flag. Locally validated so far: the makefile setup,uv sync, and the toolkit's 175 unit tests under Python 3.10 in the clone this job creates.🤖 Generated with Claude Code
https://claude.ai/code/session_01LMZP3iKTaV4C4uNCFxBLAw