Pythonブロックチェーン-クライアントクラス
ザ・ Client クラスはを生成します private そして public 組み込みのPythonを使用したキー RSAアルゴリズム。興味のある読者は参照することができますthis tutorialRSAの実装用。オブジェクトの初期化中に、秘密鍵と公開鍵を作成し、それらの値をインスタンス変数に格納します。
self._private_key = RSA.generate(1024, random)
self._public_key = self._private_key.publickey()
秘密鍵を紛失してはならないことに注意してください。記録を保持するために、生成された秘密鍵を安全な外部ストレージにコピーするか、そのASCII表現を紙に書き留めることができます。
生成された publicキーはクライアントのIDとして使用されます。このために、というプロパティを定義します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。の公開鍵を印刷しますDinesh そのを呼び出すことによって identity方法。出力はここに示されています-
30819f300d06092a864886f70d010101050003818d0030818902818100b547fafceeb131e07
0166a6b23fec473cce22c3f55c35ce535b31d4c74754fecd820aa94c1166643a49ea5f49f72
3181ff943eb3fdc5b2cb2db12d21c06c880ccf493e14dd3e93f3a9e175325790004954c34d3
c7bc2ccc9f0eb5332014937f9e49bca9b7856d351a553d9812367dc8f2ac734992a4e6a6ff6
6f347bd411d07f0203010001
それでは、次の章でトランザクションの作成に移りましょう。