Jednou z hlavních výhod bitcoinu je to, jak snadné je pracovat z hlediska vývojáře. Bitcoin nemá žádné závislosti na třetích stranách, žádná proprietární API a žádné rychle se měnící rozhraní; vše, co potřebujete, je váš oblíbený programovací jazyk a je pravděpodobné, že již existuje jednoduchá knihovna bitcoinů, kterou můžete použít k zahájení odesílání a přijímání bitcoinů během několika hodin. Účelem tohoto článku bude představit některé z těchto knihoven a ukázat základy práce s bitcoinovými adresami a transakcemi v jakémkoli jazyce..
Adresy, klíče, transakce, Oh My!
Bitcoinový protokol lze obecně rozdělit do tří částí: správa adres a klíčů, transakce a bloky a těžba. Bloky a těžba nejsou pro vás jako začínajícího vývojáře bitcoinů důležité; ve většině případů je jednodušší jednoduše se spolehnout na službu načítání transakcí od jiného poskytovatele, která abstrahuje koncept bloků, a pokud máte zájem o těžbu, nejlepším přístupem je jednoduše koupit standardní bitcoinový miner. Adresy, klíče a transakce se však jednoduše nevyhnete jednání.
Ve správě bitcoinových klíčů existují tři typy objektů, se kterými se budete muset vypořádat: soukromé klíče, veřejné klíče a adresy. Možná jste slyšeli o pojmech „soukromý klíč“ a „veřejný klíč“ v kontextu kryptografie veřejného klíče; to je přesně ten druh soukromého a veřejného klíče, o kterém zde mluvíme. Bitcoin však používá novější druh kryptografie, který se nazývá kryptografie eliptické křivky, a nikoli starší kryptografické algoritmy založené na factoringu, jako je RSA, takže bitcoinové klíče vypadají trochu jinak, řekněme, PGP klíče. Soukromý klíč vypadá takto:
9d86361789d13823fd888fa45c9b356b76d41a7e33b2b2c3056632721c4c1255
A jeho odpovídající veřejný klíč je:
04d8f08938e78447b2b1a629c503d5e17483b0d15751a9e8f83c8460e6ec32fd68d0b4068e83c012f54df995e52ed8bae38056a8d922f9687200ae83e5a6728dff
Soukromý klíč lze převést na veřejný klíč, ale veřejný klíč nelze převést na soukromý klíč. Bitcoinová adresa je ve skutečnosti hash veřejného klíče; bitcoinová adresa odpovídající výše uvedenému veřejnému klíči je:
172YRdGzPqyXm9rm1EWKwPXTRsmcApoPQ6
Jedna věc, kterou si možná všimnete, je, že bitcoinová adresa není v hexadecimální podobě, jako jsou soukromé a veřejné klíče. Je to proto, že pro některé ze svých formátů používá bitcoin vlastní formát reprezentace, známý jako base58check. Část „base58“ vychází ze skutečnosti, že se používá 58 různých písmen a čísel; O, 0, já a já jsme vynechali, protože je příliš snadné se navzájem mýlit. Základna 58 je podobná základně 2 nebo základně 3 nebo základně 10. Například číslo 31337 v základně 2 je „111101001101001“; v základně 3 je to „1120222122“, v základně 10 je to „31337“, v základně 16 je to „7a69“, v základně 58 je to „AKJ“ a nakonec v základně 256 je to jen „zi“. Důležitá je také „kontrolní“ část base58check; to znamená, že první čtyři bajty hash zprávy jsou přidány na konec zprávy před zakódováním výsledku v base58. Například proces převodu „zi“ ze základny 256 na základnu 58 funguje takto:
- Krok 1: kontrolní součet = sha256 (sha256 („x00“ + „zi“)) (všimněte si, že vpředu přidáme nulový bajt) „97fbc63584f26bd0109f99d467c447607dbecff51b903e450207466114672261 ′
- Krok 2: střední = „x00“ + „zi“ + kontrolní součet [: 4] (v binární formě) „x00zix97xfbxc6x35“
- Krok 3: převést na základnu 58 „123xZAaruJ“
Vy osobne však nebudete muset řešit všechny tyto složitosti; Knihovny bitcoinů existují, aby vše zvládly za vás, a o několika z nich si povíme později v článku. Nejprve však zpracování transakcí.
Prvním důležitým bodem, který je třeba mít na paměti, je, že bitcoin nemá interně koncept „účtů“ nebo „zůstatků“; všechny prostředky jsou uloženy v objektech známých jako „transakční výstupy“. Transakce má jeden nebo více vstupů, přičemž každý vstup utrácí existující nevyčerpaný výstup transakce („UTXO“) a transakce poté může odeslat až stejné množství BTC v celkových výstupech, které má ve vstupech. Takto vypadá transakce v deserializované podobě:
{ "doba uzamčení": 0, "ins": [{ "skript": "", "outpoint": { "index": 0, "hash": "319ba90f1645eed46a8fd48e9754ca979c3371f59099d32634a8b56549ce02aa" }, "sekvence": 4294967295}], "outs": [{ "hodnota": 10 000 000, "skript": "76a914a41d15ae657ad3bfd0846771a34d7584c37d54a288ac" }, { "hodnota": 344164, "skript": "76a914c4c5d791fcb4654a1ef5e03fe0ad3d9c598f982788ac" }], "verze": 1}
A v serializované podobě:
0100000001aa02ce4965b5a83426d39990f571339c97ca54978ed48f6ad4ee45160fa99b310000000000ffffffff0230750000000000001976a914a41d15ae657ad3bfd0846771a34d7584c37d54a288ac204e0000000000001976a914c4c5d791fcb4654a1ef5e03fe0ad3d9c598f982788ac00000000
Parametr „script“ je jen dalším způsobem reprezentace adresy; převedením dvou skriptů ve výše uvedené transakci na adresy dostaneme „1FxkfJQLJTXpW6QmxGT6oF43ZH959ns8Cq“ a „1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T“. Jediný vstup v transakci je odkaz na předchozí výstup transakce; při pohledu na blockchain vidíme, že má k dispozici utratit 1354164 satoshi (1 satoshi je nejmenší jednotka bitcoinu se 100 miliony satoshi = 1 BTC). Tyto dva výstupy utratí 1344164 a za poplatek jim zůstane 10 000 satoshi.
Transakce může utratit pouze výstup jako celek, a nikoli částečně. Chcete-li to obejít, je standardním mechanismem koncept „změny“ – odeslat jeden výstup do zamýšleného cíle a další výstup poslat zbytek zpět sobě. Výše uvedená transakce je toho příkladem – prvním výstupem by byla platba 0,01 BTC a druhým by byla změna. Jakmile vytvoříte transakci, musíte každý vstup podepsat soukromým klíčem, který odpovídá každé adrese. Proces je docela zapojený, ale naštěstí to knihovny za vás zvládnou. Po podpisu výše uvedená transakce vypadá takto:
0100000001aa02ce4965b5a83426d39990f571339c97ca54978ed48f6ad4ee45160fa99b31000000008b48304502203bcabb367ca84b2af394597bff4a6169fa55b156708557256d2c584f1bd54e1502210086fdf257e58dbb5e1f3b4686f4385e86ea89e677a6c90a3c87ce276d88ad2b31014104e6eb4c73192bcc7b63f7e3c05ed52c0d98abac6f6aa0876e2e57eeda6b60fe03098cb63633d08077b14cc30efe9bc5c9866ebc1297c03399e27381539025f887ffffffff0240420f00000000001976a914a41d15ae657ad3bfd0846771a34d7584c37d54a288ac64400500000000001976a914c4c5d791fcb4654a1ef5e03fe0ad3d9c598f982788ac00000000
Nakonec musíte podepsanou transakci poslat do blockchainu. Nejlepší způsob, jak to udělat ručně, je http://blockchain.info/pushtx. A to je k bitcoinu v podstatě vše – dokud se nedostaneme k pokročilým funkcím, jako jsou transakce s více podpisy, to je, ale ty jsou nejlépe popsány podrobněji v jiném článku.
Bitcoind
Bitcoind je „referenční klient“ vytvořený základním vývojovým týmem bitcoinů; je to plný bitcoinový uzel, který stahuje celý blockchain a zpracovává transakce. Bitcoind je poněkud omezený ve funkčnosti; například vám nemůže poskytnout historii transakcí adresy, pokud jste ji dříve neimportovali. Nicméně je poměrně silný. Jakmile si stáhnete bitcoind ze stránky projektu a vytvořte jej, prvním krokem je vytvoření souboru v adresáři bitcoinů (~ / .bitcoin v systému Linux) s následujícím obsahem:
rpcuser = userrpcpassword = passrpcport = 8332txindex = 1
V případě potřeby nahraďte svým uživatelským jménem a heslem. Jakmile to uděláte, přejděte do adresáře obsahujícího spustitelný soubor (/ bin, pokud vaše verze byla dodána s předem připraveným spustitelným souborem, / src, pokud jste si jej sami vytvořili) a spusťte ./bitcoind – daemon na příkazovém řádku pro spuštění démon. V tomto okamžiku máte dva způsoby spouštění bitcoindových příkazů.
První způsob je jednodušší: stačí zadat „bitcoind“ následovaný názvem příkazu a argumenty na příkazovém řádku. Například:
>./ bitcoind getblockhash 100000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048>./ bitcoind getblock 00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048 { "hash" : "00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048", "potvrzení" : 212362, "velikost" : 215, "výška" : 1, "verze" : 1, "merkleroot" : "0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098", "tx" : [ "0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098" ], "čas" : 1231469665, "nonce" : 2573394689, "bity" : "1d00ffff", "obtížnost" : 1,00000000, "předchozíblockhash" : "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", "nextblockhash" : "000000006a625f06636b8bb6ac7b960a8d03705d1ace08b1a19da3fdcc99ddbd"}> bitcoind getrawtransaction 0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd51209801000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0704ffff001d0104ffffffff0100f2052a0100000043410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac00000000
Druhým způsobem je použití JSON-RPC. JSON-RPC je obecné rozhraní, které vám umožňuje připojit se k bitcoindu a spouštět s ním příkazy z jakéhokoli jazyka – potenciálně i z jiného počítače. Bitcoinová wiki má stránku popis některých způsobů, jak uskutečnit volání JSON-RPC v různých programovacích jazycích; z důvodu stručnosti uvedu pouze dva.
V Pythonu:
import httplib, json, base64def mkrequest (url, user, pass, method, params, hasresponse = True): connection = httplib.HTTPConnection (url) postdata = json.dumps ({ "metoda": metoda, "parametry": params}) req = urllib2.Request (‘http: // localhost: 8001’, postdata, {‘Authorization’: b’Basic ‘+ base64.b64encode (user +’: ‘+ pass),}) if hasresponse: return urllib2.urlopen (req) .read (). strip ()
A na příkazovém řádku pomocí curl:
curl – user – pass – data-binary ‘{"metoda":,"parametry": [, …]} ‘http: // localhsot: 8332
SX
Existují dva alternativní nástroje příkazového řádku pro řešení bitcoinových transakcí: pybitcointools a SX. SX vytvořil vývojář libbitcoinů Amir Taaki a nyní je aktivně udržován malým týmem; pybitcointools jsem napsal sám. Syntaxe je docela podobná, i když existují rozdíly. Instalace SX je relativně jednoduchá; vše, co musíte udělat, je stáhnout textový soubor s názvem install-sx.sh, nainstalovat několik knihoven a spustit textový soubor. V systému Ubuntu jsou pokyny k příkazovému řádku následující:
wget http://sx.dyne.org/install-sx.shsudo apt-get install git build-essential autoconf libtool libboost-all-dev pkg-config libcurl4-openssl-dev libleveldb-dev libzmq-dev libconfig ++ – dev libncurses5- dev qrencodechmod + x install-sx.sh./install-sx.sh
Poté, co je SX nainstalován, je zde několik z toho, co s ním můžete dělat. Pokud jednoduše vytváříte platformu pro zpracování plateb, stačilo by jednoduše načíst adresu historie adres a možná načíst transakce:
> sx historie 114tTpMrJHJpNvkPZmz8KVcJoQjD5UtosdAddress: 114tTpMrJHJpNvkPZmz8KVcJoQjD5Utosd výstup: eb84dd62287a1d85e3f31b0de869534a8f800fad559e36f779a45470aa4e8976: 0 output_height: 277978 hodnota: 100000 útrata: 3216bc4b8294532cddab1ae2a95a336ee841be02e6246c1ad9cf1e7db788d10e: 0 spend_height: 277979Address: 114tTpMrJHJpNvkPZmz8KVcJoQjD5Utosd výstup: 5a45c86c5aff8200db4c7f8a91b9a3e51932510cbeb2dc173fc8611bee5aeaaf: 1 output_height: 278076 hodnota: 70000 útrata: 4817f863ace4337be7ea95476b2c73723fb83fbe0e1a6236fbf30f2a8aa14dee: 0 spend_height: 278076> sx fetch-transakci 516f0bfe2ed3703112434f645fdc7d805bba51c94c9d8f88b666f1c832eb423c010000000142f2e85e078a214d5c61b58276da5cec01311e026355c570b650c2e665585011010000008a47304402203aa40adefd0dc4a3f960b230a9e1b284d78a4b4dec9119368fdeb006af3b6c7b022071165df64ea4502003d8b6e9c46c28b5c5c748226737b4fe1ee8fc4269b50ee5014104a70f7c8b0a835f549f061b725bd3e06744963a07cb2f76097bafe040f939d6e6d23c6cc89e5b50aa944d26b7d1c8a1f3b8b4e6f7c2f54cf35fb46b0e4b9442e1ffffffff02a0860100000000001976a914ba55b9859c7356c5e5549c8a30c463e3db64e84488ac80054800000000001976a9145a35a4558b8a0140f4a73aaac0be891b99e3790e88ac00000000
Chcete-li vypočítat zůstatek adresy, musíte získat historii (možná pomocí sx history -j 114tTpMrJHJpNvkPZmz8KVcJoQjD5Utosd pro počítačově dostupnější formát), odfiltrovat položky, které již byly vyčerpány, a přidat hodnoty zbytek. Získáte tak celkový počet satoshi, které může adresa utratit (100 milionů satoshi = 1 BTC). Chcete-li transakcím dát smysl, můžete transakci vložit do souboru a poté v něm spustit program sx showtx.
Můžete také pracovat se soukromými klíči a adresami:
> sx newkey > priv1> kočka priv15JRLqUG1FwSimZwSzNLPG1BKCENCRhDwkVveL59AEqt97bbkCD1> kočka priv1 | sx pubkey04bfc8181cd833567e078cb03ec44034c226bf23dbb2482db53513e0fcea205c40bd6dc73db0c33296d8fa8e0bd347099e07787e17a2a40293004efdb512ff51e2> kočka priv1 | sx addr1B772AGqphjSQqqeecdTBmnBdgMBPYDXt7
A provádět transakce. Zde použijeme výstup 819171fa2eaa33fc684c800ae2ce34cff8400d4d966e995c6a2f0e970b6f703d: 0 k odeslání 90000 satoshi na 18qk7SqRHuS4Kf3f6dmsvqqv7iw1xy77Z6:
> sx mktx txfile.tx -i 819171fa2eaa33fc684c800ae2ce34cff8400d4d966e995c6a2f0e970b6f703d: 0 -o 18qk7SqRHuS4Kf3f6dmsvqqv7iw1xy77Z6: 90000> kočka txfile.tx01000000013d706f0b970e2f6a5c996e964d0d40f8cf34cee20a804c68fc33aa2efa7191810000000000ffffffff01905f0100000000001976a9145600d581a94f350900900900900900900900> sx rawscript dup hash160 [`echo 1B772AGqphjSQqqeecdTBmnBdgMBPYDXt7 | sx decode-addr`] rovná kontrola ověřování > raw.script> kočka raw.script76a9146ed8c762b24ba024df09cb323ea525b06da3acb788ac> echo 5JRLqUG1FwSimZwSzNLPG1BKCENCRhDwkVveL59AEqt97bbkCD1 | sx sign-input txfile.tx 0 `cat raw.script` > sig> kočka sig3044022069f05eacfe93fc6c028bd078228d7807af07c5ed7566491c709b181950d735830220788e089c63512c07239b94740a36de724b54c076192dbd27584b5b729986420d> sx rawscript [`cat sig`] [04bfc8181cd833567e078cb03ec44034c226bf23dbb2482db53513e0fcea205c40bd6dc73db0c33296d8fa8e0bd347099e07787e17a2a529124ff sx set-vstup txfile.tx 0 > txfile2.tx> cat txfile2.tx01000000013d706f0b970e2f6a5c996e964d0d40f8cf34cee20a804c68fc33aa2efa719181000000008a473044022069f05eacfe93fc6c028bd078228d7807af07c5ed7566491c709b181950d735830220788e089c63512c07239b94740a36de724b54c076192dbd27584b5b729986420d014104bfc8181cd833567e078cb03ec44034c226bf23dbb2482db53513e0fcea205c40bd6dc73db0c33296d8fa8e0bd347099e07787e17a2a40293004efdb512ff51e2ffffffff01905f0100000000001976a9145600d581a94f65067a09103609e919e3c01141ed88ac00000000> sx broadcast-tx txfile2.tx
Můžete také ověřit transakci:
> sx validtx txfile2.tx Stav: Ověření vstupů selhalo Nepotvrzeno: 0
Chyba má smysl, protože výstupy, které jsem použil výše, již byly vyčerpány. Celkově vám SX umožňuje v zásadě sestavit „bitcoinového klienta“ bez váhání, vybrat transakční výstupy a provádět transakce ručně. Jen varování: je to velmi riskantní věc, protože pokud omylem necháte nulu z výstupu transakce, systém je příliš nízký, aby zachytil vaši chybu a nakonec zaplatíte poplatek 90.
Pybitcointools
Pybitcointools jsou opravdu dvě věci v jedné; je to zároveň knihovna v Pythonu, která vám umožňuje manipulovat s bitcoinovými adresami, klíči a transakcemi a nástrojem příkazového řádku podobným SX. Chcete-li nainstalovat obojí, stáhněte si pybitcointools tady, přejděte do adresáře a spusťte sudo python setup.py install. Odtud otevřete konzolu Pythonu a zadejte z pybitcointools import * a importujte všechny příkazy pybitcointools.
První správa klíčů:
> priv = sha256 (‘some big long brainwallet password’)> priv’57c617d9b4e1f7af6ec97ca2ff57e94a28279a7eedd4d12a99fa11170e94f5a4 ‘> pub = privtopub (priv)> pub’0420f34c2786b4bae593e22596631b025f3ff46e200fc1d4b52ef49bbdc2ed00b26c584b7e32523fb01be2294a1f8a5eb0cf71a203cc034ced46ea92a8df16c6e9 ‘> addr = pubtoaddr (hospoda)> addr’1CQLd3bhw4EzaURHbKCwM5YZbUQfA4ReY6 ‘
Jak však bylo uvedeno výše, pybitcointools zahrnuje také pybtctool, nástroj příkazového řádku podobný SX. Chcete-li použít pybtctool, spusťte:
> pybtctool sha256 "nějaké velké dlouhé heslo pro brainwallet"57c617d9b4e1f7af6ec97ca2ff57e94a28279a7eedd4d12a99fa11170e94f5a4> pybtctool privtopub 57c617d9b4e1f7af6ec97ca2ff57e94a28279a7eedd4d12a99fa11170e94f5a40420f34c2786b4bae593e22596631b025f3ff46e200fc1d4b52ef49bbdc2b8cb8> pybtctool pubtoaddr 0420f34c2786b4bae593e22596631b025f3ff46e200fc1d4b52ef49bbdc2ed00b26c584b7e32523fb01be2294a1f8a5eb0cf71a203cc034ced46ea92a8e6b6e6e
Nyní k historii a načítání transakcí:
> h = historie (adresa)> h [{ ‘výstup’: u’97f7c7d8ac85e40c255f8a763b6cd9a68f3a94d2e93e8bfa08f977b92e55465e: 0′ , ‘hodnotou’: 50000, ‘adresa’: u’1CQLd3bhw4EzaURHbKCwM5YZbUQfA4ReY6 ‘}, {‘ výstup ‘: u’4cc806bb04f730c445c60b3e0f4f44b54769a1c196ca37d8d4002135e4abd171: 1’, ‘hodnotou’: 50000, ‚adresa ‘: u’1CQLd3bhw4EzaURHbKCwM5YZbUQfA4ReY6′}]> fetchtx ( ’97f7c7d8ac85e40c255f8a763b6cd9a68f3a94d2e93e8bfa08f977b92e55465e’) ‘0100000002b8497b5d250420d0e0ef55150ae49f451846791f54b858e4d7b50e23c087b560010000008c493046022100a49c01bbf7a6200b05c61072f79fbbcbb56182e0082f85734ff501efd8f2180a022100a6d2b19a1023c4197206b1ea0d58165fa4d6170e7823d90d1cdb0f2704ceb5d0014104ba8b7ec1189b046d0f6dc68d2cafa4bfc30ea34b8f52a0f815550ffd5f5dfe12df06f2c9a3c1b206b833fe274601fe19e0afd9c47e251ba247edfa7a0237ab3affffffff71d1abe4352100d4d837ca96c1a16947b5444f0f3e0bc645c430f704bb06c84c000000008c493046022100c7309b13e54896533ebb6c369b1f46992ed7f8d96c8eb606cfd66a06bf6a061d022100e1cb8d32b380dac42584a5e1a6ff00c209767471b8bb82a13bf8d36221a39aa9014104a88f9a448cfcf259df1da679a37dd8e4c148cb6f0ba6a9b1e7d7019b09ef1034495f02d4cdf27d2bab41da3bce3f9508b20f6ad265b5940799610b69a12d02a5ffffffff0250c30000000000001976a9147d13547544ecc1f28eda0c0766ef4eb214de104588ac953d0800000000001976a9145fe616df99d43ae8001ca941f381572cd1cb74b388ac00000000’
Pybtctool obsahuje praktický přepínač -s, který můžete použít k propojení některých operací dohromady:
> pybtctool sha256 ‘nějaké velké dlouhé heslo pro brainwallet’ | pybtctool -s privtoaddr | pybtctool -s historie [{ ‘výstup’: u’97f7c7d8ac85e40c255f8a763b6cd9a68f3a94d2e93e8bfa08f977b92e55465e: 0′ , ‘hodnotou’: 50000, ‘adresa’: u’1CQLd3bhw4EzaURHbKCwM5YZbUQfA4ReY6 ‘}, {‘ výstup ‘: u’4cc806bb04f730c445c60b3e0f4f44b54769a1c196ca37d8d4002135e4abd171: 1’, ‘hodnotou’: 50000 , ‘address’: u’1CQLd3bhw4EzaURHbKCwM5YZbUQfA4ReY6 ‘}]> pybtctool fetchtx 97f7c7d8ac85e40c255f8a763b6cd9a68f3a94d2e93e8bfa08f977b92e55465e | pybtctool -s deserializovat {"doba uzamčení": 0, "outs": [{"hodnota": 50000, "skript": "76a9147d13547544ecc1f28eda0c0766ef4eb214de104588ac"}, {"hodnota": 540053, "skript": "76a9145fe616df99d43ae8001ca941f381572cd1cb74b388ac"}], "verze": 1, "ins": [{"skript": "493046022100a49c01bbf7a6200b05c61072f79fbbcbb56182e0082f85734ff501efd8f2180a022100a6d2b19a1023c4197206b1ea0d58165fa4d6170e7823d90d1cdb0f2704ceb5d0014104ba8b7ec1189b046d0f6dc68d2cafa4bfc30ea34b8f52a0f815550ffd5f5dfe12df06f2c9a3c1b206b833fe274601fe19e0afd9c47e251ba247edfa7a0237ab3a", "outpoint": {"index": 1, "hash": "60b587c0230eb5d7e458b8541f794618459fe40a1555efe0d02004255d7b49b8"}, "sekvence": 4294967295}, {"skript": "493046022100c7309b13e54896533ebb6c369b1f46992ed7f8d96c8eb606cfd66a06bf6a061d022100e1cb8d32b380dac42584a5e1a6ff00c209767471b8bb82a13bf8d36221a39aa9014104a88f9a448cfcf259df1da679a37dd8e4c148cb6f0ba6a9b1e7d7019b09ef1034495f02d4cdf27d2bab41da3bce3f9508b20f6ad265b5940799610b69a12d02a5", "outpoint": {"index": 0, "hash": "4cc806bb04f730c445c60b3e0f4f44b54769a1c196ca37d8d4002135e4abd171"}, "sekvence": 4294967295}]}
Všimněte si příkazu deserializace; můžete jej samozřejmě použít také v knihovně pybitcointools. A samozřejmě můžete provádět transakce:
> pybtctool mktx 97f7c7d8ac85e40c255f8a763b6cd9a68f3a94d2e93e8bfa08f977b92e55465e: 0 4cc806bb04f730c445c60b3e0f4f44b54769a1c196ca1d1b1 pybtctool -s znamení 0 57c617d9b4e1f7af6ec97ca2ff57e94a28279a7eedd4d12a99fa11170e94f5a401000000025e46552eb977f908fa8b3ee9d2943a8fa6d96c3b768a5f250ce485acd8c7f797000000008b483045022100dd29d89a28451febb990fb1dafa21245b105140083ced315ebcdea187572b3990220713f2e554f384d29d7abfedf39f0eb92afba0ef46f374e49d43a728a0ff6046e01410420f34c2786b4bae593e22596631b025f3ff46e200fc1d4b52ef49bbdc2ed00b26c584b7e32523fb01be2294a1f8a5eb0cf71a203cc034ced46ea92a8df16c6e9ffffffff71d1abe4352100d4d837ca96c1a16947b5444f0f3e0bc645c430f704bb06c84c0100000000ffffffff01905f0100000000001976a9143ec6c3ed8dfc3ceabcc1cbdb0c5aef4e2d02873c88ac00000000
Poté můžete transakci odeslat pomocí pushtx nebo competius_pushtx a poslat přímo do těžařského fondu střední velikosti. Oprávnění_pushtx je užitečné pro takzvané „nestandardní“ transakce, které běžné bitcoinové uzly odmítají; například zde lze odesílat transakce s více podpisy mezi více než třemi stranami.
Knihovny
Pybitcointools a SX nejsou jedinými nástroji; téměř v každém jazyce jsou bitcoinové knihovny. Zde je několik:
- BitcoinJS (Javascript): Původní verze Stefana Thomase, nebo moje vidlice
- python-ecdsa (Krajta)
- Haskoin (Haskell)
- libbitcoin (C ++)
- Bitcoin (Jáva)
- btcd (jít)
Šťastné kódování!