Transactions

塊內的狀態變化

  • August 11, 2020

我在某處讀到“狀態”僅在每個塊的末尾更新。我還讀到每個塊都包含特定的事務序列,因此隱式地“更新”了塊內的狀態。這可能是語義上的,但我只想確定狀態變數是如何更新的:改變狀態的事務是否會在下一個事務之前這樣做,而不管它是否在同一個塊中?

需要明確的是:假設合約變數Book是 10 ETH,這樣使用者就可以押注這 10 ETH。每次交易下註一個金額XBook減少XBook = Book - X。投注受到限制,因此Book始終 >=0:require(Book - X >= 0)在投注功能的頂部。如果 Bob 下注 6 ETH,Alice 下注 6 ETH,這顯然與我的要求背道而馳。但是,如果他們的交易在同一個區塊中,第二個交易會被拒絕嗎?

一個改變狀態的交易會在下一個交易之前這樣做嗎,不管它是否在同一個區塊中?

是的

如果他們的交易在同一個區塊中,第二筆交易會被拒絕嗎?

是的

重要的一點是,Alice 和 Bob 都不知道誰是第一個:礦工決定哪個交易是第一個。

另請參閱挖礦期間交易的預設順序是什麼?

引用自:https://ethereum.stackexchange.com/questions/86613