Ukázky kódu
Vybrané části jednoduchých skriptů -někdy i lehce detailněji
Začínáme čistě Linuxovým shellem, postupně je něco i v Pythonu nebo Go.
HASH (SHA256)
http://www.abclinuxu.cz/clanky/decentralizovana-kryptomena-bitcoin
2011 – psáno pro Linuxáky a trochu programátory
~$ echo -n „AgamaPoint“ | sha256sum 29b5a9c21f25fcc7c015fee558aa15dd28341487e76ac744583adb37eda1e2f7
Hledání „nonce“ jako základ miningu (proof of work), jako hledání „malého čísla“ HASHe (začíná několika nulami, podle obtížnosti):
~$ i=0; while ! (echo -n "Agama Point $i" | sha256sum | tr -d "\n"; echo " (nonce=$i)")|grep -E "^00"; do let i++; done (chvíle počítání) 00999ac48b71fc267a67f78bb379d554020d062343d344269d62d4b9f55b90b1 - (nonce=263)
.:.
ssss – Shamir’s Secret Sharing Scheme
K dešifrování zprávy, potřebujeme alespoň t klíčů z n vygenerovaných.
~$ sudo apt install ssss ... ~$ ssss-split -t 3 -n 5 Generating shares using a (3,5) scheme with dynamic security level. Enter the secret, at most 128 ASCII characters: Using a 144 bit security level. 1-ba1e20615599c30c26b6827e8646a9197d48 2-136052b42a8d1dfc73706718be73da51181e 3-c51f643028f8ed820561cc1ae7211245b714 4-dd9f3b224b0557a528d9d43752d3ba62146b 5-0be00da64970a7db5ec87f350b817276bb73 ... ~$ ssss-combine -t 3 Enter 3 shares separated by newlines: Share [1/3]: 1-ba1e20615599c30c26b6827e8646a9197d48 Share [2/3]: 3-c51f643028f8ed820561cc1ae7211245b714 Share [3/3]: 5-0be00da64970a7db5ec87f350b817276bb73 Resulting secret: kobyla ma maly bok
Transaction
Input: Previous tx: f5d8ee39a430901c91a5917b9f2dc19d6d1a0e9cea205b009ca73dd04470b9a6 Index: 0 scriptSig: 304502206e21798a42fae0e854281abd38bacd1aeed3ee3738d9e1446618c4571d10 90db022100e2ac980643b0b82c0e88ffdfec6b64e3e6ba35e7ba5fdd7d5d6cc8d25c6b241501 Output: Value: 5000000000 scriptPubKey: OP_DUP OP_HASH160 404371705fa9bd789a2fcd52d2c580b65d35549d OP_EQUALVERIFY OP_CHECKSIG
BIP / Python
https://github.com/blockstack/pybitcoin
https://pypi.org/project/python-bitcoin-tools/
https://github.com/petertodd/python-bitcoinlib
>>>
sr-gi/bitcoin_tools – https://github.com/sr-gi/bitcoin_tools (má i testnet)
>>>
zdroj BTC „core“ na githubu: https://github.com/bitcoin/bitcoin
Bitcoin in Go: https://github.com/btcsuite