Skip to content

Instantly share code, notes, and snippets.

@zihengCat
Created March 3, 2018 07:14
Show Gist options
  • Save zihengCat/f3bd923fe6f4161ec846bbdabaefa0c3 to your computer and use it in GitHub Desktop.
Save zihengCat/f3bd923fe6f4161ec846bbdabaefa0c3 to your computer and use it in GitHub Desktop.
A simple blockchain example in Python.
import hashlib as hasher
import datetime as date
class Block:
def __init__(self, index, timestamp, data, previous_hash):
self.index = index
self.timestamp = timestamp
self.data = data
self.previous_hash = previous_hash
self.hash = self.hash_block()
def hash_block(self):
sha = hasher.sha256()
sha.update((str(self.index) +
str(self.index) +
str(self.timestamp) +
str(self.data) +
str(self.previous_hash)).encode("utf-8"))
return sha.hexdigest()
def create_genesis_block():
return Block(0, date.datetime.now(), "Genesis Block", "0")
def next_block(last_block):
this_index = last_block.index + 1
this_timestamp = date.datetime.now()
this_data = "I am Block" + str(this_index)
this_hash = last_block.hash
return Block(this_index,
this_timestamp,
this_data,
this_hash)
c_block = create_genesis_block()
block_chain = [c_block]
num_of_block = 20
previous_block = block_chain[0]
for i in range(0, num_of_block):
block_to_add = next_block(previous_block)
block_chain.append(block_to_add)
previous_block = block_to_add
print("Block #%s has been added to blockchain!" % block_to_add.index)
print("Hash: %s\n"%block_to_add.hash)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment