Estoy luchando con el proyecto de mi tesis. Necesito desarrollar una Đapp, que pueda
Por esta razón, se debe utilizar el trie Merkle Patricia modificado de Ethereum. Debería almacenar los valores del archivo CSV en un trie, donde los valores hash son las hojas y se procesan por pares una y otra vez, hasta llegar al hash raíz. Luego, si el usuario proporciona una identificación y un conjunto de datos, debo comparar el hash raíz del conjunto de datos con el almacenado en la cadena de bloques. Si no coinciden, tengo que comparar los hashes en el siguiente nivel. Basado en esta comparación, debo ir en la dirección, donde hay un desajuste y encontrar las hojas al final que no coinciden.
Realmente estoy atascado con eso y no estoy seguro de cómo debo proceder. ¿Debo implementar una función de almacenamiento y validación en Solidity? ¿O cuál es la forma correcta de empezar? Me encantaría ver una aplicación de muestra, que sea similar.
Puede que le resulte útil mirar el contrato inteligente de zeppelin que verifica una prueba de merkle para una raíz y una hoja dadas;
https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/MerkleProof.sol
Entonces, probablemente no sea la solución más efectiva, pero decidí almacenar los datos en un mapping(uint256=>bytes32[])
al final, donde el número entero es el ID de la consulta y la matriz de bytes contiene las filas codificadas. De esta manera, puedo obtener fácilmente la matriz de bytes que pertenece a una identificación determinada. Sin embargo, luego necesito iterar a través de toda la matriz para verificar cada entrada, pero no se me ocurrió una idea mejor.