Gregory Maxwell [ARCHIVE] on Nostr: 📅 Original date posted:2015-09-29 📝 Original message:On Wed, Sep 30, 2015 at ...
📅 Original date posted:2015-09-29
📝 Original message:On Wed, Sep 30, 2015 at 2:30 AM, Rusty Russell <rusty at rustcorp.com.au> wrote:
> Hi all,
>
> Pieter and Eric pointed out that the current BIP has miners
> turning off the bit as soon as it's locked in (75% testnet / 95%
> mainnet). It's better for them to keep setting the bit until activation
> (2016 blocks later), so network adoption is visible.
>
> I'm not proposing another suggestion, though I note it for future:
> miners keep setting the bit for another 2016 blocks after activation,
> and have a consensus rule that rejects blocks without the bit. That
> would "force" upgrades on those last miners. I feel we should see how
> this works first.
Actually getting rid of the immediate bit forcing was something I
considered to be an advantage of versionbits over prior work.
Consider, where possible we carve soft fork features out from
non-standard behavior. Why do we do this? Primarily so that
non-upgraded miners are not mining invalid transactions which
immediately cause short lived forks once the soft-fork activates.
(Secondarily to protect wallets from unconfirmed TX that won't ever
confirm).
The version forcing, however, guarantees existence of the same forks
that the usage of non-standard prevented!
I can, however, argue it the other way (and probably have in the
past): The bit is easily checked by thin clients, so thin clients
could use it to reject potentially ill-fated blocks from non-upgraded
miners post switch (which otherwise they couldn't reject without
inspecting the whole thing). This is an improvement over not forcing
the bit, and it's why I was previously in favor of the way the
versions were enforced. But, experience has played out other ways,
and thin clients have not done anything useful with the version
numbers.
A middle ground might be to require setting the bit for a period of
time after rule enforcing begins, but don't enforce the bit, just
enforce validity of the block under new rules. Thus a thin client
could treat these blocks with increased skepticism.
📝 Original message:On Wed, Sep 30, 2015 at 2:30 AM, Rusty Russell <rusty at rustcorp.com.au> wrote:
> Hi all,
>
> Pieter and Eric pointed out that the current BIP has miners
> turning off the bit as soon as it's locked in (75% testnet / 95%
> mainnet). It's better for them to keep setting the bit until activation
> (2016 blocks later), so network adoption is visible.
>
> I'm not proposing another suggestion, though I note it for future:
> miners keep setting the bit for another 2016 blocks after activation,
> and have a consensus rule that rejects blocks without the bit. That
> would "force" upgrades on those last miners. I feel we should see how
> this works first.
Actually getting rid of the immediate bit forcing was something I
considered to be an advantage of versionbits over prior work.
Consider, where possible we carve soft fork features out from
non-standard behavior. Why do we do this? Primarily so that
non-upgraded miners are not mining invalid transactions which
immediately cause short lived forks once the soft-fork activates.
(Secondarily to protect wallets from unconfirmed TX that won't ever
confirm).
The version forcing, however, guarantees existence of the same forks
that the usage of non-standard prevented!
I can, however, argue it the other way (and probably have in the
past): The bit is easily checked by thin clients, so thin clients
could use it to reject potentially ill-fated blocks from non-upgraded
miners post switch (which otherwise they couldn't reject without
inspecting the whole thing). This is an improvement over not forcing
the bit, and it's why I was previously in favor of the way the
versions were enforced. But, experience has played out other ways,
and thin clients have not done anything useful with the version
numbers.
A middle ground might be to require setting the bit for a period of
time after rule enforcing begins, but don't enforce the bit, just
enforce validity of the block under new rules. Thus a thin client
could treat these blocks with increased skepticism.