Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions blockchain/chain.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,23 +39,23 @@ def calculateHash(self):
Method to calculate hash from metadata
"""
hashData = str(self.index) + str(self.data) + self.timestamp + self.previousHash + str(self.nonce)
return hashlib.sha256(hashData).hexdigest()
return hashlib.sha256(hashData.encode("ascii")).hexdigest()

def mineBlock(self, difficulty):
"""
Method for Proof of Work
"""
print Back.RED + "\n[Status] Mining block (" + str(self.index) + ") with PoW ..."
print (Back.RED + "\n[Status] Mining block (" + str(self.index) + ") with PoW ...")
startTime = time.time()

while self.hash[:difficulty] != "0"*difficulty:
self.nonce += 1
self.hash = self.calculateHash()

endTime = time.time()
print Back.BLUE + "[ Info ] Time Elapsed : " + str(endTime - startTime) + " seconds."
print Back.BLUE + "[ Info ] Mined Hash : " + self.hash
print Style.RESET_ALL
print (Back.BLUE + "[ Info ] Time Elapsed : " + str(endTime - startTime) + " seconds.")
print (Back.BLUE + "[ Info ] Mined Hash : " + self.hash)
print (Style.RESET_ALL)

# ==================================================
# ================ BLOCKCHAIN CLASS ================
Expand Down Expand Up @@ -88,7 +88,7 @@ def writeBlocks(self):
"""
Method to write new mined block to blockchain
"""
dataFile = file("chain.txt", "w")
dataFile = open("chain.txt", "w")
chainData = []
for eachBlock in self.chain:
chainData.append(eachBlock.__dict__)
Expand Down
36 changes: 21 additions & 15 deletions bscli.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import click
import urllib
import json
import sys
from blockchain.chain import Block, Blockchain

# ==================================================
Expand Down Expand Up @@ -45,7 +46,7 @@ def cli():
@click.option("--difficulty", default=3, help="Define difficulty level of blockchain.")
def init(difficulty):
"""Initialize local blockchain"""
print """
print ("""
____ _ _ _____ _ _ _
| _ \ | | | | / ____| | | | | | |
| |_) | | | ___ ___ | | __ | (___ | |__ ___ | | | |
Expand All @@ -57,14 +58,19 @@ def init(difficulty):
> Type 'help' to see supported commands.
> Project by Daxeel Soni - https://daxeel.github.io

"""
""")

# Set difficulty of blockchain
coin.difficulty = difficulty

# Set get_input function according to python version
get_input = input
if sys.version_info[:2] <= (2, 7):
get_input = raw_input

# Start blockshell shell
while True:
cmd = raw_input("[BlockShell] $ ")
cmd = get_input("[BlockShell] $ ")
processInput(cmd)

# Process input from Blockshell shell
Expand Down Expand Up @@ -92,17 +98,17 @@ def dotx(cmd):
txData = cmd.split("dotx ")[-1]
if "{" in txData:
txData = json.loads(txData)
print "Doing transaction..."
print ("Doing transaction...")
coin.addBlock(Block(data=txData))

def allblocks(cmd):
"""
Method to list all mined blocks.
"""
print ""
print ("")
for eachBlock in coin.chain:
print eachBlock.hash
print ""
print (eachBlock.hash)
print ("")

def getblock(cmd):
"""
Expand All @@ -111,21 +117,21 @@ def getblock(cmd):
blockHash = cmd.split(" ")[-1]
for eachBlock in coin.chain:
if eachBlock.hash == blockHash:
print ""
print eachBlock.__dict__
print ""
print ("")
print (eachBlock.__dict__)
print ("")

def help(cmd):
"""
Method to display supported commands in Blockshell
"""
print "Commands:"
print " dotx <transaction data> Create new transaction"
print " allblocks Fetch all mined blocks in blockchain"
print " getblock <block hash> Fetch information about particular block"
print ("Commands:")
print (" dotx <transaction data> Create new transaction")
print (" allblocks Fetch all mined blocks in blockchain")
print (" getblock <block hash> Fetch information about particular block")

def throwError(msg):
"""
Method to throw an error from Blockshell.
"""
print "Error : " + msg
print ("Error : " + msg)