Storage

合約中的動態記憶體管理

  • September 14, 2021

在閱讀了大量的 Solidity 和乙太坊文件並學習了有關編寫乙太坊合約的課程之後,出現了一個問題。這是:

當合約部署到區塊鏈時,它似乎像任何其他交易一樣儲存在一個塊中。唯一的區別是它沒有目標地址。這讓我想到了一個關於合約儲存的問題。在我學習的課程中,我看到了很多契約級別的動態數組。這些數組具有非固定值(例如用於儲存已使用合約的地址數量),但是在部署合約時,它變得不可變。那麼,我們怎樣才能擁有動態儲存記憶體呢?

合約程式碼本身是不可變的,但它的儲存不是。

關於每種儲存類型在物理級別如何分配的底層邏輯相當複雜,但據我了解,合約儲存位置和合約字節碼位置是分開的,不會重疊。事務可以擴展使用的記憶體。

最後,由節點客戶端實現決定如何將儲存儲存在物理驅動器中。我想這也很複雜。

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