Откройте файл blockchain.py
в своем редакторе кода.
Определите класс Blockchain
: Этот класс будет представлять блокчейн и содержать необходимые методы для управления блоками и самой цепочкой.
Python
pythonCopy code
class Blockchain:
def __init__(self):
self.chain = []
Этот код определяет класс Blockchain
с пустым списком под названием chain
для хранения блоков.
Реализуйте метод add_block
: Этот метод будет использоваться для добавления блоков в блокчейн. Она примет в качестве параметра объект блока и добавит его в цепочку.
Python
pythonCopy code
class 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 = Block(1, datetime.datetime.now(), "Sample Data", "previous_hash", 0)
blockchain.add_block(new_block)
Этот код создает новый экземпляр класса `Blockchain`, создает новый объект блока с некоторыми данными образца и добавляет его в блокчейн с помощью метода `add_block`.
## 2.3 Валидация блокчейна
1.
Реализуйте метод `is_valid`: Этот метод будет использоваться для проверки целостности блокчейна. Он будет перебирать каждый блок в цепочке и проверять, совпадает ли хэш каждого блока с хэшем предыдущего блока.
Python
pythonКопирование кода
class Blockchain:
def init(self):
self.chain = []
def add_block(self, block):
self.chain.append(block)
def is_valid(self):
for i in range(1, len(self.chain)):
current_block = self.chain[i]
предыдущий_блок = self.chain[i - 1]
if current_block.previous_hash != previous_block.hash():
return Falsereturn True
Этот код добавляет метод `is_valid` в класс `Blockchain`.
1.
Проверьте валидность блокчейна: После добавления блоков в блокчейн вызовите метод `is_valid`, чтобы проверить, является ли блокчейн валидным.
Python
pythonКопирование кода
print("Blockchain is valid.")
else:
print("Блокчейн недействителен.")
Этот код проверяет блокчейн, вызывая метод `is_valid`, и печатает соответствующее сообщение в зависимости от результата.
## 2.4 Тестирование блокчейна
1.
Добавьте дополнительные блоки в блокчейн: Создайте дополнительные блоки, используя другие данные и предыдущие хэши, и добавьте их в блокчейн, используя метод `add_block`.
Python
pythonCopy code
#Создайте больше блоков
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
# Валидация блокчейнаif blockchain.is_valid():
print("Blockchain is valid.")
else:
print("Blockchain is invalid.")
```
Этот код проверяет блокчейн и печатает результат.
В этом уроке мы построили структуру нашего блокчейна. Мы создали класс Blockchain
и реализовали методы для добавления блоков в цепочку и проверки ее целостности. Мы также протестировали блокчейн, добавив блоки и проверив его валидность.
Откройте файл blockchain.py
в своем редакторе кода.
Определите класс Blockchain
: Этот класс будет представлять блокчейн и содержать необходимые методы для управления блоками и самой цепочкой.
Python
pythonCopy code
class Blockchain:
def __init__(self):
self.chain = []
Этот код определяет класс Blockchain
с пустым списком под названием chain
для хранения блоков.
Реализуйте метод add_block
: Этот метод будет использоваться для добавления блоков в блокчейн. Она примет в качестве параметра объект блока и добавит его в цепочку.
Python
pythonCopy code
class 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 = Block(1, datetime.datetime.now(), "Sample Data", "previous_hash", 0)
blockchain.add_block(new_block)
Этот код создает новый экземпляр класса `Blockchain`, создает новый объект блока с некоторыми данными образца и добавляет его в блокчейн с помощью метода `add_block`.
## 2.3 Валидация блокчейна
1.
Реализуйте метод `is_valid`: Этот метод будет использоваться для проверки целостности блокчейна. Он будет перебирать каждый блок в цепочке и проверять, совпадает ли хэш каждого блока с хэшем предыдущего блока.
Python
pythonКопирование кода
class Blockchain:
def init(self):
self.chain = []
def add_block(self, block):
self.chain.append(block)
def is_valid(self):
for i in range(1, len(self.chain)):
current_block = self.chain[i]
предыдущий_блок = self.chain[i - 1]
if current_block.previous_hash != previous_block.hash():
return Falsereturn True
Этот код добавляет метод `is_valid` в класс `Blockchain`.
1.
Проверьте валидность блокчейна: После добавления блоков в блокчейн вызовите метод `is_valid`, чтобы проверить, является ли блокчейн валидным.
Python
pythonКопирование кода
print("Blockchain is valid.")
else:
print("Блокчейн недействителен.")
Этот код проверяет блокчейн, вызывая метод `is_valid`, и печатает соответствующее сообщение в зависимости от результата.
## 2.4 Тестирование блокчейна
1.
Добавьте дополнительные блоки в блокчейн: Создайте дополнительные блоки, используя другие данные и предыдущие хэши, и добавьте их в блокчейн, используя метод `add_block`.
Python
pythonCopy code
#Создайте больше блоков
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
# Валидация блокчейнаif blockchain.is_valid():
print("Blockchain is valid.")
else:
print("Blockchain is invalid.")
```
Этот код проверяет блокчейн и печатает результат.
В этом уроке мы построили структуру нашего блокчейна. Мы создали класс Blockchain
и реализовали методы для добавления блоков в цепочку и проверки ее целостности. Мы также протестировали блокчейн, добавив блоки и проверив его валидность.