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

Blog: add "Segregated Witness: Next Steps" #188

Merged
merged 1 commit into from Jun 24, 2016

Conversation

Projects
None yet
5 participants
@harding
Contributor

harding commented Jun 24, 2016

This adds a blog post describing the current state of segwit, how it is expected to be rolled out, and a few things that are possible in future Script upgrades. It is based upon an outline written (I believe) by @btcdrak and contains many suggested improvements to an earlier draft from a number of people. All remaining errors are entirely my fault.

A screenshot of the rendered post can be found here: https://i.imgur.com/NOhsA9i.png

The document is long, so time-pressed Bitcoin experts who only have time to review part of it are encouraged to start with the last two sections, "Schnorr" and "MAST", as those are the topics I knew the least about and which seemed to have the most significant errors found during first review.

I feel the MAST section is the weakest part of the blog post and could probably be rewritten to good effect (plus maybe crudely illustrated for those who don't understand merkle trees). I may attempt that tomorrow if there aren't too many comments on the main body of the text.

Although the post is probably already too long and detailed for many readers, if anyone thinks there are important (or really interesting) topics missing, I'm happy to add them over the weekend.

@btcdrak could you please review the YAML header's category and tags fields; I didn't know what to put there.

@harding harding added the blog label Jun 24, 2016

@kanzure

This comment has been minimized.

Show comment
Hide comment
@kanzure

kanzure commented Jun 24, 2016

ACK 8ae9da2

@btcdrak

This comment has been minimized.

Show comment
Hide comment
@btcdrak

btcdrak Jun 24, 2016

Contributor

@harding Thanks for stepping up to write the content based on the outline.

Contributor

btcdrak commented Jun 24, 2016

@harding Thanks for stepping up to write the content based on the outline.

@jl2012

This comment has been minimized.

Show comment
Hide comment
@jl2012

jl2012 Jun 24, 2016

Contributor

ACK 8ae9da2

Contributor

jl2012 commented Jun 24, 2016

ACK 8ae9da2

The following plan describes how segwit is expected to be deployed.
**Merge to master (without mainnet activation code):** after Bitcoin Core developers "ACK" (approve) the final segwit pull request, it will be merged into the Bitcoin Core master Git repository branch. The code that is being merged will include everything in segwit except for the activation code. This will make it easy for developers to test other features on top of segwit, such as compact blocks.

This comment has been minimized.

@laanwj

laanwj Jun 24, 2016

Member

Maybe add "on testnet" somewhere here, there is no activation for mainnet, but segwit can already be tested on testnet with 0.13/master from this point on.

@laanwj

laanwj Jun 24, 2016

Member

Maybe add "on testnet" somewhere here, there is no activation for mainnet, but segwit can already be tested on testnet with 0.13/master from this point on.

This comment has been minimized.

@btcdrak

btcdrak Jun 24, 2016

Contributor

probably worth saying segwit is active already on testnet and people can begin testing it immediately.

@btcdrak

btcdrak Jun 24, 2016

Contributor

probably worth saying segwit is active already on testnet and people can begin testing it immediately.

This comment has been minimized.

@btcdrak

btcdrak Jun 24, 2016

Contributor

I'll add this.

@btcdrak

btcdrak Jun 24, 2016

Contributor

I'll add this.

- Also in May 2016, twenty Bitcoin Core developers [met in Switzerland][may2016 core meetup] for (among other things) an in-person review of the segwit code and ensuring that test coverage was adequate.
- In June 2016, after almost two months of very active review on the original pull request plus extended operation on both segnet and testnet, Wuille created a [second pull request][PR#8149] that contained all the improvements made to the original pull request, rebased on top of the most recent version of Bitcoin Core's development branch, and which was specially formatted to make final review easy as well as ensure all reviews made to the original pull request remained valid.

This comment has been minimized.

@laanwj

laanwj Jun 24, 2016

Member

Really like this timeline of events!

@laanwj

laanwj Jun 24, 2016

Member

Really like this timeline of events!

**Release candidate phase:** after all developer testing is successfully concluded, a release candidate (probably named 0.12.2RC1) will be publicly provided to anyone willing to test the code. Miners, merchants, and wallet vendors are especially encouraged to test. If any problems are found, they will be fixed and a new release candidate will be issued. This will be repeated as necessary until a release candidate is found with no known problems.
**Binary release:** the final release candidate will have its version changed to the final release version (expected to be 0.12.2) and will be released for all users to download and begin running at their leisure (segwit is a soft fork, so upgrading is only required if they plan to use segwit features; however upgrade is appreciated).

This comment has been minimized.

@laanwj

laanwj Jun 24, 2016

Member

"upgrade is appreciated" sounds a bit strange to me - appreciated by whom - maybe recommended?

@laanwj

laanwj Jun 24, 2016

Member

"upgrade is appreciated" sounds a bit strange to me - appreciated by whom - maybe recommended?

This comment has been minimized.

@btcdrak

btcdrak Jun 24, 2016

Contributor

Addressed.

@btcdrak

btcdrak Jun 24, 2016

Contributor

Addressed.

- **Users of other wallets** can continue using their existing wallets. It is recommended that lightweight wallet users always wait for several confirmations when receiving significant amounts of money, so no extra waiting is expected to be required here.
When you have the opportunity to upgrade to a version of your wallet that supports segwit, you may find that the transaction fee you have to pay is slightly lower when you spend bitcoins you received after upgrading to segwit.

This comment has been minimized.

@laanwj

laanwj Jun 24, 2016

Member

maybe add a bit of explanation here: the transaction size counting towards the fee is smaller because the witness is external

@laanwj

laanwj Jun 24, 2016

Member

maybe add a bit of explanation here: the transaction size counting towards the fee is smaller because the witness is external

This comment has been minimized.

@btcdrak

btcdrak Jun 24, 2016

Contributor

Addressed.

@btcdrak

btcdrak Jun 24, 2016

Contributor

Addressed.

categories: [mining]
tags: [soft fork, soft forks, bip9, version bits, mining, segwit]
version: 1
excerpt: Segregated witness (segwit) is approaching release. This post provides some background information, details about how segwit was tested, information about how the upgrade is expected to proceed, and a description of some future features that segwit makes easier to implement.

This comment has been minimized.

@laanwj

laanwj Jun 24, 2016

Member

Using double spaces, you secret Satoshi!

@laanwj

laanwj Jun 24, 2016

Member

Using double spaces, you secret Satoshi!

@laanwj

This comment has been minimized.

Show comment
Hide comment
@laanwj

laanwj Jun 24, 2016

Member

Awesome writeup, hard to not get excited about all the new possibilities.
ACK, w/ some unimportant nits 8ae9da2

Member

laanwj commented Jun 24, 2016

Awesome writeup, hard to not get excited about all the new possibilities.
ACK, w/ some unimportant nits 8ae9da2

@btcdrak btcdrak merged commit 8ae9da2 into bitcoin-core:gh-pages Jun 24, 2016

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
@btcdrak

This comment has been minimized.

Show comment
Hide comment
@btcdrak

btcdrak Jun 24, 2016

Contributor

@harding I've merged this and addressed some of @laanwj's nits. Feel free to tweak some more if necessary.

Contributor

btcdrak commented Jun 24, 2016

@harding I've merged this and addressed some of @laanwj's nits. Feel free to tweak some more if necessary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment