maflcko
commented at 3:58 AM on November 20, 2019:
member
This adds and uses a new transaction type PureTransaction.
The underlying class has no transaction hash compiled in. So
it is safe to use (and faster) wherever it compiles.
The existing CMutableTransaction retains the behavior to calculate the
tx hash on demand. Use of CMutableTransaction makes compile-time
complexity analysis impossible.
The existing CTransaction retains the behavior to cache the hash on
initialization.
#23599 ([WIP] DRAFT NOMERGE Tidy up RPCTxSerializationFlags by MarcoFalke)
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
maflcko removed the label Build system on Nov 20, 2019
maflcko removed the label Consensus on Nov 20, 2019
maflcko removed the label Tests on Nov 20, 2019
maflcko
commented at 4:12 PM on November 20, 2019:
member
So I did some measurements: While this is a clear performance win, it seems the performance is dominated by shuffling the data around multiple times:
refactor: Add PureTransaction and PureBlock (no tx hash)
Those new types are currently unused. The underlying class has no
transaction hash compiled in. So it is safe to use wherever it compiles.
The existing CMutableTransaction retains the behavior to calculate the
tx hash on demand. Use of CMutableTransaction makes compile-time
complexity analysis impossible.
The existing CTransaction retains the behavior to cache the hash on
initialization.
DrahtBot
commented at 12:17 PM on July 26, 2022:
contributor
<!--cf906140f33d8803c4a75a2196329ecb-->
🐙 This pull request conflicts with the target branch and needs rebase.
<sub>Want to unsubscribe from rebase notifications on this pull request? Just convert this pull request to a "draft".</sub>
DrahtBot added the label Needs rebase on Jul 26, 2022
achow101
commented at 6:04 PM on October 12, 2022:
member
Closing this as it has not had any activity in a while. If you are interested in continuing work on this, please leave a comment so that it can be reopened.
This is a metadata mirror of the GitHub repository
bitcoin/bitcoin.
This site is not affiliated with GitHub.
Content is generated from a GitHub metadata backup.
generated: 2026-05-20 06:54 UTC