Вот репо: https://github.com/vbuterin/pybitcointools
Я специально разработан библиотеку, чтобы быть простой и без излишеств. Нет сто строк монолитных функций, ни классов, ни объекты оболочки, только шестигранные / двоичные / цифр в и шестигранном / двоичной / цифрах из. Вам не нужно тратить много времени "обучение" Это; независимо от того, какой формат использует ваши данные, нет какой-то способ обращения с ним где-то там.
Вот некоторые основные сценарии использования:
> от pybitcointools импорта *
> собств = sha256 ( «некоторые большие длинные brainwallet пароль»)
> собств
'57c617d9b4e1f7af6ec97ca2ff57e94a28279a7eedd4d12a99fa11170e94f5a4'
> Паб = privtopub (собств)
> паб
«0420f34c2786b4bae593e22596631b025f3ff46e200fc1d4b52ef49bbdc2ed00b26c584b7e32523 fb01be2294a1f8a5eb0cf71a203cc034ced46ea92a8df16c6e9'
> адр = pubtoaddr (Паб)
> адр
'1CQLd3bhw4EzaURHbKCwM5YZbUQfA4ReY6'
материал сделки:
> ч = История (адрес)
> час
[{ 'Выход': u'97f7c7d8ac85e40c255f8a763b6cd9a68f3a94d2e93e8bfa08f977b92e55465e: 0' , 'значение': 50000, 'адрес': u'1CQLd3bhw4EzaURHbKCwM5YZbUQfA4ReY6 '}, {' Выход ': u'4cc806bb04f730c445c60b3e0f4f44b54769a1c196ca37d8d4002135e4abd171: 1', 'значение': 50000, 'адрес' : u'1CQLd3bhw4EzaURHbKCwM5YZbUQfA4ReY6' }]
> выходы = [{ 'значение': 90000, 'адрес': '16iw1MQ1sy1DtRPYw3ao1bCamoyBJtRB4t'}]
> Тх = mktx (ч, выходы)
> Техас
«01000000025e46552eb977f908fa8b3ee9d2943a8fa6d96c3b768a5f250ce485acd8c7f79700000 00000ffffffff71d1abe4352100d4d837ca96c1a16947b5444f0f3e0bc645c430f704bb06c84c01 00000000ffffffff01905f0100000000001976a9143ec6c3ed8dfc3ceabcc1cbdb0c5aef4e2d028 73c88ac00000000'
> tx2 знак = (ТХ, 0, собств)
> tx2
«01000000025e46552eb977f908fa8b3ee9d2943a8fa6d96c3b768a5f250ce485acd8c7f79700000 0008b483045022100fc9ec3f6c66f630604e76309092ae00b48d39a83f8683bbf9d6310084e70ea bd022058333d7a1d2158529ce39f9b48dea23dedefbe85028cdceab34e1ee9b1518c3201410420f 34c2786b4bae593e22596631b025f3ff46e200fc1d4b52ef49bbdc2ed00b26c584b7e32523fb01b e2294a1f8a5eb0cf71a203cc034ced46ea92a8df16c6e9ffffffff71d1abe4352100d4d837ca96c 1a16947b5444f0f3e0bc645c430f704bb06c84c0100000000ffffffff01905f0100000000001976 a9143ec6c3ed8dfc3ceabcc1cbdb0c5aef4e2d02873c88ac00000000'
> TX3 знак = (tx2,1, собств)
> TX3
«01000000025e46552eb977f908fa8b3ee9d2943a8fa6d96c3b768a5f250ce485acd8c7f79700000 0008b483045022100fc9ec3f6c66f630604e76309092ae00b48d39a83f8683bbf9d6310084e70ea bd022058333d7a1d2158529ce39f9b48dea23dedefbe85028cdceab34e1ee9b1518c3201410420f 34c2786b4bae593e22596631b025f3ff46e200fc1d4b52ef49bbdc2ed00b26c584b7e32523fb01b e2294a1f8a5eb0cf71a203cc034ced46ea92a8df16c6e9ffffffff71d1abe4352100d4d837ca96c 1a16947b5444f0f3e0bc645c430f704bb06c84c010000008c493046022100da7fa563ce34af5a4c 8167a2978cb5517ded494e52a29ea4103ff2c67bce77c102210094a18bda1109591a82d5cf5e444 6b12b3c399401c0f668755ac7f614eb3baa7701410420f34c2786b4bae593e22596631b025f3ff4 6e200fc1d4b52ef49bbdc2ed00b26c584b7e32523fb01be2294a1f8a5eb0cf71a203cc034ced46e a92a8df16c6e9ffffffff01905f0100000000001976a9143ec6c3ed8dfc3ceabcc1cbdb0c5aef4e 2d02873c88ac00000000'
> pushtx (TX3)
«Сделка Представлено»
ECDSA (Электрум-совместимый):
> сиг = ecdsa_sign ("Hallo мир", Sha256 ("123"))
> сиг
«G9vmnqdlS9hmP7qT6ReRJEqldYn7f6xc47ado3zg7g4LKpLgVmpmSttDNAAPSizww7zzKDamsyD7bhh fAqaAJ0s =»
> ecdsa_verify ("Hallo мир", Сиг, privtopub (sha256 ("123")))
Правда
> ecdsa_verify ("Hallo мир!", Сиг, privtopub (sha256 ("123")))
Ложь
> ecdsa_recover ("Hallo мир", Сиг)
«04be686ed7f0539affbaf634f3bcc2b235e8e220e7be57e9397ab1c14c39137eb43705125aac75a 865268ef33c53897c141bd092cf4d1a306b2a57e37e1386826d»
> privtopub (sha256 ("123"))
«04be686ed7f0539affbaf634f3bcc2b235e8e220e7be57e9397ab1c14c39137eb43705125aac75a 865268ef33c53897c141bd092cf4d1a306b2a57e37e1386826d»
Электрум:
> семян = sha256 ("корова") [: 32]
> MPK = electrum_mpk (начальный)
> для г в диапазоне (5): печать electrum_privkey (семян, I, 0), pubkey_to_address (privtopub (electrum_privkey (семена, я, 0)))
daa19f768ea1a7bc8e33d83f9401ef237f5164ce39bf8000ec9630d088cec028 1GG9cGb7KW6qNBCxcU7Y3NH3mPRz9YSxgG
c45ad49da1ccb0ba30258902ed3de66af571de7421f9c73ffc0a8c2bde9ca596 19zxmnE4hmTwPFxhoDAxjtfnKQcRES4Sm2
c31100a56692314248a73f29b767ca252c3847eae15ce5d06e7e7f67a63ee5df 17mJpsyEVykxuf5H4YWsyhatXFyuJmkuoh
302362a97a2db566c5c65b875388db7cce246355faa72f15b486111c2f380bf3 16PGWQwcXM37iY7dPHqqVFit4GXsifRuAM
869424a50260cca7a7fa475c85e48ddf0e47abb0474df59ee45e72e6b95c8333 15QgAJmroGtExvVqVd8MGs1ZZvwYsk39i7
> для г в диапазоне (5): печать pubkey_to_address (electrum_pubkey (MPK, я, 0))
1GG9cGb7KW6qNBCxcU7Y3NH3mPRz9YSxgG
19zxmnE4hmTwPFxhoDAxjtfnKQcRES4Sm2
17mJpsyEVykxuf5H4YWsyhatXFyuJmkuoh
16PGWQwcXM37iY7dPHqqVFit4GXsifRuAM
15QgAJmroGtExvVqVd8MGs1ZZvwYsk39i7
Гораздо быстрее Электрум, предварительно рассчитав секретный показатель:
> семян = sha256 ("корова") [: 32]
> secexp = electrum_stretch (начальный)
> для г в диапазоне (5): печать electrum_privkey (secexp, I, 0), (pubkey_to_address privtopub (electrum_privkey (secexp, я, 0)))
daa19f768ea1a7bc8e33d83f9401ef237f5164ce39bf8000ec9630d088cec028 1GG9cGb7KW6qNBCxcU7Y3NH3mPRz9YSxgG
c45ad49da1ccb0ba30258902ed3de66af571de7421f9c73ffc0a8c2bde9ca596 19zxmnE4hmTwPFxhoDAxjtfnKQcRES4Sm2
c31100a56692314248a73f29b767ca252c3847eae15ce5d06e7e7f67a63ee5df 17mJpsyEVykxuf5H4YWsyhatXFyuJmkuoh
302362a97a2db566c5c65b875388db7cce246355faa72f15b486111c2f380bf3 16PGWQwcXM37iY7dPHqqVFit4GXsifRuAM
869424a50260cca7a7fa475c85e48ddf0e47abb0474df59ee45e72e6b95c8333 15QgAJmroGtExvVqVd8MGs1ZZvwYsk39i7
BIP32:
> bip32_master_key ( '123456789')
«xprv9s21ZrQH143K2zm1WhDFQqHVdgzoyBWfghiTfgdVJDSjZtTupL9eeg7391hLNjHQNAbd1qLobce ZcaYvrKZ81E3SwtiZ2UbPsP2zm9HeDJo»
> bip32_ckd (bip32_master_key ( '123456789'), 0)
«xprv9ujNqB68cg8G1owbyxEwLHMBYbB1RCyrcra4i8BciNhBrsWeQaEj8FBPNnRmGedK1Q9A5DD3vLe c8me5pBPSwdhckMPQPTWBMtiesu688LN»
> bip32_extract_key (bip32_ckd (bip32_privtopub (bip32_master_key ( '123456789')), 0))
'02e7f3eb95c70480f3f850198017644a84654325b2a4b038268546ea60c1814f6f'
> bip32_extract_key (bip32_privtopub (bip32_ckd (bip32_master_key ( '123456789'), 0)))
'02e7f3eb95c70480f3f850198017644a84654325b2a4b038268546ea60c1814f6f'
> privtopub (bip32_extract_key (bip32_ckd (bip32_master_key ( '123456789'), 0)))
'02e7f3eb95c70480f3f850198017644a84654325b2a4b038268546ea60c1814f6f'
(Те сжимаются открытые ключи, что делает BIP0032 стандарт)
Это еще рано незавершенное; в идеале, с помощью других, я хотел бы это расширенное обрабатывать больше возможностей, чем просто сетевых blockchain.info, и служить в качестве универсального клиента altcoin света. Это далекая цель, хотя; лучше бы более основные черты сглажены первыми. Вы можете представить любые предложения!