我已经使用arraylist容器对象(块类)在java中实现了一个简单的区块链。
public static ArrayList<Block> blockchain = new ArrayList<Block>();
..。和block类,包含我需要存储到区块链中的事务。
public Block(transaction data,String previousHash ) {
this.data = data;
this.previousHash = previousHash;
this.timeStamp = new Dat
考虑以下人为的合同功能:
function submitOffer(uint256 foo) public payable {
emit MyEvent(foo);
// then later...
require(foo > 10, "Foo must be greater than 10");
}
该函数在第一行上发出一个事件,然后检查一些require条件。如果条件失败,任何状态更改都会被恢复。这会导致事件也被“恢复”(或从未真正发出)吗?我想答案是肯定的,因为事务永远不会被包含在一个块中,但是有什么我没有考虑的吗?