Solidity

重新混合瀏覽器和仲裁本地節點

  • October 12, 2020

當我嘗試在 remix 瀏覽器中使用 quorum 本地節點部署任何合約時,其solidity 版本高於0.5.0,合約被部署,但任何互動交易(獲取/更新)合約顯示錯誤。

誰的節點

版本:quorum-v2.4.0

堅固性

Solc 版本:0.6.1 / 0.5.16

契約:

pragma solidity ^0.6.1;

contract Sample{

   struct Structure{
       uint a;
       string b;
   }

   mapping(string => Structure) public s;

   function add(uint a, string memory b)public {
       s[b] = Structure(a,b);
   }
}

誰能告訴我如何解決這個問題。

所以從 Quorum v2.4.0 開始,底層的 geth 仍然是 v1.8.x。這意味著您在使用 remix 和其他 Solidity 編譯器時可能會使用硬分叉和 EVM 更改。

首先,您需要確保在 Quorum genesis 中啟用了所有支持的硬分叉,快速參考是我們自己的 quourm-examples 項目:https ://github.com/jpmorganchase/quorum-examples/blob/master/範例/7nodes/genesis.json#L20

然後你應該堅持使用 solc 0.5.x,直到我們升級到 geth 1.9.x。這正在進行中,幾週後應該會發布。

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