Skip to content

Conversation

btcdrak
Copy link
Contributor

@btcdrak btcdrak commented Feb 19, 2016

This should be merged after the BIP68 softfork enforces.

EDIT: BIP68 has long since activated so miners are running min 0.12.1 and therefore will mine v2 txs. Also there are sufficient nodes on the network relaying v2 txs

btcdrak referenced this pull request in btcdrak/bitcoin Feb 19, 2016
Thanks to @maaku for the updated tests
@paveljanik
Copy link
Contributor

After bumping the default tx version to 2, we should also have some test to test v1 transactions.

@laanwj
Copy link
Member

laanwj commented Apr 15, 2016

Needs rebase (but probably only after it is eligible for merge in the first place)

@laanwj
Copy link
Member

laanwj commented Aug 3, 2016

@btcdrak Is there anything still blocking this? (apart from needing rebase)

@maflcko
Copy link
Member

maflcko commented Aug 24, 2016

Does this need mention in the release notes?

@paveljanik
Copy link
Contributor

What is the status of this?

Needs rebased.

@btcdrak btcdrak force-pushed the txversionbump branch 3 times, most recently from 81c8cb4 to 41e56f7 Compare October 27, 2016 08:27
@laanwj
Copy link
Member

laanwj commented Nov 2, 2016

@sipa @gmaxwell any opinion here? Can this be merged for 0.14?

@gmaxwell
Copy link
Contributor

utACK. I think this is fine now!

@morcos
Copy link
Contributor

morcos commented Dec 6, 2016

ugh, thats a lot of work.
thanks @btcdrak

I reviewed everything so far except the changes in test/data

technically the mempool_tests change was a bug in the test, here's a fix b095828 if you want it that means you don't need to add the version.

@morcos
Copy link
Contributor

morcos commented Dec 6, 2016

OK I've gone through test/data for as long as I can stand it.
utACK

@btcdrak
Copy link
Contributor Author

btcdrak commented Dec 7, 2016

ugh, thats a lot of work.

@morcos was a lot more than I bargained for, to change a 1 to a 2 😆

I've added your commit thanks for that as it simplifies things a bit. Squashed.

@fanquake
Copy link
Member

fanquake commented Dec 8, 2016

Travis failure:

2016-12-07 22:53:39,532 - ERROR - Output data mismatch for txcreate2.hex (format hex)
2016-12-07 22:53:44,125 - ERROR - Output data mismatch for txcreate2.json (format json)
2016-12-07 22:54:44,785 - ERROR - FAILED TESTCASES: [Parses a transation with no inputs and a single output script, Parses a transation with no inputs and a single output script (output in json)]

@btcdrak
Copy link
Contributor Author

btcdrak commented Dec 8, 2016

@fanquake I'm stuck, I cant replicate the fails locally. I'm going to experiment and push the PR before rebase and see if it still fails or not.

@btcdrak
Copy link
Contributor Author

btcdrak commented Dec 8, 2016

OK after investigation from @morcos and others found something had changed in master, so I had to rebase to master and fix a couple of new tests that had been introduced. Travis should pass now, and I've again included @morcos patch.

@laanwj laanwj merged commit c5c92c4 into bitcoin:master Dec 15, 2016
laanwj added a commit that referenced this pull request Dec 15, 2016
c5c92c4 Update python tests for default tx version=2 (BtcDrak)
dab207e Preserve tx version=1 for certain tests (BtcDrak)
c5d746a tiny test fix for mempool_tests (Alex Morcos)
1f0ca1a Bump default transaction version to 2 (BtcDrak)
@btcdrak btcdrak deleted the txversionbump branch December 15, 2016 16:33
@droark
Copy link
Contributor

droark commented Dec 17, 2016

Hello. Going through this PR, I noticed that a couple of files now seem to not be used. Is this intentional? It doesn't seem so.

  • src/test/data/blanktx.json (Doesn't seem to be used, although it could presumably be given a v1 rename and used for a v1 test.)
  • src/test/data/txcreatesign.json (Exact copy of txcreatesignv1.json, so it's redundant.)

I'm happy to file a PR and fix this. Just want to make sure I'm on the right path first. :) A txcreatesignv2.json test would probably be good too. I can write that.

Thanks.

@btcdrak
Copy link
Contributor Author

btcdrak commented Dec 17, 2016

@droark +1

domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Dec 17, 2016
This temporarily disables the upstream bump of the default tx version
(in bitcoin/bitcoin#7562) until we can catch up
with Namecoin on necessary updates.

It updates the code for the removal of external conflict tracking for
the mempool (bitcoin/bitcoin#9240), but we keep
the logic to track and report name conflicts as we have a separate
signal for them.

Finally, the change to name_registration.py is necessary due to
https://github.com/bitcoin/bitcoin/pull/9302/files, after which a
non-accepted tx to the mempool no longer fails the RPC but instead just
gets "silently" not added to the mempool.

Conflicts:
	src/Makefile.test.include
	src/bench/verify_script.cpp
	src/primitives/transaction.h
	src/test/data/bitcoin-util-test.json
	src/test/data/txcreate1.hex
	src/test/mempool_tests.cpp
	src/test/script_tests.cpp
	src/txmempool.cpp
	src/txmempool.h
	src/validation.cpp
@btcdrak
Copy link
Contributor Author

btcdrak commented Dec 19, 2016

@droark I had to knock out a quick PR because the orphan reference was causing someone an issue on IRC, see #9376

ghost pushed a commit to BitzenyCoreDevelopers/bitzeny that referenced this pull request Jan 5, 2018
This reverts commit 1f0ca1a. It breaks backward compatibility between BitZeny 1.1.x and 1.2.x. Don't forget to revert this commit again after the BIP68 softfork enforces.

ref.
bitcoin/bitcoin#7562
ghost pushed a commit to BitzenyCoreDevelopers/bitzeny that referenced this pull request Jan 6, 2018
This reverts commit 1f0ca1a. It breaks backward compatibility between BitZeny 1.1.x and 1.2.x. Don't forget to revert this commit again after the BIP68 softfork enforces.

ref.
bitcoin/bitcoin#7562
ghost pushed a commit to BitzenyCoreDevelopers/bitzeny that referenced this pull request Jan 7, 2018
This reverts commit 1f0ca1a. It breaks backward compatibility between BitZeny 1.1.x and 1.2.x. Don't forget to revert this commit again after the BIP68 softfork enforces.

ref.
bitcoin/bitcoin#7562
ghost pushed a commit to BitzenyCoreDevelopers/bitzeny that referenced this pull request Jan 8, 2018
This reverts commit 1f0ca1a. It breaks backward compatibility between BitZeny 1.1.x and 1.2.x. Don't forget to revert this commit again after the BIP68 softfork enforces.

ref.
bitcoin/bitcoin#7562
ghost pushed a commit to BitzenyCoreDevelopers/bitzeny that referenced this pull request Jan 10, 2018
This reverts commit 1f0ca1a. It breaks backward compatibility between BitZeny 1.1.x and 1.2.x. Don't forget to revert this commit again after the BIP68 softfork enforces.

ref.
bitcoin/bitcoin#7562
ghost pushed a commit to BitzenyCoreDevelopers/bitzeny that referenced this pull request Jan 13, 2018
This reverts commit 1f0ca1a. It breaks backward compatibility between BitZeny 1.1.x and 1.2.x. Don't forget to revert this commit again after the BIP68 softfork enforces.

ref.
bitcoin/bitcoin#7562
ghost pushed a commit to BitzenyCoreDevelopers/bitzeny that referenced this pull request Jan 19, 2018
This reverts commit 1f0ca1a. It breaks compatibility between BitZeny 1.1.x and 1.2.x. Don't forget to revert this commit again after the BIP68 softfork enforces.

ref.
bitcoin/bitcoin#7562
codablock pushed a commit to codablock/dash that referenced this pull request Jan 20, 2018
c5c92c4 Update python tests for default tx version=2 (BtcDrak)
dab207e Preserve tx version=1 for certain tests (BtcDrak)
c5d746a tiny test fix for mempool_tests (Alex Morcos)
1f0ca1a Bump default transaction version to 2 (BtcDrak)
andvgal pushed a commit to energicryptocurrency/gen2-energi that referenced this pull request Jan 6, 2019
c5c92c4 Update python tests for default tx version=2 (BtcDrak)
dab207e Preserve tx version=1 for certain tests (BtcDrak)
c5d746a tiny test fix for mempool_tests (Alex Morcos)
1f0ca1a Bump default transaction version to 2 (BtcDrak)
CryptoCentric pushed a commit to absolute-community/absolute that referenced this pull request Feb 27, 2019
CryptoCentric pushed a commit to absolute-community/absolute that referenced this pull request Mar 5, 2019
CryptoCentric pushed a commit to absolute-community/absolute that referenced this pull request Mar 6, 2019
CryptoCentric added a commit to absolute-community/absolute that referenced this pull request Mar 6, 2019
furszy added a commit to PIVX-Project/PIVX that referenced this pull request Jan 23, 2021
9b9c616 Fix missing zapwallettxes mode in wallet_hd.py functional test (furszy)
d6d0ad9 [logs] fix zapwallettxes startup logs (John Newbery)
006c503 [wallet] fix zapwallettxes interaction with persistent mempool (John Newbery)
c6d45c6 Adapting and connecting mempool_persist.py functional test to the test runner. (furszy)
4f26a4e Control mempool persistence using a command line parameter. (John Newbery)
5d949de [Qt] Do proper shutdown (Jonas Schnelli)
e60da98 Allow shutdown during LoadMempool, dump only when necessary (Jonas Schnelli)
c0a0e81 Moving TxMempoolInfo tx member to CTransactionRef (furszy)
f0c2255 Add mempool.dat to doc/files.md (furszy)
8e52226 Add DumpMempool and LoadMempool (Pieter Wuille)
44c635d Add AcceptToMemoryPoolWithTime function (Pieter Wuille)
6bbc6a9 Add feedelta to TxMempoolInfo (Pieter Wuille)
9979f3d [mempool] move removed and conflicts transaction ref list to vector. (furszy)
4f672c2 Make removed and conflicted arguments optional to remove (Pieter Wuille)
e51c4b8 Bypass removeRecursive in removeForReorg (Pieter Wuille)
54cf7c0 Get rid of CTxMempool::lookup() entirely (furszy)
35bc2a9 Finished the switch CTransaction storage in mempool to CTransactionRef and introduced the timeLastMempoolReq coming from btc#8080. (furszy)
d10583b An adapted version of btc@b5599147533103efea896a1fc4ff51f2d3ad5808 (furszy)
cb4fc6c An adapted version of btc@ed7068302c7490e8061cb3a558a0f83a465beeea (furszy)
9645775 Split up and optimize transaction and block inv queues (furszy)
68bc68f Don't do mempool lookups for "mempool" command without a filter (furszy)
7624823 mapNextTx: use pointer as key, simplify value (furszy)
191c62e Return mempool queries in dependency order (Pieter Wuille)
23c9f3e Eliminate TX trickle bypass, sort TX invs for privacy and priority. (furszy)
6ebfd17 tiny test fix for mempool_tests (Alex Morcos)
8c0016e Check all ancestor state in CTxMemPool::check() (furszy)
91c6096 Add ancestor feerate index to mempool (Suhas Daftuar)
64e84e2 Add ancestor tracking to mempool  This implements caching of ancestor state to each mempool entry, similar to descendant tracking, but also including caching sigops-with-ancestors (as that metric will be helpful to future code that implements better transaction selection in CreatenewBlock). (furszy)
8325bb4 Fix mempool limiting for PrioritiseTransaction Redo the feerate index to be based on mining score, rather than fee. (furszy)
1fa40ac Remove work limit in UpdateForDescendants()  The work limit served to prevent the descendant walking algorithm from doing too much work by marking the parent transaction as dirty. However to implement ancestor tracking, it's not possible to similarly mark those descendant transactions as dirty without having to calculate them to begin with.  This commit removes the work limit altogether. With appropriate chain limits (-limitdescendantcount) the concern about doing too much work inside this function should be mitigated. (furszy)
ba32375 Rename CTxMemPool::remove -> removeRecursive  remove is no longer called non-recursively, so simplify the logic and eliminate an unnecessary parameter (furszy)
c30fa16 CTxMemPool::removeForBlock now uses RemoveStaged (furszy)

Pull request description:

  Ending up 2020 with a large PR :).

  Included a good number of performance and privacy improvements over the mempool and inv processing/sending areas + added mempool cache dump/load.
  Almost finishing with #1726 work, getting closer to 9725, and getting closer to be able to decouple the message processing thread <-> wallet and the wallet <-> GUI locks dependencies (which will be another long story.. but well, step by step).

  The final goal is clear, a much faster syncing process using pivx-qt (a good speed up for pivxd as well), smoother visual navigation when big wallets are syncing, less thread synchronization issues, among all of the improvements that will be coming with the backports adaptations.

  Adapted the following PRs to our sources:

  bitcoin#7062 —> only eb30666.
  bitcoin#7174 —> complete.
  bitcoin#7562 —> only c5d746a.
  bitcoin#7594 —> complete.
  bitcoin#7840 —> complete.
  bitcoin#7997 —> complete.
  bitcoin#8080 —> complete
  bitcoin#8126 —> except e9b4780 (we don't have the mapRelay) and c2a4724 (we don't have the relay expiration vector).
  bitcoin#8448 —> complete
  bitcoin#8515 —> complete
  bitcoin#9408 —> complete
  bitcoin#9966 —> complete
  bitcoin#10330 —> complete

ACKs for top commit:
  random-zebra:
    ACK 9b9c616
  Fuzzbawls:
    ACK 9b9c616

Tree-SHA512: 186bd09bbb19b55ec0d46dc27291663a0df2d60d8238c661a8c9b8cbf3677b6f8a92fa56bd7346a3cb5293712eeccc5d6542ee3c441d35a4f61e7d12e2ce489a
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Sep 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants