Solidity

使用乙太坊作為唯一 ID 生成器

  • April 6, 2022

我有一個要求,我想呼叫智能合約並根據唯一 ID 儲存一些值。

我看過CountersOpenZeppelin 的庫。

智能合約是一個很好的案例嗎?這可能會收到數千個請求——我只關心順序 ID。(作為在 sql 中生成主鍵的替代方法)

我可以增加計數器嗎?

我能否確定即使我橫向擴展呼叫此合約的系統,我也不會生成相同的計數器兩次?

編輯:

例子:

using Counters for Counters.Counter;

然後在solidity外部方法中

通過做得到 id

_auctionIdCounter.increment();

assign the id to a mapping

目前乙太坊使用工作證明共識算法。這意味著交易訂單不是立即確定的。這些變化被稱為“鏈重組”。

如果我們假設您在事務中增加計數器。鏈重組將導致某些交易可能以不同的順序執行。例如,如果事務 TX1 獲得計數器 = 100 和 TX2 計數器 = 101,如果它們被重新排序,則 TX2 計數器 = 100 和 TX1 計數器 = 101。

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