Questions tagged [bitcoin-core-development]
Source code and development of Bitcoin Core, the reference implementation of Bitcoin.
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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....
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?
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 ...
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 ...
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 ...
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
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 ...