Parity
大數據平價智能合約
我正在關注本教程:建構私有奇偶校驗區塊鏈的連結,出於某種原因,我必須將一些二進制數據插入智能合約。我要怎麼做才能讓智能合約儲存超過 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 限制(我希望如此)。一般來說,如果你需要在鏈上儲存那麼多數據,你可能需要重新考慮你的使用。