对于像MySQL这样的数据库,我们拥有数据一致性锁,当两个客户机试图查找一个值并更新它时,我可以使用锁来确保第二个客户机总是等待第一个客户端完成它的操作。
是否有任何机制像锁一样用于数据一致性?如果没有,如果我有一份关于以太的合同,会发生什么:
contract MyContract{
string name;
function changeName(string memory newName) public view{
name = newName;
}
}当地址A呼叫changeName("name1")和地址B呼叫changeName("name2")同时?状态变量"name“的值是多少?
发布于 2022-05-17 09:48:25
EVM以串联方式执行所有事务,而不是并行执行。
在块内执行事务的实际顺序取决于该特定块的矿工(PoW)或验证器(PoS)。然而,在大多数情况下,它们只是从最大的gasPrice订单到最小的订单。
还请注意,view修饰符不允许此函数更改合同状态。但是,如果省略修饰符,则应用上述方法。
https://stackoverflow.com/questions/72271610
复制相似问题