You are on page 1of 6

///<summary>

/// Description de la clase: Corresponde a la clase del blockchain de transacciones listadas por el
nodo
Carpeta Models:
--[VB] Class_Blockchain.vb
///</summary>

Imports System.Xml.Serialization

<XmlRoot("NewGroupName")>
<XmlType("ArchivoXml")>
Public Class Class_Blockchain
Property Transacciones As IList(Of Class_Nodo)

End Class

///<summary>
/// Description de la clase: Corresponde a la clase del controlador la cual exporta los valores
contenidos en
las variables recibidas.
Carpeta Models:
--[VB] Class_Controlador.vb

///</summary>

Public Class Class_Controlador


Property Dir1 As String
Property Dir2 As String
Property Nose As Integer
Property Prev As Integer
Property Tranz As Integer
Property Hash As String
Public Function consulta() As Class_Controlador
Dim Controla As Class_Controlador
Dim request As HttpRequest
Dim Url As String = ""

Dim rutaGuardado As String = "C:\PruebUni\Prueba.txt"


Dim Ver As String = System.IO.File.ReadAllText(rutaGuardado)

End Function

End Class

///<summary>
/// Description de la clase: Corresponde a la clase del controlador la cual exporta los valores
contenidos en
las variables recibidas.
Carpeta Models:
--[VB] Class_HashDirectory.vb

///</summary>

Imports System
Imports System.IO
Imports System.Security.Cryptography
Public Class Class_HashDirectory
Public Shared Function GenerateSHA256String(ByVal inputString) As String
Dim sha256 As SHA256 = SHA256Managed.Create()
Dim bytes As Byte() = Encoding.UTF8.GetBytes(inputString)
Dim hash As Byte() = sha256.ComputeHash(bytes)
Dim stringBuilder As New StringBuilder()

For i As Integer = 0 To hash.Length - 1


stringBuilder.Append(hash(i).ToString("X2"))
Next

Return stringBuilder.ToString()
End Function

Public Shared Function GenerateSHA512String(ByVal inputString) As String


Dim sha512 As SHA512 = SHA512Managed.Create()
Dim bytes As Byte() = Encoding.UTF8.GetBytes(inputString)
Dim hash As Byte() = sha512.ComputeHash(bytes)
Dim stringBuilder As New StringBuilder()

For i As Integer = 0 To hash.Length - 1


stringBuilder.Append(hash(i).ToString("X2"))
Next

Return stringBuilder.ToString()
End Function
End Class

///<summary>
/// Description de la clase: Corresponde a la clase del controlador la cual exporta los valores
contenidos en
las variables recibidas.
Carpeta Models:
--[VB] Class_Nodo.vb

///</summary>

Public Class Class_Nodo


Property Numero_Nodo
Property Dir1 As String
Property Dir2 As String
Property Nose As Integer
Property Prev As Integer
Property Hash As String
Property Estado As Boolean = True

Property Sub_nodos As List(Of Class_sub_nodo)

End Class

///<summary>
/// Description de la clase: Corresponde a la clase del controlador la cual exporta los valores
contenidos en
las variables recibidas.
Carpeta Models:
--[VB] Class_sub_nodo.vb

///</summary>

Public Class Class_sub_nodo


Property Numero As Integer
Property valor_Transacion

End Class

///<summary>
/// Description de la clase: Corresponde a la clase del controlador la cual exporta los valores
contenidos en
las variables recibidas.
Carpeta Web_Service:
--[VB] Ws_Blockchain.asmx

///</summary>

Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.IO
Imports System.ComponentModel
Imports System.Linq
Imports System
Imports System.Collections.Generic
Imports Microsoft.Ajax.Utilities

' Para permitir que se llame a este servicio web desde un script, usando ASP.NET
AJAX, quite la marca de comentario de la línea siguiente.
' <System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")>
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)>
<ToolboxItem(False)>
Public Class Ws_Blockchain
Inherits System.Web.Services.WebService
<WebMethod()>
Public Function Crear_Block(Id_bloque As String, traza As Integer) As String
' nonce As Integer, nonce As String, hash As String

'Crear_Archivo("C:\PruebUni\", "Rg_block.txt")
'My.Computer.FileSystem.WriteAllText("C:\PruebUni\" & "Rg_block.txt",
Id_bloque & " " & traza, False)

Dim resA As String


Dim ArchivoXml As New List(Of Class_Blockchain)
Dim Nsub_N As Integer = 1
'Dim Archivo As New List(Of Class_Controlador)
Dim Block_Chain As New Class_Blockchain
Block_Chain.Transacciones = New List(Of Class_Nodo)
Block_Chain.Transacciones.Add(New Class_Nodo With {.Numero_Nodo = 1,
.Sub_nodos = New List(Of Class_sub_nodo)})
Block_Chain.Transacciones.ForEach(Sub(item)
item.Numero_Nodo = 1
item.Dir1 = "123"
item.Dir2 = "456"
item.Nose = "00"
item.Prev = "234"
item.Hash = "0000343"
item.Sub_nodos = New List(Of
Class_sub_nodo)
item.Sub_nodos.Add(New Class_sub_nodo
With {.Numero = 1, .valor_Transacion = 100000})
item.Sub_nodos.Add(New Class_sub_nodo
With {.Numero = 2, .valor_Transacion = 300000})
item.Sub_nodos.Add(New Class_sub_nodo
With {.Numero = 3, .valor_Transacion = 150000})
End Sub)
Block_Chain.Transacciones.ForEach(Sub(item)
If item.Sub_nodos.Count = 3 Then
item.Estado = False
Else
item.Sub_nodos.Add(New
Class_sub_nodo With {.Numero = 4, .valor_Transacion = 900000})
End If

End Sub)

Dim Block As New DataTable


'Block.Columns.Add("Dir1")
'Block.Columns.Add("nonce")
'Block.Columns.Add("Traz")
'Block.Columns.Add("prev")
'Block.Columns.Add("hash")
'Dim Row As DataRow = Block.NewRow()
'Row("Dir1") = "123"
'Row("nonce") = "25"
'Row("Traz") = "2500"
'Row("hash") = "321"
'Block.Rows.Add(Row)
'Row = Block.NewRow()
'Row("Dir1") = "125"
'Row("nonce") = "56"
'Row("Traz") = "500"
'Row("hash") = "521"
'Block.Rows.Add(Row)
'ArchivoXml = (From Reguitro In Block.AsEnumerable Select New
Class_Blockchain With {
' .Dir1 = Reguitro("Dir1"),
' .Nose = Reguitro("nonce"),
' .Tranz = Reguitro("Traz")
'}).ToList

'Dim x As New System.Xml.Serialization.XmlSerializer(ArchivoXml.GetType)


'Dim msA As MemoryStream = New MemoryStream()
'x.Serialize(msA, ArchivoXml)
'Dim JJA As Byte() = msA.ToArray()
'msA.Close()
'resA = Encoding.UTF8.GetString(JJA, 0, JJA.Length)
'Dim rutaGuardado As String = "C:\PruebUni\Block.xml"
''My.Computer.FileSystem.DeleteFile(rutaGuardado, resA, True)
'If (System.IO.File.Exists(rutaGuardado)) Then
' System.IO.File.Delete(rutaGuardado)
'End If
'My.Computer.FileSystem.WriteAllText(rutaGuardado, resA, True)

'Dim Vl As String = Class_HashDirectory.GenerateSHA256String("abc")

'Return Vl
End Function
<WebMethod()>
Public Function Registro_Block(Id_has As String) As String

Return "Consulta"
End Function
<WebMethod()>
Public Function Consulta_Traza(Id_has As Integer) As String

Return "Consulta"
End Function

<WebMethod()>
Public Function Consulta_Block(Id_has As String) As String

Return "Consulta"
End Function

Public Shared Function Crear_Archivo(ByVal Ruta As String, ByVal Nom_Archivo As


String) As Boolean
Try
Dim create As StreamWriter
If Not IO.File.Exists(Ruta & "\" & Nom_Archivo) Then
create = IO.File.CreateText(Ruta & "\" & Nom_Archivo)
create.Flush() : create.Close()
End If
Return True
Catch ex As Exception
Return False
End Try
End Function

End Class

You might also like