Відкрийте файл blockchain.py у своєму редакторі коду.
Визначте клас Blockchain : цей клас представлятиме блокчейн і містить необхідні методи для керування блоками та самим ланцюжком.
Python 
 код pythonCopy 
 клас Blockchain: 
 def __init__(self): 
 self.chain = []
Цей код визначає клас Blockchain із порожнім списком під назвою chain для зберігання блоків.
Реалізуйте метод add_block : цей метод буде використовуватися для додавання блоків до блокчейну. Він візьме об’єкт блоку як параметр і додасть його до ланцюжка.
Python 
 код pythonCopy 
 клас Blockchain: 
 def __init__(self): 
 self.chain = [] 
 def add_block(self, block): 
 self.chain.append(block)
Цей код додає метод add_block до класу Blockchain .
Перевірте додавання блоків до блокчейну: в основній частині коду після визначення класу створіть новий екземпляр класу Blockchain . Потім створіть новий блоковий об’єкт і додайте його до блокчейну за допомогою методу add_block .
```
Python
pythonКопіювати код
blockchain = Blockchain()
new_block = Блокувати(1, datetime.datetime.now(), «Зразок даних», «попередній_хеш», 0)
blockchain.add_block(новий_блок)
Цей код створює новий екземпляр класу `Blockchain`, створює новий об’єкт блоку з деякими зразками даних і додає його до ланцюжка блоків за допомогою методу `add_block`.
## 2.3 Перевірка ланцюга блоків 
 1. 
 Застосуйте метод `is_valid`: цей метод використовуватиметься для перевірки цілісності ланцюга блоків. Він перебирає кожен блок у ланцюжку та перевіряє, чи хеш кожного блоку відповідає хешу попереднього блоку.
Python
pythonКопіювати код
клас Blockchain:
    def init(self):
        self.chain = []
def add_block(self, block): 
 self.chain.append(block)
def is_valid(self): 
 для i в діапазоні(1, len(self.chain)):
        current_block = self.chain[i]
        попередній_блок = self.chain[i - 1] 
 якщо current_block.previous_hash != previous_block.hash():
            повернути Falsereповернути True
Цей код додає метод `is_valid` до класу `Blockchain`.
1. 
 Перевірте валідацію блокчейну: після додавання блоків до блокчейну викличте метод `is_valid`, щоб перевірити, чи дійсний блокчейн.
Python
pythonКопіювати код
print("Блокчейн дійсний.")
ще:
    print(“Блокчейн недійсний.”)
Цей код перевіряє блокчейн, викликаючи метод `is_valid` і друкує відповідне повідомлення на основі результату.
## 2.4 Тестування блокчейну 
 1. 
 Додайте більше блоків до блокчейну: створіть додаткові блоки, використовуючи різні дані та попередні хеші, і додайте їх до блокчейну за допомогою методу `add_block`.
Python 
 pythonКопіювати код 
 #Створити більше блоків 
 block2 = Block(2, datetime.datetime.now(), "Більше даних", new_block.hash(), 0) 
 block3 = Block(3, datetime.datetime.now(), "Ще більше даних", block2.hash(), 0) 
 #Додати блоки до блокчейну 
 blockchain.add_block(block2)
blockchain.add_block(block3)
Цей код створює два додаткових блоки та додає їх до блокчейну.
1. 
 Повторно перевірте валідацію блокчейну: після додавання нових блоків викличте метод `is_valid`, щоб перевірити валідність блокчейну.
Python 
 pythonCopy code 
 # Перевірити блокчейн, якщо blockchain.is_valid():
print("Блокчейн дійсний.")
else: 
 print("Блокчейн недійсний.")
```
Цей код перевіряє блокчейн і друкує результат.
У цьому уроці ми побудували структуру нашого блокчейну. Ми створили клас Blockchain і реалізували методи для додавання блоків до ланцюжка та перевірки його цілісності. Ми також протестували блокчейн, додавши блоки та перевіривши його дійсність.