Wir alle wissen, dass wir Smart Contracts mit Solidität in Ethereum schreiben können, wie zum Beispiel:
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;
}
}
Wo werden die Variablen gespeichert? Zum Beispiel:
mapping(bytes32 => bytes32) private userPasswds ;
event RecordReturnResult(bool res);bytes32 sha3_user = sha3(user);
bytes32 sha3_password = sha3(password);
bool res = true;
werden sie in blockchain oder leveldb oder an anderen orten gespeichert? Danke.
Vertragsvariablen (Zustand) werden von der virtuellen Ethereum-Maschine in einem Merkle-Baum gespeichert . Der Hash des Baums wird in einem Block gespeichert und der Block wird über leveldb auf der Festplatte gespeichert.
Jiebang