Skip to content

Instantly share code, notes, and snippets.

jonatack /
Last active Sep 21, 2021
How to compile Bitcoin Core with wallet, from source, on Linux Debian

How to compile Bitcoin Core from source on Linux Debian and run the unit and functional tests

Last updated: 16 March 2019

Hi! This article now lives at where I will continue to update it. Cheers.

This is a simplified compilation of the various docs in Don't hesitate to read them for more information.

All steps are to be run from your terminal emulator, i.e. the command line.

jonatack / private.xml
Last active Jan 4, 2021
Karabiner custom setting to use the correct shift keys and break bad typing habits. Drop this into your private.xml file using for Mac OS, click on "Reload XML", then click on "Use the correct shift keys" at the top of the Karabiner Change Key settings.
View private.xml
<name>Use the correct shift keys.</name>
<autogen>--KeyToKey-- KeyCode::BACKQUOTE, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::1, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::2, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::3, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::4, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
jonatack /
Last active Jun 25, 2020
Notes from reviewing Bitcoin Core PR #11413 "[wallet] [rpc] sendtoaddress/sendmany: Add explicit feerate option" by kallewoof
jonatack / benchmark_building_a_hash.rb
Last active Jun 18, 2020
Benchmark building a Ruby hash: #each - #each_with_object - #reduce - Hash[map] - - #reduce-merge
View benchmark_building_a_hash.rb
require 'benchmark/ips'
Benchmark.ips do |x|
Property =, :original_name)
PROPERTIES = ["Clo", "Chloe" ),"Jon", "Jonathan" ),"Kris", "Kristin" ),
View bitcoin-pr-16202.diff
~/projects/bitcoin/bitcoin (pr/16202)$ git diff
diff --git a/src/net.cpp b/src/net.cpp
index d5e74d928f..d7371d80df 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -596,6 +596,9 @@ bool CNode::ReceiveMsgBytes(const char *pch, unsigned int nBytes, bool& complete
if (i == mapRecvBytesPerMsgCmd.end())
i = mapRecvBytesPerMsgCmd.find(NET_MESSAGE_COMMAND_OTHER);
assert(i != mapRecvBytesPerMsgCmd.end());
jonatack /
Created Sep 15, 2019 — forked from fjahr/
Debugging Bitcoin Core

This document is currently optimized for MacOS. If you would like to help me add Linux equivalent commands, please let me know.

Debugging Bitcoin Core

This guide is designed to give beginners of C++ development and/or people new to the bitcoin core code base an overview of the tools available for debugging issues as well as giving hints where issues may trip you up.

Table of contents

View rpc-bumpfee-help.txt
~/projects/bitcoin/src ((HEAD detached at origin/pr/15996))$ bitcoin-cli -regtest help bumpfee
bumpfee "txid" ( options )
Bumps the fee of an opt-in-RBF transaction T, replacing it with a new transaction B.
An opt-in RBF transaction with the given txid must be in the wallet.
The command will pay the additional fee by reducing change outputs or adding inputs when necessary. It may add a new change output if one does not already exist.
If `totalFee` (DEPRECATED) is given, adding inputs is not supported, so there must be a single change output that is big enough or it will fail.
All inputs in the original transaction will be included in the replacement transaction.
The command will fail if the wallet or mempool contains a transaction that spends one of T's outputs.
By default, the new fee will be calculated automatically using estimatesmartfee.
(pr/15943)$ test/functional/ rpc_uptime --coverage
Temporary test directory at /tmp/test_runner_₿_🏃_20190515_133545
Initializing coverage directory at /tmp/coveragehsj4pafy
Remaining jobs: []
1/1 - passed, Duration: 1 s

TEST          | STATUS    | DURATION | ✓ Passed  | 1 s
jonatack /
Last active Apr 21, 2019
Manual test of bitcoin/bitcoin PR 15750

Manual tests of master (at 66ce95a) versus (at b4338c1) compiling from source and launching src/bitcoind -deprecatedrpc=validateaddress:

(master)$ src/bitcoin-cli getaddressinfo 33wjMTPWcmF12zfQZ2ecuvQfpfZjgVQ4ag
  "address": "33wjMTPWcmF12zfQZ2ecuvQfpfZjgVQ4ag",
  "scriptPubKey": "a91418b8a89d71daba341f2ba4dac25ad08c7f91d72a87",
  "ismine": true,
  "solvable": true,