Co se týče poplatků obecně, Bitcoin je rozbitý. Opravdu rozbitý. Pokud pošlete transakci s malým poplatkem nebo žádným poplatkem, můžete čekat nekonečně dlouho a nedá se s tím dělat prakticky téměř nic. Situace se trochu lepší s upravenými pravidly ve verzi 0.9 (nejsou tak striktní + víc tam dává smysl konkurenční boj těžařů), ale je to pořád bída, bída. Tohle je rozhodně jedna z nedomyšleností Bitcoinu a je to zdrojem spousty problémů.
O optimální výši poplatků by se měl starat klient. Ten je zodpovědný za to, že poplatek nebude příliš nízký, ale ani příliš vysoký, a toto nějak srozumitelně uživateli sdělit. Dlužno dodat, že může vychytat jen typické situace, kdyby počet transakcí třeba naráz rychle vzrostl, ošetřuje se to blbě a stejně není zaručené nic. To je daň za decentralizovanost.
Nicméně se divím, že Electrum dovolil poslat velkou transakci mající 4 KB s poplatkem 0,0002 (tedy dvakrát nižší než by měl být podle „normálních“ pravidel).
Nepotvrzené transakce jsou v takzvaném „transakčním poolu“ - nějaký kus paměti, kterou si u sebe drží každý plnohodnotný klient a kde jsou uloženy všechny nepotvrzené transakce, které jsou zrovna v síti. Ty transakce jsou seřazené podle priority. Když je transakční pool plný, transakci s nejnižší prioritou vyhodí. Tak se tedy může stát, že síť transakci „zapomene“. Nicméně každý má u sebe svůj pool a ne ke každému se dostanou všechny transakce, takže přesně říci, co už bylo vyhozeno a co ještě ne, se nedá. (Transakce jsou opravdu seřazeny podle priority, ne podle času. Transakce žádný čas nemají, protože ten se dá snadno zfalšovat a nemá v decentralizované síti žádnou váhu.)
Pokud ta transakce tedy dlouhodobě hnije v transakčním poolu a nemá se k tomu, aby ji nějaký těžař zařadil do bloku, dá se udělat následující:
- podplatit nějakého těžaře, aby tam tu transakci zahrnul. Nicméně nevím, že by nějaký těžař tuto službu nabízel
- počkat, až bude transakce potvrzena, anebo naopak vyhozena z transakčního poolu. To, že byla vyhozena, lze zjistit třeba tak, že není vidět na Blockchain.info (resp. je to jeden z důsledků). Pak se dá vytvořit nová transakce s dostatečným poplatkem
Jak udělat novou transakci? Je možné, že klient bude tvrdošíjně trvat na tom, že tyhle bitcoiny už byly utraceny a nedovolí je uživateli utratit znovu. Pak je třeba udělat malou lest - peněženku exportovat (resp. privátní klíče/seed v případě Electrumu) a naimportovat jinam (nevím, kde přesně má kde klient uloženo, jaké transakce se chystá odeslat). Poté sesynchronizovat a poslat znova (a ideálně tak, aby nová transakce utrácela alespoň jeden vstup stejný jako ta stará, aby byly navzájem v konfliktu a nepřišly nakonec obě). Tj. tohle je řešení, ale je to fakt pakárna a viděl bych to stejně jako poslední možnost, až když čekání není únosné.