Python-blockchain-creating-multiple-transactions
複数のトランザクションを作成する
さまざまなクライアントによって行われたトランザクションは、システムのキューに入れられます。マイナーはこのキューからトランザクションを取得し、ブロックに追加します。 その後、彼らはブロックを採掘し、勝った採掘者はブロックをブロックチェーンに追加する特権を持ち、それによって自分のためにいくらかのお金を稼ぐでしょう。
このマイニングプロセスについては、後でブロックチェーンの作成について説明するときに説明します。 複数のトランザクションのコードを記述する前に、特定のトランザクションの内容を出力する小さなユーティリティ関数を追加しましょう。
トランザクションの表示
次に、トランザクションオブジェクトを格納するためのトランザクションキューを定義します。
トランザクションキュー
キューを作成するには、次のように transactions と呼ばれるグローバル list 変数を宣言します-
新しく作成された各トランザクションをこのキューに追加するだけです。 簡潔にするため、このチュートリアルではキュー管理ロジックを実装しないことに注意してください。
複数のクライアントを作成する
ここで、トランザクションの作成を開始します。 最初に、他の人からさまざまなサービスや商品を入手するために互いにお金を送る4つのクライアントを作成します。
この時点で、Dinesh、Ramesh、Seema、およびVijayという4つのクライアントがあります。 現在、これらの各クライアントは、取引のためにウォレットにTPCoinを保持していると想定しています。 これらの各クライアントのIDは、これらのオブジェクトのidentityプロパティを使用して指定されます。
最初のトランザクションの作成
今、私たちは次のように最初のトランザクションを開始します-
このトランザクションでは、Dineshは5つのTPCoinsをRameshに送信します。 取引を成功させるには、Dineshがこの支払いのために財布に十分なお金があることを確認する必要があります。 システムでTPCoinの循環を開始するには、ジェネシストランザクションが必要であることに注意してください。 この創世記トランザクションのトランザクションコードは、読み進めながらすぐに記述します。
Dineshの秘密鍵を使用してこのトランザクションに署名し、次のようにトランザクションキューに追加します-
Dineshが最初に行ったトランザクションの後、上記で作成したさまざまなクライアント間にさらにいくつかのトランザクションを作成します。
トランザクションを追加する
ここでさらにいくつかのトランザクションを作成し、各トランザクションがいくつかのTPCoinを別のパーティに渡します。 誰かがお金を使うとき、彼はこの財布の十分な残高をチェックする必要はありません。 とにかくマイナーは、トランザクションを開始する間に送信者が持っている残高の各トランザクションを検証します。
残高が不足している場合、マイナーはこのトランザクションを無効としてマークし、このブロックに追加しません。
次のコードは、さらに9つのトランザクションを作成してキューに追加します。
上記のコードを実行すると、鉱夫がブロックを作成するためのキューに10個のトランザクションができます。
トランザクションのダンプ
ブロックチェーンマネージャーとして、定期的にトランザクションキューの内容を確認することができます。 この目的のために、前に開発した display_transaction 関数を使用できます。 キュー内のすべてのトランザクションをダンプするには、トランザクションリストを繰り返し、参照された各トランザクションに対して、ここに示すように display_transaction 関数を呼び出します-
トランザクションは区別のために破線で区切られています。 上記のコードを実行すると、トランザクションリストが以下のように表示されます-
簡潔にするために、リストの最初のいくつかのトランザクションのみを印刷しました。 上記のコードでは、このリストに追加されなかったGenesisトランザクションを除き、最初のトランザクションから始まるすべてのトランザクションを出力します。 トランザクションは定期的にブロックに追加されるため、通常、まだマイニングされていないトランザクションのリストのみを表示することに関心があります。 その場合、適切な for ループを作成して、まだマイニングされていないトランザクションを繰り返す必要があります。
これまで、クライアントを作成し、クライアント間でそれらを許可し、マイニングされる保留中のトランザクションのキューを維持する方法を学習しました。 さて、このチュートリアルの最も重要な部分は、ブロックチェーン自体の作成です。 これについては、次のレッスンで学習します。