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

(Not ready for review) Better Blocks #149

Closed
wants to merge 9 commits into from
Closed

Conversation

jcnelson
Copy link
Contributor

@jcnelson jcnelson commented Jul 19, 2023

Supersedes #147

@jcnelson
Copy link
Contributor Author

@kantai @obycode Can we work on this PR instead of #147? Are you able to commit to this branch directly? Because, I can't commit to hirosystems/sips.

@obycode
Copy link
Contributor

obycode commented Jul 19, 2023

@kantai @obycode Can we work on this PR instead of #147? Are you able to commit to this branch directly? Because, I can't commit to hirosystems/sips.

I can but Aaron mentioned that he couldn't commit to the branch I had originally created.

Comment on lines +332 to +333
set. Would-be producers are ranked by these BTC expenditures, and the top 100
will be selected for the producer set.
Copy link
Contributor

Choose a reason for hiding this comment

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

Previously, I brought up rolling over credits for the BTC expenditures of would-be producers that do not make it into the top 100. The point behind this would be to ensure that small miners wouldn't be disadvantaged by a large miner that could push them out of the top 100, thus wasting their BTC for no rewards.

Open questions:

  • Do you think this is necessary to avoid disadvantaging small miners?
  • Does this open a DoS attack?
    • Maybe it should have some minimum amount, some maximum number of consecutive terms that credits can rollover, and/or some maximum number of producers.

Copy link
Contributor

Choose a reason for hiding this comment

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

Do you think this is necessary to avoid disadvantaging small miners?

I don't think so. Looking at the history of miner contributions in Stacks 2.0, the highest number of miners is ~7-8, so I think it's probably not worth the mechanics in the protocol to support roll overs.

Does this open a DoS attack?

Depending on implementation, yes. It would need a maximum rollover lifetime and a lower limit.

However, on reflection, I wonder if setting a "top 100" rather than a threshold like 1% of the total is a bad design. A top 100 incentivizes big miners to split up their commitments to crowd out smaller miners. For example:

During a term, producers in the set are eligible to receive a portion of the
coinbase rewards and transaction fees for blocks they produce. Since a term is
defined as 10 Bitcoin blocks, the coinbase reward is equal to 10 times the
coinbase as defined in **_<which SIP defines this?>_**. This amount is
Copy link
Contributor

Choose a reason for hiding this comment

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

Where is the coinbase amount defined? I couldn't find it.

Comment on lines +348 to +349
the term by the transaction fees. Transaction fees are paid only to producer set
participants who signed the blocks produced. For each block, _B_, the total BTC
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 incentivize some kind of race to submit a block to the stackers to sign before all of the producers have had a chance to sign it (after 67% have signed)?

Copy link
Contributor

Choose a reason for hiding this comment

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

I think it does incentivize trying to minimize the set of signers, yes. I'm not sure if this is a time-race, though.

@kantai
Copy link
Contributor

kantai commented Jul 19, 2023

Are you able to commit to this branch directly? Because, I can't commit to hirosystems/sips.

No -- I don't have any commit permissions on this repo. You should have write perms to hirosystems/sips now -- can you push to my branch there?

@jcnelson
Copy link
Contributor Author

@jcnelson jcnelson closed this Jul 19, 2023
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.

3 participants