Soft Fork Activation & Enforcement w/o Signaling?

Soft Fork Activation & Enforcement w/o Signaling?
2018-03-28 12:55 ` Jorge Timón
  
From: Samad Sajanlal @ 2018-03-21 22:04 UTC (permalink / raw)
  To: bitcoin-dev

[-- Attachment #1: Type: text/plain, Size: 2142 bytes --]

Is it possible to activate soft forks such as BIP65 and BIP66 without prior
signaling from miners? I noticed in chainparams.cpp that there are block
heights where the enforcement begins.

I understand this is already active on bitcoin. I'm working on a project
that is a clone of a clone of bitcoin, and we currently do not have BIP65
or BIP66 enforced - no signaling of these soft forks either (most of the
network is on a source code fork of bitcoin 0.9). This project does not and
never intends to attempt to replace bitcoin - we know that without bitcoin
our project could never exist, so we owe a great deal of gratitude to the
bitcoin developers.

If the entire network upgrades to the correct version of the software
(based on bitcoin 0.15), which includes the block height that has
enforcement, can we simply skip over the signaling and go straight into
activation/enforcement?

At this time we are lucky that our network is very small, so it is
reasonable to assume that the whole network will upgrade their clients
within a short window (~2 weeks). We would schedule the activation ~2
months out from when the client is released, just to ensure everyone has
time to upgrade.

We have been stuck on the 0.9 code branch and my goal is to bring it up to
0.15 at least, so that we can implement Segwit and other key features that
bitcoin has introduced. The 0.15 client currently works with regards to
sending and receiving transactions but the soft forks are not active. I
understand that activating them will segregate the 0.15 clients onto their
own fork, which is why I'd like to understand the repercussions of doing it
without any signaling beforehand. I also would prefer not to have to make
intermediate releases such as 0.10, 0.11.. etc to get the soft forks
activated.

Another related question - does the block version get bumped up
automatically at the time that a soft fork activates, or is there
additional stuff that I need to do within the code to ensure it bumps up at
the same time? From what I saw in the code it appears that it will bump up
automatically, but I would like some confirmation on that.

Regards,
Samad

[-- Attachment #2: Type: text/html, Size: 5102 bytes --]

 permalink raw reply	[|nested]
2018-03-21 22:04 [bitcoin-dev] Soft Fork Activation & Enforcement w/o Signaling? Samad Sajanlal

  2018-03-29  5:14   ` Samad Sajanlal
  
From: Jorge Timón @ 2018-03-28 12:55 UTC (permalink / raw)
  To: Samad Sajanlal, Bitcoin Protocol Discussion

Yes, you can activate softforks at a given height.
I don't see any reason why you couldn't rebase to 0.16 directly.
The block version bumping was a mistake in bip34, you don't really
need to bump the version number. In any case, I would recommend
reading bip34 and what it activates in the code. IIRC the last thing
was bip65.

On Wed, Mar 21, 2018 at 11:04 PM, Samad Sajanlal via bitcoin-dev
<bitcoin-dev@lists•linuxfoundation.org> wrote:
> Is it possible to activate soft forks such as BIP65 and BIP66 without prior
> signaling from miners? I noticed in chainparams.cpp that there are block
> heights where the enforcement begins.
>
> I understand this is already active on bitcoin. I'm working on a project
> that is a clone of a clone of bitcoin, and we currently do not have BIP65 or
> BIP66 enforced - no signaling of these soft forks either (most of the
> network is on a source code fork of bitcoin 0.9). This project does not and
> never intends to attempt to replace bitcoin - we know that without bitcoin
> our project could never exist, so we owe a great deal of gratitude to the
> bitcoin developers.
>
> If the entire network upgrades to the correct version of the software (based
> on bitcoin 0.15), which includes the block height that has enforcement, can
> we simply skip over the signaling and go straight into
> activation/enforcement?
>
> At this time we are lucky that our network is very small, so it is
> reasonable to assume that the whole network will upgrade their clients
> within a short window (~2 weeks). We would schedule the activation ~2 months
> out from when the client is released, just to ensure everyone has time to
> upgrade.
>
> We have been stuck on the 0.9 code branch and my goal is to bring it up to
> 0.15 at least, so that we can implement Segwit and other key features that
> bitcoin has introduced. The 0.15 client currently works with regards to
> sending and receiving transactions but the soft forks are not active. I
> understand that activating them will segregate the 0.15 clients onto their
> own fork, which is why I'd like to understand the repercussions of doing it
> without any signaling beforehand. I also would prefer not to have to make
> intermediate releases such as 0.10, 0.11.. etc to get the soft forks
> activated.
>
> Another related question - does the block version get bumped up
> automatically at the time that a soft fork activates, or is there additional
> stuff that I need to do within the code to ensure it bumps up at the same
> time? From what I saw in the code it appears that it will bump up
> automatically, but I would like some confirmation on that.
>
> Regards,
> Samad
>
>
>
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists•linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>


 permalink raw reply	[|nested]
2018-03-28 12:55 ` Jorge Timón

  2018-03-30 20:52     ` Jorge Timón
  
From: Samad Sajanlal @ 2018-03-29  5:14 UTC (permalink / raw)
  To: Jorge Timón;  Bitcoin Protocol Discussion

[-- Attachment #1: Type: text/plain, Size: 3568 bytes --]

Excellent - Thanks for your response Jorge. This helps us plan out the
future upgrades properly.
Since I see 0.15 and 0.16 use block versions as 0x20000000, whereas the
current deployed codebase (based on bitcoin 0.9.4) makes versions
0x00000002 (as seen by a 0.15 client), it appears safe to activate soft
forks which require a minimum of version 3 and 4 blocks (0x00000003
and 0x00000004,
respectively). Would you agree?

On Wed, Mar 28, 2018 at 7:55 AM, Jorge Timón <jtimon@jtimon•cc> wrote:

> Yes, you can activate softforks at a given height.
> I don't see any reason why you couldn't rebase to 0.16 directly.
> The block version bumping was a mistake in bip34, you don't really
> need to bump the version number. In any case, I would recommend
> reading bip34 and what it activates in the code. IIRC the last thing
> was bip65.
>
> On Wed, Mar 21, 2018 at 11:04 PM, Samad Sajanlal via bitcoin-dev
> <bitcoin-dev@lists•linuxfoundation.org> wrote:
> > Is it possible to activate soft forks such as BIP65 and BIP66 without
> prior
> > signaling from miners? I noticed in chainparams.cpp that there are block
> > heights where the enforcement begins.
> >
> > I understand this is already active on bitcoin. I'm working on a project
> > that is a clone of a clone of bitcoin, and we currently do not have
> BIP65 or
> > BIP66 enforced - no signaling of these soft forks either (most of the
> > network is on a source code fork of bitcoin 0.9). This project does not
> and
> > never intends to attempt to replace bitcoin - we know that without
> bitcoin
> > our project could never exist, so we owe a great deal of gratitude to the
> > bitcoin developers.
> >
> > If the entire network upgrades to the correct version of the software
> (based
> > on bitcoin 0.15), which includes the block height that has enforcement,
> can
> > we simply skip over the signaling and go straight into
> > activation/enforcement?
> >
> > At this time we are lucky that our network is very small, so it is
> > reasonable to assume that the whole network will upgrade their clients
> > within a short window (~2 weeks). We would schedule the activation ~2
> months
> > out from when the client is released, just to ensure everyone has time to
> > upgrade.
> >
> > We have been stuck on the 0.9 code branch and my goal is to bring it up
> to
> > 0.15 at least, so that we can implement Segwit and other key features
> that
> > bitcoin has introduced. The 0.15 client currently works with regards to
> > sending and receiving transactions but the soft forks are not active. I
> > understand that activating them will segregate the 0.15 clients onto
> their
> > own fork, which is why I'd like to understand the repercussions of doing
> it
> > without any signaling beforehand. I also would prefer not to have to make
> > intermediate releases such as 0.10, 0.11.. etc to get the soft forks
> > activated.
> >
> > Another related question - does the block version get bumped up
> > automatically at the time that a soft fork activates, or is there
> additional
> > stuff that I need to do within the code to ensure it bumps up at the same
> > time? From what I saw in the code it appears that it will bump up
> > automatically, but I would like some confirmation on that.
> >
> > Regards,
> > Samad
> >
> >
> >
> > _______________________________________________
> > bitcoin-dev mailing list
> > bitcoin-dev@lists•linuxfoundation.org
> > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
> >
>

[-- Attachment #2: Type: text/html, Size: 4622 bytes --]

 permalink raw reply	[|nested]
2018-03-29  5:14   ` Samad Sajanlal

  
From: Jorge Timón @ 2018-03-30 20:52 UTC (permalink / raw)
  To: Samad Sajanlal;  Bitcoin Protocol Discussion

Yes, in fact, you don't need to lose those bits like bitcoin by
imposing that the version is greater than that. But I guess just doing
the same is simpler.

On Thu, Mar 29, 2018 at 7:14 AM, Samad Sajanlal
<samad.sajanlal@gmail•com> wrote:
> Excellent - Thanks for your response Jorge. This helps us plan out the
> future upgrades properly.
> Since I see 0.15 and 0.16 use block versions as 0x20000000, whereas the
> current deployed codebase (based on bitcoin 0.9.4) makes versions 0x00000002
> (as seen by a 0.15 client), it appears safe to activate soft forks which
> require a minimum of version 3 and 4 blocks (0x00000003 and 0x00000004,
> respectively). Would you agree?
>
> On Wed, Mar 28, 2018 at 7:55 AM, Jorge Timón <jtimon@jtimon•cc> wrote:
>>
>> Yes, you can activate softforks at a given height.
>> I don't see any reason why you couldn't rebase to 0.16 directly.
>> The block version bumping was a mistake in bip34, you don't really
>> need to bump the version number. In any case, I would recommend
>> reading bip34 and what it activates in the code. IIRC the last thing
>> was bip65.
>>
>> On Wed, Mar 21, 2018 at 11:04 PM, Samad Sajanlal via bitcoin-dev
>> <bitcoin-dev@lists•linuxfoundation.org> wrote:
>> > Is it possible to activate soft forks such as BIP65 and BIP66 without
>> > prior
>> > signaling from miners? I noticed in chainparams.cpp that there are block
>> > heights where the enforcement begins.
>> >
>> > I understand this is already active on bitcoin. I'm working on a project
>> > that is a clone of a clone of bitcoin, and we currently do not have
>> > BIP65 or
>> > BIP66 enforced - no signaling of these soft forks either (most of the
>> > network is on a source code fork of bitcoin 0.9). This project does not
>> > and
>> > never intends to attempt to replace bitcoin - we know that without
>> > bitcoin
>> > our project could never exist, so we owe a great deal of gratitude to
>> > the
>> > bitcoin developers.
>> >
>> > If the entire network upgrades to the correct version of the software
>> > (based
>> > on bitcoin 0.15), which includes the block height that has enforcement,
>> > can
>> > we simply skip over the signaling and go straight into
>> > activation/enforcement?
>> >
>> > At this time we are lucky that our network is very small, so it is
>> > reasonable to assume that the whole network will upgrade their clients
>> > within a short window (~2 weeks). We would schedule the activation ~2
>> > months
>> > out from when the client is released, just to ensure everyone has time
>> > to
>> > upgrade.
>> >
>> > We have been stuck on the 0.9 code branch and my goal is to bring it up
>> > to
>> > 0.15 at least, so that we can implement Segwit and other key features
>> > that
>> > bitcoin has introduced. The 0.15 client currently works with regards to
>> > sending and receiving transactions but the soft forks are not active. I
>> > understand that activating them will segregate the 0.15 clients onto
>> > their
>> > own fork, which is why I'd like to understand the repercussions of doing
>> > it
>> > without any signaling beforehand. I also would prefer not to have to
>> > make
>> > intermediate releases such as 0.10, 0.11.. etc to get the soft forks
>> > activated.
>> >
>> > Another related question - does the block version get bumped up
>> > automatically at the time that a soft fork activates, or is there
>> > additional
>> > stuff that I need to do within the code to ensure it bumps up at the
>> > same
>> > time? From what I saw in the code it appears that it will bump up
>> > automatically, but I would like some confirmation on that.
>> >
>> > Regards,
>> > Samad
>> >
>> >
>> >
>> > _______________________________________________
>> > bitcoin-dev mailing list
>> > bitcoin-dev@lists•linuxfoundation.org
>> > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>> >
>
>


 permalink raw reply	[|nested]