Page 1 of 1

Schedule of SegWit support

Posted: Wed Apr 05, 2017 8:45 am
by Steve Sokolowski
I wanted to make a post about SegWit activation, as there have been many questions directed at us recently. For the reasons you'll see below, I need to save time by keeping my remarks relatively brief today.

We remain opposed to Segregated Witness. One of the reasons it is taking so long for pools to implement it is because it is unnecessarily complicated. This complexity is likely to remain indefinitely with the coins that activate it. It is not a solution to full blocks, but fortunately litecoin can ignore the full blocks problem temporarily because its blocks aren't full. Most likely, litecoin will also suffer from a debate like bitcoin is in a year or two, especially if SegWit increases the number of transactions in the coin.

That said, the customer is always right. We asked customers to comment on SegWit activation. About 1000 customers didn't care, a few were opposed, and the two largest miners with 55% of hashrate were in favor. Therefore, we will follow customers' wishes and activate Segregated Witness across scrypt networks. My greatest surprise in this is the number of people who didn't care.

Implementing Segregated Witness is an involved task. Whereas some other pools that use default pool software can simply upgrade to the latest version that someone else wrote, we are different in that, as a pool that distributes hashrate across coins, we have to consider the fate of other networks. We need a switch that can create different types of blocks for different networks at the same time. While we considered simply signaling for Segregated Witness and dealing with actually supporting it before it activates, we quickly realized that wasn't an option, because the parameters for SegWit adoption are not the same across every network. Even if we don't make the difference for Litecoin, it is possible that we could flip the switch on Viacoin, for example, given that as a merge-mined coin, we devote 6 times more hashrate to Viacoin than we do Litecoin. We need to be absolutely certain that this code is rock solid, because we could inadvertently destroy Viacoin and other networks long before Litecoin activates.

Additionally, it's also possible that someone could decide to activate SegWit by buying a lot of litecoins. Since we always mine the most profitable coin, we could find our share of the LTC network at over 5% if LTC wildly soared in value above all other coins. The amount of hashrate currently directed at litecoin is 1/6 or less of our total business. If SegWit gets "stuck" at 70%, it's possible that someone could set buy walls in LTC markets that make LTC so profitable to mine that we rise to 5% of the LTC hashrate and lock SegWit in. Thus, we can't just assume "well, it's only at 72%, we have time until someone else converts."

We believe in complete transparency and honesty, and therefore we're going to put out a schedule with what seems like trivial levels of detail (something which trolls will be laughing at with glee at how they can copy this stuff for their posts), and the reasoning for it, for everyone to see. For us, SegWit activation could not come at a worse time. Taxes come due in 10 days, our code is forked in anticipation of expansion into x11 mining, and we are organizing a major conference this weekend that we cannot push aside. Our current plan is the following:
April 5-9Complete obligations to conference
April 10Surgery to remove ganglion cyst on hand, which will cause typing problems during healing
April 10-17Compute and file taxes
April 16Release x11 mining and deprecate scrypt-only fork (information about downtime to come soon)
April 17-21Resolve expected bugs in x11 production deployment
April 22-23Implement Segregated Witness and try to find blocks on the Litecoin and Viacoin testnets
April 29Target release date of Segregated Witness code with SegWit mining disabled to confirm normal operation on non-supporting coins
April 30Enable SegWit signaling on Litecoin, Viacoin and all other scrypt coins supporting it and resolve expected production deployment bugs
While some may be disappointed that it will take 25 more days, mining is a very low margin business, and even a high hashrate is not enough to support full-time developers on the weekdays. It is my understanding that even if SegWit locks in immediately, it still would not require us to complete SegWit before about May 10, so this schedule is still workable even in the case we are delayed one more weekend. Important to note here is that we have to get x11 mining out first, since there are major improvements to that fork that will make SegWit more reliable and which cannot be easily backported.

Though we need to get x11 mining out, we will not enable SegWit signaling on x11 coins at first, but will do so later. Because we believe that Bitcoin needs a leadership change and blocking SegWit is the best way to accomplish that, we will never support SegWit when we enable SHA-256.

We contacted the Litecoin developers for help with implementing Segregated Witness. They replied stating they would help, but when I asked who would be helping so that I could contact him or her, I received no reply. I will take up a different offer from someone else who offered to help after the conference concludes and my hands heal.

Note that there may be delayed replies to customer support requests this weekend, but we will try to reply as soon as possible. I will also be limiting my activity in forums until April 10 to save time.

If you want to help expedite SegWit, one of the immediate questions that could significantly reduce our workload is an answer to the following: "is it possible to determine by some means other than looking at the code which coins support SegWit?" An RPC call that is only available on SegWit coins would be an easy way to do this; if an exception occurs, then that coin doesn't support SegWit. If a method like this to "detect" SegWit is available, it would significantly reduce our workload, because half the time on this task will be spent searching through all 540 coins and compiling a table of which support SegWit. Please reply below if you know the answer to this question.

Hopefully this post helps people understand our plans and where we are on this topic. One of my hopes is that if SegWit activates on scrypt coins, it will encourage the Core developers to "give up" trying on Bitcoin, given that the 95% threshold there is too high to achieve, and to allow Bitcoin Unlimited to activate first with SegWit coming later, with that effort led by someone other than Gregory Maxwell and the Core leaders. This really is the best solution to the stalemate that satisfies all parties. That way, everyone would have the opportunity to cease the endless talk and see through direct competition which solution actually is better. SegWit is not a solution to blocksize constraints, so it is a good choice for Litecoin but it alone is not acceptable for Bitcoin.

There are great times ahead! Feel free to reply with questions or comments.

Re: Schedule of SegWit support

Posted: Wed Apr 05, 2017 6:44 pm
by gaanthony
There may be some helpful information in this guide ... ade-guide/.

Re: Schedule of SegWit support

Posted: Thu Apr 06, 2017 8:19 am
by Steve Sokolowski
gaanthony wrote:There may be some helpful information in this guide ... ade-guide/.
Thanks for the tip.

I already looked at that guide, though. It's a great guide for beginners, but if you pay attention, you'll notice that it doesn't provide any technical details about how the bytes need to change in the block format for SegWit blocks.