Skip to content

Instantly share code, notes, and snippets.

@sipa
sipa / btc-beyondip.txt
Created September 23, 2011 16:19
Beyond IP transactions: towards a Bitcoin payment protocol
View btc-beyondip.txt
Beyond IP Transactions: towards a payment protocol
==================================================
IP transactions were originally introduced as a first "out-of-band" protocol
for negotiating a transaction output's public key. Being inconvenient and
insecure, they became obsolete, and recent versions of bitcoin don't support
them anymore.
The result is that static bitcoin addresses have become the most common way of
defining requested payments. This may be fine for anonymous donations, but is not
@gavinandresen
gavinandresen / BlockPropagation.md
Last active March 14, 2023 09:45
O(1) block propagation
View BlockPropagation.md

O(1) Block Propagation

The problem

Bitcoin miners want their newly-found blocks to propagate across the network as quickly as possible, because every millisecond of delay increases the chances that another block, found at about the same time, wins the "block race."

@tasdikrahman
tasdikrahman / irssi.md
Last active January 24, 2024 13:26
irssi cheatsheet
View irssi.md
View partition-resistance.md

Network partition resistance

For the Bitcoin network to remain in consensus, the network of nodes must not be partitioned. So for an individual node to remain in consensus with the network, it must have at least one connection to that network of peers that share its consensus rules. This document describes how we attempt to achieve this.

We can't rely on inbound peers to be honest, because they are initiated by others. It's impossible for us to know, for example, whether all our inbound peers are controlled by the same adversary.

@fjahr
fjahr / bitcoin_debugging.md
Last active May 31, 2023 04:38
Debugging Bitcoin Core
View bitcoin_debugging.md

Moved to https://github.com/fjahr/debugging_bitcoin to allow for better collaboration.

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.

@carnhofdaki
carnhofdaki / gensignet.sh
Last active October 2, 2020 11:36
custom-signet 10/2020
View gensignet.sh
#!/bin/sh
cd ~/src/bitcoin/src
./bitcoind -regtest -daemon=1
printf "Waiting for regtest bitcoind to start"
while ! ./bitcoin-cli -regtest getconnectioncount 2>/dev/null 1>&2
do printf .; sleep 1
done; echo
@adamjonas
adamjonas / generating_a_patchset.md
Last active June 9, 2020 17:45
Generate a patchset
View generating_a_patchset.md

Error:

>>> [do_build] Command failed: git apply /Users/jonas/bitcoin-dir/bitcoin-maintainer-tools/patches/stripbuildinfo.patch
>>> [do_build] Could not apply patch to strip build info. Probably it needs to be updated

Checkout the patchset from the last patch:

git checkout 'master@{aug 1}'

@hebasto
hebasto / guix-sigs.md
Last active February 2, 2024 14:33
The `bitcoin-core/guix.sigs` Repository Workflow
View guix-sigs.md

The bitcoin-core/guix.sigs Repository Workflow

Common environment variables

export SIGNER="hebasto"
export GUIX_SIGS_REPO="/home/hebasto/guix.sigs"
export DETACHED_SIGS_REPO="/home/hebasto/bitcoin-detached-sigs"
@Kixunil
Kixunil / efficient_reusable_taproot_addresses.md
Last active April 14, 2023 22:07
Efficient reusable Taproot addresses
View efficient_reusable_taproot_addresses.md

Reusable taproot addresses

Abstract

This document proposes a new scheme to avoid address reuse while retaining some of the convenience of address reuse, keeping recoverability purely from Bitcoin time chain and avoiding visible fingerprint. The scheme has negligible average overhead.

Motivation