第2课

ブロックチェーンの構造構築

このレッスンでは、ブロックチェーンの構造の構築に焦点を当てます。 ブロックを作成および管理し、ブロックチェーンにブロックを追加し、チェーンの整合性を検証するために必要な関数とメソッドを定義します。

2.1 ブロックチェーンクラスの作成

  1. blockchain.pyコード エディターでファイルを開きます。

  2. Blockchainクラスを定義する:このクラスはブロックチェーンを表し、ブロックとチェーン自体を管理するために必要なメソッドを保持します。

    ニシキヘビ
    pythonCopy code
    クラスブロックチェーン:
     def __init__(self):
         自己チェーン = []
    

    このコードは、 Blockchain ブロックを格納するために呼び出され chain る空のリストを持つクラスを定義します。

2.2 ブロックチェーンへのブロックの追加

  1. メソッドを実装する add_block :このメソッドは、ブロックチェーンにブロックを追加するために使用されます。 ブロックオブジェクトをパラメータとして受け取り、チェーンに追加します。

    ニシキヘビ
    pythonCopy code
    クラスブロックチェーン:
     def __init__(self):
         自己チェーン = []
    
    def add_block(self, block):
         self.chain.append(block)
    

    このコードは、 add_block メソッドを Blockchain クラスに追加します。

  2. ブロックチェーンへのブロックの追加をテストする: コードの主要部分で、クラス定義の後に、クラスの新しいインスタンス Blockchain を作成します。 次に、新しいブロックオブジェクトを作成し、メソッドを使用して add_block ブロックチェーンに追加します。
    ```
    ニシキヘビ
    pythonCopy code
    ブロックチェーン=ブロックチェーン()

新しいブロックを作成する

new_block = Block(1, datetime.datetime.now(), "サンプルデータ", "previous_hash", 0)

ブロックチェーンにブロックを追加する

blockchain.add_block(new_block)

このコードは、「Blockchain」クラスの新しいインスタンスを作成し、いくつかのサンプルデータを含む新しいブロックオブジェクトを作成し、「add_block」メソッドを使用してブロックチェーンに追加します。## 2.3 ブロックチェーンの検証

1.
「is_valid」メソッドを実装する:このメソッドは、ブロックチェーンの整合性を検証するために使用されます。 チェーン内の各ブロックを反復処理し、各ブロックのハッシュが前のブロックのハッシュと一致することを確認します。

ニシキヘビ
pythonCopy code
クラスブロックチェーン:
def init(self):
自己チェーン = []

def add_block(self, block):
    self.chain.append(block)def is_valid(self):
    範囲(1, len(self.chain))のiの場合:        current_block = 自己連鎖[i]        previous_block = self.chain[i - 1]
        if current_block.previous_hash != previous_block.hash():            戻り値 偽を返す 真を返す
このコードは、'is_valid' メソッドを 'ブロックチェーン' クラスに追加します。1.
ブロックチェーンの検証をテストする:ブロックチェーンにブロックを追加した後、「is_valid」メソッドを呼び出してブロックチェーンが有効かどうかを確認します。

ニシキヘビ
pythonCopy code

いくつかのブロックを作成してブロックチェーンに追加する#ブロックチェーンを検証するblockchain.is_valid():

印刷(「ブロックチェーンは有効です」)

然も無くば:
印刷("ブロックチェーンは無効です。



このコードは、「is_valid」メソッドを呼び出してブロックチェーンを検証し、結果に基づいて適切なメッセージを出力します。## 2.4 ブロックチェーンのテスト

1.
ブロックチェーンにブロックを追加する:異なるデータと以前のハッシュを使用して追加のブロックを作成し、「add_block」メソッドを使用してブロックチェーンに追加します。
ニシキヘビ
pythonCopy code
さらに #Create ブロック
block2 = Block(2, datetime.datetime.now(), "More Data", new_block.hash(), 0)
block3 = Block(3, datetime.datetime.now(), "さらに多くのデータ", block2.hash(), 0)

ブロックをブロックチェーンに #Add
blockchain.add_block(ブロック2)blockchain.add_block(ブロック3)
このコードは、2つの追加ブロックを作成し、それらをブロックチェーンに追加します。1.
ブロックチェーンの検証を再度テストする:新しいブロックを追加した後、「is_valid」メソッドを呼び出してブロックチェーンの有効性を確認します。
ニシキヘビ
pythonCopy code
# ブロックチェーンを検証する blockchain.is_valid():印刷(「ブロックチェーンは有効です」)然も無くば:
印刷("ブロックチェーンは無効です。```

このコードはブロックチェーンを検証し、結果を出力します。

2.5 まとめ

このレッスンでは、ブロックチェーンの構造を構築しました。 クラスを作成し、 Blockchain チェーンにブロックを追加してその整合性を検証するメソッドを実装しました。 また、ブロックを追加してその有効性を確認することでブロックチェーンをテストしました。

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。
目录
第2课

ブロックチェーンの構造構築

このレッスンでは、ブロックチェーンの構造の構築に焦点を当てます。 ブロックを作成および管理し、ブロックチェーンにブロックを追加し、チェーンの整合性を検証するために必要な関数とメソッドを定義します。

2.1 ブロックチェーンクラスの作成

  1. blockchain.pyコード エディターでファイルを開きます。

  2. Blockchainクラスを定義する:このクラスはブロックチェーンを表し、ブロックとチェーン自体を管理するために必要なメソッドを保持します。

    ニシキヘビ
    pythonCopy code
    クラスブロックチェーン:
     def __init__(self):
         自己チェーン = []
    

    このコードは、 Blockchain ブロックを格納するために呼び出され chain る空のリストを持つクラスを定義します。

2.2 ブロックチェーンへのブロックの追加

  1. メソッドを実装する add_block :このメソッドは、ブロックチェーンにブロックを追加するために使用されます。 ブロックオブジェクトをパラメータとして受け取り、チェーンに追加します。

    ニシキヘビ
    pythonCopy code
    クラスブロックチェーン:
     def __init__(self):
         自己チェーン = []
    
    def add_block(self, block):
         self.chain.append(block)
    

    このコードは、 add_block メソッドを Blockchain クラスに追加します。

  2. ブロックチェーンへのブロックの追加をテストする: コードの主要部分で、クラス定義の後に、クラスの新しいインスタンス Blockchain を作成します。 次に、新しいブロックオブジェクトを作成し、メソッドを使用して add_block ブロックチェーンに追加します。
    ```
    ニシキヘビ
    pythonCopy code
    ブロックチェーン=ブロックチェーン()

新しいブロックを作成する

new_block = Block(1, datetime.datetime.now(), "サンプルデータ", "previous_hash", 0)

ブロックチェーンにブロックを追加する

blockchain.add_block(new_block)

このコードは、「Blockchain」クラスの新しいインスタンスを作成し、いくつかのサンプルデータを含む新しいブロックオブジェクトを作成し、「add_block」メソッドを使用してブロックチェーンに追加します。## 2.3 ブロックチェーンの検証

1.
「is_valid」メソッドを実装する:このメソッドは、ブロックチェーンの整合性を検証するために使用されます。 チェーン内の各ブロックを反復処理し、各ブロックのハッシュが前のブロックのハッシュと一致することを確認します。

ニシキヘビ
pythonCopy code
クラスブロックチェーン:
def init(self):
自己チェーン = []

def add_block(self, block):
    self.chain.append(block)def is_valid(self):
    範囲(1, len(self.chain))のiの場合:        current_block = 自己連鎖[i]        previous_block = self.chain[i - 1]
        if current_block.previous_hash != previous_block.hash():            戻り値 偽を返す 真を返す
このコードは、'is_valid' メソッドを 'ブロックチェーン' クラスに追加します。1.
ブロックチェーンの検証をテストする:ブロックチェーンにブロックを追加した後、「is_valid」メソッドを呼び出してブロックチェーンが有効かどうかを確認します。

ニシキヘビ
pythonCopy code

いくつかのブロックを作成してブロックチェーンに追加する#ブロックチェーンを検証するblockchain.is_valid():

印刷(「ブロックチェーンは有効です」)

然も無くば:
印刷("ブロックチェーンは無効です。



このコードは、「is_valid」メソッドを呼び出してブロックチェーンを検証し、結果に基づいて適切なメッセージを出力します。## 2.4 ブロックチェーンのテスト

1.
ブロックチェーンにブロックを追加する:異なるデータと以前のハッシュを使用して追加のブロックを作成し、「add_block」メソッドを使用してブロックチェーンに追加します。
ニシキヘビ
pythonCopy code
さらに #Create ブロック
block2 = Block(2, datetime.datetime.now(), "More Data", new_block.hash(), 0)
block3 = Block(3, datetime.datetime.now(), "さらに多くのデータ", block2.hash(), 0)

ブロックをブロックチェーンに #Add
blockchain.add_block(ブロック2)blockchain.add_block(ブロック3)
このコードは、2つの追加ブロックを作成し、それらをブロックチェーンに追加します。1.
ブロックチェーンの検証を再度テストする:新しいブロックを追加した後、「is_valid」メソッドを呼び出してブロックチェーンの有効性を確認します。
ニシキヘビ
pythonCopy code
# ブロックチェーンを検証する blockchain.is_valid():印刷(「ブロックチェーンは有効です」)然も無くば:
印刷("ブロックチェーンは無効です。```

このコードはブロックチェーンを検証し、結果を出力します。

2.5 まとめ

このレッスンでは、ブロックチェーンの構造を構築しました。 クラスを作成し、 Blockchain チェーンにブロックを追加してその整合性を検証するメソッドを実装しました。 また、ブロックを追加してその有効性を確認することでブロックチェーンをテストしました。

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。