Getting an error In spyder while doing Sample Program for Block Chain.

70 views
Skip to first unread message

Ashish Yadav

unread,
Dec 19, 2017, 12:04:08 PM12/19/17
to Python Programming for Autodesk Maya
Below is the python code which i am trying to run on Spyder, but getting an error.

I have downloaded that code from Internet .  Please help me .

Error- TypeError: encoding without a string argument


import hashlib as hasher

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.timestamp) + 
               str(self.data) + 
               str(self.previous_hash))
#    return hashlib.sha256(str(msg).encode('utf-8')).hexdigest()
    return sha.hexdigest()


import datetime as date

def create_genesis_block():
  # Manually construct a block with
  # index zero and arbitrary previous hash
  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 = "Hey! I'm block " + str(this_index)
  this_hash = last_block.hash
  return Block(this_index, this_timestamp, this_data, this_hash)

# Create the blockchain and add the genesis block
blockchain = [create_genesis_block()]
previous_block = blockchain[0]

# How many blocks should we add to the chain
# after the genesis block
num_of_blocks_to_add = 5

# Add blocks to the chain
for i in range(0, num_of_blocks_to_add):
  block_to_add = next_block(previous_block)
  blockchain.append(block_to_add)
  previous_block = block_to_add
  # Tell everyone about it!
  print ("Block #{} has been added to the blockchain!".format(block_to_add.index))
  print ("Hash: {}\n".format(block_to_add.hash))
  

Thanks
Ashish

Russel Rehmund

unread,
Dec 19, 2017, 12:24:09 PM12/19/17
to python_in...@googlegroups.com
Ran fine for me in pycharm.  I just pasted your code and ran in the console without issue.

--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+unsub...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/30dd09eb-6888-4835-b845-bc221d5846dc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--

Ashish Yadav

unread,
Dec 19, 2017, 12:53:26 PM12/19/17
to Python Programming for Autodesk Maya
I am trying this in Spyder and getting an issue .

I do not know why ? please help me .

Ravi Jagannadhan

unread,
Dec 19, 2017, 1:37:07 PM12/19/17
to python_in...@googlegroups.com
Paste your code in notepad first, and look for any out of place ascii characters.

--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+unsub...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Where we have strong emotions, we're liable to fool ourselves - Carl Sagan

Ashish Yadav

unread,
Dec 19, 2017, 2:57:31 PM12/19/17
to Python Programming for Autodesk Maya
I have checked that but still getting the same error.

Justin Israel

unread,
Dec 19, 2017, 3:17:16 PM12/19/17
to python_in...@googlegroups.com
On Wed, Dec 20, 2017 at 8:57 AM Ashish Yadav <ashishs...@gmail.com> wrote:
I have checked that but still getting the same error.

Are you running this under Python3? If so, it would be working in Python 2.x but complaining in Python3 because of your modification on line 16.

Change this:
    sha.update(str(self.index) + 
               str(self.timestamp) + 
               str(self.data) + 
               str(self.previous_hash))

To this:
    sha.update((str(self.index) + 
               str(self.timestamp) + 
               str(self.data) + 
               str(self.previous_hash)).encode('utf-8'))
 

Justin

To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_m...@googlegroups.com.



--
Where we have strong emotions, we're liable to fool ourselves - Carl Sagan

--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_m...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/7ec8fc8e-4d66-4298-abb9-98c281bf2858%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages