Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port Qtum to core 22 #966

Merged
merged 7,033 commits into from
May 26, 2022
Merged

Port Qtum to core 22 #966

merged 7,033 commits into from
May 26, 2022

Conversation

timemarkovqtum
Copy link
Contributor

@timemarkovqtum timemarkovqtum commented Feb 25, 2022

The code contain updates from Bitcoin 22 version.

The code also contain the previous updates #944 #951 (core 0.21 and evmone), which need to be configured for mainnet and testnet.

The configuration file chainparams.cpp need to be updated for mainnet and testnet for Taproot activation to those networks (Consensus::DEPLOYMENT_TAPROOT).

For taproot activation in mainnet and testnet please follow the comments in the code chainparams.cpp:

// Min block number for activation, the number must be divisible with 2016
// Replace 0xffffc0 with the activation block number
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].min_activation_height = 0xffffc0;

Taproot by default is active in regtest mode.
The activation block can be changed with the parameter taprootheight:

qtum-qt -regtest -taprootheight=5040

Use the getblockchaininfo RPC to get information when the taproot fork is activated.

The file chainparams.cpp contain parameter called consensus.nLondonHeight that can be used to set the activation block for the EVM London fork. For regtest mode the London fork block number can be set from command line:

qtum-qt -regtest -londonheight=NUMBER

This branch has submodule version that is different than the master branch, so the checkout is different in order to load the correct submodule version:

git clone https://github.com/qtumproject/qtum
cd qtum
git checkout time/core22
git submodule update --init --recursive

External Signer is a new type of wallet for working with ledger in Bitcoin 22, that type of wallet is similar with Hardware Wallet from Qtum.

The python repository https://github.com/qtumproject/HWI also need to be updated with the latest code from Bitcoin because there is a bug when it is used with Nano X to create External Signer wallet. The following command freeze for Qtum HWI using Nano X (Nano S is OK):

hwi.py --fingerprint "ee958789" --chain regtest getdescriptors --account 0

The python tests for Qtum are not fixed, so they might failed.

timemarkovqtum and others added 15 commits May 4, 2022 09:29
Update rpc help for searchlogs and waitforlogs
Set taproot always active in regtest for 0 min height
WEP: port qtum changes

Fix framewrok

Fix wallet_hd.py test

wallet_backup.py

feature_maxuploadtarget.py

Bump protocol version

WIP feature block

WIP feature block

WIP feature block

Fix feature_block.py

WIP fundrawtransaction

WIP rpc_fundrawtransaction

rpc_fundrawtransaction

loadblock.py

WIP wallet basic

wallet_basic

rpc_fundrawtransaction.py

version bump

assumevalid.py

feature_bip68_sequence.py

feature_blockfilterindex_prune.py

feature_coinstatsindex.py

feature_config_args.py

remove csv activation test

feature_dersig.py

feature_fee_estimation.py

feature_filelock.py

feature_includeconf.py

feature_notifications.py

feature_rbf.py

feature_segwit.py

feature_settings.py

feature_signet.py

feature_taproot.py

feature_utxo_set_hash.py

feature_versionbits_warning.py

interface_bitcoin_cli.py

interface_rest.py

mempool_accept.py

mempool_accept_wtxid.py

mempool_expiry.py

mempool_limit.py

mempool_package_onemore.py

mempool_packages.py

mempool_reorg.py

mempool_resurrect.py

mempool_spend_coinbase.py

mempool_unbroadcast.py

mempool_updatefromblock.py

mining_basic.py

p2p_blocksonly.py

p2p_compactblocks.py

p2p_filter.py

p2p_ibd_txrelay.py

p2p_invalid_block.py

p2p_invalid_messages.py

p2p_invalid_tx.py

p2p_leak.py

p2p_permissions.py

WIP p2p_segwit

p2p_segwit.py

p2p_tx_download.py

p2p_unrequested_blocks.py

rpc_addresses_deprecation.py

rpc_blockchain.py

rpc_createmultisig.py

rpc_deriveaddresses.py

rpc_dumptxoutset.py

rpc_generateblock.py

rpc_getblockstats.py

rpc_invalid_address_message.py

Fix rpc help for searchlogs and waitforlogs

rpc_packages.py

rpc_psbt.py

rpc_rawtransaction.py

rpc_psbt.py

rpc_rawtransaction.py

rpc_scantxoutset.py

rpc_signer.py

rpc_help.py

rpc_signmessage.py

rpc_signrawtransaction.py

rpc_txoutproof.py

rpc_users.py

rpc_whitelist.py

tool_wallet.py

wallet_abandonconflict.py

wallet_address_types.py

wallet_avoidreuse.py

wallet_balance.py

wallet_bumpfee.py

wallet_coinbase_category.py

wallet_create_tx.py

wallet_descriptor.py

wallet_disable.py

wallet_dump.py

wallet_groups.py

WIP wallet_importdescriptors.py

wallet_importdescriptors.py

wallet_importmulti.py

wallet_keypool.py

wallet_keypool_topup.py

wallet_labels.py

wallet_listdescriptors.py

wallet_listsinceblock.py

wallet_multiwallet.py

wallet_reorgsrestore.py

wallet_send.py

wallet_signer.py

wallet_taproot.py

wallet_txn.py

wallet_txn_doublespend.py

Set taproot always active in regtest for 0 min height

fix feature_bip68_sequence.py

feature_blockfilterindex_prune.py

feature_utxo_set_hash.py

mempool_unbroadcast.py

p2p_invalid_block.py

rpc_blockchain.py

rpc_dumptxoutset.py

rpc_getchaintips.py

rpc_misc.py

wallet_backup.py

wallet_createwallet.py
wallet_send.py

wallet_multiwallet.py
wallet_keypool.py
tool_wallet.py

add DISABLED_SCRIPTS

import qtum tests

update framework

increase timeout

interface_zmq.py

qtum_dgp.py

p2p_feefilter.py

tool_wallet.py

mining_getblocktemplate_longpoll.py

wallet_address_types.py

qtum_rpc_bitcore.py

Fix bitcore rpcs output check

wallet_basic.py

wallet_hd.py

wallet_importdescriptors.py
update constantinople precompiles test

Update EVM globals test

add qtum_evm_london.py

actually store values in london test

WIP london activation test

qtum_evm_london_activation.py

test/functional/feature_dbcrash.py

WIP feature_pruning.py

WIP feature_pruning.py

feature_pruning.py

Remove disconnect block assert

Fix replay blocks crash in test feature_dbcrash

qtum_evm_london_activation.py
@qtum-neil qtum-neil mentioned this pull request May 19, 2022
@qtum-neil qtum-neil merged commit 802d3ce into master May 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants