
- Python 區塊鏈教程
- Python 區塊鏈——主頁
- Python 區塊鏈——簡介
- 區塊鏈——開發客戶端
- 區塊鏈——客戶端類
- 區塊鏈——交易類
- 建立多個交易
- 區塊鏈——區塊類
- 區塊鏈——建立創世區塊
- 區塊鏈——建立區塊鏈
- 區塊鏈——新增創世區塊
- 區塊鏈——建立礦工
- 區塊鏈——新增區塊
- 區塊鏈——範圍和結論
- Python 區塊鏈資源
- Python 區塊鏈——快速指南
- Python 區塊鏈——資源
- Python 區塊鏈——討論
Python 區塊鏈——客戶端類
客戶端類使用 Python RSA 演算法內建演算法生成私有和公有金鑰。有興趣的讀者可以參考本教程,瞭解 RSA 的實現。在物件初始化期間,我們建立私鑰和公鑰,並將它們的值儲存在例項變數中。
self._private_key = RSA.generate(1024, random) self._public_key = self._private_key.publickey()
請注意,你千萬不能丟失私鑰。為了存檔,可以將生成的私鑰複製到安全的外部儲存,或簡單地將私鑰的 ASCII 表示形式記在紙上。
生成的公有金鑰將用作客戶端的身份。為此,我們定義一個名為identity的屬性,它返回公鑰的 HEX 表示形式。
@property def identity(self): return binascii.hexlify(self._public_key.exportKey(format='DER')) .decode('ascii')
identity對每個客戶端都是唯一的,並且可以公開。任何人可以使用此identity向你傳送虛擬貨幣,並且此貨幣將會被新增到你的錢包中。
這裡顯示了Client類的完整程式碼——
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')
測試客戶端
現在,我們將編寫程式碼來說明如何使用Client類——
Dinesh = Client() print (Dinesh.identity)
上面的程式碼建立了一個Client例項並將其分配給變數Dinesh。透過呼叫identity方法,列印Dinesh的公鑰。這裡顯示輸出——
30819f300d06092a864886f70d010101050003818d0030818902818100b547fafceeb131e07 0166a6b23fec473cce22c3f55c35ce535b31d4c74754fecd820aa94c1166643a49ea5f49f72 3181ff943eb3fdc5b2cb2db12d21c06c880ccf493e14dd3e93f3a9e175325790004954c34d3 c7bc2ccc9f0eb5332014937f9e49bca9b7856d351a553d9812367dc8f2ac734992a4e6a6ff6 6f347bd411d07f0203010001
現在,我們繼續在下一章中建立交易。
廣告