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

SIMD 0054: Sysvar for active stake #56

Closed
wants to merge 3 commits into from
Closed
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 64 additions & 0 deletions proposals/0054-sysvar-get-active-stake.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
simd: '0054'
title: Sysvar for active stake
authors:
- x19
category: Standard
type: Core
status: Draft
created: 2023-06-7
feature: (fill in with feature tracking issues once accepted)
---

## Summary

We propose to add a new sysvar that contains vote account pubkeys and
their corresponding active stake.

## Motivation

Currently, if a validator wants to prove its active stake to a program,
it needs to
pass in all of the stake accounts which have delegated to it. This is
Comment on lines +21 to +22
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: there are a few truncated line breaks like this through out... would be good to clean them up

infeasible due to the large number of stake accounts this would require.

Using the proposed sysvar, a program can look up the corresponding
vote account and verify the amount of active stake it has delegated to it.

This sysvar would unlock new use cases which use stake amount in their logic
including on-chain governance, attestations, and more.

## Alternatives Considered

None

## New Terminology

None

## Detailed Design

- sysvar structure: `Vec<(vote_account: Pubkey, active_stake_in_lamports: u64)>`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i would suggest an additional field

  • epoch_stake: u64 -- total active stake for the epoch

- sysvar address: `SysvarStakeWeight11111111111111111111111111`

0xNineteen marked this conversation as resolved.
Show resolved Hide resolved
Stake weight information should already be available on full node clients
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this sysvar contain stakes before or after reward calculation ?

since it's required to construct the leader schedule. Since stake weights
can only be
modified on a per-epoch basis, validators will only need to update this
account on epoch boundaries.

We would also need a new feature gate to activate this sysvar.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

move to security section. broken consensus -> loss of availability -> security


## Impact

Implementing the proposed sysvar will enable new types of programs which are
not possible now,
improving Solana's ecosystem.
Comment on lines +79 to +81
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not a particularly valuable statement. elaborate with examples


## Security Considerations

None

## Backwards Compatibility

Existing programs are not impacted at all.