Python Blockchain - Lớp khách hàng

Các Client lớp tạo ra privatepublic các phím bằng cách sử dụng Python tích hợp RSAthuật toán. Bạn đọc quan tâm có thể tham khảothis tutorialđể thực hiện RSA. Trong quá trình khởi tạo đối tượng, chúng tôi tạo khóa riêng tư và khóa công khai và lưu trữ các giá trị của chúng trong biến cá thể.

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

Lưu ý rằng bạn không bao giờ được làm mất khóa cá nhân của mình. Để lưu trữ hồ sơ, khóa cá nhân được tạo có thể được sao chép trên bộ nhớ ngoài được bảo mật hoặc bạn có thể chỉ cần viết ra biểu diễn ASCII của nó trên một mảnh giấy.

Tạo ra publickhóa sẽ được sử dụng làm danh tính của khách hàng. Đối với điều này, chúng tôi xác định một thuộc tính được gọi làidentity trả về biểu diễn HEX của khóa công khai.

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

Các identitylà duy nhất cho mỗi khách hàng và có thể được cung cấp công khai. Bất kỳ ai cũng có thể gửi tiền ảo cho bạn bằng cách nàyidentity và nó sẽ được thêm vào ví của bạn.

Mã đầy đủ cho Client lớp được hiển thị ở đây -

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')

Kiểm tra khách hàng

Bây giờ, chúng tôi sẽ viết mã minh họa cách sử dụng Client lớp học -

Dinesh = Client()
print (Dinesh.identity)

Đoạn mã trên tạo ra một phiên bản của Client và gán nó cho biến Dinesh. Chúng tôi in khóa công khai củaDinesh bằng cách gọi nó identityphương pháp. Kết quả được hiển thị ở đây -

30819f300d06092a864886f70d010101050003818d0030818902818100b547fafceeb131e07
0166a6b23fec473cce22c3f55c35ce535b31d4c74754fecd820aa94c1166643a49ea5f49f72
3181ff943eb3fdc5b2cb2db12d21c06c880ccf493e14dd3e93f3a9e175325790004954c34d3
c7bc2ccc9f0eb5332014937f9e49bca9b7856d351a553d9812367dc8f2ac734992a4e6a6ff6
6f347bd411d07f0203010001

Bây giờ, chúng ta hãy chuyển sang tạo một giao dịch trong chương tiếp theo.