Anthony Towns [ARCHIVE] on Nostr: 📅 Original date posted:2017-07-12 📝 Original message:On Tue, Jul 11, 2017 at ...
📅 Original date posted:2017-07-12
📝 Original message:On Tue, Jul 11, 2017 at 11:17:24PM -0700, Dan Libby via bitcoin-dev wrote:
> At this time, I would like to have some of the more recent features, but
> without the possibility that my node will activate segwit, until I
> choose to.
I think that terminology isn't quite precise. I think your options are:
- if you're a miner or run a mining pool, you can *signal* (or not
signal) support for segwit activation; you do this by controlling
the block version
- if you're running a node, you can choose to *enforce* (or not
enforce) the additional consensus rules associated with segwit
I think it's the latter you're talking about. "Activation" is different:
it's the collective action of the bitcoin ecosystem to start enforcing
the segwit consensus rules after a sufficient majority of miners are
signalling support. That's not something you as an individual can control.
If you want to disable enforcement of segwit rules, even if a majority of
mining power signal activation, you can change the code and recompile to
do so, for example by changing the nTimeout setting for DEPLOYMENT_SEGWIT
from 1510704000 (Nov 15 2017) to 1493596800 (May 1 2017, already expired).
This is probably a bad idea, in that it will cause you to risk accepting
blocks that nobody else in the network will accept, opening you up
to higher risk of double spends, and may cause you to be unable to
peer with segwit enabled nodes after segwit is activated if your node
is rejecting blocks with witness data because you think segwit is not
enabled while they think it is enabled. To avoid that you would also need
to stop setting the NODE_WITNESS p2p bit, which you might be able to do
by setting the nTimeout above to 0 instead of just a date in the past? I
believe a timeout of 0 gets treated as automatically FAILED. There might
be other complexities too though.
> I'm not looking for reasons NOT to do it, only HOW to do it without
> unwanted side-effects.
The unwanted side-effects are precisely the reasons not to do it. If you
don't understand what they are, you won't be able to avoid them. :)
Cheers,
aj
Published at
2023-06-07 18:04:29Event JSON
{
"id": "77466dc07aa3c11bae0c95b725ac717b00d3f52dcc546b8e7f2392fe523762a3",
"pubkey": "f0feda6ad58ea9f486e469f87b3b9996494363a26982b864667c5d8acb0542ab",
"created_at": 1686161069,
"kind": 1,
"tags": [
[
"e",
"c3417a9d5ad76947acf26c6783addd471ca3bcc5d3ed57deae65203b0eaf5238",
"",
"root"
],
[
"e",
"fe3a5234474f2fbcb9cf68fbcebd77e9710546c606e035bb0498b531c00c4d06",
"",
"reply"
],
[
"p",
"de834b230daa8e6d04c44e51929c52dfdc36dc2f4105a0b67060d9dfc30d6ccc"
]
],
"content": "📅 Original date posted:2017-07-12\n📝 Original message:On Tue, Jul 11, 2017 at 11:17:24PM -0700, Dan Libby via bitcoin-dev wrote:\n\u003e At this time, I would like to have some of the more recent features, but\n\u003e without the possibility that my node will activate segwit, until I\n\u003e choose to.\n\nI think that terminology isn't quite precise. I think your options are:\n\n - if you're a miner or run a mining pool, you can *signal* (or not\n signal) support for segwit activation; you do this by controlling\n the block version\n\n - if you're running a node, you can choose to *enforce* (or not\n enforce) the additional consensus rules associated with segwit\n\nI think it's the latter you're talking about. \"Activation\" is different:\nit's the collective action of the bitcoin ecosystem to start enforcing\nthe segwit consensus rules after a sufficient majority of miners are\nsignalling support. That's not something you as an individual can control.\n\nIf you want to disable enforcement of segwit rules, even if a majority of\nmining power signal activation, you can change the code and recompile to\ndo so, for example by changing the nTimeout setting for DEPLOYMENT_SEGWIT\nfrom 1510704000 (Nov 15 2017) to 1493596800 (May 1 2017, already expired).\nThis is probably a bad idea, in that it will cause you to risk accepting\nblocks that nobody else in the network will accept, opening you up\nto higher risk of double spends, and may cause you to be unable to\npeer with segwit enabled nodes after segwit is activated if your node\nis rejecting blocks with witness data because you think segwit is not\nenabled while they think it is enabled. To avoid that you would also need\nto stop setting the NODE_WITNESS p2p bit, which you might be able to do\nby setting the nTimeout above to 0 instead of just a date in the past? I\nbelieve a timeout of 0 gets treated as automatically FAILED. There might\nbe other complexities too though.\n\n\u003e I'm not looking for reasons NOT to do it, only HOW to do it without\n\u003e unwanted side-effects.\n\nThe unwanted side-effects are precisely the reasons not to do it. If you\ndon't understand what they are, you won't be able to avoid them. :)\n\nCheers,\naj",
"sig": "a93eb121b4970784834d095d33323991c80e06cfd8b468237d3d839e4fadd0937c64ed7543048695e9478bd29fcd6d9cd48cf20baf9f8125be39ebf7cff7c6b6"
}