<p>I think you should start by getting the source code of the official client:</p>

<p><a href="https://github.com/bitcoin/bitcoin" rel="nofollow noreferrer">https://github.com/bitcoin/bitcoin</a> </p>

<p>You will find introductory information in the Readme.
Once you will have a clear view of what you want to do, you can play with the code by creating your own branch.</p>

<p>Note that, improvements and other changes in bitcoin are tracked by the BIP system: <a href="https://en.bitcoin.it/wiki/Bitcoin_Improvement_Proposals" rel="nofollow noreferrer">https://en.bitcoin.it/wiki/Bitcoin_Improvement_Proposals</a>
Also, you should get familiar with the concept of soft/hard forks.</p>

<p>Refer to the <a href="https://bitcoin.org" rel="nofollow noreferrer">https://bitcoin.org</a> website, where you can find all the basic documentation (e.g. <a href="https://bitcoin.org/en/developer-reference" rel="nofollow noreferrer">https://bitcoin.org/en/developer-reference</a>)</p>

<p>That said, you will soon find out that many technical details are not well documented (or even not documented at all). The only comprehensive way of understanding how it works is, as with many other complex programs, to read the source code. Also, IMHO, a good understanding of the basic blockchain concepts is strongly recommended.</p>

<p>Other useful docs: <a href="https://bitcoin.org/en/developer-documentation" rel="nofollow noreferrer">https://bitcoin.org/en/developer-documentation</a></p>

CC BY-SA 3.0
2017-09-27T09:11:20.253Z
2017-09-27T09:16:32.493Z
2017-09-27T09:16:32.493Z
FedFranz
<p>I liked the book <a href="http://www.lulu.com/shop/paul-huang/a-dissection-of-bitcoin/ebook/product-22527951.html" rel="nofollow noreferrer">http://www.lulu.com/shop/paul-huang/a-dissection-of-bitcoin/ebook/product-22527951.html</a> together with <a href="http://chimera.labs.oreilly.com/books/1234000001802/index.html" rel="nofollow noreferrer">http://chimera.labs.oreilly.com/books/1234000001802/index.html</a> </p>

<p>The dissection of bitcoin is really good, but you should follow it reading the source code in the exact version mentioned in the book. After that I read the commit versions from the next versions to understand what was changing over the time. </p>

<p>Beside it, I played with <a href="https://bitcore.io/" rel="nofollow noreferrer">https://bitcore.io/</a> (one of the best bitcoins implementations out there) in the testnet (get some coins from a faucet, do some transactions, some multisign and try to understand what you are doing, the outputs and inputs..).</p>

<p>take a look in the guides - <a href="https://bitcore.io/guides" rel="nofollow noreferrer">https://bitcore.io/guides</a> -  and try to start a pet project to get "your hands dirty" </p>

CC BY-SA 3.0
2017-09-27T20:13:51.240Z
2017-09-27T20:13:51.240Z
VP.
<p>BitcoinServerSetup</p>

<p>How setup bitcoind in ubuntu/linux system.</p>

<p>Download link <a href="https://bitcoin.org/en/download" rel="nofollow noreferrer">https://bitcoin.org/en/download</a></p>

<p>Extract bitcoin-0.15.0.1-x86_64-linux-gnu.tar.gz</p>

<p>Using tar -xvf bitcoin-0.15.0.1-x86_64-linux-gnu.tar.gz</p>

<p>Result…………………………………….. 
bitcoin-0.15.0/ bitcoin-0.15.0/bin/ bitcoin-0.15.0/bin/bitcoin-cli bitcoin-0.15.0/bin/bitcoind bitcoin-0.15.0/bin/bitcoin-qt bitcoin-0.15.0/bin/bitcoin-tx bitcoin-0.15.0/bin/test_bitcoin bitcoin-0.15.0/include/ bitcoin-0.15.0/include/bitcoinconsensus.h bitcoin-0.15.0/lib/ bitcoin-0.15.0/lib/libbitcoinconsensus.so bitcoin-0.15.0/lib/libbitcoinconsensus.so.0 bitcoin-0.15.0/lib/libbitcoinconsensus.so.0.0.0 bitcoin-0.15.0/share/ bitcoin-0.15.0/share/man/ bitcoin-0.15.0/share/man/man1/ bitcoin-0.15.0/share/man/man1/bitcoin-cli.1 bitcoin-0.15.0/share/man/man1/bitcoind.1 bitcoin-0.15.0/share/man/man1/bitcoin-qt.1 bitcoin-0.15.0/share/man/man1/bitcoin-tx.1</p>

<p>cd bitcoin-0.15.0/bin/</p>

<p>Now run ./bitcoind -deamon</p>

<p>Result :: Bitcoin server starting</p>

<p>Go go home folder cd ~</p>

<p>See hidden folder using ls -a</p>

<p>Now You see .bitcoin folder Enter into that using cd .bitcoin</p>

<p>Create new file :: touch bitcoin.conf.</p>

<p>Paste in bitcoin.conf file</p>

<p>server=1 </p>

<p>testnet=1 #For start using testnet </p>

<p>rpcuser=rpcuser</p>

<p>rpcpassword=somesecretpassword</p>

<p>Set Path to bitcoin-0.15.0/bin/ or You enter in bitcoin-0.15.0/bin/ folder and then run command</p>

<p>./bitcoin-cli getbalance return balance</p>

CC BY-SA 3.0
2017-09-27T17:10:19.340Z
2017-09-27T17:10:19.340Z
Saddam Husen
<p>How can I start development in Bitcoin?
I am a software engineer and i am interested in development and programming part of bitcoin. A little guidance would be appreciated.</p>

<bitcoin-core><mining-pools><development><bitcoin-core-development>
How can I start development in Bitcoin?
Ajinkya
# How can I start development in Bitcoin?

(Asked by: username_0 on 2017-09-27)

How can I start development in Bitcoin?
I am a software engineer and i am interested in development and programming part of bitcoin. A little guidance would be appreciated.

**Tags:** bitcoin-core, mining-pools, development, bitcoin-core-development


---

## 3 answers

### Answer by username_1 on 2017-09-27. Score: 1

I think you should start by getting the source code of the official client:

<https://github.com/bitcoin/bitcoin>

You will find introductory information in the Readme.
Once you will have a clear view of what you want to do, you can play with the code by creating your own branch.

Note that, improvements and other changes in bitcoin are tracked by the BIP system: <https://en.bitcoin.it/wiki/Bitcoin_Improvement_Proposals>
Also, you should get familiar with the concept of soft/hard forks.

Refer to the <https://bitcoin.org> website, where you can find all the basic documentation (e.g. <https://bitcoin.org/en/developer-reference>)

That said, you will soon find out that many technical details are not well documented (or even not documented at all). The only comprehensive way of understanding how it works is, as with many other complex programs, to read the source code. Also, IMHO, a good understanding of the basic blockchain concepts is strongly recommended.

Other useful docs: <https://bitcoin.org/en/developer-documentation>


---

### Answer by username_2 on 2017-09-27. Score: 0

I liked the book <http://www.lulu.com/shop/paul-huang/a-dissection-of-bitcoin/ebook/product-22527951.html> together with <http://chimera.labs.oreilly.com/books/1234000001802/index.html>

The dissection of bitcoin is really good, but you should follow it reading the source code in the exact version mentioned in the book. After that I read the commit versions from the next versions to understand what was changing over the time.

Beside it, I played with <https://bitcore.io/> (one of the best bitcoins implementations out there) in the testnet (get some coins from a faucet, do some transactions, some multisign and try to understand what you are doing, the outputs and inputs..).

take a look in the guides - <https://bitcore.io/guides> - and try to start a pet project to get "your hands dirty"


---

### Answer by username_3 on 2017-09-27. Score: 0

BitcoinServerSetup

How setup bitcoind in ubuntu/linux system.

Download link <https://bitcoin.org/en/download>

Extract bitcoin-0.15.0.1-x86\_64-linux-gnu.tar.gz

Using tar -xvf bitcoin-0.15.0.1-x86\_64-linux-gnu.tar.gz

Result……………………………………..
bitcoin-0.15.0/ bitcoin-0.15.0/bin/ bitcoin-0.15.0/bin/bitcoin-cli bitcoin-0.15.0/bin/bitcoind bitcoin-0.15.0/bin/bitcoin-qt bitcoin-0.15.0/bin/bitcoin-tx bitcoin-0.15.0/bin/test\_bitcoin bitcoin-0.15.0/include/ bitcoin-0.15.0/include/bitcoinconsensus.h bitcoin-0.15.0/lib/ bitcoin-0.15.0/lib/libbitcoinconsensus.so bitcoin-0.15.0/lib/libbitcoinconsensus.so.0 bitcoin-0.15.0/lib/libbitcoinconsensus.so.0.0.0 bitcoin-0.15.0/share/ bitcoin-0.15.0/share/man/ bitcoin-0.15.0/share/man/man1/ bitcoin-0.15.0/share/man/man1/bitcoin-cli.1 bitcoin-0.15.0/share/man/man1/bitcoind.1 bitcoin-0.15.0/share/man/man1/bitcoin-qt.1 bitcoin-0.15.0/share/man/man1/bitcoin-tx.1

cd bitcoin-0.15.0/bin/

Now run ./bitcoind -deamon

Result :: Bitcoin server starting

Go go home folder cd ~

See hidden folder using ls -a

Now You see .bitcoin folder Enter into that using cd .bitcoin

Create new file :: touch bitcoin.conf.

Paste in bitcoin.conf file

server=1

testnet=1 #For start using testnet

rpcuser=rpcuser

rpcpassword=somesecretpassword

Set Path to bitcoin-0.15.0/bin/ or You enter in bitcoin-0.15.0/bin/ folder and then run command

./bitcoin-cli getbalance return balance


---

