Python Blockchain - Kelas Klien
Itu Client kelas menghasilkan private dan public kunci dengan menggunakan Python bawaan RSAalgoritma. Pembaca yang tertarik bisa merujuk kethis tutorialuntuk implementasi RSA. Selama inisialisasi objek, kami membuat kunci privat dan publik dan menyimpan nilainya di variabel instance.
self._private_key = RSA.generate(1024, random)
self._public_key = self._private_key.publickey()
Perhatikan bahwa Anda tidak boleh kehilangan kunci pribadi Anda. Untuk pencatatan, kunci pribadi yang dihasilkan dapat disalin pada penyimpanan eksternal yang aman atau Anda dapat dengan mudah menuliskan representasi ASCII-nya di selembar kertas.
Yang dihasilkan publickey akan digunakan sebagai identitas klien. Untuk ini, kami mendefinisikan properti yang disebutidentity yang mengembalikan representasi HEX dari kunci publik.
@property
def identity(self):
return
binascii.hexlify(self._public_key.exportKey(format='DER'))
.decode('ascii')
Itu identityunik untuk setiap klien dan dapat dibuat tersedia untuk umum. Siapa pun dapat mengirim mata uang virtual kepada Anda menggunakan iniidentity dan itu akan ditambahkan ke dompet Anda.
Kode lengkap untuk Client kelas ditampilkan di sini -
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')
Menguji Klien
Sekarang, kita akan menulis kode yang akan mengilustrasikan cara menggunakan Client kelas -
Dinesh = Client()
print (Dinesh.identity)
Kode di atas membuat instance Client dan menugaskannya ke variabel Dinesh. Kami mencetak kunci publik dariDinesh dengan memanggilnya identitymetode. Outputnya ditampilkan di sini -
30819f300d06092a864886f70d010101050003818d0030818902818100b547fafceeb131e07
0166a6b23fec473cce22c3f55c35ce535b31d4c74754fecd820aa94c1166643a49ea5f49f72
3181ff943eb3fdc5b2cb2db12d21c06c880ccf493e14dd3e93f3a9e175325790004954c34d3
c7bc2ccc9f0eb5332014937f9e49bca9b7856d351a553d9812367dc8f2ac734992a4e6a6ff6
6f347bd411d07f0203010001
Sekarang, mari kita lanjutkan untuk membuat transaksi di bab berikutnya.