您好,登錄后才能下訂單哦!
這篇文章主要介紹“Python區塊鏈客戶端類如何開發”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Python區塊鏈客戶端類如何開發”文章能幫助大家解決問題。
客戶是持有TPCoins并從網絡上的其他供應商處交換商品/服務的客戶,包括他自己的.我們應該為此目的定義 Client 類.要為客戶端創建全局唯一標識,我們使用PKI(公鑰基礎結構).在本章中,讓我們詳細討論一下.
客戶應該能夠將錢包從另一個已知的人那里匯款.同樣,客戶應該能夠接受來自第三方的錢.對于花錢,客戶將創建一個指定發件人姓名和支付金額的交易.為了收款,客戶將向第三方提供他的身份 : 本質上是錢的發送者.我們不存儲客戶持有的錢包余額.在交易過程中,我們將計算實際余額,以確保客戶有足夠的余額來支付.
開發客戶端類,其余在項目中的代碼中,我們需要導入許多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
除了上述標準庫之外,我們還要簽署交易,創建對象的哈希等.為此,您需要導入以下庫 :
# 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
客戶端類使用內置的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')
標識對每個客戶都是唯一的,可以公開提供.任何人都可以使用此身份向您發送虛擬貨幣,它將被添加到您的錢包中.
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')
現在,我們將編寫代碼來說明如何使用客戶端類 :
Dinesh = Client() print (Dinesh.identity)
以上代碼創建客戶端的實例并將其分配給var iable Dinesh .我們通過調用身份方法打印 Dinesh 的公鑰.
30819f300d06092a864886f70d010101050003818d0030818902818100b547fafceeb131e07
0166a6b23fec473cce22c3f55c35ce535b31d4c74754fecd820aa94c1166643a49ea5f49f72
3181ff943eb3fdc5b2cb2db12d21c06c880ccf493e14dd3e93f3a9e175325790004954c34d3
c7bc2ccc9f0eb5332014937f9e49bca9b7856d351a553d9812367dc8f2ac734992a4e6a6ff6
6f347bd411d07f0203010001
關于“Python區塊鏈客戶端類如何開發”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。