I have picked up Pieter Wuille's proposal
from 2017 to use a rolling hash for the UTXO set hash. It deals with the problem of
a long computation time of the UTXO set hash which results in a slow RPC call
gettxoutsetinfo
(can take several minutes depending on hardware). I investigated
three hash functions: MuHash, ECMH and LtHash and started implementing them
in Bitcoin Core for comparison. However only MuHash has a rolling hash implementation
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.
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.
BFG Miner project page: https://github.com/luke-jr/bfgminer
Bitcoin needs to be installed. Make sure dependencies, xcode etc. are installed: https://gist.github.com/luke-jr/7539234 (if you built Bitcoin on the same machine you should be fine).
$ git clone git@github.com:luke-jr/bfgminer.git
List of all Lightning Network Message Types for easy & quick overview.
Messages with strikethrough style exist in the original RFCs but are currently removed in Lightning MW.
Messages related to connection setup, control, supported features, and error reporting.
- Specs: https://github.com/lightningnetwork/lightning-rfc
- Blogposts on Specs by Rusty Russel (somewhat outdated) https://medium.com/@rusty_lightning/the-bitcoin-lightning-spec-part-1-8-a7720fb1b4da
- Lightning dev mailing list https://lists.linuxfoundation.org/pipermail/lightning-dev/
- Original white paper (Poon & Dryja) https://lightning.network/lightning-network-paper.pdf
- Follow-up by Rusty Russel https://github.com/ElementsProject/lightning/blob/master/doc/deployable-lightning.pdf
defmodule MyApp.Plugs.Debug do | |
@behaviour Plug | |
require Logger | |
def init(default), do: default | |
def call(conn, _) do | |
case conn.request_path do | |
"/path/to/error" -> |
""" | |
Suppose you are given a list of possible Bitcoin that you control (inputs). You | |
need to pay someone exactly 0.71 BTC. How would you select exactly 2 inputs in | |
such a way as to minimize the change output if you could ignore fees? Write a | |
python function that selects the two inputs. | |
""" | |
from itertools import permutations | |
TEST_INPUTS = [0.21, 0.59, 1.34, 3.45, 0.3, 0.84, 0.53, 0.62, 0.70, 0.21, 0.44, | |
0.28, 0.39, 200.9, 4.34] |
Verifying my Blockstack ID is secured with the address 1DMWKLoHuFQU5QHAa2KyQwEqsyLP5sxXLN https://explorer.blockstack.org/address/1DMWKLoHuFQU5QHAa2KyQwEqsyLP5sxXLN |