Skip to main content
14 votes
Accepted

Where is the bitcoin source code is the 21 million hard cap stated?

Where is the bitcoin source code is the 21 million hard cap stated? Nowhere, because there isn't actually a 21 million cap rule. The relevant code is this: CAmount GetBlockSubsidy(int nHeight, const ...
Pieter Wuille's user avatar
8 votes
Accepted

Is it advisable to operate a release candidate full node on mainnet?

Running release candidates poses little to no danger to the network. The node software is designed to be highly self-reliant, at worst a node would ignore incorrect information and disconnect another ...
Murch's user avatar
  • 76k
7 votes

Does each bitcoin node do Continuous Integration? Is this merely the process of the node syncing with the network? What is involved with it?

Continuous integration is a paradigm used in software development. In the context of the Bitcoin Core software repository, it specifically refers to the automated testing setup: all changes and ...
Pieter Wuille's user avatar
7 votes

What does Bitcoin Core need to be upgraded to 1.0?

Bitcoin Core is currently at version 25.0. After version 0.21.0, it was realized that the 0. prefix had become meaningless, and 0.x.0 was effectively treated as stable major release x. Thus, it was ...
Pieter Wuille's user avatar
7 votes

Gradual deprecation of importprivkey call?

Yes, importprivkey will stop being supported entirely whenever support for legacy wallets is removed, probably in version 28.0. Old wallets will of course be covertible to the new format. However, it ...
Pieter Wuille's user avatar
6 votes

A question on CNode class data members

The question is from 2015; some things have changed since then. CNetMessage is a transport protocol agnostic message container. It contains the received message data (DataStream), time of message ...
brunoerg's user avatar
  • 161
6 votes
Accepted

When should Bitcoin Core functional tests be run?

The functional tests are part of the test framework used for developing Bitcoin Core. Developers will regularly run the functional tests, and other tests, when they are working on proposed changes to ...
Pieter Wuille's user avatar
5 votes

SHA-256 hashing algorithm

The SHA-256 algorithm is not defined in the Bitcoin GitHub repository, it is defined in the USA Federal Information Processing Standards (FIPS) publication 180-2 (see Wikipedia: SHA-2). The ...
RedGrittyBrick's user avatar
5 votes

Why doesn't Bitcoin Core use auxiliary randomness when performing Schnorr signatures?

As with any open source project, if no one cares enough to implement it, it doesn't get implemented. Providing no auxiliary randomness is still safe as the deterministic nonce generation algorithm ...
Ava Chow's user avatar
  • 71k
5 votes

Is it advisable to operate a release candidate full node on mainnet?

There is basically no risk to the network, as it's designed to resist even malicious actors, much less honest users just running untested software. There is some risk to you as the user if you use the ...
Vojtěch Strnad's user avatar
5 votes

In Bitcoin Core, are blocks sent in parallel or in series?

Blocks are downloaded in series from a given peer, but a node can download blocks from multiple peers at the same time, effectively downloading blocks in parallel. This parallel downloading is not ...
deyw's user avatar
  • 560
4 votes

How can I run the skipped Bitcoin Functional Tests?

For the tests skipped with "previous releases not available", you need to have older versions of Bitcoin Core in a local directory. This directory has a folder for each version (named v25.0, ...
Ava Chow's user avatar
  • 71k
4 votes

Is it advisable to operate a release candidate full node on mainnet?

As its name suggests, it is not recommended to run a release candidate in production if you are not sure what you are doing. However Bitcoin Core release candidates aim to meet high quality standards. ...
Antoine Poinsot's user avatar
4 votes

Can I connect a hardware wallet to Bitcoin Core using HWI?

Yes, you can connect an external signer to Bitcoin Core. You can either use HWI (Hardware Wallet Interface), which is developed by Bitcoin Core developers but currently considered experimental, or use ...
Vojtěch Strnad's user avatar
4 votes

Where exactly is the "off-by-one" difficulty bug?

The retarget calculation is off-by-one. But it is not because it takes the difference between the time of the last block of the period and the time of the second block of this period (for instance ...
Antoine Poinsot's user avatar
3 votes
Accepted

What does it mean that BIP141 is "buried" in Bitcoin core?

The concept of a buried softfork deployment was introduced in BIP 90. In short, it means that the softfork's consensus rules are generally active on every block (possibly with a few known exceptions), ...
Pieter Wuille's user avatar
3 votes

What do the files in bitcoin/src/rpc/ do?

No, Bitcoin Core speaks the Bitcoin P2P protocol with other nodes. The RPC interface is specific to the Bitcoin Core software, and for communication with the (human) operator of the software (through ...
Pieter Wuille's user avatar
3 votes
Accepted

Does BIP70 have any problem (security/privacy/etc)? Why will Bitcoin Core disable it by default in the next major release (0.19.0)?

BIP 70 was designed to solve a user experience issue with addresses. Addresses are long and somewhat difficult to verify, can be silently replaced with a man in the middle attack, do not provide ...
Ava Chow's user avatar
  • 71k
3 votes

What is the data format layout for txindex LevelDB values?

You are confusing the VarInt and CompactSize encoding. CompactSize encoding (also confusingly referred to as "varint" outside Bitcoin Core) is used in the Bitcoin protocol. VarInt encoding ...
Antoine Poinsot's user avatar
3 votes

Moving the entire directory to new location for Bitcoin Core CLI

If i copy chainstate, txindex and other files and paste them in same folder as blocksdata, change the .conf file in roaming folder and point datadir to SSD folder with the blocksdata in them, will it ...
Ava Chow's user avatar
  • 71k
3 votes
Accepted

Why changing Bitcoin Cap Limit Is Not Possible

Imagine Bitcoin was run by only you and 2 other friends. Each of you run their own node. You decide you want to change the code, so you spin up 40 new nodes so that now you have 95% of the nodes. You ...
bordalix's user avatar
  • 637
2 votes

Satoshi introduced the 1MB block size limit in a commit. Why did Andresen make an identical commit some days later?

It's probably an artifact of the migration from Sourceforge to Github. Sourceforge uses the SVN version control system while Github uses Git so moving from one to the other might leave behind some ...
Ava Chow's user avatar
  • 71k
2 votes

Why do we need github.com/bitcoin-core, when we already have github.com/bitcoin/bitcoin?

The bitcoin-core GitHub organization was created to contain ancillary repositories that were related to the Bitcoin Core software but not necessarily Bitcoin itself. These were for more project ...
Ava Chow's user avatar
  • 71k
2 votes

Where can I find the list of all possible sendrawtransaction RPC error codes & messages?

The code for the _rawtransaction RPCs is in /src/rpc/rawtransaction.cpp including your example of the "TX decode failed" error message. If you do a Ctrl-F or git grep in that file for ...
Michael Folkson's user avatar
2 votes

Who approves the merger of github pull requests to the Bitcoin Core master branch?

See https://github.com/bitcoin/bitcoin/blob/master/CONTRIBUTING.md#decision-making-process: Whether a pull request is merged into Bitcoin Core rests with the project merge maintainers. Maintainers ...
Pieter Wuille's user avatar
2 votes

What if a miner just broadcasts the header and never gives the body? What will happen?

Since nobody can determine that the block is valid, they will treat it just like anything else that they cannot determine is valid -- they will ignore it. Miners can't start mining based on the header ...
David Schwartz's user avatar
2 votes

What if a miner just broadcasts the header and never gives the body? What will happen?

Full nodes will want to see the body in order to maintain their UTXO set. The miners block headers alone are not enough. Also, the miner would never be able to spend the block rewards, because that ...
RedGrittyBrick's user avatar
2 votes
Accepted

Broadcast transactions through bitcoind without importing private key

The described behavior does not make sense to me. The sendrawtransaction is a node RPC that takes a raw transaction and submits it to the local node’s mempool. If the transaction makes it into the ...
Murch's user avatar
  • 76k
2 votes
Accepted

What is pchCommand?

Yes, pchCommand is the name of the variable for the message name in the network message header. The naming of this variable uses Hungarian Notation. p indicates it is a pointer, ch indicates that it ...
Ava Chow's user avatar
  • 71k
2 votes
Accepted

What is incremental relay feerate?

minRelayTxFee was used for a few different notions of minimum feerates until these concepts got separated out in 2017. Although all these variables end in …Fee, they actually refer to a fee for one ...
Murch's user avatar
  • 76k

Only top scored, non community-wiki answers of a minimum length are eligible