Questions tagged [bitcoincore-development]

Source code and development of Bitcoin Core, the reference implementation of Bitcoin.

Filter by
Sorted by
Tagged with
27
votes
2answers
35k views

Why is bitcoin written in C++?

What made the core developers choose C++ as the main programming language for implementing bitcoin? Was this because of their personal preference? Or another reason?
18
votes
7answers
2k views

Is there a list of core Bitcoin committers?

Where can I find a list of people that can commit directly to the github project?
18
votes
6answers
21k views

Where to find help understanding Bitcoin's source code in C++?

I am looking to understand the Bitcoin C++ source code on GitHub. The Python one is simpler, but even that is too complicated for a beginner. Could someone guide me to some good resources on the ...
18
votes
1answer
4k views

Migration from Berkeley DB to LevelDB

In 2013 a new bitcoin core was released and one of the supposed improvement was migrating from Berkeley DB to LevelDB. According to the release notes at bitcoin.org: LevelDB, a fast, open-source, ...
14
votes
1answer
2k views

What is the tradeoff between privacy and implementation complexity of Dandelion (BIP156)

Dandelion is a new relay protocol for transactions on cryptocurrency peer-to-peer networks. It has been heralded as a huge privacy improvement for cryptocurrencies at the networking level– I'm ...
14
votes
1answer
1k views

Where in Bitcoin Core does it do X?

Note that this is a general question and answer designed to serve as a guide for finding things in Bitcoin Core. Where in Bitcoin Core's source code does it do X? How can I find that code by myself? ...
13
votes
3answers
1k views

What does Bitcoin policy language offer the developer that Miniscript doesn't? What is the difference between Bitcoin policy language and Miniscript?

I understand that policy language compiles to Miniscript and Miniscript compiles to Bitcoin Script. This is also a great resource on Miniscript: http://bitcoin.sipa.be/miniscript/ But I know very ...
13
votes
1answer
4k views

Where is the UTXO data stored?

When a new transaction is received it is added to the memory pool (after checking for conflicts). While mining, only the transactions which are in the pool are considered. What happens to the ...
12
votes
4answers
4k views

Who controls the Bitcoin software?

Is there anything comparable to a "board of directors" for Bitcoin or is the software on complete cruise-control?
12
votes
2answers
999 views

How much of BIP 62 (“Dealing with malleability”) has been implemented?

BIP 62 lists nine source of malleability: Non-DER encoded ECDSA signatures Non-push operations in scriptSig Push operations in scriptSig of non-standard size type Zero-padded number pushes Inherent ...
11
votes
2answers
549 views

What are the key differences between regtest and the proposed signet?

What are the key differences between regtest and the proposed signet? One of the key differences is that using regtest is not ideal for public networks as anyone anywhere can just rewrite the ...
11
votes
3answers
1k views

Do “the official bitcoin developers” control Bitcoin?

Is there one person or organization that controls Bitcoin? What if Gavin Andresen, the lead developer, or Bitcoin Foundation, "the official bitcoin organization", decide to change something? What if ...
11
votes
1answer
2k views

What does OP_CHECKSEQUENCEVERIFY (OP_CSV) do?

Some people have suggested repurposing OP_NOP3 as a new opcode, OP_CHECKSEQUENCEVERIFY. What would the new opcode do? Why is it useful? Can't the signer choose the sequence field when they sign?
11
votes
2answers
2k views

What is OP_CODESEPARATOR used for?

Looking at the Bitcoin source (https://github.com/bitcoin/bitcoin/blob/v0.9.3/src/script.cpp#L843-L847, specifically), I ran into the use of the OP_CODESEPARATOR. Am I right in interpreting this code ...
11
votes
1answer
266 views

Are there alternatives to Gitian?

I like how Bitcoin Core uses Gitian to make their builds deterministic. But Gitian is also a really complicated workaround. Is there any research being done into alternatives for deterministic builds?
10
votes
9answers
4k views

Is there a reference, authoritative resource or book on Bitcoin programming?

Is there any reference or authoritative resource, or book on Bitcoin programming? Bitcoin is dubbed "programmable money" but there is no obvious resource for how to do that aside from ...
10
votes
3answers
2k views

Where can I find resources for programmers to understand Bitcoin?

I am a senior Python developer. Recently I came across to the need of fully understanding how bitcoin works on it's core. The Internet is full of explanations and tutorials for regular folks and ...
10
votes
3answers
1k views

What contributions have Blockstream developers made to the Bitcoin project?

I’m spending a lot of time debating people about Bitcoin online these days. One issue that I encounter regularly is that my opposite colloquists are unaware of the contributions the Blockstream ...
10
votes
1answer
154 views

How can vulnerabilites in bitcoin be responsibly reported?

I am wondering if someone discovers a bug/exploit in Bitcoin software or protocol, who should it be disclosed to? Who is the authority? What would happen if the bug went public? Has it occurred in the ...
10
votes
3answers
945 views

What should I do if my friend runs a Bitcoin business but doesn't understand how it works?

My friend doesn't listen to his head of engineering and doesn't fully understand how decentralized consensus based systems like Bitcoin really work. He seems to think a new untested/buggy ...
9
votes
1answer
4k views

Why does the default miner implementation use pay-to-pubkey?

Looking at the v0.9.3 source in miner.cpp: CBlockTemplate* CreateNewBlockWithKey(CReserveKey& reservekey) { CPubKey pubkey; if (!reservekey.GetReservedKey(pubkey)) return NULL; ...
9
votes
2answers
565 views

BIP44: What's the use of internal addresses?

I've read other questions (and their answers) on this but I still don't see the use for internal addresses. I get that you're supposed to send the change of a transaction there but I don't see how ...
9
votes
1answer
2k views

Is there developer documentation for the Bitcoin Core source code?

Is there a documentation somewhere to understand the C++ code of Bitcoin Core (available on Github) "from a to z" and being able to recreate it ?
9
votes
1answer
280 views

What is the motivation behind Russell Yanofsky's work to separate Bitcoin Core into independent node, wallet and GUI processes?

What is the motivation behind Russell Yanofsky's work to separate Bitcoin Core into independent node, wallet and GUI processes? What are the advantages to process separation?
9
votes
1answer
977 views

What are version bits?

What does Pieter Wuille's version bits proposal change? How does a miner signal support for a particular fork? Can the version bits system be used with hard forks?
9
votes
1answer
611 views

Why would increasing the Bitcoin block size lead to a more centralised system?

Why does Bitcoin Core contributor Peter Todd think that increasing the Bitcoin block size would lead to a more centralised system? “The system doesn’t scale, and you just have to accept that and do ...
9
votes
1answer
4k views

Why is Bitcoin Core using LevelDB instead of Redis or SQLite?

Why did Core move from BDB to LevelDB? Why don't they use SQLite or move to Redis now? Is there a technical reason for this choice?
8
votes
2answers
2k views

How do Bitcoin devs make sure that their modifications do not affect the consensus rules or the running network protocol?

I understand that Bitcoin consensus rules are enforced by every single node individually. However, most people run the default version of Bitcoin Core, which makes the implementations done by Bitcoin ...
8
votes
1answer
998 views

Why was the Schnorr code removed from Bitcoin Core?

I was looking for the Schnorr implementation in Bitcoin Core and was surprised to see that it was removed on Nov 2016 (commit e06e878fd7dcc99825025fa99aedb86bc7d5c29f). Why was the source code ...
8
votes
1answer
2k views

Where exactly is the “off-by-one” difficulty bug?

I read through How is difficulty calculated? and want to understand where the "off-by-one" bug is in calculating difficulty. Here is a Matlab snipet I wrote to calculate difficulty. What are the ...
8
votes
1answer
658 views

What are the trust assumptions in --assumed-valid in bitcoin core 0.14?

Please help me understand and distinguish the trust assumptions in the following three cases shown below. Specifically, please elaborate the attacks possible (even though completely theoretical) and ...
8
votes
1answer
341 views

Are there drawbacks to the Thin Block patch?

Mike Hearn talked about a patch he applied to BitcoinXT recently in his AMA: I posted a patch last week that makes XT download blocks as lists of hashes instead of duplicating the transaction data, ...
7
votes
1answer
420 views

Could Neutrino technically as side-effect, incentivize centralization of the bitcoin network?

TWO questions on Neutrino:: 1) Could Neutrino technically as side-effect, incentivize centralization of the bitcoin network? Or other formulation: ...hinder higher degree of decentralization? Why ...
7
votes
1answer
2k views

Why does Github say that the Bitcoin project is 74% TypeScript?

For the Bitcoin project on Github clicking "Show language statistics" shows that the source code is almost 74% TypeScript. Why is this so when ostensibly Bitcoin is written almost entirely in C++. ...
7
votes
1answer
219 views

What are the different upgradeability features in the BIP-Taproot (BIP 341) proposal?

What are the different upgradability features in the BIP-Taproot (BIP 341) proposal? Why are there so many upgradability paths? Is there something an annex can do that a leaf version can't? This ...
7
votes
1answer
2k views

Where, in the code, in the Satoshi client is 21 million cap implemented?

Which fragment of the Satoshi client is verifying if announced block has a valid reward? I mean, we now live in the 25 BTC reward period. I guess client after receiving a newly minted block, does ...
7
votes
2answers
773 views

Have bitcoin developers applied the solution for selfish miner attack?

The Majority is not enough paper proposed an academic and somehow practical attack to Bitcoin mining system based on creating hidden forks. The paper claims that if miners work on whichever fork they ...
6
votes
1answer
814 views

Why is the Bitcoin Core wallet database moving from Berkeley DB to SQLite?

Why is the Bitcoin Core wallet moving from Berkeley DB to SQLite for its database backend?
6
votes
2answers
6k views

16: mandatory-script-verify-flag-failed (Non-canonical DER signature) (code -26)

I try to send transaction via sendrawtransaction in console of bitcoind. Sig is: ...
6
votes
1answer
211 views

What is bitcoin core developers solution to the increasing number of transactions?

I was reading that BitcoinXT is created to increase the blocksize to accommodate increasing transaction volume, but bitcoin core developers were against to it as it make the currency more centralized. ...
6
votes
1answer
608 views

Is there a point on the secp256k1 curve for any given X coordinate?

There function in libsecp256k1 that allows you to directly set the field element to 32 bytes of your choice. Does secp256k1 always return a valid group element for any 32 byte value? ...
6
votes
1answer
1k views

Why are blk*.dat files ~134200000 bytes?

I understand that blocks are stored on disk across multiple blk*.dat files, but why is the maximum file size roughly 134,200,000 bytes? What's the reason behind this file size? Where can I find this ...
6
votes
1answer
146 views

What versioning scheme does Bitcoin Core follow?

I saw a discussion recently about whether Bitcoin Core was following the Semantic Versioning scheme. I could not find information in the GitHub ReadMe.md or Contributing.md. Luke-Jr stated that ...
6
votes
1answer
106 views

What version of C++ is used in Bitcoin Core?

I can't find the information on which C++ version is being currently used in bitcoin core project? Is it decided for future releases somehow? How does the situation looks now? The only thing I could ...
6
votes
1answer
203 views

How does Bitcoin Core know it's on the longest chain?

In trying to implement a client, I am wondering what is the most efficient approach to figure out if you are on a fork. Let's say you pick a peer at random and go through IBD using the headers-first ...
6
votes
1answer
264 views

Add dependency Bitcoin Core

I'm trying to add a new dependency to my Bitcoin Core fork. The dependency is Rapidcheck, a property based testing framework. I've added a file called rapidcheck.mk inside of depends/packages with ...
6
votes
2answers
175 views

Wladimir's new GPG key

I just went to install the latest version of bitcoind and discovered that Wladimir has signed the https://bitcoin.org/bin/bitcoin-core-0.12.1/SHA256SUMS.asc file with a new GPG key: https://bitcoin....
6
votes
1answer
246 views

Which block() method does what?

In the main.cpp bitcoin code, there are a few different functions for managing blocks. ProcessNewBlock() AcceptBlock() CheckBlock() ConnectBlock() DisconnectBlock() What is a good summary for what ...
6
votes
2answers
201 views

How do I get started debugging Bitcoin Core functional tests?

I would like to get started with debugging Bitcoin Core code. I have heard debugging Bitcoin Core functional tests is a good place to start as they are in Python rather than C++ and they are easier to ...
6
votes
1answer
126 views

What are the arguments for and against deprecating transaction priority?

A recent pull request moves ahead to deprecate the concept of transaction priority by changing the block priority space to zero. This has enraged some users who believe that deprecating transaction ...

1
2 3 4 5
9