Orphan Block je v užším významu blok, jehož rodiče pozorující uzel nezná. V širším užití bývá zaměňován se stale blokem na neaktivní větvi; samotné označení proto neurčuje platnost ani příčinu události.
Bitcoin Developer Guide výslovně odlišuje skutečný Orphan Block s neznámým rodičem od Stale Block na konkurenční větvi. U druhého může být rodič známý a blok platný. Při čtení exploreru nebo poolového hlášení nejprve zjistěte, který význam autor používá; slovo orphan samo tuto hranici neurčuje. [Bitcoin Developer Guide — Block height and forks]
Bitcoin Core 29 v AcceptBlockHeader vyhledává hashPrevBlock v indexu. Chybějící záznam vrací prev-blk-not-found; rodič označený jako neplatný vede k bad-prevblk. Jde o odlišné výsledky. Doplnění rodiče umožní další kontextové kontroly, ale samo ještě nezaručuje přijetí celého bloku. [Bitcoin Core 29 — Header acceptance]
Bitcoin Core 0.10.0 zavedl headers-first synchronizaci: nejprve hlavičky, potom souběžné stahování bloků. Index tak může znát hlavičku rodiče bez jeho úplného bloku na disku. Chybějící tělo bloku proto nezaměňujte za neznámou rodičovskou hlavičku; záleží na tom, která data skutečně chybějí. [Bitcoin Core 0.10.0 — Headers-first synchronization]
V getchaintips rozlišuje Bitcoin Core 29 active, valid-fork, valid-headers, headers-only a invalid. valid-fork je plně ověřená neaktivní větev; valid-headers má dostupné bloky bez úplného ověření, headers-only nemá všechny bloky. Ani formulace orphaned branches v nápovědě neopravňuje sloučit tyto stavy do jediné kategorie. [Bitcoin Core 29 — getchaintips]
Model: dva různé bloky A a B mohou mít výšku 900000. Samotné číslo neurčuje vítěze ani jedinečnou identitu; ukládejte hash a previousblockhash. Při výběru mezi platnými větvemi rozhoduje kumulovaná práce, v RPC popsaná jako chainwork, nikoli pouhé porovnání výšky. Číslo modelu není tvrzením o konkrétním historickém rozvětvení. [Bitcoin Developer Guide — Block height and forks] [Bitcoin Core 29 — getblock]
getblock v Bitcoin Core 29 vrací confirmations = -1 pro blok mimo hlavní řetězec. To není záporná hloubka reorganizace ani důkaz chybějícího rodiče. Výsledek čtěte společně s hashem, údaji větve a stavem místního uzlu; výpis jednoho uzlu není úplným soupisem všeho, co obdržely ostatní uzly. [Bitcoin Core 29 — getblock]
COINBASE_MATURITY v Bitcoin Core 29 má hodnotu 100. Jde o omezení utrácení coinbase výstupu podle blokové hloubky, nikoli čekání v minutách. Samotné uběhnutí času nebo vznik dalších bloků jinde neobnoví odměnu ze stale větve mimo aktivní historii; zralost nenahrazuje začlenění do řetězce. [Bitcoin Core 29 — Coinbase maturity] [Bitcoin Developer Guide — Block height and forks]
Pro vlastní záznam spojte getchaintips a getblock s hashem bloku, rodičem, stavem větve, verzí uzlu a časem pozorování. Čas pozorování zaznamenejte zvlášť od pole time v hlavičce. Jediný takový výpis sám neprokazuje útok, globální orphan rate ani konkrétní poruchu sítě; to vyžaduje další pozorování. [Bitcoin Core 29 — getchaintips] [Bitcoin Core 29 — getblock]
Pro nejúplnější obraz čtěte toto heslo společně s Osiřelý blok, Reorganizace řetězce, Šíření bloků, Proof of Work. Opačným směrem na něj odkazují také Osiřelý blok.