Mike Hearn [ARCHIVE] on Nostr: 📅 Original date posted:2013-03-12 📝 Original message:I'm not even sure I'd say ...
📅 Original date posted:2013-03-12
📝 Original message:I'm not even sure I'd say the upgrade "went wrong". The problem if
anything is the upgrade didn't happen fast enough. If we had run out
of block space a few months from now, or if miners/merchants/exchanges
had upgraded faster, it'd have made more sense to just roll forward
and tolerate the loss of the older clients.
This really reinforces the importance of keeping nodes up to date.
On Tue, Mar 12, 2013 at 12:44 PM, Pieter Wuille <pieter.wuille at gmail.com> wrote:
> On Tue, Mar 12, 2013 at 11:13:09AM +0100, Michael Gronager wrote:
>> Yes, 0.7 (yes 0.7!) was not sufficiently tested it had an undocumented and unknown criteria for block rejection, hence the upgrade went wrong.
>
> We're using "0.7" as a short moniker for all clients, but this was a limitation that all
> BDB-based bitcoins ever had. The bug is simply a limit in the number of lock objects
> that was reached.
>
> It's ironic that 0.8 was supposed to solve all problems we had due to BDB (except the
> wallet...), but now it seems it's still coming back to haunt us. I really hated telling
> miners to go back to 0.7, given all efforts to make 0.8 signficantly more tolerable...
>
>> More space in the block is needed indeed, but the real problem you are describing is actually not missing space in the block, but proper handling of mem-pool transactions. They should be pruned on two criteria:
>>
>> 1. if they gets to old >24hr
>> 2. if the client is running out of space, then the oldest should probably be pruned
>>
>> clients are anyway keeping, and re-relaying, their own transactions and hence it would mean only little, and only little for clients. Dropping free / old transaction is a much a better behavior than dying... Even a scheme where the client dropped all or random mempool txes would be a tolerable way of handling things (dropping all is similar to a restart, except for no user intervention).
>
> Right now, mempools are relatively small in memory usage, but with small block sizes,
> it indeed risks going up. In 0.8, conflicting (=double spending) transactions in the
> chain cause clearing the mempool of conflicts, so at least the mempool is bounded by
> the size of the UTXO subset being spent. Dropping transactions from the memory pool
> when they run out of space seems a correct solution. I'm less convinced about a
> deterministic time-based rule, as that creates a double spending incentive at that
> time, and a counter incentive to spam the network with your risking-to-be-cleared
> transaction as well.
>
> Regarding the block space, we've seen the pct% of one single block chain space consumer
> grow simultaneously with the introduction of larger blocks, so I'm not actually convinced
> there is right now a big need for larger blocks (note: right now). The competition for
> block chain space is mostly an issue for client software which doesn't deal correctly
> with non-confirming transactions, and misleading users. It's mostly a usability problem
> now, but increasing block sizes isn't guaranteed to fix that; it may just make more
> space for spam.
>
> However, the presence of this bug, and the fact that a full solution is available (0.8),
> probably helps achieving consensus fixing it (=a hardfork) is needed, and we should take
> advantage of that. But please, let's not rush things...
>
> --
> Piter
Published at
2023-06-07 11:37:12Event JSON
{
"id": "eaa6b07032cc5c77d82ea2e250d73c64c6b6916a935b5f48281036882601db29",
"pubkey": "f2c95df3766562e3b96b79a0254881c59e8639f23987846961cf55412a77f6f2",
"created_at": 1686137832,
"kind": 1,
"tags": [
[
"e",
"bf6db92ac74ed2040908c22a007eaccc4dacca3e534709bcb8876ea849933631",
"",
"root"
],
[
"e",
"0a333d3a78cef406077fa78566b662d6af4b9ce3f5881776a3a694b3a5394329",
"",
"reply"
],
[
"p",
"5cb21bf5d7f25a9d46879713cbd32433bbc10e40ef813a3c28fe7355f49854d6"
]
],
"content": "📅 Original date posted:2013-03-12\n📝 Original message:I'm not even sure I'd say the upgrade \"went wrong\". The problem if\nanything is the upgrade didn't happen fast enough. If we had run out\nof block space a few months from now, or if miners/merchants/exchanges\nhad upgraded faster, it'd have made more sense to just roll forward\nand tolerate the loss of the older clients.\n\nThis really reinforces the importance of keeping nodes up to date.\n\nOn Tue, Mar 12, 2013 at 12:44 PM, Pieter Wuille \u003cpieter.wuille at gmail.com\u003e wrote:\n\u003e On Tue, Mar 12, 2013 at 11:13:09AM +0100, Michael Gronager wrote:\n\u003e\u003e Yes, 0.7 (yes 0.7!) was not sufficiently tested it had an undocumented and unknown criteria for block rejection, hence the upgrade went wrong.\n\u003e\n\u003e We're using \"0.7\" as a short moniker for all clients, but this was a limitation that all\n\u003e BDB-based bitcoins ever had. The bug is simply a limit in the number of lock objects\n\u003e that was reached.\n\u003e\n\u003e It's ironic that 0.8 was supposed to solve all problems we had due to BDB (except the\n\u003e wallet...), but now it seems it's still coming back to haunt us. I really hated telling\n\u003e miners to go back to 0.7, given all efforts to make 0.8 signficantly more tolerable...\n\u003e\n\u003e\u003e More space in the block is needed indeed, but the real problem you are describing is actually not missing space in the block, but proper handling of mem-pool transactions. They should be pruned on two criteria:\n\u003e\u003e\n\u003e\u003e 1. if they gets to old \u003e24hr\n\u003e\u003e 2. if the client is running out of space, then the oldest should probably be pruned\n\u003e\u003e\n\u003e\u003e clients are anyway keeping, and re-relaying, their own transactions and hence it would mean only little, and only little for clients. Dropping free / old transaction is a much a better behavior than dying... Even a scheme where the client dropped all or random mempool txes would be a tolerable way of handling things (dropping all is similar to a restart, except for no user intervention).\n\u003e\n\u003e Right now, mempools are relatively small in memory usage, but with small block sizes,\n\u003e it indeed risks going up. In 0.8, conflicting (=double spending) transactions in the\n\u003e chain cause clearing the mempool of conflicts, so at least the mempool is bounded by\n\u003e the size of the UTXO subset being spent. Dropping transactions from the memory pool\n\u003e when they run out of space seems a correct solution. I'm less convinced about a\n\u003e deterministic time-based rule, as that creates a double spending incentive at that\n\u003e time, and a counter incentive to spam the network with your risking-to-be-cleared\n\u003e transaction as well.\n\u003e\n\u003e Regarding the block space, we've seen the pct% of one single block chain space consumer\n\u003e grow simultaneously with the introduction of larger blocks, so I'm not actually convinced\n\u003e there is right now a big need for larger blocks (note: right now). The competition for\n\u003e block chain space is mostly an issue for client software which doesn't deal correctly\n\u003e with non-confirming transactions, and misleading users. It's mostly a usability problem\n\u003e now, but increasing block sizes isn't guaranteed to fix that; it may just make more\n\u003e space for spam.\n\u003e\n\u003e However, the presence of this bug, and the fact that a full solution is available (0.8),\n\u003e probably helps achieving consensus fixing it (=a hardfork) is needed, and we should take\n\u003e advantage of that. But please, let's not rush things...\n\u003e\n\u003e --\n\u003e Piter",
"sig": "c9f063807581f49c2c3a28df9a30edeff993a6d952a6e32807215be4b601500c0c0eb9e0445b049b3368ffa59ad05d8096d0aa810c5a8af6d4085873036f8af8"
}