Core Review
Scripts, tools & info for doing Bitcoin Core development and code review. Based on using a macOS 10.14 system.
- AppleScript - Scripts for UI & test automation
apple-os.py
- Buildgit
histories for Apple Open Source libraries.- Apt-Cacher NG - Using Apt-Cacher NG for gitian builds.
assumevalid
Updates - How to review pull requests that updateassumevalid
.big-wallet.py
- Create a wallet with lots of transactions.- Binary Compare - Notes on doing binary comparisons of Bitcoin Core
- Clang Build Analyser - Clangs
-ftime-trace
& ClangBuildAnalyzer - Clang Tools - Setting up & using Clang Tools
- Compiler Bugs
- Compiler Defaults
- Compiler Explorer - Example Compiler Explorer use case.
- CoreRPC - Swift RPC wrapper.
- Coz - Profiling bitcoind with Coz
- depends - notes on using the depends system
- Determinism - Notes on determinism.
diffoscope
- A tool for generating diffs.- Flame Graphs - Notes on producing Flame Graphs.
fortify.py
- Calculate _chk % replacement when using FORTIFY_SOURCE- Fuzzing - Fuzzing using Clang & libFuzzer.
github-merge.py
- Script for merging PRs from GitHub.- Gitian Building - Quick setup gitian building guide.
- gnuplot -
gnuplot
usage for benchmarking and analysis. - Guix - Notes on setting up / using Guix.
- Hardening - Hardening in Bitcoin Core.
- IRC - Where to find Bitcoin Core related discussion on IRC.
- Link Time Optimization - Notes on using LTO.
- Links - Useful links that I would otherwise forget about.
- LLDB - Notes on using LLDB.
- Locale Dependence - Locale dependence examples.
- MacOS dylib checker - macOS dylib and dynamic linker flag auditing.
- Mesh - Running bitcoind with Mesh
- NixOS - Building on NixOS
- Operating Systems - OS's that Core should support.
- Profile Guided Optimization - Notes on using PGO.
- reprotest - Using reprotest.
- rtld-audit - Dynamic Linker Auditing - linux dynamic linker auditing
- Scripted Diff
- Subtree Merges - How to verify subtree merges are done correctly.
- .tbd stubs - Using .tbd stubs.
- URIs - URIs for testing
bitcoin:
uri handling. - Vagrant - Box definitions for PR review/testing.
- Valgrind - Installing Valgrind on macOS.
- Windows - Windows 10 VM setup for native builds.
- Windows Cross Compile - Building Windows binaries on macOS
TODO
- Add some notes LD notes for
why_live
,dead_strip_dyibs
,DYLD_
etc. - glibc function usage
- CVE history