Phthon code to vb.net (2012) – help me to eliminate the errors

I wanted to convert the following bitcoin mining python code to VB.net (2012) and I tried to convert it’s functionality, but it throws some errors and I’m stuck as I even can’t get the resulting value of "header" variable.

and the final hash result should be 0000000000000000e067a478024addfecdc93628978aa52d91fabd4292982a50, but I’m no where near that.

why this produces errors, converting from hex to byte is not the correct method?

in python L is used to format it to long right?, so what does the <L & <LLL in the python code do? and is this ::-1 used to prevent overflow when reading the hex string?

and, in exp = bits >> 24 what does it do, bitwise operations?

import hashlib, struct  ver = 2 prev_block = "000000000000000117c80378b8da0e33559b5997f2ad55e2f7d18ec1975b9717" mrkl_root = "871714dcbae6c8193a2bb9b2a69fe1c0440399f38d94b3a0f1b447275a29978a" time_ = 0x53058b35 # 2014-02-20 04:57:25 bits = 0x19015f53  # https://en.bitcoin.it/wiki/Difficulty exp = bits >> 24 mant = bits & 0xffffff target_hexstr = '%064x' % (mant * (1<<(8*(exp - 3)))) target_str = target_hexstr.decode('hex')  nonce = 0 while nonce < 0x100000000:     header = ( struct.pack("<L", ver) + prev_block.decode('hex')[::-1] +           mrkl_root.decode('hex')[::-1] + struct.pack("<LLL", time_, bits, nonce))     hash = hashlib.sha256(hashlib.sha256(header).digest()).digest()     print nonce, hash[::-1].encode('hex')     if hash[::-1] < target_str:         print 'success'         break nonce += 1 

The VB.NET code I’ve been coding up until now is,

Public Class Form1 Dim version As Long = 0 Dim time As Integer Dim pblock As Byte Dim mklroot As Byte Dim header As String Dim nonce As Integer = 856192328  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click     Textbox1.Text = "2"     Textbox2.Text = "000000000000000117c80378b8da0e33559b5997f2ad55e2f7d18ec1975b9717"     Textbox3.Text = "871714dcbae6c8193a2bb9b2a69fe1c0440399f38d94b3a0f1b447275a29978a"     Textbox4.Text = "0x53058b35" '2014-02-20 04:57:25     Textbox5.Text = "0x19015f53"      Dim n As Int32 = T2.Text.Length - 1      version = CLng(Textbox1.Text)     'pblock = CByte(Textbox2.Text)     pblock = Convert.ToByte(Convert.ToInt32(Textbox2.Text, 16))     mklroot = Convert.ToByte(Convert.ToInt32(Textbox3.Text, 16))     time = CInt(Textbox4.Text)      header = version & pblock & mklroot & time & nonce     Textbox6.Text = header      End Sub  End Class 

Recent Questions – Bitcoin Stack Exchange