stacksgov / sips

Community-submitted Stacks Improvement Proposals (SIPs)
131 stars 80 forks source link

SIP-015: Upgrading Proof-of-Transfer Consensus #53

Closed kantai closed 1 year ago

kantai commented 2 years ago

This SIP draft proposes a set of upgrades to Stacking and PoX -- most of the current draft contents cover a proposed pox-2 contract, and how it interacts with Stacking in the stacks-node and Clarity VM. However, this SIP also includes a proposal to address blockstack/stacks-blockchain#1805 -- some of the PR description text was copied into the draft as placeholder text; clearly that portion of the SIP needs to be more fleshed out. Because this SIP is incorporating that proposal, the draft also lists @jcnelson as an author (who opened the draft PR for addressing that issue).

314159265359879 commented 2 years ago

the SIP-013 name is also being used here: https://github.com/stacksgov/sips/pull/42 how do we prevent these conflicts?

jcnelson commented 2 years ago

Yeah -- let's call this SIP 015.

friedger commented 2 years ago

@jcnelson I thought draft sips never have a number until the draft is accepted according to sip-000

jcnelson commented 2 years ago

@friedger You are correct; I'm working under the assumption that SIP 011, SIP 012, and SIP 013 will eventually be accepted, but none of them officially have SIP numbers yet. Also, SIP 000 does not say anything about the order in which numbers are assigned; it only requires that they are unique.

FriendsFerdinand commented 2 years ago

Is this the SIP for the Stacks 2.1 update? I noticed that one of the functions in the proposal (assemble-principal), is already in the stacks-blockchain repo as a PR (https://github.com/stacks-network/stacks-blockchain/pull/2756).

kantai commented 2 years ago

Is this the SIP for the Stacks 2.1 update? I noticed that one of the functions in the proposal (assemble-principal), is already in the stacks-blockchain repo as a PR (stacks-network/stacks-blockchain#2756).

Yep -- this SIP is for 2.1 updates. The PRs in the stacks-blockchain repo should all be open against the next branch, which is where any 2.1 changes will be staged.

jcnelson commented 2 years ago

Okay, so after several rounds of communication in the blockchain meeting and architecture calls, the plan for this SIP is as follows:

  1. Get next into a runnable state. Finish all "high" and "very high" pain items on this checklist here: https://github.com/stacks-network/stacks-blockchain/discussions/3096

  2. Flesh out this SIP to describe all the consensus-breaking changes in next

  3. Add a SIP-012-style Activation section, with the caveat that it's not meant to set a precedent (we'll want to use the "exit-at-block-height" contract once it's ready; it just won't be ready in time for this SIP).

  4. Add a testing subsection to the Activation section. Specifically, there should be a public testnet for this version of Stacks that lets us build up enough confidence in the specification and implementation. The Activation section should describe how to measure this confidence, such as:

    • There exist contracts and transactions on the testnet that use or make use of all of the breaking changes, and they all work correctly

    • The testnet boots up and stays alive without any issues for at least X blocks, and with the same or better quality of service as the current testnet

  5. Once all of the above are achieved, we'll ask the community to vote to activate this SIP.

jcnelson commented 1 year ago

Closing in favor of #95. Please continue discussion there.