Skip to content

Commit 7dabcf1

Browse files
mERKLE
1 parent 776e85c commit 7dabcf1

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

Merkle/merkle.py

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#!/usr/bin/python3
2+
importar hashlib , sistema
3+
4+
clase MerkleTreeNode :
5+
def __init__ ( auto , valor ):
6+
uno mismo izquierda = Ninguno
7+
uno mismo derecho = ninguno
8+
uno mismo valor = valor
9+
uno mismo hashValue = hashlib . sha256 ( valor . codificar ( 'utf-8' )). resumen hexadecimal ()
10+
11+
def buildTree ( hojas , f ):
12+
nodos = []
13+
para i en hojas :
14+
nodos _ agregar ( MerkleTreeNode ( i ))
15+
16+
mientras que len ( nodos ) ! = 1 :
17+
temperatura = []
18+
para i en el rango ( 0 , len ( nodos ), 2 ):
19+
nodo1 = nodos [ i ]
20+
si i + 1 < len ( nodos ):
21+
nodo2 = nodos [ i + 1 ]
22+
más :
23+
temperatura _ agregar ( nodos [ i ])
24+
romper
25+
F. _ write ( "Left child:" + node1 . value + "| Hash:" + node1 . hashValue + " \n " )
26+
F. _ write ( "Hijo derecho:" + nodo2 . valor + "| Hash:" + nodo2 . hashValue + " \n " )
27+
concatenatedHash = node1 . valor hash + nodo2 . valor hash
28+
padre = MerkleTreeNode ( concatenatedHash )
29+
padre _ izquierda = nodo1
30+
padre _ derecha = nodo2
31+
F. _ write ( "Parent(concatenación de " + node1 . value + " y " + node2 . value + ") : " + parent . value + " | Hash : " + parent . hashValue + " \n " )
32+
temperatura _ agregar ( padre )
33+
nodos = temperatura
34+
nodos de retorno [ 0 ]
35+
36+
cadena de entrada = sys . arg [ 1 ]
37+
hojasCadena = cadenaEntrada [ 1 : largo ( CadenaEntrada ) - 1 ]
38+
hojas = cadenahojas . dividir ( "," )
39+
f = abierto ( "merkle.tree" , "w" )
40+
root = buildTree ( hojas , f )
41+
F. _ cerrar ()

0 commit comments

Comments
 (0)