Skip to content

Instantly share code, notes, and snippets.

@l0rinc
Last active January 13, 2025 14:26
Show Gist options
  • Save l0rinc/c9dbd3624f0f4f19f39f96de1e3e50b5 to your computer and use it in GitHub Desktop.
Save l0rinc/c9dbd3624f0f4f19f39f96de1e3e50b5 to your computer and use it in GitHub Desktop.

Ez az útmutató segít abban, hogy összehasonlítsd a Bitcoin Core két különböző verziójának teljesítményét az első blokklánc-letöltési (IBD) folyamat során. Két buildet fogsz futtatni, és az eredményeket megoszthatod.

Kell hozzá:

  • GitHub fiók (az eredmények publikálásához).
  • Linux alapú rendszer (például Ubuntu/Debian).
  • Legalább 1 TB szabad hely a blokklánc adataihoz (ideiglenes, utána törölhető).

Először telepítsd a szükséges csomagokat (Debian/Ubuntu rendszeren). Csak megbízható forrásból telepíts!

apt update && apt upgrade -y
apt install -y bsdmainutils build-essential ccache clang cmake curl git htop libboost-chrono-dev libboost-dev libboost-filesystem-dev libboost-system-dev libboost-test-dev libboost-thread-dev libdb++-dev libdb-dev libevent-dev libgmp-dev libminiupnpc-dev libsqlite3-dev libssl-dev libtool libzmq3-dev llvm pkg-config python3 python3-zmq python3-pip hyperfine

Töltsd le a Bitcoin Core forráskódját, és fetch-eld le a két commitot, amit össze szeretnél hasonlítani (szándékosan nem mondom meg, melyik-melyik).

git clone https://github.com/bitcoin/bitcoin.git && cd bitcoin
git fetch origin 898a07e2ab3e5b653ddadc76f2d04d625f35607c bb57017b2945d5e0bbd95c7f1a9369a8ab7c6fcd

Hozz létre egy könyvtárat a blokklánc adataihoz. Ez a könyvtár kb. 1 TB szabad helyet igényel, de a kísérlet után törölhető.

mkdir -p ~/BitcoinData ~/BitcoinData-logs

Fordítsd le a Bitcoin Core binárisokat a következőkkel:

cmake -B build && cmake --build build -j4

Jöhet a tesztelés \:D/. Használhatod a hyperfine-t automatizálásra:

hyperfine \
--runs 2 \
--export-json ~/BitcoinData-logs/XOR-{COMMIT}-$(date +%s).json \
--parameter-list COMMIT 898a07e2ab3e5b653ddadc76f2d04d625f35607c,bb57017b2945d5e0bbd95c7f1a9369a8ab7c6fcd \
--prepare 'rm -rf ~/BitcoinData/* && git checkout {COMMIT} && git clean -fxd && git reset --hard && cmake -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_UTIL=OFF -DBUILD_TX=OFF -DBUILD_TESTS=OFF -DENABLE_WALLET=OFF -DINSTALL_MAN=OFF && cmake --build build -j$(nproc)' \
--cleanup 'mv ~/BitcoinData/debug.log ~/BitcoinData-logs/debug-{COMMIT}-$(date +%s).log' \
'COMMIT={COMMIT} ./build/src/bitcoind -datadir=~/BitcoinData -stopatheight=879000 -dbcache=30000 -printtoconsole=0'

A logok a ~/BitcoinData-logs könyvtárba kerülnek, ezeket kell majd becsomagolnod (és mindent, amit a program eredményül kiírt).

Futtathatod hyperfine helyett kézzel is, de ebben az esetben minden lépést pontosan címkézz, hogy biztosan azt az eredményt kapd, amit szerettél volna.

@l0rinc
Copy link
Author

l0rinc commented Jan 13, 2025

Lefordítottam angolra is kicsit több kontextussal: https://gist.github.com/l0rinc/83d2bdfce378ad7396610095ceb7bed5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment