欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python區(qū)塊鏈客戶端類開發(fā)教程

 更新時間:2022年05月23日 11:44:27   作者:菜鳥教程  
這篇文章主要為大家介紹了Python區(qū)塊鏈客戶端類開發(fā)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

開發(fā)客戶端

客戶是持有TPCoins并從網(wǎng)絡(luò)上的其他供應(yīng)商處交換商品/服務(wù)的客戶,包括他自己的.我們應(yīng)該為此目的定義 Client 類.要為客戶端創(chuàng)建全局唯一標(biāo)識,我們使用PKI(公鑰基礎(chǔ)結(jié)構(gòu)).在本章中,讓我們詳細討論一下.

客戶應(yīng)該能夠?qū)㈠X包從另一個已知的人那里匯款.同樣,客戶應(yīng)該能夠接受來自第三方的錢.對于花錢,客戶將創(chuàng)建一個指定發(fā)件人姓名和支付金額的交易.為了收款,客戶將向第三方提供他的身份 : 本質(zhì)上是錢的發(fā)送者.我們不存儲客戶持有的錢包余額.在交易過程中,我們將計算實際余額,以確保客戶有足夠的余額來支付.

開發(fā)客戶端類,其余在項目中的代碼中,我們需要導(dǎo)入許多Python庫.這些列在下面 :

#?import?libraries
import?hashlib
import?random
import?string
import?json
import?binascii
import?numpy?as?np
import?pandas?as?pd
import?pylab?as?pl
import?logging
import?datetime
import?collections

除了上述標(biāo)準(zhǔn)庫之外,我們還要簽署交易,創(chuàng)建對象的哈希等.為此,您需要導(dǎo)入以下庫 :

#?following?imports?are?required?by?PKI
import?Crypto
import?Crypto.Random
from?Crypto.Hash?import?SHA
from?Crypto.PublicKey?import?RSA
from?Crypto.Signature?import?PKCS1_v1_5

客戶端類

客戶端類使用內(nèi)置的Python RSA 算法生成私有和公開鍵.感興趣的讀者可以參考本教程來實現(xiàn)RSA.在對象初始化期間,我們創(chuàng)建私鑰和公鑰并將它們的值存儲在實例變量中.

self._private_key?=?RSA.generate(1024,?random)
self._public_key?=?self._private_key.publickey()

請注意,永遠不要丟失私鑰.為了保留記錄,生成的私鑰可以復(fù)制到安全的外部存儲器上,或者您可以簡單地在一張紙上寫下它的ASCII表示.

生成的公共密鑰將用作客戶端的身份.為此,我們定義了一個名為 identity 的屬性,它返回公鑰的HEX表示.

@property
???def?identity(self):
??????return
binascii.hexlify(self._public_key.exportKey(format='DER'))
.decode('ascii')

標(biāo)識對每個客戶都是唯一的,可以公開提供.任何人都可以使用此身份向您發(fā)送虛擬貨幣,它將被添加到您的錢包中.

客戶端

class?Client:
???def?__init__(self):
??????random?=?Crypto.Random.new().read
??????self._private_key?=?RSA.generate(1024,?random)
??????self._public_key?=?self._private_key.publickey()
??????self._signer?=?PKCS1_v1_5.new(self._private_key)
???@property
???def?identity(self):
??????return
binascii.hexlify(self._public_key.exportKey(format='DER')).decode('ascii')

測試客戶端

現(xiàn)在,我們將編寫代碼來說明如何使用客戶端類 :

Dinesh?=?Client()
print?(Dinesh.identity)

以上代碼創(chuàng)建客戶端的實例并將其分配給var iable Dinesh .我們通過調(diào)用身份方法打印 Dinesh 的公鑰.

30819f300d06092a864886f70d010101050003818d0030818902818100b547fafceeb131e07

0166a6b23fec473cce22c3f55c35ce535b31d4c74754fecd820aa94c1166643a49ea5f49f72

3181ff943eb3fdc5b2cb2db12d21c06c880ccf493e14dd3e93f3a9e175325790004954c34d3

c7bc2ccc9f0eb5332014937f9e49bca9b7856d351a553d9812367dc8f2ac734992a4e6a6ff6

6f347bd411d07f0203010001

以上就是Python區(qū)塊鏈客戶端類開發(fā)教程的詳細內(nèi)容,更多關(guān)于Python區(qū)塊鏈客戶端類的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論