Python Blockchain - Client-Klasse

Das Client Klasse erzeugt die private und public Schlüssel mit dem eingebauten Python RSAAlgorithmus. Der interessierte Leser kann sich darauf beziehenthis tutorialfür die Implementierung von RSA. Während der Objektinitialisierung erstellen wir private und öffentliche Schlüssel und speichern deren Werte in der Instanzvariablen.

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

Beachten Sie, dass Sie Ihren privaten Schlüssel niemals verlieren sollten. Zur Aufzeichnung kann der generierte private Schlüssel auf einen gesicherten externen Speicher kopiert werden, oder Sie können die ASCII-Darstellung einfach auf ein Blatt Papier schreiben.

Das erzeugte publicDer Schlüssel wird als Identität des Kunden verwendet. Dazu definieren wir eine Eigenschaft namensidentity das gibt die HEX-Darstellung des öffentlichen Schlüssels zurück.

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

Das identityist für jeden Kunden einzigartig und kann öffentlich zugänglich gemacht werden. Jeder kann Ihnen damit eine virtuelle Währung sendenidentity und es wird Ihrer Brieftasche hinzugefügt.

Der vollständige Code für die Client Klasse wird hier gezeigt -

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 testen

Jetzt werden wir Code schreiben, der die Verwendung von veranschaulicht Client Klasse -

Dinesh = Client()
print (Dinesh.identity)

Der obige Code erstellt eine Instanz von Client und weist es der Variablen zu Dinesh. Wir drucken den öffentlichen Schlüssel vonDinesh indem man seine anruft identityMethode. Die Ausgabe wird hier angezeigt -

30819f300d06092a864886f70d010101050003818d0030818902818100b547fafceeb131e07
0166a6b23fec473cce22c3f55c35ce535b31d4c74754fecd820aa94c1166643a49ea5f49f72
3181ff943eb3fdc5b2cb2db12d21c06c880ccf493e14dd3e93f3a9e175325790004954c34d3
c7bc2ccc9f0eb5332014937f9e49bca9b7856d351a553d9812367dc8f2ac734992a4e6a6ff6
6f347bd411d07f0203010001

Nun lassen Sie uns fortfahren, um im nächsten Kapitel eine Transaktion zu erstellen.