Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion public/content/translations/zh/whitepaper/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ APPLY({ Alice: $50, Bob: $50 },"send $70 from Alice to Bob") = ERROR
2. 检查该区块的时间戳是否大于上一个区块 <sup>[fn2](注释编号)</sup>的时间戳并且在将来 2 小时以内
3. 检查区块上的工作量证明是否有效。
4. 令前一个区块末尾的态为 `S[0]`。
5. 假设 `TX` 是该区块的交易列表,其中包含 `n` 个交易。 对于 `0...n-1` 中的所有 `i`,如果有任何应用程序返回错误,退出并返回 false,请设置 `S[i+1] = APPLY(S[i],TX[i])`。
5. 假设 `TX` 是该区块的交易列表,其中包含 `n` 个交易。 对于 `0...n-1` 中的每个数字 `i`,依次执行 `S[i+1] = APPLY(S[i],TX[i])`。 如果有任何一次对 `APPLY` 的调用返回了错误,退出并返回 false
6. 返回 true,并将 `S[n]` 登记为该区块末尾的状态。

本质上,区块中的每笔交易都必须提供一个有效的状态转换,从交易执行前的规范状态转换到某个新状态。 注意,状态并未编码到区块。它纯粹只是校验节点记住的抽象概念,只能被任意区块从创世状态开始,按顺序加上每一个区块的每一笔交易,(安全地)计算出当前状态。 另外,需要注意矿工将交易收录进区块的顺序。如果一个区块中有A、B两笔交易,B花费的是A创建的UTXO,如果A在B之前,这个区块是有效的,否则,这个区块无效。
Expand Down