todos sabemos que podemos escribir contratos inteligentes con solidez en ethereum como:
mapping(bytes32 => bytes32) private userPasswds ;
event RecordReturnResult(bool res);
/// @dev new the pair of user and password to the array here
function newPair(string user, string password) returns (bool) {
bytes32 sha3_user = sha3(user);
bytes32 sha3_password = sha3(password);
bool res = true;
if (userPasswds[sha3_user] > 0) {
res = false;
RecordReturnResult(res);
return res;
}
else{
userPasswds[sha3_user] = sha3_password;
res = true;
RecordReturnResult(res);
return res;
}
}
¿Dónde se almacenan las variables? Por ejemplo:
mapping(bytes32 => bytes32) private userPasswds ;
event RecordReturnResult(bool res);bytes32 sha3_user = sha3(user);
bytes32 sha3_password = sha3(password);
bool res = true;
¿Están almacenados en cadena de bloques o leveldb u otros lugares? gracias.
Las variables de los contratos (estado) son almacenadas por la máquina virtual Ethereum en un Merkle Tree . El hash del árbol se almacena en un bloque y el bloque se conserva en el disco a través de leveldb.
jiebang