Go-Ethereum

為什麼將大量數據儲存在乙太坊日誌而不是智能合約中不是很好?

  • August 23, 2018

我很好奇在哪裡保存大數據。我不想將它保存在我的私人數據庫而不是 ipfs 中。我希望它在區塊鏈上可見。因此,如果我將數據儲存在日誌中,它在區塊鏈 etherscan 上是可見的。

問題 1)在日誌中儲存大量數據是最佳解決方案嗎?我不想去別的地方。它必須在區塊鏈上可見

問題2)為什麼我會選擇eos智能合約來代替乙太坊的智能合約?我知道它是免費的。但它仍然有質押,如果一段時間後我取消質押並且 eos 的價值變為 0.5 怎麼辦 $ when I bought it for 5 $ 每個。然後我還是輸了,根本不是免費的

問題 3) eos 日誌的工作方式與乙太坊日誌的工作方式相同嗎?我可以在獲取它們時過濾它們嗎?或在日誌中搜尋某種數據?在乙太坊中這很容易。

謝謝你。

這裡的關鍵問題是您將支付多少 gas 來儲存您的數據。搜尋會指向另一個 StackOverflow 問題,什麼更便宜——合約儲存 | 日誌數據 | 交易輸入?,這會告訴您最便宜的選擇是將其放入事件日誌中。請注意,其他智能合約無法訪問事件日誌,因此我們假設您只希望這些數據用於檢查鏈的人員。在這種情況下,您的費用將是:

  • 375 gas 用於 LOG 呼叫
  • 375 * 4 = 1500 gas 用於包含四個 32 字節主題
  • 8 *(字節數)用於附加數據

在智能合約儲存中,每 32 字節的 gas 遠少於 20,000,但仍然很昂貴。你真正的限制是你有多少乙太坊,以及你的日誌是否符合 gas 限制。給定約 8M 的塊氣體限制,您的日誌將在

8M gas in transaction / 8 gas per byte = 1MB per block

您還將自己填充整個區塊,因此您可能需要支付高額的交易費用。所有這些都是為了讓您一次可以保存 1MB 的數據。

可能值得為您的案例重新考慮區塊鏈,或者考慮儲存數據的某些功能(如驗證雜湊),而不是直接儲存大數據。區塊鏈並不是為大數據應用而建構的。

不是 EOS 專家,您必須通過他們的文件/來源進行自己的研究,看看他們是否更改了任何這些實施細節。

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