Dnes si připomínáme oficiální vydání Bitcoin Core 0.14.0, čtrnácté generace původního softwarového klienta bitcoinu, kterou před osmi lety spustil Satoshi Nakamoto. Dohlíží Bitcoinové jádro vedoucí údržby Wladimir van der Laan, toto nejnovější hlavní vydání vyvinulo téměř 100 přispěvatelů za období šesti měsíců.
Bitcoin Core 0.14.0 obsahuje významný seznam vylepšení. Ve srovnání s některými předchozími verzemi se však většina z nich týká „vnitřních částí“ softwaru: vylepšení výkonu, která se odehrávají pod kapotou, ale nemusí být pro běžné uživatele příliš patrná.
To znamená, že zde jsou některé z nejvýznamnějších změn.
Bloky „Assumevalid“
Kdykoli se v síti zavádí nový uzel, synchronizuje celý blockchain. Stáhne a ověří všechny bloky, které se kdy těžily, a ověří všechny transakce ve všech těchto blocích. Bohužel to může nějakou dobu trvat. Dokonce i nové špičkové notebooky často vyžadují více než celý den. U starších nebo nižších strojů to trvá ještě déle.
„Assumevalid“ tento proces výrazně zrychluje. Uzly Bitcoin Core 0.14.0 v podstatě předpokládají, že všechny transakce do určitého bloku jsou platné. Zatímco synchronizační uzel stále ověřuje důkaz práce pro všechny bloky a zaznamenává celou historii transakcí, již nekontroluje podpisy a podobná data pro každou jednotlivou transakci.
Předpoklad, který blok je platný, je konfigurovatelný. Ve výchozím nastavení je blok 453354 pro bitcoinové jádro 0.14.0. Ale uživatelé, kteří chtějí plně ověřit každou transakci, dokonce i ty, které se datují roky zpět, stále mohou.
Za zmínku stojí také to, že na rozdíl od systému kontrolních bodů, který stanoví, že konkrétní blok musí být součástí blockchainu, předpokládaný platný blok nemusí být nutně závazný. Uzel Bitcoin Core 0.14.0 se snadno přepne na alternativní blockchain bez předpokládaného platného bloku, pokud je tento alternativní blockchain delší.
Vylepšený odhad poplatků
Vzhledem k tomu, že se bitcoinové bloky zaplňují, zejména v loňském roce, ne všechny transakce odeslané přes síť zapadají do hned dalšího bloku. Výsledkem je, že horníci obvykle upřednostňují transakce, které zahrnují nejvíce poplatků. Transakce, které zahrnují více poplatků, mají vyšší šanci na zahrnutí do následujícího bloku nebo krátce poté. Transakce, které zahrnují nižší poplatky, jsou přehodnoceny a jejich potvrzení trvá déle.
Samozřejmě, ne každý potřebuje své transakce potvrdit tak rychle. Uživatelé, kteří posílají bitcoiny na burzu kvůli rychlému pohybu cen, mohou být ve spěchu, aby mohli své transakce potvrdit. Uživatelé, kteří přesouvají bitcoiny mezi vlastními peněženkami, mohou být trpělivější.
Od verze Bitcoin Core 0.10.0 mohou uživatelé odpovídajícím způsobem upravit své poplatky. Mohou ručně zahrnout vyšší poplatky, pokud jsou ve spěchu, a nižší poplatky, pokud tomu tak není. Bitcoinové jádro 0.11.0 a 0.12.0 vylepšilo software pro odhad poplatků a Bitcoin 0.14.0 nyní obsahuje další sadu vylepšení, což zejména činí algoritmus robustnějším v situacích okrajových případů.
Navíc byl výchozí cíl potvrzení snížen z 25 bloků na 6 bloků; většina transakcí provedených z bitcoinového jádra by se měla potvrdit do hodiny, i když se uživatel nedotkne nastavení poplatků.
Přihlaste se k výměně za poplatek za odeslání
Kromě vylepšeného odhadu poplatků mají uživatelé Bitcoin Core 0.14.0 další možnost, jak urychlit své transakce.
Transakce bitcoinů, které byly poprvé představeny před rokem vydáním Bitcoin Core 0.12.0, lze označit příznakem „nahradit za poplatek“. Odesílatel transakce může původní transakci nahradit novější transakcí, která zahrnuje vyšší poplatek. To jim umožňuje „přeskočit řádek“ a rychlejší potvrzení transakce.
Až do tohoto bodu zahrnovalo bitcoinové jádro do chování uzlu pouze opt-in replace-by-fee: přijímalo a předávalo transakce s příznaky nahrazení za poplatek (místo toho, aby je odmítlo jako dvojité utrácení). Uživatelé Bitcoin Core však nemohli využít přihlašovací náhradu za poplatek k narušení svých vlastních poplatků; zatím se líbí pouze uživatelům peněženek Electrum nebo Zelená adresa mohl.
Nyní byla v Bitcoin Core 0.14.0 přidána možnost opt-in replace-by-fee jako možnost vzdáleného volání procedury (RPC). To znamená, že uživatelé pracující z příkazového řádku nebo na aplikacích postavených na bitcoinovém jádru mohou také využívat náhradu za poplatek.
Ruční prořezávání
Bitcoinový blockchain je více než 100 gigabajtů co do velikosti a současným tempem roste každý rok přibližně o 50 gigabajtů. Všechna tato data musí být uložena, což může představovat významnou zátěž pro uživatele provozující celý uzel.
Proto Bitcoin Core 0.11.0 zavedlo prořezávání blockchainu. Uživatelé se mohou starších bloků zbavit, jakmile jsou ověřeni, takže spuštění celého uzlu nevyžaduje tolik místa na disku.
Až dosud však uživatelé mohli stříhat pouze od pevného počtu bloků. Například s prořezáváním nastaveným na 1000 bloků si Bitcoin Core ponechal přesně posledních 1000 bloků. Kdykoli byl přidán nový blok, nejstarší blok byl zahozen, aby byl celkový počet 1000.
To bohužel znamenalo, že některé aplikace spoléhající se na Bitcoin Core nemohly ve skutečnosti využívat prořezávání. Například aplikace pro zpracování plateb – pro obchodníky, kteří chtějí přijímat bitcoiny, ale raději se nespoléhají na externí služby, jako je BitPay nebo Coinbase – v některých případech možná bude třeba zjistit, zda byla platba provedena ve starším bloku. Pokud je tento blok již prořezaný, aplikace nemůže dělat svou práci.
Bitcoin Core 0.14.0 proto umožňuje konkrétnější prořezávání. Místo zachování nastaveného počtu bloků mohou uživatelé ořezávat blockchain počínaje konkrétním časovým bodem, konkrétní výškou bloku a ponechat všechny bloky, které byly vytvořeny od.
V kombinaci s další novou funkcí nazvanou „importmulti“ může bitcoinové jádro 0.14.0 importovat adresy a časová razítka, například z výše uvedené aplikace pro zpracování plateb. Pomocí časových značek k určení, kdy byla vytvořena konkrétní adresa, bitcoinové jádro ví, od kterého okamžiku jsou časové bloky relevantní pro aplikaci, a nebude tyto bloky ořezávat.
Vylepšení blokování relé
Kdykoli je nový blok těžen, je přenášen přes bitcoinovou síť peer-to-peer, dokud jej nedostane každý uzel. Latence v této síti může bohužel těžit ze sdružené těžby i geografických shluků těžařů, což stimuluje centralizovanější těžební topologii.
Zvýšení rychlosti šíření bloků je proto již několik let ústředním bodem vývojového týmu Bitcoin Core a Bitcoin Core 0.14.0 obsahuje další dávku vylepšení.
Snad nejdůležitější je, že uzly Bitcoin Core 0.14.0 předávají bloky svým vrstevníkům dříve. Pokud by uzly dříve ověřily blok jako celek před odesláním do připojených uzlů, spustí bitcoinové jádro 0.14.0 proces přeposílání ihned po kontrole dokladu o práci.
Zatímco mnoho těžařů dnes také používá alternativní přenosové sítě, zvýšení rychlosti v bitcoinové síti peer-to-peer snižuje závislost na těchto sítích a dokonce přináší výhody těmto přenosovým sítím, kde se připojují k síti peer-to-peer..
A …
Jak již bylo zmíněno, výše uvedená vylepšení jsou opravdu jen špičkou ledovce. Bitcoin Core 0.14.0 obsahuje seznam dalších vylepšení výkonu, od změn RPC na nízké úrovni až po změny v grafickém uživatelském rozhraní (GUI) a cokoli mezi tím. Úplný přehled všech vylepšení najdete v části Poznámky k verzi Bitcoin Core 0.14.0.
Bitcoin Core 0.14.0 si můžete stáhnout z bitcoincore.org nebo bitcoin.org.