Состояние сети неизвестно при развертывании в тестовой сети

После этого сообщения в блоге: https://medium.com/@guccimanepunk/how-to-deploy-a-truffle-contract-to-ropsten-e2fb817870c1

Я создал учетную запись сgeth --testnet account new

Я запросил Эфир на этот счет, но когда я проверяю

geth attach http://127.0.0.1:8545
personal.unlockAccount(eth.accounts[0])
Unlock account 0x78ca93e2a0621a1b5e198e85fd8e1d2db78d17ba
eth.getBalance(eth.accounts[0])
0

Так может в этом проблема? (У меня сборщик работал нормально с моим адресом Metamask. Я подозреваю, что моя учетная запись geth не синхронизируется)

Я начинаю тестнест с этим:

~/geth --testnet --fast --rpc --rpcapi eth,net,web3,personal

Как мне подключиться к тестовой сети Ropsten и развернуть мой контракт с трюфелем?

truffle migrate --network ropsten

Использование сети «ropsten».

Running migration: 1_initial_migration.js Deploying Migrations... ... undefined Error encountered, bailing. Network state unknown. Review successful transactions manually. Error: insufficient funds for gas * price + value at Object.InvalidResponse (/usr/local/lib/node_modules/truffle/build/cli.bundled.js:41484:16) at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:329530:36 at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:176186:11 at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:325200:9 at XMLHttpRequest.request.onreadystatechange (/usr/local/lib/node_modules/truffle/build/cli.bundled.js:328229:7) at XMLHttpRequestEventTarget.dispatchEvent (/usr/local/lib/node_modules/truffle/build/cli.bundled.js:176415:18) at XMLHttpRequest._setReadyState (/usr/local/lib/node_modules/truffle/build/cli.bundled.js:176705:12) at XMLHttpRequest._onHttpResponseEnd (/usr/local/lib/node_modules/truffle/build/cli.bundled.js:176860:12) at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/truffle/build/cli.bundled.js:176820:24) at emitNone (events.js:111:20)

трюфель.js:

module.exports = {
  // See <http://truffleframework.com/docs/advanced/configuration>
  networks: {
    development: {
      host: "127.0.0.1",
      port: 8545,
      network_id: "*" // Match any network id
    },
    ropsten: {
      network_id: 3,
      host: "127.0.0.1",
      port: 8545,
      gas: 9900000
    }
  }
};

Ответы (3)

Я столкнулся с этой проблемой, когда мой контракт был таким:


contract A {     
  function abc(unit a) public{    
     //doSomeAction     
  }
}    
Calling the contract in another contract like    
contract B {     
  contract A {    
     function abc(unit a) public;     
  }
....    
}    

Then I changed the contract B like: 
contract B{ 
import './A.sol'  
}   

После этого я не получил эту ошибку. Поэтому, пожалуйста, проверьте, как вы вызываете контракты для взаимодействия друг с другом и сколько газа потребляется при каждом вызове.

попробуйте снизить цену на газ,

    module.exports = {
      // See <http://truffleframework.com/docs/advanced/configuration>
      networks: {
        development: {
          host: "127.0.0.1",
          port: 8545,
          network_id: "*" // Match any network id
        },
        ropsten: {
          network_id: 3,
          host: "127.0.0.1",
          port: 8545,
          from:  "" //<-- missing 
          gas: 4000000
        }
      }
Привет, я попробовал это, похоже, мой geth заблокирован. Как указать пароль для расшифровки?

Этот шаг:

personal.unlockAccount(eth.accounts[0])

Замок не остается открытым очень долго, поэтому вы будете думать, что сделали это, и результат будет иметь тенденцию вводить вас в заблуждение, потому что он снова запирается.

Пытаться:

personal.unlockAccount(eth.accounts[0], "<password>", 15000)

Это означает разблокировать и оставаться разблокированным в течение 15 000 секунд (достаточно времени).

Это сработало для других: развертывание трюфеля: состояние сети неизвестно при синхронизации geth

Надеюсь, поможет.