Solidity

Solidity中的任何導出關鍵字?

  • October 22, 2017

根據文件,我們有導入功能,但我們是否有任何導出到 Solidity 中的文件功能,我可以在我的智能合約中使用。

在如何將交易導出到 CSV 文件中獲得了類似的主題, 但它僅討論了導出交易,而不是智能合約操作的中間或最終結果。

不,這是不可能的。EVM 無權訪問文件系統。

import關鍵字在契約編譯時使用,在您的本地建構環境中。它在創建智能合約之前導入 Solidity 程式碼。它不構成已編譯合約的一部分,也不在區塊鏈(在 EVM 中)上執行。

一旦合約被部署,它只能在乙太坊虛擬機(EVM)中執行,既不能讀取也不能寫入文件。

相反,合約有兩種記錄輸出的方式。

  1. 對於合約不需要儲存的臨時結果,您可以發出事件來記錄有限數量的數據。稍後可以使用區塊鏈瀏覽器或其他工具查詢這些日誌。
  2. 需要維護的合約狀態可以放在合約儲存中,稍後查詢(使用 getter 函式,Solidity 可以自動為你生成)。就gas而言,這比事件相對更昂貴。

請記住,部署後的合約將在全球數千個節點上執行。目前用這些術語來考慮傳統的文件系統沒有多大意義。也許在未來,EVM 可能會通過一種方式與Swarm(一個完全分佈式的文件系統)進行互動。但這離現在還有很長的路要走。

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