簡體   English   中英

Remix solidity 不會在私有以太坊鏈上返回結果

[英]Remix solidity does not return result on private ethereum chain

我剛開始學習以太坊和混音,這個問題對你來說可能很愚蠢。

我在嵌入在 remix ide 中的 javascript vm 上嘗試了以下代碼,它工作得很好,但它無法在我早期設置的私有鏈上返回字符串,即使它沒有報告任何錯誤。 我使用的solidity代碼如下。

// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.7;
contract Greeter {

    function greet() external pure returns(string memory) {
        return "Hello, World!";
    }

}

任何人都可以提供一些想法我可能會出錯嗎? PS 我設置miner.start() ,並使用以下腳本啟動私有鏈:

geth --datadir data --networkid 18810100026 --port 60000 --rpc  --rpcport 8100 --rpcaddr 0.0.0.0 --bootnodes enode://****73c2e56ed109f7ab559bc0df26e01e4a72c4eef660d0853e8c241a737b43bd7f7da32d22e272fe187f7063d9559691@****:30301 --rpcapi eth,web3,miner,admin,personal,net --rpccorsdomain "*"```

geth version is 1.7.3

私鏈上運行的合約截圖

在 javascript VM 上運行的合約截圖

我認為有兩個事實可能導致這樣的錯誤

  1. 我沒有將geth更新到當前的最新版本。
  2. 我沒有正確初始化創世區塊。

所以我做了兩個修改來解決這樣的問題

  1. geth更新到 1.10.17
  2. puppeth自動生成的 genesis json 文件中添加兩行,如下
{
  "config": {
    ...
    "byzantiumBlock": 4,
    "constantinopleBlock": 5,
    ...
  },
...

之后問題就解決了。

我覺得你的合同沒問題!

我將您的代碼復制到 Remix 0.23.3 上的新合約中,並返回問候功能:“Hello,World!”

也許你在另一個版本中使用了 remix ide,或者你的 ide 有錯誤。 我建議您使用其他瀏覽器進行混音或使用其他 ide 來獲得穩固性,例如安全帽https://hardhat.org/

我打招呼的結果: 在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM