Questions tagged [bitcoin-core-development]
Source code and development of Bitcoin Core, the reference implementation of Bitcoin.
593
questions
0
votes
0
answers
17
views
2 bitcoin transactions are stuck on mempool, one is CPFP
I use BlueWallet and I have two pending bitcoin transaction
One outgoing
One incoming
The outgoing transaction is a CPFP
Both the ancestors and descendants transaction are stuck for hours now
How can ...
4
votes
1
answer
2k
views
Where is the bitcoin source code is the 21 million hard cap stated?
I'd like to be able to see the 21,000,000 number.
2
votes
1
answer
145
views
What does it mean that BIP141 is "buried" in Bitcoin core?
I am reading the list of BIPs implemented in Bitcoin core (link) and it says that BIP141 is "buried since v0.19.0", what does that mean? Does this mean that what written in BIP141 is no ...
0
votes
1
answer
65
views
Who approves the merger of github pull requests to the Bitcoin Core master branch?
Does it have to be one of the 5 Lead Maintainers, or who can merge a pull request to the Bitcoin Core master branch?
0
votes
1
answer
12
views
How can you transfer a seed that crashed a fuzz test via text?
When you run a fuzzer and it crashes, what is a way that you can easily transfer the fuzz seed to the author of the PR?
1
vote
1
answer
115
views
What do the files in bitcoin/src/rpc/ do?
I know that RPC stands for Remote Procedure Call. Does Bitcoin Core do RPCs with other nodes on the network?
2
votes
0
answers
22
views
No inv messages from inbound nodes
I'm writing a tx relay-only node that can accept inbound connections and make outbound ones. Just for research.
What I'm seeing that on inbound nodes the initial handshake completes and the connection ...
2
votes
1
answer
57
views
Where can I find the list of all possible sendrawtransaction RPC error codes & messages?
Where can I find the list of all possible sendrawtransaction RPC error codes & messages?
Such as this:
{"code":-22,"message":"TX decode failed. Make sure the tx has at ...
2
votes
2
answers
254
views
Does each bitcoin node do Continuous Integration? Is this merely the process of the node syncing with the network? What is involved with it?
I notice the folder in the bitcoin core github repo for CI, and would like to know more about it.
I have read the entry in Wikipedia for Continuous Integration.
0
votes
1
answer
68
views
Understanding fee calculation in Bitcoin Core
In the following post Calculating fee based on fee rate for bitcoin transaction the respondent describes how the fees can be calculated.
Since your transaction building starts with a known target ...
2
votes
2
answers
104
views
Why do we need github.com/bitcoin-core, when we already have github.com/bitcoin/bitcoin?
There is already github.com/bitcoin/bitcoin, so why do we need to have github.com/bitcoin-core?
The GUI bit is stored in github.com/bitcoin/bitcoin under the qt section, so I don't see why we need to ...
8
votes
1
answer
113
views
Why doesn't Bitcoin Core use auxiliary randomness when performing Schnorr signatures?
BIP340 recommends using auxiliary randomness in generation of the Schnorr signature nonce, as follows:
Using unpredictable randomness additionally increases protection against other side-channel ...
1
vote
1
answer
145
views
What does Bitcoin Core need to be upgraded to 1.0?
At what point is Bitcoin Core considered good enough to have its next version upgrade be 1.0? I understand there are good reasons to be conservative about versions numbering, but I genuinely wonder ...
1
vote
0
answers
48
views
How to fix this error?: Signature must be zero for failed CHECK(MULTI)SIG operation (code -26)
I'm trying to unlock money from P2SH 2NG4PEU9rya1fcqAfSvQQAteaUkvc54J1fF, but the library is not used by https://www.youtube.com/watch?v=U2bw_N6kQL8
When I combine the Tx, I hash the Tx with SHA256 ...
5
votes
1
answer
142
views
Why does bitcoin.core's algorithm uses ancestor score instead of just ancestor fee rate to select transactions?
In bitcoin.core's implementation of the greedy knapsack algorithm to select transactions to go into a block for mining, the heuristic used to order transactions is based on an "ancestor score&...
3
votes
1
answer
206
views
Questions about secp256k1_pubkey_load/save() implementation
I'm a newbie who has just started reading Bitcoin Core code. I have a lot of questions about seemingly trivial code. Right now, I have two questions.
When branching to an if statement, why is the ...
1
vote
1
answer
99
views
Is it possible to use the getboolarg function in interpreter.cpp
I'm looking to use the GetBoolArg() function in the interpreter.cpp file what changes do I have to make for it to work?
I'm still new to development c, I tried several #include but without success.
...
1
vote
0
answers
40
views
Bitcoin Testnet blockchain data torrent
Is there a torrent to get the blockchain data faster for Bitcoin Testnet?
6
votes
1
answer
864
views
How could Bitcoin developers handle and resolve severe software vulnerability without drawing public attention?
I am curious about the process Bitcoin developers follow to address and resolve critical software vulnerabilities, such as bugs or flaws, that could be exploited by attackers to disrupt the network or ...
0
votes
0
answers
20
views
An Unconfirmed transaction [duplicate]
I made a transaction with a very low fee and it has been more than 14 days (2weeks) it’s still showing pending. No confirmation nothing. I’m just wondering what will happen. Will the transaction ...
4
votes
1
answer
136
views
Is it okay to open a pull request while there there's little done?
I'm working on an issue in the Bitcoin Core. This is my first issue and so I have some questions. Is it good practice to open a pull request and ask reviewers of the pull request to help me or I ...
3
votes
1
answer
136
views
Bitcoin Core v23 using more inputs than necessary costing more fees
Bitcoin core v23 has been handling input selection just fine until the feeRate (in kvb) was set to "0.0005". It began aggressively consolidating inputs costing me more in paying for ...
1
vote
0
answers
36
views
What is the difference between chain and chainman in the NodeContext in the Bitcoin Core?
In the NodeContext structure there are two members named chainman and chain. chainman
is instance of ChainstateManager and chain is instance of interfaces::Chain. What is the differences between these ...
2
votes
1
answer
134
views
What is the nBits field in the CBlockHeader class?
In the source code for the CBlockHeader class, there is a field called nBits.
/** Nodes collect new transactions into a block, hash them into a hash tree,
* and scan through nonce values to make the ...
6
votes
1
answer
2k
views
Why many classes in the Bitcoin Core prefix with a `C` while it is prohibited in the developer notes?
It's part of the developer notes in the documentation of Bitcoin Core:
Class names, function names, and method names are UpperCamelCase
(PascalCase). Do not prefix class names with C. See Internal ...
2
votes
1
answer
67
views
What is CCoinsCacheEntry in the Bitcoin Core?
CCoinsCacheEntry is implemented here.
/**
* A Coin in one level of the coins database caching hierarchy.
*
* A coin can either be:
* - unspent or spent (in which case the Coin object will be ...
2
votes
1
answer
79
views
Why undo files are needed in the Bitcoin Core?
Undo files contain data needed to disconnect a block from the blockchain. It basically contains instances of CBlockUndo:
/** Undo information for a CBlock */
class CBlockUndo
{
public:
std::vector&...
3
votes
0
answers
54
views
Next step to understand Bitcoin Core [duplicate]
After compiling Bitcoin Core, what should be my next step to understand the codebase?
I’m a very new contributor and developer.
6
votes
1
answer
589
views
Why isn't the taproot deployment buried in Bitcoin Core?
Bitcoin Inquisition recently had a PR about soft fork activation and as part that PR, it buries taproot and references a closed PR to Bitcoin Core to bury taproot. Will the taproot deployment be ...
2
votes
1
answer
49
views
How Wallet Mobile Softwares deal with Wallet Balance and Transaction history?
I'm trying to build a mobile software Wallet made in Flutter with a Bitcoin Core Full node that communicates with a Node.js backend.
The problem I can't find the answer to is: how can wallet ...
1
vote
1
answer
65
views
Programming Bitcoin exercises in Java instead of Python
First I want to thank Jimmy Song for pointing me to this site. I'm running into a small problem with Chapter 4 Exercise 5: Find the Address corresponding to the public keys whose private key secrets ...
3
votes
1
answer
118
views
ThreadOpenConnections and break versus continue: why the one versus the other?
In the inner loop of ThreadOpenConnections() in net.cpp sometimes there is a break to the outer loop and sometimes a continue. This is my understanding of the decision between break and continue in ...
3
votes
1
answer
938
views
Why is the Bitcoin Core HWI written in Python? If it was rewritten in Rust should the Python HWI still be maintained?
Why is/was the Bitcoin Core HWI written in Python?
What have the challenges been of having the HWI written in Python?
There seems to be interest and rationale(s) to write another HWI in Rust. Would ...
2
votes
1
answer
86
views
The Codebase is full of acronyms - what is the best way to find out what they mean. Examples in body
ex 1 cs_m : critical section.
The thing is, even knowing 'm' stands for mutex, a google search of cs mutex doesn't lead to critical section, the meaning of cs as it turns out.
ex 2 pto : I'm guessing ...
12
votes
1
answer
1k
views
Why does Bitcoin Core print SHA256 hashes (uint256) bytes in reverse order?
When converting uint256 (the datatype used to represent hashes) to string in Bitcoin Core, the bytes are reversed. When debugging functional tests, this can create potential confusion when comparing ...
3
votes
1
answer
249
views
Why are AssumeValid blocks manually added?
Couldn't we just define an AssumeValid block each N blocks, instead of adding it manually?
What is the difference from just periodically picking sufficiently confirmed blocks? Anyway those blocks have ...
1
vote
1
answer
136
views
Where can I find the parser for `bitcoin.conf` files?
I have read bitcoin.conf Configuration File which mentions: The configuration file is a plain text file and consists of option=value entries, one per line. Leading and trailing whitespaces are removed....
8
votes
1
answer
659
views
Why are transaction input and output indices called `vin` and `vout`?
What does the v in vin and vout stand for? And is it an instance of a more general naming scheme?
1
vote
2
answers
349
views
BitcoinCore 22.1? or 24.0.1?
I just received a notification from the Bitcoin Core dev team that there is a "new" version of Bitcoin Core 22.1 available from their GitHub repo, however v24.0.1 was released just 3 days ...
1
vote
1
answer
82
views
How does CBlockLocator class works?
The CBlockLocator strucuture's purpose is:
Describes a place in the block chain to another node such that if the
other node doesn't have the same branch, it can find a recent common
trunk. The ...
1
vote
1
answer
60
views
Difference between 2 way of serialization in the Bitcoin Core
This answer, explains what are SERIALIZE_METHODS and DESERIALIZE_METHODS macros in the Bitcoin Core. They prevent duplicate code for implementing the serialization and deserialization logic. But I've ...
1
vote
1
answer
76
views
How do nodes communicate through tcp over different networks
It is said that the nodes communicate over tcp but how is that acheived across networks over different Nats
2
votes
2
answers
257
views
How are interfaces used and work in the Bitcoin Core?
There is a directory called interfaces. I've seen usage of interface classes in other places but never understood how do they work because they're trivially just an interface and therefore do nothing ...
0
votes
1
answer
46
views
What is TokenPipe class in the Bitcoin Core?
There is a class here in the Bitcoin core called TokenPipe. I've tried to figure out what is does but couldn't find anything useful. The comment says:
An interprocess or interthread pipe for sending ...
2
votes
1
answer
127
views
Why does the bitcoin client send transaction's txid and wtxid in 'inv' process?
I'm reading the source code of Bitcoin Core, and I found that in the inv process, nodes will relay both txid and wtxid to other peer nodes. I have the following questions:
Why does the node send ...
3
votes
2
answers
82
views
What is difference between hmac_sha256, hkdf_sha256 and hmac_sha_512?
In the open source (https://github.com/bitcoin/bitcoin/tree/master/src/crypto) there are these algrithms that as I know connected with gerenation the new keys and master key. So I try to understand ...
2
votes
1
answer
66
views
Where is chacha20 and chacha_poly_aead used in Bitcoin Core?
In the source code of Bitcoin Core there are these functions but no explanation of how and where they are used. I need to make a description for all crypto-functions used in Bitcoin Core (https://...
-2
votes
3
answers
144
views
What is the trust model in bitcoin?
Bitcoin.org seems to be hacked.
How can it be reclaimed, especially since the listed address is receiving a lot of funding?
More importantly, what is the procedure for a new user in establishing ...
0
votes
1
answer
68
views
Bucketing algorithm in Bitcoin
Bitcoin core states that an entry can be part of maximum 8 buckets. I don't understand how an entry can map to 8 buckets when the data in the entry is the same.
uint64_t hash1 = (CHashWriter(...
1
vote
1
answer
77
views
Serialize data to get buckets
I am trying to recreate the bucketing algorithm of bitcoin using python, but I am stuck at this particular line because I am unable to recreate it using a simple double sha256.
uint64_t hash1 = (...