Python-blockchain-client-class

提供:Dev Guides
移動先:案内検索

Pythonブロックチェーン-クライアントクラス

*Client* クラスは、組み込みPython *RSA* アルゴリズムを使用して *private* および *public* キーを生成します。 興味のある読者は、RSAの実装について*このチュートリアル*を参照できます。 オブジェクトの初期化中に、秘密キーと公開キーを作成し、それらの値をインスタンス変数に保存します。
self._private_key = RSA.generate(1024, random)
self._public_key = self._private_key.publickey()

秘密鍵を紛失しないでください。 記録を保持するために、生成された秘密キーは、セキュリティで保護された外部ストレージにコピーするか、単にそのASCII表現を紙に書き留めます。

生成された*公開*キーは、クライアントのIDとして使用されます。 このために、公開鍵のHEX表現を返す identity というプロパティを定義します。

@property
   def identity(self):
      return
binascii.hexlify(self._public_key.exportKey(format='DER'))
.decode('ascii')
*identity* は各クライアントに固有であり、一般に公開できます。 誰もがこの *identity* を使用して仮想通貨を送信でき、ウォレットに追加されます。
  • クライアント*クラスの完全なコードはここに示されています-
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 に割り当てます。 identity メソッドを呼び出して、 Dinesh の公開キーを出力します。 出力はここに示されています-

30819f300d06092a864886f70d010101050003818d0030818902818100b547fafceeb131e07
0166a6b23fec473cce22c3f55c35ce535b31d4c74754fecd820aa94c1166643a49ea5f49f72
3181ff943eb3fdc5b2cb2db12d21c06c880ccf493e14dd3e93f3a9e175325790004954c34d3
c7bc2ccc9f0eb5332014937f9e49bca9b7856d351a553d9812367dc8f2ac734992a4e6a6ff6
6f347bd411d07f0203010001

次に、次の章でトランザクションを作成します。