Skip to main content
Share Your Experience: Take the 2024 Developer Survey
11 votes
Accepted

Is there developer documentation for the Bitcoin Core source code?

To understand Bitcoin Core, the best resource is probably the source code itself: https://github.com/bitcoin/bitcoin To help understand what is going on in the code, try the developer documentation ...
Jestin's user avatar
  • 8,812
10 votes

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

I was asked by Hasan Hasan, a junior developer, which of the following three books I'd recommend. Personally I think all three books are fantastic (I would recommend them all) but they do approach the ...
Michael Folkson's user avatar
10 votes
Accepted

How to find all UTXOs?

With vanilla Bitcoin Core, there is no efficient way to do this. I see two options: a) Slow and very inefficient RPC loop (not recommended) Get the genesis block hash (RPC getblockhash 0) Get the ...
Jonas Schnelli's user avatar
9 votes

How to fork Bitcoin and build own cryptocurrency

There is a Complete Guide on How to Create a New Alt Coin on Bitcoin Talk.
Fire Bird's user avatar
  • 111
8 votes

How to fork Bitcoin and build own cryptocurrency

Here is a guide: How to Fork Bitcoin (create your own chain). I really think Bitcoin as a concept is unique and powerful, and the project is well maintained by very talented developers, so I wanted ...
JBaczuk's user avatar
  • 7,418
8 votes
Accepted

Is there a bitcoin api?

There are many. If we define an Applications Programming Interface (API) as any kind of software interface between computers or programs then the following apply. Bitcoin network protocol. You can ...
RedGrittyBrick's user avatar
7 votes
Accepted

Would more Full Nodes help scaling and transaction speed?

No, the number of full nodes is decoupled from capacity and fees. Transaction capacity is a function of transaction size and blocksize. Blocks occur roughly every 10 minutes and have a fixed size. ...
Murch's user avatar
  • 75.7k
7 votes
Accepted

Programming Languages used

I think you are confusing some things here. A blockchain like Bitcoin, Ethereum, Ripple, or Hyperledger is a protocol in first place. And a protocol is agnostic to programming languages used. What ...
q9f's user avatar
  • 1,445
6 votes
Accepted

What impact could the patents applied for by Craight Wright have on Bitcoin development if granted?

Searching the http://patents.stackexchange.com site, I found a question that linked here: http://ask.metafilter.com/216885/What-happens-if-an-opensource-app-intentionally-violates-a-software-patent#...
Jestin's user avatar
  • 8,812
6 votes
Accepted

How would the gossip protocol announce channels from a channel factory?

Pretty much everything would stay the same. If you look at the relevant messages channel_announcement and channel_update we have the following formats: channel_announcement type: 256 (...
cdecker's user avatar
  • 9,508
6 votes

What are the major technical differences between Bitcoin and Bitcoin Cash?

Bitcoin Has SegWit and it's benefits and costs: Code complexity (of acceptable amount) Witness data is discounted in SegWit transactions, somewhat rectifying the fact that outputs are cheaper to ...
5 votes
Accepted

What IDE to use for Bitcoin development?

Bitcoin Core uses the autotools build system, but CLion only supports projects using CMake, so you can't use Core with CLion. You should be able to use Core with Eclipse CDT and NetBeans as those ...
Ava Chow's user avatar
  • 70.8k
5 votes
Accepted

Merkle Root for 1-transaction block!

The merkle root of a block is the hash of all of the transactions. If there is one transaction, then the hash of all of the transactions is the hash of that one transaction. So the merkle root and the ...
Ava Chow's user avatar
  • 70.8k
5 votes

How are eth transaction faster than btc?

Most simple and foreseen reason: Bitcoin's blocktime is set at 10 minutes, while Ethereum has a block every 10-20 seconds, making it much faster. See Ghost protocol, https://www.cryptocompare.com/...
Rutger Versteegden's user avatar
5 votes

In Bitcoin source, what is the UniValue objects purpose?

UniValue is a type that encapsulates a JSON value. It is only used for communication with external utilities through the RPC interface.
Pieter Wuille's user avatar
5 votes
Accepted

What languages can I write plugins for c-lightning in?

Plugins can be written in any language as long as a client library for that language exists. The command line API and the Plugins communicate with lightningd over a unix domain socket using JSON RPC ...
Rene Pickhardt's user avatar
5 votes

Script Bitcoin represent number > 16

You only need to use OP_PUSHDATA1 if you are trying to push more than 75 bytes of data onto the stack. For pushing smaller sized values onto the stack, you can use the opcodes 0x01 to 0x4b to ...
Mark H's user avatar
  • 3,334
5 votes
Accepted

How Bitcoin nodes validate a new wallet

How Bitcoin nodes validate a new wallet They don't Bitcoin nodes validate blocks and they validate the transactions within those blocks Other nodes don't have access to your wallet and can't validate ...
RedGrittyBrick's user avatar
4 votes

How to fork Bitcoin and build own cryptocurrency

There are some tutorials out there, check out: https://bitcointalk.org/index.php?topic=225690.0 If that one is not sufficient let me know, and maybe I'll write one up. There are also a lot of coins ...
Albert S's user avatar
  • 1,630
4 votes
Accepted

Is it possible to autoforward bitcoins to another address?

Why do you need to forward the coins to a different address? You already control the private keys for the address that they were sent to, no need to move them to another address in your wallet. All ...
Ava Chow's user avatar
  • 70.8k
4 votes

Is there an API that exchanges USD to Bitcoin?

This looks like a service that does what you're asking for, if I'm understanding your ask and this page correctly: https://developers.coinbase.com/docs/wallet/guides/send-receive This would require ...
adfaklsdjf's user avatar
4 votes
Accepted

Is the UTXO set size important for non-mining full nodes?

The main motivation cited is reducing block orphaning Where do you see this being cited? AFAIK, the motivation is to reduce the resources required to run a full node which has nothing to do with ...
Ava Chow's user avatar
  • 70.8k
4 votes

The complete indifference by Bitcoin people is making me lose my enthusiasm for Bitcoin

I could write an essay addressing each of your points but I don't think it is worth my time. If you want price to go up just wait for the next bull market. The market doesn't care about software ...
Michael Folkson's user avatar
4 votes
Accepted

A Bitcoin locking script to force a certain payment to the receiver?

No, that is not possible, and doing so can be problematic. Such scripts would need the ability to inspect the spending transaction and this is currently not allowed or possible; the script interpreter ...
Ava Chow's user avatar
  • 70.8k
4 votes

A Bitcoin locking script to force a certain payment to the receiver?

While Bitcoin does not currently have any covenants, BIP119: Checktemplateverify proposes a new op-code that would allow you to do exactly that. The proposal is currently in "draft" status.
Murch's user avatar
  • 75.7k
4 votes
Accepted

Why should BIP157 compact filters be processed in-order?

A HD wallet doesn’t know what indexes of a seed to scan for until the ones prior have been used, which can’t be discovered out of order. To allow for out of order scanning the address gap limit would ...
Claris's user avatar
  • 15.4k
4 votes
Accepted

Is there a difference between OP_PUSHBYTES and OP_PUSHDATA

In what documentation? I believe you are talking about how rust-bitcoin refers to the OPs > OP_FALSE and < OP_PUSHDATA1 and will answer as such. There are multiple OP codes pushing bytes to the ...
Antoine Poinsot's user avatar
4 votes
Accepted

Problems about update of protocol of bitcoin

The general approach to Bitcoin protocol updates is to maintain forward and backward compatibility with the prior consensus rule set on the network. In fact, Bitcoin's protocol stability is considered ...
Murch's user avatar
  • 75.7k
4 votes

How to call `getblocktemplate` without running a full node?

To create a valid bitcoin block, you will need a view of the current network state. Otherwise how will you know what the previous valid block was, or what transactions are valid and worthy of being ...
chytrik's user avatar
  • 18.3k
4 votes
Accepted

Do I need to download the entire blockchain in order to use bitcoin-cli?

For testing, you can run your node on testnet or signet which have much smaller blockchains, or run on regtest where there is no blockchain to download. If you need to run on mainnet but don't want to ...
Vojtěch Strnad's user avatar

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