Bitcoin Core



A weekly review club for Bitcoin Core PRs

Read the Contributing to Bitcoin Core Guide. This will help you understand the process and some of the terminology we use in Bitcoin Core. Look at the Good First Issues and Up For Grabs list. Read the Bitcoin Core Developer Notes and Productivity Tips. Brush up on your C. There are many primers and reference manuals available. Bitcoin was the first cryptocurrency to successfully record transactions on a secure, decentralized blockchain-based network.Launched in early 2009 by its pseudonymous creator Satoshi Nakamoto. Get The Best Bitcoin Mining Hardware. Purchasing Bitcoins - In some cases, you may need to.

What is this? A weekly club for reviewingBitcoin Core PRs at 17:00 UTC on Wednesdays on IRC.

What’s it for? To help newer contributorslearn about the Bitcoin Core review process. The review club is not primarilyintended to help open PRs get merged (although that might be a niceside-effect).

Who should take part? Anyone who wants tolearn about contributing to Bitcoin Core. All are welcome to come and askquestions!

About Bitcoin The world’s first cryptocurrency, Bitcoin is stored and exchanged securely on the internet through a digital ledger known as a blockchain. Bitcoins are divisible into smaller units known as satoshis — each satoshi is worth 0.00000001 bitcoin. The Bitcoin Core 0.19.1 maintenance release is now available with bug fixes and minor improvements.

What’s the benefit for participants? Reviewing and testing PRs is the best way to start contributing to BitcoinCore, but it’s difficult to know where to start. There are hundreds of open PRs,many require a lot of contextual knowledge, and contributors and reviewers oftenuse unfamiliar terminology. The review club will give you the tools andknowledge you need in order to take part in the Bitcoin Core reviewprocesson GitHub.

How do I take part? Just show up on IRC! SeeAttending your first PR Review Club for more tipson how to participate.

Who runs this? Bitcoin Core contributorjnewbery started the review club and schedulesthe upcoming meetings. Individual meetings are hosted by a variety of BitcoinCore contributors. See some of our previous hosts.

Upcoming Meetings

21 Apr 2021» Minisketch C++ code (math and cryptography) hosted by sipa

We’re always looking for interesting PRs to discuss in the review club and forvolunteer hosts to lead the discussion:

  • To suggest a PR, please leave a comment on this GitHubissue.
  • If you’d like to host a meeting, look at the information for meetinghostsand contact jnewbery on IRC.

Recent Meetings

14 Apr 2021»#14707 Include coinbase transactions in receivedby RPCs (rpc/rest/zmq) hosted by larryruane
07 Apr 2021»#21061 Introduce node rebroadcast module (p2p) hosted by glozow
31 Mar 2021»#21528 Reduce addr blackholes (p2p) hosted by amitiuttarwar
24 Mar 2021»#19438 Introduce deploymentstatus (consensus) hosted by jnewbery

See all meetings.

Other Resources for New Contributors

  • Read the Contributing to Bitcoin CoreGuide. Thiswill help you understand the process and some of the terminology we use inBitcoin Core.
  • Look at the Good FirstIssuesand Up ForGrabslist.
  • Read the Bitcoin Core DeveloperNotesand ProductivityTips.
  • Brush up on your C++. There are many primers and reference manualsavailable.
  • There are some excellent blog posts on how to start contributing to Bitcoin Core:

Bitcoin Core Tutorial With Pictures

If you want to follow along with this bitcoin core tutorial you should download bitcoin core and let it synchronize first. When you start Bitcoin Core it will take a long time to synchronize with the Bitcoin network because the software has to download the entire blockchain, which contains over five years of global transaction history. Once you are synced the program will know the balance of every bitcoin address in existence and can verify when you send or receive bitcoins in real time.

Don’t have any bitcoin yet? Get started with Bittrex.com, the leading cryptocurrency exchange since 2014.

Bitcoin Core Tutorial

You can find a download for the Bitcoin Core Wallet on Bitcoin.org

Once your wallet is synced it should look something like this:

The first thing you should do is Encrypt your wallet. Encrypting your wallet will password protect all of your bitcoin addresses. If you do not encrypt your wallet, anyone with access to your computer can take your bitcoins. There is no recovery process for this password so don’t forget it or all your bitcoins may be lost forever. Once you have completed all the steps Bitcoin Core will have to restart to complete the process.

Bitcoin Core Wallet

Once you have Encrypted your wallet, you should backup your wallet file on an external hard drive or USB flash drive. Your wallet file (wallet.dat) stores the data for all of your public & private keys. If you lose this data, you will lose the bitcoin in all of those bitcoin addresses. Anytime you create a new bitcoin address or send bitcoins to someone, Bitcoin Core will add that new information to your wallet.dat file so it is best practice to backup your wallet file regularly.

Now that you are backed up, click under File and go to ‘receiving addresses’. This contains a list of your public keys, they appear as a long string of characters. Most bitcoin addresses start with a 1, but multisig wallets may generate bitcoin addresses that start with a 3 but you don’t need to learn multi-signature for this bitcoin core tutorial.

Here is the Bitcoin Address (public key) that Bitcoin Core generated for me: 1Q3tcw3zkFgwF5Tf1XFX9teZHqk4dqhdGn

At this point you are ready to accept bitcoin. You can share this address with anyone you want to receive money from. I’m going to send myself 0.01 bitcoin from a different wallet, not shown in this bitcoin core tutorial. Depending on the sending wallet the transaction will appear instantly or it may take a few minutes. In this case it took about 15 seconds to show up, and a little notification popped up to let me know to check my Bitcoin Core wallet.

Bitcoin

The transaction will appear as pending until Bitcoin Miners confirm the transaction. To confirm a transaction, miners have to find a new block which happens roughly every 10 minutes. Most wallets accept a transaction after 3-6 block confirmations, so the funds are completely available after 30-60 minutes. Some wallets will let you spend the bitcoins after only 1 confirmation, but it is best practice to wait for at least 3 blocks. You can track the progress in from the transactions tab. I know transaction is from a trusted source (me) so I don’t have to wait for any confirmations to move forward with the bitcoin core tutorial. Note: You do not need to leave Bitcoin Core open until the bitcoin is available, miners will confirm the transaction for you even if you close the program.

Bitcoin Core Import Wallet

If you use bitcoin regularly it can be difficult to keep track of your transaction history by seeing only public keys, so you may want to create a new bitcoin address for different purposes and label them. Go back to your receiving addresses and create a new address with a label. You can create as many new addresses as you want. Some people choose to create a new address for every bitcoin transaction.

Now that you have created a new address, backup your wallet file again to make sure the bitcoins in ALL of your public keys are protected.

Bitcoin Mining Software Download

Okay lets send 0.01 to this new address: 13BBBdLXWf3V97w1JYXbdSnxJWDhT5vsAT

As you can see the transaction comes in labeled instead of the random generated string. This makes it very easy to accept bitcoin as payment, simply by generating a new labeled address anytime you want to accept bitcoin. You can also see that the first bitcoin transaction has been confirmed and the 0.01 bitcoin is available to be spend after only a few minutes. If you are a merchant or service provider that is accepting bitcoin, you can use the Request tab to ask for a specific amount of bitcoin. This will generate a QR code that people with a mobile phone wallet can scan to quickly send the desired bitcoin to your wallet.

You should use specific information so that later you can look back and know where you got that bitcoin from. Click request payment and the QR code will be generated.

Anyone who scans this QR code can now send money to your bitcoin core wallet. By default it will tell them to send 0.015 bitcoin. If you want to accept any number of bitcoins to go back to the request payment tab and create a new payment request but leave the ‘Amount’ portion blank. It will generate a QR code that scans directly to a public key. If you save or print out the QR code, you can shutdown your bitcoin core wallet and accept bitcoin anywhere in the world simply by showing people the QR code image. You can check the balance of your bitcoin address from any computer without opening the bitcoin core wallet and verify any bitcoin transaction that you are expecting from somebody simply by knowing the public key. The simplest way is to go to blockchain.info and search your bitcoin public key. Here is a direct link to check my balance:

If you loaded up your wallet for this bitcoin core tutorial, take a moment to find something you want to buy with bitcoin. Spendabit.co is a great place to start. When you checkout the receiving party will give you their bitcoin address and the total that you need to send. Go to the send tab in Bitcoin Core, and fill in the information. Label the transaction with what you purchased or who you sent the money to.

Once you click send you will be prompted for your password. This is where you enter the password that you encrypted your wallet with.

Most wallets will ask you to confirm your transaction details once more before it sends. They will also notify you of applicable transaction fees and the total bitcoin that will be deducted from your wallet balance. The transaction fees go directly to the bitcoin miners who work hard to keep the bitcoin network strong. You can choose not to pay a fee, but if you do they may push your transaction aside and not process it. To ensure your payment is sent quickly, pay the small fee, I’m doing it just for this bitcoin core tutorial. Right now a bitcoin transaction only costs about $0.03 USD. For that small fee you can send any amount of bitcoin to any person in the world any time you want.

Now that you have sent some bitcoin, lets check the transaction progress. Go to you transaction page right click on the payment that you just sent. Copy the Transaction ID, then go to blockchain.info and do a search for it. Here is a link to mine: https://blockchain.info/tx/e15f2c37fb69e96f91f550feb00108f997616085b1d5b2ab9ae3660c777a5e98

Bitcoin Core Mining

Now you can see all the details of the transaction and confirm that is has been processed. You can send this link as proof that you have paid someone what you owed.

One thing you must remember from this bitcoin core tutorial is the Change Address. A change address is a newly generated bitcoin address that holds the remainder of your bitcoins after you process a transaction. This is why you have to backup your wallet again after you send bitcoins. If my wallet was corrupted and I had to restore it from an old backup, my new balance would be 0.00 BTC instead of 0.0049 because the old backup doesn’t contain the private key for my new change address. That money could be lost forever – backup your wallets.