Python Criando Blockchain
Um blockchain contém uma lista de blocos encadeados entre si. Para armazenar a lista inteira, criaremos uma variável de lista chamada TPCoins -
TPCoins = []
Também escreveremos um método utilitário chamado dump_blockchainpara despejar o conteúdo de todo o blockchain. Primeiro imprimimos o comprimento do blockchain para saber quantos blocos estão presentes no blockchain.
def dump_blockchain (self):
print ("Number of blocks in the chain: " + str(len (self)))
Observe que, com o passar do tempo, o número de blocos no blockchain seria extraordinariamente alto para impressão. Portanto, ao imprimir o conteúdo do blockchain, você pode ter que decidir sobre o intervalo que gostaria de examinar. No código abaixo, imprimimos todo o blockchain, pois não adicionaríamos muitos blocos na demonstração atual.
Para iterar pela cadeia, criamos um for loop da seguinte forma -
for x in range (len(TPCoins)):
block_temp = TPCoins[x]
Cada bloco referenciado é copiado para uma variável temporária chamada block_temp.
Imprimimos o número do bloco como um título para cada bloco. Observe que os números começam com zero, o primeiro bloco é um bloco de gênese que é numerado com zero.
print ("block # " + str(x))
Dentro de cada bloco, armazenamos uma lista de três transações (exceto para o bloco genesis) em uma variável chamada verified_transactions. Nós iteramos esta lista em umfor loop e para cada item recuperado, chamamos display_transaction função para exibir os detalhes da transação.
for transaction in block_temp.verified_transactions:
display_transaction (transaction)
Toda a definição da função é mostrada abaixo -
def dump_blockchain (self):
print ("Number of blocks in the chain: " + str(len (self)))
for x in range (len(TPCoins)):
block_temp = TPCoins[x]
print ("block # " + str(x))
for transaction in block_temp.verified_transactions:
display_transaction (transaction)
print ('--------------')
print ('=====================================')
Observe que aqui inserimos os separadores em pontos apropriados no código para demarcar os blocos e transações dentro dele.
Como agora criamos um blockchain para armazenar blocos, nossa próxima tarefa é criar blocos e começar a adicioná-lo ao blockchain. Para este propósito, adicionaremos um bloco genesis que você já criou na etapa anterior.