Skip to content

Commit 0ec4772

Browse files
jirijakesbitschmidty
authored andcommitted
Newsletter-349: Translate into Czech
1 parent 8388c8a commit 0ec4772

File tree

1 file changed

+215
-0
lines changed

1 file changed

+215
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,215 @@
1+
---
2+
title: 'Zpravodaj „Bitcoin Optech” č. 349'
3+
permalink: /cs/newsletters/2025/04/11/
4+
name: 2025-04-11-newsletter-cs
5+
slug: 2025-04-11-newsletter-cs
6+
type: newsletter
7+
layout: newsletter
8+
lang: cs
9+
---
10+
Zpravodaj tento týden popisuje návrh na urychlení úvodního stahování
11+
bloků v Bitcoin Core s ukázkovou implementací demonstrující
12+
pětkrát kratší stahování oproti výchozímu nastavení Bitcoin Core.
13+
Též nechybí naše pravidelné rubriky se souhrnem sezení Bitcoin Core PR Review
14+
Clubu, oznámeními nových vydání a popisem významných změn v populárních
15+
bitcoinových páteřních projektech.
16+
17+
## Novinky
18+
19+
- **SwiftSync urychlující úvodní stahování bloků:** Sebastian
20+
Falbesoner zaslal do fóra Delving Bitcoin [příspěvek][falbesoner ss1]
21+
s ukázkou implementace a s výkonnostními výsledky _SwiftSync_​u, nápadu
22+
[navrženého][somsen ssgist] Rubenem Somsenem během nedávného setkání
23+
vývojářů Bitcoin Core. Později příspěvek [zaslal][somsen ssml] i do emailové
24+
skupiny. V době psaní zpravodaje tvrdila [většina výsledků][falbesoner
25+
ss2] ve vlákně 5,28× zrychlení _úvodního stahování bloků_ (IBD) oproti
26+
výchozím nastavením Bitcoin Core (používajícím [assumevalid][] bez [assumeUTXO][topic
27+
assumeutxo]). Díky tomu se podařilo snížit čas úvodní synchronizace ze zhruba 41
28+
hodin na osm.
29+
30+
Před tím, než je možné SwiftSync používat, musí někdo s uzlem
31+
synchronizovaným na nějaký nedávný blok vytvořit _hints file_ určující,
32+
které výstupy budou součástí množiny UTXO v jeho výšce (tedy které
33+
výstupy jsou neutracené). To lze při současné velikosti množiny UTXO
34+
efektivně zakódovat do několika set megabajtů. Hints file také určuje,
35+
pro který blok byl vygenerovaný, nazvěme ho _terminální blok SwiftSyncu_
36+
(terminal SwiftSync block).
37+
38+
Uživatel, který chce SwiftSync použít, stáhne tento soubor a pomocí
39+
něj zpracuje každý blok až do terminálního bloku. Přitom ukládá do množiny UTXO
40+
pouze výstupy obsažené v hints file. Tento způsob masivně snižuje počet
41+
položek, které jsou do UTXO databáze během IBD přidány a později z ní odstraněny.
42+
43+
Aby byla zajištěna správnost hints file, je každý výstup, který do databáze
44+
UTXO nemá být uložen, přičten do [kryptogafického akumulátoru][cryptographic
45+
accumulator]. Každý utracený výstup je z akumulátoru odečten. Při dosažení
46+
terminálního bloku musí být akumulátor prázdný, tedy každý výstup, který
47+
byl do něj přidán, z něj byl posléze také odebrán (tj. byl utracen). Pokud
48+
tomu tak není, znamená to, že byl hints file nesprávný, a IBD musí být
49+
provedeno znovu od začátku a bez SwiftSyncu. Tímto způsobem nemusí uživatelé
50+
tvůrcům hints file důvěřovat, neboť škodlivý soubor nemůže vyústit ve
51+
správný stav UTXO. Může jen vést k proplýtvaným několika hodinám práce počítače.
52+
53+
Další možností SwiftSyncu, která ještě nebyla naimplementována, je možnost
54+
paralelní validace bloků během IBD. To je možné, jelikož assumevalid nekontroluje
55+
skripty starších bloků, položky nejsou z databáze UTXO nikdy odstraňovány
56+
(před dosažením terminálního bloku) a akumulátor pouze sleduje součet výstupů
57+
přidaných (vytvořené výstupy) a odebraných (utracené výstupy). Díky
58+
tomu nejsou do dosažení terminálního bloku žádné závislosti mezi jednotlivými
59+
bloky. Z podobných důvodů nabízí paralelní validaci během IBD i
60+
[Utreexo][topic utreexo].
61+
62+
Diskutující se zabývali několika aspekty návrhu. Falbesonerova původní
63+
implementace používala akumulátor [MuHash][] (viz [zpravodaj č. 123][news123
64+
muhash], _angl._), u kterého [byla ukázána][wuille muhash] odolnost vůči
65+
[generalizovanému narozeninovému útoku][generalized birthday attack]. Somsen
66+
[popsal][somsen ss1] alternativní přístup, který by mohl být rychlejší.
67+
Falbesoner pochyboval, že by byl tento alternativní přístup kryptograficky
68+
bezpečný, avšak díky jeho jednoduchosti ho i přesto naimplementoval a zjistil,
69+
že SwiftSync urychluje ještě více.
70+
71+
James O'Beirne [se ptal][obeirne ss], zda je SwiftSync užitečný, když
72+
assumeUTXO nabízí ještě výraznější zrychlení.
73+
Somsen [odpověděl][somsen ss2], že SwiftSync zrychluje u assumeUTXO
74+
validaci na pozadí, je tedy i pro uživatele assumeUTXO přínosný. Dále poznamenal,
75+
že pokud někdo stahuje potřebná data pro assumeUTXO (databázi UTXO v určité
76+
blokové výšce), nemusí zvlášť stahovat ještě hints file (jsou-li oba
77+
generované pro stejnou výšku).
78+
79+
Vojtěch Strnad, 0xB10C a Somsen [diskutovali][b10c ss] o komprimování dat
80+
v hints file, které by mohlo snížit velikost souborů o 75 % s výslednou
81+
velikostí pro blok 850 900 kolem 88 MB.
82+
83+
Diskuze v době psaní nadále probíhala.
84+
85+
## Bitcoin Core PR Review Club
86+
87+
*V této měsíční rubrice shrnujeme nedávné sezení [Bitcoin Core PR Review Club][] a
88+
vyzdvihujeme některé z důležitých otázek a odpovědí. Klikněte na otázku a odpověď se vám odhalí.*
89+
90+
[Přidej správce prediktorů poplatků][review club 31664] je PR od vývojáře
91+
[ismaelsadeeq][gh ismaelsadeeq], které zlepšuje logiku předpovídání transakčních
92+
poplatků (též nazývaného [odhadování][topic fee estimation]). Přináší novou třídu `ForecasterManager`,
93+
která umožňuje registraci více `Forecaster`ů. Stávající `CBlockPolicyEstimator`
94+
(který bere do úvahy pouze potvrzené transakce) je refaktorován do jednoho
95+
z takových prediktorů a je přidán nový `MemPoolForecaster`. Ten pro výpočet
96+
používá nepotvrzené transakce v mempoolu, a proto umí na změny poplatků
97+
reagovat rychleji.
98+
99+
{% include functions/details-list.md
100+
q0="Proč se tento nový systém nazývá „prediktor” (forecaster) a
101+
„správce prediktorů” (forecaster manager) a ne „odhadce” (estimator)
102+
a „správce odhadování poplatků” (fee estimation manager)?"
103+
a0="Systém předpovídá (predikuje) budoucí dopad na základě současných
104+
a minulých dat. Na rozdíl od odhadce, který aproximuje aktuální podmínky
105+
s určitou dávkou náhodnosti, prediktor předpovídá budoucí události,
106+
což je v souladu s prediktivní povahou tohoto systému."
107+
a0link="https://bitcoincore.reviews/31664#l-19"
108+
109+
q1="Proč nebyla do `CBlockPolicyEstimator` přidána reference na mempool,
110+
podobně jako v PR #12966? Jaký je aktuální přístup a proč je lepší než
111+
držet referenci na mempool? (Tip: podívejte se na PR #28368)"
112+
a1="`CBlockPolicyEstimator` dědí z `CValidationInterface` a
113+
implementuje jeho virtuální metody `TransactionAddedToMempool`,
114+
`TransactionRemovedFromMempool` a `MempoolTransactionsRemovedForBlock`.
115+
To poskytuje `CBlockPolicyEstimator` všechna data o mempoolu, aniž by s ním
116+
musel být úzce provázán přes referenci."
117+
a1link="https://bitcoincore.reviews/31664#l-26"
118+
119+
q2="Jaké jsou kompromisy mezi novou architekturou a přímou změnou
120+
`CBlockPolicyEstimator`u?"
121+
a2="Nová architektura s třídou `FeeRateForecasterManager`, do které
122+
se může registrovat více prediktorů (`Forecaster`), je modulárnějším
123+
přístupem, který umožňuje lepší testování a vynucuje lepší dělení
124+
zodpovědností. Umožňuje později snadno přidat nové strategie předpovídání.
125+
Daní za to je větší množství kódu, který se musí udržovat, a možná i
126+
zmatení uživatelů, kteří si musí vybrat konkrétní metodu."
127+
a2link="https://bitcoincore.reviews/31664#l-43"
128+
%}
129+
130+
## Vydání nových verzí
131+
132+
*Vydání nových verzí oblíbených páteřních bitcoinových projektů. Prosíme,
133+
zvažte upgrade či pomoc s testováním.*
134+
135+
- [Core Lightning 25.02.1][] je údržbovým vydáním současné hlavní verze
136+
tohoto oblíbeného LN uzlu přinášejícím několik oprav.
137+
138+
- [Core Lightning 24.11.2][] je údržbovým vydáním předchozí hlavní verze
139+
tohoto populárního LN uzlu. Obsahuje opravy několik chyb, některé z nich
140+
jsou stejné jako ve vydání 25.02.1.
141+
142+
- [BTCPay Server 2.1.0][] je hlavním vydáním tohoto platebního procesoru s vlastním
143+
hostováním. Obsahuje nekompatibilní změny pro uživatele některých altcoinů,
144+
vylepšení navyšování poplatků pomocí [RBF][topic rbf] i [CPFP][topic cpfp]
145+
a lepší proces vícenásobného podepisování v případech, kdy všichni podepisující
146+
používají BTCPay Server.
147+
148+
- [Bitcoin Core 29.0rc3][] je kandidátem na vydání příští hlavní verze tohoto
149+
převládajícího plného uzlu. Prosíme, přečtěte si [průvodce testováním verze
150+
29][bcc29 testing guide].
151+
152+
- [LND 0.19.0-beta.rc2][] je kandidátem na vydání tohoto oblíbeného LN uzlu.
153+
Jedním významným vylepšením, které by si zasloužilo důkladné testování, je
154+
nové schéma RBF navyšování poplatků během kooperativního zavření kanálu.
155+
156+
## Významné změny kódu a dokumentace
157+
158+
_Významné změny z tohoto týdne v [Bitcoin Core][bitcoin core repo], [Core
159+
Lightning][core lightning repo], [Eclair][eclair repo], [LDK][ldk repo],
160+
[LND][lnd repo], [libsecp256k1][libsecp256k1 repo], [Hardware Wallet
161+
Interface (HWI)][hwi repo], [Rust Bitcoin][rust bitcoin repo], [BTCPay
162+
Server][btcpay server repo], [BDK][bdk repo], [Bitcoin Improvement
163+
Proposals (BIPs)][bips repo], [Lightning BOLTs][bolts repo],
164+
[Lightning BLIPs][blips repo], [Bitcoin Inquisition][bitcoin inquisition
165+
repo] a [repozitáři BINANA][binana repo]._
166+
167+
- [LDK #2256][] a [LDK #3709][] vylepšují informace o původci selhání (viz
168+
[zpravodaj č. 224][news224 failures], _angl._) dle specifikace v [BOLTs #1044][].
169+
Přidává novou strukturu `AttributionData` a do stávající struktury `UpdateFailHTLC`
170+
přidává volitelné pole `attribution_data`. Dle tohoto protokolu připojí každý
171+
přeposílající uzel do chybové zprávy příznak `hop_payload`, dobu, po kterou uzel HTLC
172+
držel, a HMAC na odpovídající pozici v cestě. Pokud nějaký uzel chybovou hlášku
173+
pozmění, nesoulad v HMAC může identifikovat, mezi kterými dvěma uzly se tak stalo.
174+
175+
- [LND #9669][] mění [jednoduché taprootové kanály][topic simple taproot
176+
channels], aby vždy používaly zastaralý druh kooperativního zavření, i když
177+
je nastavený nový druh s [RBF][topic rbf] (viz [zpravodaj č. 347][news347 coop]).
178+
Dříve uzel s aktivovanými oběma funkcemi nenastartoval.
179+
180+
- [Rust Bitcoin #4302][] přidává do builder API skriptu novou metodu `push_relative_lock_time()`,
181+
které se předává jako argument relativní [časový zámek][topic timelocks].
182+
Zároveň změna zastarává metodu `push_sequence()`, jejímž argumentem bylo
183+
prosté číslo sekvence. Tato změna odstraňuje potenciální zmatení vývojářů,
184+
kteří neúmyslně přidali do skriptů prosté číslo sekvence namísto relativního
185+
časového zámku, který je zkontrolován oproti číslu sekvence vstupu pomocí
186+
`CHECKSEQUENCEVERIFY`.
187+
188+
{% include snippets/recap-ad.md when="2025-04-15 15:30" %}
189+
{% include references.md %}
190+
{% include linkers/issues.md v=2 issues="2256,3709,9669,4302,1044" %}
191+
[bitcoin core 29.0rc3]: https://bitcoincore.org/bin/bitcoin-core-29.0/
192+
[bcc29 testing guide]: https://github.com/bitcoin-core/bitcoin-devwiki/wiki/29.0-Release-Candidate-Testing-Guide
193+
[lnd 0.19.0-beta.rc2]: https://github.com/lightningnetwork/lnd/releases/tag/v0.19.0-beta.rc2
194+
[wuille muhash]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-May/014337.html
195+
[falbesoner ss1]: https://delvingbitcoin.org/t/ibd-booster-speeding-up-ibd-with-pre-generated-hints-poc/1562/
196+
[somsen ssgist]: https://gist.github.com/RubenSomsen/a61a37d14182ccd78760e477c78133cd
197+
[falbesoner ss2]: https://delvingbitcoin.org/t/ibd-booster-speeding-up-ibd-with-pre-generated-hints-poc/1562/7
198+
[assumevalid]: https://bitcoincore.org/en/2017/03/08/release-0.14.0/#assumed-valid-blocks
199+
[cryptographic accumulator]: https://en.wikipedia.org/wiki/Accumulator_(cryptography)
200+
[news123 muhash]: /en/newsletters/2020/11/11/#bitcoin-core-pr-review-club
201+
[muhash]: https://cseweb.ucsd.edu/~mihir/papers/inchash.pdf
202+
[generalized birthday attack]: https://www.iacr.org/archive/crypto2002/24420288/24420288.pdf
203+
[somsen ss1]: https://delvingbitcoin.org/t/ibd-booster-speeding-up-ibd-with-pre-generated-hints-poc/1562/2
204+
[obeirne ss]: https://delvingbitcoin.org/t/ibd-booster-speeding-up-ibd-with-pre-generated-hints-poc/1562/5
205+
[somsen ss2]: https://delvingbitcoin.org/t/ibd-booster-speeding-up-ibd-with-pre-generated-hints-poc/1562/6
206+
[b10c ss]: https://delvingbitcoin.org/t/ibd-booster-speeding-up-ibd-with-pre-generated-hints-poc/1562/4
207+
[somsen ssml]: https://mailing-list.bitcoindevs.xyz/bitcoindev/CAPv7TjaM0tfbcBTRa0_713Bk6Y9jr+ShOC1KZi2V3V2zooTXyg@mail.gmail.com/T/#u
208+
[core lightning 25.02.1]: https://github.com/ElementsProject/lightning/releases/tag/v25.02.1
209+
[core lightning 24.11.2]: https://github.com/ElementsProject/lightning/releases/tag/v24.11.2
210+
[btcpay server 2.1.0]: https://github.com/btcpayserver/btcpayserver/releases/tag/v2.1.0
211+
[news224 failures]: /en/newsletters/2022/11/02/#ln-routing-failure-attribution
212+
[news347 coop]: /cs/newsletters/2025/03/28/#lnd-8453
213+
[review club 31664]: https://bitcoincore.reviews/31664
214+
[gh ismaelsadeeq]: https://github.com/ismaelsadeeq
215+
[forecastresult compare]: https://github.com/bitcoin-core-review-club/bitcoin/commit/1e6ce06bf34eb3179f807efbddb0e9bca2d27f28#diff-5baaa59bccb2c7365d516b648dea557eb50e63837de71531dc460dbcc62eb9adR74-R77

0 commit comments

Comments
 (0)