附录3 pycoin库、ku程序和tx交易程序

2024-03-11 01:48
文章标签 程序 交易 附录 tx ku pycoin

本文主要是介绍附录3 pycoin库、ku程序和tx交易程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

附录3 pycoin库、实用密钥程序ku和交易程序tx

pycoin库起初由Richard Kiss 撰写和维护 ,基于 Python 脚本的处理交易密钥,不仅支持比特币交易,也支持其他非标准脚本语言的交易类型。

pycoin 库支持 Python 2 (版本 2.7.x) 和Python 3 (版本 3.3 以后)。下面介绍一些好用的命令行使用程序—— ku 和 tx。

实用密钥程序(KU)

命令行实用程序 KU ( key utility 缩写)对于处理密钥而言,就如同瑞士军刀一样灵活有用。它支持 BIP32 密钥、WIF 和地址(比特币以及竞争币均可)。下面是一些例子。

使用默认的 GPG 熵池和系统随机数设备( /dev/random )来创建BIP32 密钥,如下:

$ ku createinput : createnetwork : Bitcoinwallet key : xprv9s21ZrQH143K3LU5ctPZTBnb9kTjA5Su9DcWHvXJemiJBsY7VqXUG7hipgdWaU m2nhnzdvxJf5KJo9vjP2nABX65c5sFsWsV8oXcbpehtJipublic version : xpub661MyMwAqRbcFpYYiuvZpKjKhnJDZYAkWSY76JvvD7FH4fsG3Nqiov2CfxzxY8 DGcpfT56AMFeo8M8KPkFMfLUtvwjwb6WPv8rY65L2q8Hztree depth : 0fingerprint : 9d9c6092parent f'print : 00000000child index : 0chain code :80574fb260edaa4905bc86c9a47d30c697c50047ed466c0d4a5167f6821e8f3cprivate key : yessecret exponent :112471538590155650688604752840386134637231974546906847202389294096567806844862 hex :f8a8a28b28a916e1043cc0aca52033a18a13cab1638d544006469bc171fddfbewif : L5Z54xi6qJusQT42JHA44mfPVZGjyb4XBRWfxAzUWwRiGx1kV4sP uncompressed : 5KhoEavGNNH4GHKoy2Ptu4KfdNp4r56L5B5un8FP6RZnbsz5Nmbpublic pair x :76460638240546478364843397478278468101877117767873462127021560368290114016034public pair y :59807879657469774102040120298272207730921291736633247737077406753676825777701 x as hex :a90b3008792432060fa04365941e09a8e4adf928bdbdb9dad41131274e379322 y as hex :843a0f6ed9c0eb1962c74533795406914fe3f1957c5238951f4fe245a4fcd625y parity : oddkey pair as sec :03a90b3008792432060fa04365941e09a8e4adf928bdbdb9dad41131274e379322 uncompressed :04a90b3008792432060fa04365941e09a8e4adf928bdbdb9dad41131274e379322843a0f6ed9c0eb1962c74533795406914fe3f1957c5238951f4fe245a4fcd625hash160 : 9d9c609247174ae323acfc96c852753fe3c8819d uncompressed : 8870d869800c9b91ce1eb460f4c60540f87c15d7Bitcoin address : 1FNNRQ5fSv1wBi5gyfVBs2rkNheMGt86sp uncompressed : 1DSS5isnH4FsVaLVjeVXewVSpfqktdiQAM

使用口令创建一个 BIP 32 密钥:

 
本例中的口令很容易猜到。

$ ku P:fooinput : P:foonetwork : Bitcoinwallet key :xprv9s21ZrQH143K31AgNK5pyVvW23gHnkBq2wh5aEk6g1s496M8ZMjxncCKZKgb5j ZoY5eSJMJ2Vbyvi2hbmQnCuHBujZ2WXGTux1X2k9Krdtqpublic version : xpub661MyMwAqRbcFVF9ULcqLdsEa5WnCCugQAcgNd9iEMQ31tgH6u4DLQWoQayvtS VYFvXz2vPPpbXE1qpjoUFidhjFj82pVShWu9curWmb2zytree depth : 0fingerprint : 5d353a2eparent f'print : 00000000child index : 0chain code :5eeb1023fd6dd1ae52a005ce0e73420821e1d90e08be980a85e9111fd7646bbcprivate key : yessecret exponent :65825730547097305716057160437970790220123864299761908948746835886007793998275 hex :91880b0e3017ba586b735fe7d04f1790f3c46b818a2151fb2def5f14dd2fd9c3wif : L26c3H6jEPVSqAr1usXUp9qtQJw6NHgApq6Ls4ncyqtsvcq2MwKH uncompressed : 5JvNzA5vXDoKYJdw8SwwLHxUxaWvn9mDea6k1vRPCX7KLUVWa7Wpublic pair x :81821982719381104061777349269130419024493616650993589394553404347774393168191public pair y :58994218069605424278320703250689780154785099509277691723126325051200459038290 x as hex :b4e599dfa44555a4ed38bcfff0071d5af676a86abf123c5b4b4e8e67a0b0b13f y as hex :826d8b4d3010aea16ff4c1c1d3ae68541d9a04df54a2c48cc241c2983544de52y parity : evenkey pair as sec :02b4e599dfa44555a4ed38bcfff0071d5af676a86abf123c5b4b4e8e67a0b0b13f uncompressed :04b4e599dfa44555a4ed38bcfff0071d5af676a86abf123c5b4b4e8e67a0b0b13f826d8b4d3010aea16ff4c1c1d3ae68541d9a04df54a2c48cc241c2983544de52hash160 : 5d353a2ecdb262477172852d57a3f11de0c19286 uncompressed : e5bd3a7e6cb62b4c820e51200fb1c148d79e67daBitcoin address : 19Vqc8uLTfUonmxUEZac7fz1M5c5ZZbAii uncompressed : 1MwkRkogzBRMehBntgcq2aJhXCXStJTXHT

以 JSON 格式得到信息:

    $ ku P:foo -P -j    {        "y_parity": "even" ,        "public_pair_y_hex":"826d8b4d3010aea16ff4c1c1d3ae68541d9a04df54a2c48cc241c2983544de52" ,    "private_key": "no" ,    "parent_fingerprint": "00000000" ,    "tree_depth": "0" ,    "network": "Bitcoin" ,    "btc_address_uncompressed": "1MwkRkogzBRMehBntgcq2aJhXCXStJTXHT" ,    "key_pair_as_sec_uncompressed":"04b4e599dfa44555a4ed38bcfff0071d5af676a86abf123c5b4b4e8e67a0b0b13f826d8b4d3010aea16ff4c1c1d3ae68541d9a04df54a2c48cc241c2983544de52" ,    "public_pair_x_hex":"b4e599dfa44555a4ed38bcfff0071d5af676a86abf123c5b4b4e8e67a0b0b13f" ,    "wallet_key": "xpub661MyMwAqRbcFVF9ULcqLdsEa5WnCCugQAcgNd9iEMQ31tgH6u4DLQWoQayvtSVYFvXz2vPPpbXE1qpjoUFidhjFj82pVShWu9curWmb2zy" ,    "chain_code":"5eeb1023fd6dd1ae52a005ce0e73420821e1d90e08be980a85e9111fd7646bbc" ,     "child_index": "0" ,    "hash160_uncompressed": "e5bd3a7e6cb62b4c820e51200fb1c148d79e67da" ,     "btc_address": "19Vqc8uLTfUonmxUEZac7fz1M5c5ZZbAii" ,     "fingerprint": "5d353a2e" ,     "hash160": "5d353a2ecdb262477172852d57a3f11de0c19286" ,     "input": "P:foo" ,    "public_pair_x":"81821982719381104061777349269130419024493616650993589394553404347774393168191" ,    "public_pair_y":"58994218069605424278320703250689780154785099509277691723126325051200459038290" ,    "key_pair_as_sec":"02b4e599dfa44555a4ed38bcfff0071d5af676a86abf123c5b4b4e8e67a0b0b13f"}

BIP32 公钥:

$ ku -w -P P:fooxpub661MyMwAqRbcFVF9ULcqLdsEa5WnCCugQAcgNd9iEMQ31tgH6u4DLQWoQayvtSVYFvXz2vPPpbXE1qpjoUFidhjFj82pVShWu9curWmb2zy

生成一个子密钥:

$ ku -w -s3/2 P:fooxprv9wTErTSkjVyJa1v4cUTFMFkWMe5eu8ErbQcs9xajnsUzCBT7ykHAwdrxvG3g3f6BFk7ms5hHBvmbdutNmyg6iogWKxx6mefEw4M8EroLgKj

加强型子密钥:

$ ku -w -s3/2H P:fooxprv9wTErTSu5AWGkDeUPmqBcbZWX1xq85ZNX9iQRQW9DXwygFp7iRGJo79dsVctcsCHsnZ3XU3DhsuaGZbDh8iDkBN45k67UKsJUXM1JfRCdn1

WIF:

$ ku -W P:fooL26c3H6jEPVSqAr1usXUp9qtQJw6NHgApq6Ls4ncyqtsvcq2MwKH

地址:

$ ku -a P:foo19Vqc8uLTfUonmxUEZac7fz1M5c5ZZbAii

生成一串子密钥:

$ ku P:foo -s 0/0-5 -wxprv9xWkBDfyBXmZjBG9EiXBpy67KK72fphUp9utJokEBFtjsjiuKUUDF5V3TU8U8cDzytqYnSekc8bYuJS8G3bhXxKWB89Ggn2dzLcoJsuEdRKxprv9xWkBDfyBXmZnzKf3bAGifK593gT7WJZPnYAmvc77gUQVej5QHckc5Adtwxa28ACmANi9XhCrRvtFqQcUxt8rUgFz3souMiDdWxJDZnQxzxxprv9xWkBDfyBXmZqdXA8y4SWqfBdy71gSW9sjx9JpCiJEiBwSMQyRxan6srXUPBtj3PTxQFkZJAiwoUpmvtrxKZu4zfsnr3pqyy2vthpkwuoVqxprv9xWkBDfyBXmZsA85GyWj9uYPyoQv826YAadKWMaaEosNrFBKgj2TqWuiWY3zuqxYGpHfv9cnGj5P7e8EskpzKL1Y8Gk9aX6QbryA5raK73pxprv9xWkBDfyBXmZv2q3N66hhZ8DAcEnQDnXML1J62krJAcf7Xb1HJwuW2VMJQrCofY2jtFXdiEY8UsRNJfqK6DAdyZXoMvtaLHyWQx3FS4A9zwxprv9xWkBDfyBXmZw4jEYXUHYc9fT25k9irP87n2RqfJ5bqbjKdT84Mm7Wtc2xmzFuKg7iYf7XFHKkSsaYKWKJbR54bnyAD9GzjUYbAYTtN4ruo

生成相关地址:

$ ku P:foo -s 0/0-5 -a1MrjE78H1R1rqdFrmkjdHnPUdLCJALbv3x1AnYyVEcuqeoVzH96zj1eYKwoWfwte2pxu1GXr1kZfxE1FcK6ZRD5sqqqs5YfvuzA1Lb116AXZc4bDVQrqmcinzu4aaPdrYqvuiBEK1Cz2rTLjRM6pMnxPNrRKp9ZSvRtj5dDUML1WstdwPnU6HEUPme1DQayN9nm6j7nDVEM

生成对应的 WIF:

$ ku P:foo -s 0/0-5 -WL5a4iE5k9gcJKGqX3FWmxzBYQc29PvZ6pgBaePLVqT5YByEnBomxKyjgne6GZwPGB6G6kJEhoPbmyjMP7D5d3zRbHVjwcq4iQXD9QqKQL4B3ygQxK6zH2NQGxLDee2H9v4Lvwg14cLJW7QwWPzCtKHdWMaQzL2L2PZdorybUqkPjrmhem4Ax5EJvP7ijmxbNoQKnmTDMrqemY8UFL2oD6vA4TUyqPF8QG4vhUFSgwCyuuvFZ3v8SKHYFDwkbM765NrfdKzChTbc3kZFxUSJ3Kt54cxsogeFAD9CCM4zGB22si8nfKcThQn8C

通过选择 BIP32 字符串(和子密钥 0/3 相关的那个串)检查是否起作用:

$ ku -W xprv9xWkBDfyBXmZsA85GyWj9uYPyoQv826YAadKWMaaEosNrFBKgj2TqWuiWY3zuqxYGpHfv9cnGj5P7e8EskpzKL1Y8Gk9aX6QbryA5raK73pL2L2PZdorybUqkPjrmhem4Ax5EJvP7ijmxbNoQKnmTDMrqemY8UF$ ku -a xprv9xWkBDfyBXmZsA85GyWj9uYPyoQv826YAadKWMaaEosNrFBKgj2TqWuiWY3zuqxYGpHfv9cnGj5P7e8EskpzKL1Y8Gk9aX6QbryA5raK73p116AXZc4bDVQrqmcinzu4aaPdrYqvuiBEK

好了,看上去很熟悉了。

从秘密指数:

$ ku 1input : 1network : Bitcoinsecret exponent : 1 hex : 1wif : KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn uncompressed : 5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDfpublic pair x :55066263022277343669578718895168534326250603453777594175500187360389116729240public pair y :32670510020758816978083085130507043184471273380659243275938904335757337482424 x as hex :79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 y as hex :483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8y parity : evenkey pair as sec :0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 uncompressed :0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8hash160 : 751e76e8199196d454941c45d1b3a323f1433bd6 uncompressed : 91b24bf9f5288532960ac687abb035127b1d28a5Bitcoin address : 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH uncompressed : 1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm

莱特币版本:

$ ku -nL 1input : 1network : Litecoinsecret exponent : 1 hex : 1wif : T33ydQRKp4FCW5LCLLUB7deioUMoveiwekdwUwyfRDeGZm76aUjV uncompressed : 6u823ozcyt2rjPH8Z2ErsSXJB5PPQwK7VVTwwN4mxLBFrao69XQpublic pair x :55066263022277343669578718895168534326250603453777594175500187360389116729240public pair y :32670510020758816978083085130507043184471273380659243275938904335757337482424 x as hex :79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 y as hex :483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8y parity : evenkey pair as sec :0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 uncompressed :0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8hash160 : 751e76e8199196d454941c45d1b3a323f1433bd6 uncompressed : 91b24bf9f5288532960ac687abb035127b1d28a5Litecoin address : LVuDpNCSSj6pQ7t9Pv6d6sUkLKoqDEVUnJ uncompressed : LYWKqJhtPeGyBAw7WC8R3F7ovxtzAiubdM

狗狗币 WIF:

$ ku -nD -W 1QNcdLVw8fHkixm6NNyN6nVwxKek4u7qrioRbQmjxac5TVoTtZuot

来自公用对(Testnet 上):

$ ku -nT55066263022277343669578718895168534326250603453777594175500187360389116729240,eveninput :550662630222773436695787188951685343262506034537775941755001873603 89116729240,evennetwork : Bitcoin testnetpublic pair x :55066263022277343669578718895168534326250603453777594175500187360389116729240public pair y :32670510020758816978083085130507043184471273380659243275938904335757337482424252 | Appendix C: pycoin, ku, and tx x as hex :79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 y as hex :483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8y parity : evenkey pair as sec :0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 uncompressed :0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8hash160 : 751e76e8199196d454941c45d1b3a323f1433bd6 uncompressed : 91b24bf9f5288532960ac687abb035127b1d28a5Bitcoin testnet address : mrCDrCybB6J1vRfbwM5hemdJz73FwDBC8r uncompressed : mtoKs9V381UAhUia3d7Vb9GNak8Qvmcsme

来自 hash160:

$ ku 751e76e8199196d454941c45d1b3a323f1433bd6input : 751e76e8199196d454941c45d1b3a323f1433bd6network : Bitcoinhash160 : 751e76e8199196d454941c45d1b3a323f1433bd6Bitcoin address : 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH

作为狗狗币地址

$ ku -nD 751e76e8199196d454941c45d1b3a323f1433bd6input : 751e76e8199196d454941c45d1b3a323f1433bd6network : Dogecoinhash160 : 751e76e8199196d454941c45d1b3a323f1433bd6Dogecoin address : DFpN6QqFfUm3gKNaxN6tNcab1FArL9cZL

实用交易程序(TX)

命令行实用程序 tx 可将交易以一种易读的方式呈现,还可以从 pycoin 的交易缓存或者网络服务(目前支持 blockchain.info, blockr.io, and biteasy.com )中获取原始交易,合并交易,添加或删除输入或输出,以及签署交易。

下面是一些例子。

看看有名的“披萨”交易[PIZZA]:

$ tx 49d2adb6e476fa46d8357babf78b1b501fd39e177ac7833124b3f67b17c40c2awarning: consider setting environment variable PYCOIN_CACHE_DIR=~/.pycoin_cacheto cache transactions fetched via web serviceswarning: no service providers found for get_tx; consider setting environmentvariable PYCOIN_SERVICE_PROVIDERS=BLOCKR_IO:BLOCKCHAIN_INFO:BITEASY:BLOCKEXPLORERusage: tx [-h] [-t TRANSACTION_VERSION] [-l LOCK_TIME] [-n NETWORK] [-a] [-i address] [-f path-to-private-keys] [-g GPG_ARGUMENT]Key Utility (KU) | 253 [--remove-tx-in tx_in_index_to_delete] [--remove-tx-out tx_out_index_to_delete] [-F transaction-fee] [-u] [-b BITCOIND_URL] [-o path-to-output-file] argument [argument ...]tx: error: can't find Tx with id49d2adb6e476fa46d8357babf78b1b501fd39e177ac7833124b3f67b17c40c2a

糟糕!我们没有设置好网络服务。让我们现在设置:

$ PYCOIN_CACHE_DIR=~/.pycoin_cache$ PYCOIN_SERVICE_PROVIDERS=BLOCKR_IO:BLOCKCHAIN_INFO:BITEASY:BLOCKEXPLORER$ export PYCOIN_CACHE_DIR PYCOIN_SERVICE_PROVIDERS

这不是自动完成的,所以这种命令行工具不会泄漏你在第三方网站交易的隐私信息。如果你想忽略这个提醒,就可以把这些命令行加入到profile文件。

我们再试一次:

$ tx 49d2adb6e476fa46d8357babf78b1b501fd39e177ac7833124b3f67b17c40c2aVersion: 1 tx hash49d2adb6e476fa46d8357babf78b1b501fd39e177ac7833124b3f67b17c40c2a 159 bytesTxIn count: 1; TxOut count: 1Lock time: 0 (valid anytime)Input: 0: (unknown) from1e133f7de73ac7d074e2746a3d6717dfc99ecaa8e9f9fade2cb8b0b20a5e0441:0Output: 0: 1CZDM6oTttND6WPdt3D6bydo7DYKzd9Qik receives 10000000.00000 mBTCTotal output 10000000.00000 mBTCincluding unspents in hex dump since transaction not fully signed010000000141045e0ab2b0b82cdefaf9e9a8ca9ec9df17673d6a74e274d0c73ae77d3f131e000000004a493046022100a7f26eda874931999c90f87f01ff1ffc76bcd058fe16137e0e63fdb6a35c2d78022100a61e9199238eb73f07c8f209504c84b80f03e30ed8169edd44f80ed17ddf451901ffffffff010010a5d4e80000001976a9147ec1003336542cae8bded8909cdd6b5e48ba0ab688ac00000000** can't validate transaction as source transactions missing

出现最后一行是为了验证交易签名,严格说来您需要源交易。因此让我们通过添加 -a 指令来给交易补充源信息:

$ tx -a 49d2adb6e476fa46d8357babf78b1b501fd39e177ac7833124b3f67b17c40c2awarning: transaction fees recommendations casually calculated and estimates maybe incorrectwarning: transaction fee lower than (casually calculated) expected value of 0.1mBTC, transaction might not propogateVersion: 1 tx hash49d2adb6e476fa46d8357babf78b1b501fd39e177ac7833124b3f67b17c40c2a 159 bytesTxIn count: 1; TxOut count: 1Lock time: 0 (valid anytime)Input:254 | Appendix C: pycoin, ku, and tx 0: 17WFx2GQZUmh6Up2NDNCEDk3deYomdNCfk from1e133f7de73ac7d074e2746a3d6717dfc99ecaa8e9f9fade2cb8b0b20a5e0441:010000000.00000 mBTC sig okOutput: 0: 1CZDM6oTttND6WPdt3D6bydo7DYKzd9Qik receives 10000000.00000 mBTCTotal input 10000000.00000 mBTCTotal output 10000000.00000 mBTCTotal fees 0.00000 mBTC010000000141045e0ab2b0b82cdefaf9e9a8ca9ec9df17673d6a74e274d0c73ae77d3f131e000000004a493046022100a7f26eda874931999c90f87f01ff1ffc76bcd058fe16137e0e63fdb6a35c2d78022100a61e9199238eb73f07c8f209504c84b80f03e30ed8169edd44f80ed17ddf451901ffffffff010010a5d4e80000001976a9147ec1003336542cae8bded8909cdd6b5e48ba0ab688ac00000000all incoming transaction values validated

接下来,我们看看尚未使用完的输出的专用地址的(UTXO)。在区块 #1,我们看到到 12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX 的 coinbase 交易。我们用 fetch_un spent 命令找到这个地址下的所有比特币。

$ fetch_unspent 12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJXa3a6f902a51a2cbebede144e48a88c05e608c2cce28024041a5b9874013a1e2a/0/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/333000cea36d008badf5c7866894b191d3239de9582d89b6b452b596f1f1b76347f8cb/31/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/10000065ef6b1463f552f675622a5d1fd2c08d6324b4402049f68e767a719e2049e8d/86/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/10000a66dddd42f9f2491d3c336ce5527d45cc5c2163aaed3158f81dc054447f447a2/0/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/10000ffd901679de65d4398de90cefe68d2c3ef073c41f7e8dbec2fb5cd75fe71dfe7/0/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/100d658ab87cc053b8dbcfd4aa2717fd23cc3edfe90ec75351fadd6a0f7993b461d/5/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/91136ebe0ca3237002acb12e1474a3859bde0ac84b419ec4ae373e63363ebef731c/1/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/100000fd87f9adebb17f4ebb1673da76ff48ad29e64b7afa02fda0f2c14e43d220fe24/0/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/1dfdf0b375a987f17056e5e919ee6eadd87dad36c09c4016d4a03cea15e5c05e3/1/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/1337cb2679bfd0a557b2dc0d8a6116822f3fcbe281ca3f3e18d3855aa7ea378fa373/0/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/1337d6be34ccf6edddc3cf69842dce99fe503bf632ba2c2adb0f95c63f6706ae0c52/1/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/20000000e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098/0/410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac/5000000000

==目录==

简介
前言
第1章 介绍
第2章 比特币的原理
第3章 比特币客户端
第4章 密钥、地址、钱包
第4章 高级密钥和地址
第5章 交易
第6章 比特币网络
第7章 区块链
第8章 挖矿与共识
第8章 区块链分叉、矿池、共识攻击
第9章 竞争币、竞争块链和应用程序
第10章 比特币安全

附录1 交易脚本的操作符、常量和符号
附录2 比特币改进协议
附录3 pycoin库、ku程序和tx交易程序
附录4 sx工具下一些的命令
本文原链接: http://zhibimo.com/read/wang-miao/Mastering-Bitcoin/Appendix3.html

这篇关于附录3 pycoin库、ku程序和tx交易程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/796207

相关文章

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

这些心智程序你安装了吗?

原文题目:《为什么聪明人也会做蠢事(四)》 心智程序 大脑有两个特征导致人类不够理性,一个是处理信息方面的缺陷,一个是心智程序出了问题。前者可以称为“认知吝啬鬼”,前几篇文章已经讨论了。本期主要讲心智程序这个方面。 心智程序这一概念由哈佛大学认知科学家大卫•帕金斯提出,指个体可以从记忆中提取出的规则、知识、程序和策略,以辅助我们决策判断和解决问题。如果把人脑比喻成计算机,那心智程序就是人脑的

uniapp设置微信小程序的交互反馈

链接:uni.showToast(OBJECT) | uni-app官网 (dcloud.net.cn) 设置操作成功的弹窗: title是我们弹窗提示的文字 showToast是我们在加载的时候进入就会弹出的提示。 2.设置失败的提示窗口和标签 icon:'error'是设置我们失败的logo 设置的文字上限是7个文字,如果需要设置的提示文字过长就需要设置icon并给

基于SpringBoot的宠物服务系统+uniapp小程序+LW参考示例

系列文章目录 1.基于SSM的洗衣房管理系统+原生微信小程序+LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统+LW参考示例 3.基于SpringBoot+Vue的企业人事管理系统+LW参考示例 4.基于SSM的高校实验室管理系统+LW参考示例 5.基于SpringBoot的二手数码回收系统+原生微信小程序+LW参考示例 6.基于SSM的民宿预订管理系统+LW参考示例 7.基于

Spring Roo 实站( 一 )部署安装 第一个示例程序

转自:http://blog.csdn.net/jun55xiu/article/details/9380213 一:安装 注:可以参与官网spring-roo: static.springsource.org/spring-roo/reference/html/intro.html#intro-exploring-sampleROO_OPTS http://stati

未来工作趋势:零工小程序在共享经济中的作用

经济在不断发展的同时,科技也在飞速发展。零工经济作为一种新兴的工作模式,正在全球范围内迅速崛起。特别是在中国,随着数字经济的蓬勃发展和共享经济模式的深入推广,零工小程序在促进就业、提升资源利用效率方面显示出了巨大的潜力和价值。 一、零工经济的定义及现状 零工经济是指通过临时性、自由职业或项目制的工作形式,利用互联网平台快速匹配供需双方的新型经济模式。这种模式打破了传统全职工作的界限,为劳动