Transakce v bloku

Ahoj, přečetl jsem hodně článků o bitcoinu a přijde mi, že všechny se zaměřují na to stejné a bohužel ignorují i to stejné a díky tomu mi stále nějaké detaily unikají. Např. chápu správně, že blok si sestavuje každý miner (či shuk minerů) sám dle svého uvážení? Co se stává s příkazy, které nikdo do bloku nechce (např. ty bez poplatků)?
Takových otázek mám víc, nevíte o nějakém detailnějším popisu problematiky? Nebo techničtěji zaměřené školení?
Díky

Předpokládám jsi četl hodně článků v češtině. Informací je na netu dost (anglicky), pokud chceš jít do hloubky…

Jednoduše řečeno ano, pooly a solo mineři si rozhodují sami, jaké transakce zahrnou do bloku.

Transakce, které nikdo nechce dřív nebo později stejně někdo zrealizuje. Jakmile je přestanou předbíhat prioritnější transakce. Vždy se najde někdo, kdo zpracuje i smetí bez poplatku. V případě že by se opravdu nenašel nikdo, tak časem síť tyto transakce odmítne (vyřadí z čekajících transakcí) a bude to jako by se nic neodeslalo (vrátí se).

Časově bych tipl něco mezi týdnem a dvěma. Osobně mi zatím vždy všechno došlo i když jsem třeba omylem nedal poplatek.

Taky je třeba vzít v úvahu, že pokud dodržíš pravidla, máš nárok na zaslání transakce zcela bez poplatku a přitom rychle.

Jsou li všechny výstupy vyšší než 0.01 btc, transakce je do 1kb a zároveň má dostatečnou prioritu (minimum 57 600 000), není třeba platit poplatek. Nicméně poplatek vše urychlí:)

Vzorec: priority = sum(input_value_in_base_units * input_age)/size_in_bytes

Příklad. Posílám 1 btc a chci poslat zdarma. Má 30 potvrzení sítí a 500 bajtů

1 btc = 100 000 000 satoši

priorita = (100 000 000 * 30) / 500 = 6 000 000

Bohužel transakce nemá dostatečnou prioritu a musím zadat poplatek. Nezadám-li ho, pořád je šance že to projde. Ale je tu riziko že to bude trvat dny a nakonec to bude odmítnuto.

Jeden z nejlepších zdrojů informací o bitcoinu je tady:
https://en.bitcoin.it/wiki

Díky za podrobnou odpověď, bohužel v tom stále mám zmatek, resp. narážím na informace které mi přijdou protichůdné. Např. tady http://bitcoin.stackexchange.com/questions/23090/how-do-i-cancel-my-blockchain-transaction-still-unconfirmed se píše, že transakce nemůže být stornována. Tak jak se potom může vrátit, když jí mineři trvale odmítají?
Takových otázek a rozporů mám plno. :frowning:

To není rozpor. Odešleš transakci do sítě. To nelze vzít zpět.

Ale zároveň ta transakce nebude v dočasné paměti (mempool) nekonečně dlouho. Je však větší pravděpodobnost, že transakce bude časem potvrzena než že bude sítí odmítnuta.

Vpravo nahoře je mempool. Tj. soubor všech dosud nepotvrzených transakcí, které jsou “v síti”.

Jak to chápu já, tak aby byla transakce úplně vyřazena, musela by nejdřív dojít kapacita dočasné paměti. A jak ukázaly nedávné stress testy, které vytvořily desítky tisíc nepotvrzených transakcí, tak kapacita je dost velká…

Ani nevím jaká je maximální možná kapacita mempoolu a docela by mě to zajímalo jestli někdo neví…

Aby se předešlo situaci, kdy se ta transakce vrátí, je možné se pokusit tu transakci odeslat do sítě znovu s vyšším poplatkem a pokusit se o double spend (stejné vstupy a výstupy, jen vyšší poplatek). Tím ta novější verze transakce předběhne tu první a tím ta původní transakce bude vyřazena.

Ale bez double spend to může trvat týdny než se ta transakce zapomene a btc se vrátí. Nicméně zatím každý kdo tady řešil, že má dlouho nepotvrzenou transakci tak max do týdne to vždycky v pohodě prošlo…