Python-blockchain-transaction-class
Pythonブロックチェーン-トランザクションクラス
この章では、クライアントが誰かにお金を送ることができるように Transaction クラスを作成しましょう。 クライアントは、お金の送信者または受信者の両方になることができることに注意してください。 お金を受け取りたいときは、他の送信者がトランザクションを作成し、その中に*公開*アドレスを指定します。 私たちは次のようにトランザクションクラスの初期化を定義します-
次に、上記の4つのインスタンス変数すべてをディクショナリオブジェクトに結合する to_dict というユーティリティメソッドを記述します。 これは、1つの変数を介してトランザクション情報全体にアクセスできるようにするためです。
前のチュートリアルで知っているように、ブロックチェーンの最初のブロックは Genesis ブロックです。 Genesisブロックには、ブロックチェーンの作成者によって開始された最初のトランザクションが含まれます。 この人物の身元は、ビットコインの場合のように秘密にされる場合があります。 したがって、この最初のトランザクションが作成されると、作成者は自分のIDを Genesis として送信するだけです。 したがって、ディクショナリの作成中に、送信者が Genesis であるかどうかを確認し、そうであれば、単純にID変数に何らかの文字列値を割り当てます。それ以外の場合は、送信者のIDを identity 変数に割り当てます。
次のコード行を使用して辞書を作成します
最後に、送信者の秘密鍵を使用してこの辞書オブジェクトに署名します。 前と同様に、SHAアルゴリズムを備えた組み込みのPKIを使用します。 生成された署名はデコードされ、ASCII表現を取得して印刷し、ブロックチェーンに保存します。 sign_transaction メソッドのコードはここに示されています-
この Transaction クラスをテストします。
トランザクションクラスのテスト
この目的のために、 Dinesh および Ramesh という2人のユーザーを作成します。 Dineshは、5つのTPCoinsをRameshに送信します。 最初に、DineshおよびRameshというクライアントを作成します。
したがって、次のコードを使用してトランザクションインスタンスを作成します-
最初のパラメーターは送信者であり、2番目のパラメーターは受信者の公開鍵であり、3番目のパラメーターは転送される金額であることに注意してください。* sign_transaction *メソッドは、トランザクションを歌うための最初のパラメーターから送信者の秘密鍵を取得します。
トランザクションオブジェクトを作成したら、 sign_transaction メソッドを呼び出して署名します。 このメソッドは、生成された署名を印刷可能な形式で返します。 次の2行のコードを使用して署名を生成および印刷します-
上記のコードを実行すると、次のような出力が表示されます-
クライアントとトランザクションを作成する基本的なインフラストラクチャの準備ができたので、実際の状況と同様に、複数のクライアントが複数のトランザクションを実行します。