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.
maflcko force-pushed
on Nov 20, 2019
DrahtBot added the label
Build system
on Nov 20, 2019
DrahtBot added the label
Consensus
on Nov 20, 2019
DrahtBot added the label
RPC/REST/ZMQ
on Nov 20, 2019
DrahtBot added the label
Tests
on Nov 20, 2019
DrahtBot added the label
Validation
on Nov 20, 2019
DrahtBot
commented at 8:44 am on November 20, 2019:
contributor
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
Conflicts
Reviewers, this pull request conflicts with the following ones:
#25694 (refactor: Make CTransaction constructor explicit by MarcoFalke)
#25665 (BResult improvements, allow returning separate value on failure by ryanofsky)
#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:
Hashing takes 10%-25% on intel CPUs. Didn’t try arm.
master:
faaa142412:
maflcko
commented at 4:22 pm on November 20, 2019:
member
I guess it would be smarter to see if the rpc serialization flags are matching the ones of the block on disk and then just serve it raw. See #13151
maflcko added the label
Brainstorming
on Nov 20, 2019
DrahtBot added the label
Needs rebase
on Dec 16, 2019
laanwj
commented at 12:17 pm on December 17, 2019:
member
I guess it would be smarter to see if the rpc serialization flags are matching the ones of the block on disk and then just serve it raw. See #13151
If so, it would definitely be a simpler/smaller change!
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.
zmq: Send blocks faster by serializing PureBlockb60e452aef
rpc: Faster getblock by using PureBlock853cea80b9
maflcko force-pushed
on Jul 25, 2022
DrahtBot removed the label
Needs rebase
on Jul 25, 2022
DrahtBot
commented at 12:17 pm on July 26, 2022:
contributor
🐙 This pull request conflicts with the target branch and needs rebase.
Want to unsubscribe from rebase notifications on this pull request? Just convert this pull request to a “draft”.
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: 2024-12-19 03:12 UTC
This site is hosted by @0xB10C More mirrored repositories can be found on mirror.b10c.me