Parity

大數據平價智能合約

  • August 15, 2018

我正在關注本教程:建構私有奇偶校驗區塊鏈的連結,出於某種原因,我必須將一些二進制數據插入智能合約。我要怎麼做才能讓智能合約儲存超過 1MB 的數據?

對於 Parity 客戶端,我使用 web3j。

我的程式碼:

合約合約 = Contract.deploy(web3j, credentials, BigInteger.valueOf(5000L), BigInteger.valueOf(100_000_000L), bytes).send();

它總是顯示錯誤:“交易太大,請參閱鏈規範以了解限制。”。

我試圖在鏈規範中增加“gasLimit”,但它似乎不起作用。

任何幫助,將不勝感激。謝謝。

Parity對 txpool 的事務大小強制執行300 kb 限制,而 geth 強制執行較低的32 kb 限制

您可以在鏈規範中為 Parity 設置自定義最大大小。對於 geth 節點,您必須編輯原始碼並重新編譯。

請注意,這不是共識規則,如果一個塊包含更大的 tx,它仍然有效。這些限制僅適用於待處理的交易池。

請注意,256 位字的儲存成本為 20000 gas,因此儲存 1 MB 數據將花費大約 640,000,000 gas,這遠遠高於每個網路的塊 gas 限制(我希望如此)。一般來說,如果你需要在鏈上儲存那麼多數據,你可能需要重新考慮你的使用。

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