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

update passive staking proposal #3335

Merged
merged 2 commits into from
Mar 19, 2019

Conversation

rob-solana
Copy link
Contributor

Problem

proposal had some conflicting info, names for things, no pictures

Summary of Changes

groom passive staking proposal
add art
add mscgen support to proposals and book makefiles

@rob-solana rob-solana requested review from garious and aeyakovenko and removed request for garious March 16, 2019 00:41
@@ -58,10 +58,27 @@ staker's StakeState accounts. This is the percentage ceiling of the reward.
* Account::lamports - The accumulated lamports from the commission. These do not
count as stakes.

* `authorized_voter_id` - Only this identity is authorized to submit votes.
* `authorized_vote_signer` - Only this identity is authorized to submit votes, and
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we delete this field and have the vote signer create this account?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

if we do so, we'll need a field for the validator node's pubkey (who can submit votes?). using this approach allows us to bypass needing a vote_signer by default

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm confused. Why does the validator node submit votes instead of the vote signer? I think if there's any default, it should be to use the Vote account's pubkey as the validator's pubkey.

Copy link
Contributor Author

@rob-solana rob-solana Mar 18, 2019

Choose a reason for hiding this comment

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

the validator node ships the vote over gossip. the (optional) vote signer merely presents KeypairUtil to the node. another consideration I had was the complexity of deriving stake weight, which increases with this proposal.

finally: there's a race condition in the current staking design that comes about from having a VoteState name the node instead of vice-versa. when VoteState is constructed, it has a Pubkey in delegate_id that should not be considered in leader rotation

Copy link
Contributor Author

@rob-solana rob-solana Mar 18, 2019

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

here's the hack for the race:

.filter(|(account_id, _, account)| filter_no_delegate(account_id, account))

Copy link
Contributor

Choose a reason for hiding this comment

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

@rob-solana, It's only the use of VotingKeypair (RemoteVoteSigner) that's optional. There will always be a Vote account. The keypair for that Vote account is what you'd put into RemoteVoteSigner. On validator startup, it registers its own pubkey with RemoteVoteSigner, but that's just to get it over to RemoteVoteSigner. The RemoteVoteSigner then re-signed the transaction with its keypair, which is the owner of the Vote account.

tldr; a big appeal of this design proposal is that authorized_vote_signer is no longer needed.

Copy link
Contributor

Choose a reason for hiding this comment

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

Regarding your hack, why not add config-staking-account options to create-staking-account in solana-wallet (and then send a single transaction)?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

we tried that earlier... the issue was when we needed which keypairs

the decision to pursue that hack for Beacons was expediency, and knowing that this proposal was out there, waiting

@rob-solana rob-solana requested a review from mvines March 18, 2019 21:06
@rob-solana rob-solana merged commit 5a67362 into solana-labs:master Mar 19, 2019
@rob-solana rob-solana deleted the stake-delegation branch March 19, 2019 19:10
joncinque added a commit to joncinque/solana that referenced this pull request Oct 29, 2024
…olana-labs#3335)

CHANGELOG: Add entry for breaking change to curve22519-dalek

#### Problem

solana-labs#1693 introduced a breaking change between v2.0 and v2.1 of the Solana
crates by bumping a dependency to a new major version, but it isn't
reflected in the changelog.

#### Summary of changes

Add a line in the changelog about the breaking change.
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.

2 participants