После этого сообщения в блоге: 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
}
}
};
Я столкнулся с этой проблемой, когда мой контракт был таким:
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
}
}
Этот шаг:
personal.unlockAccount(eth.accounts[0])
Замок не остается открытым очень долго, поэтому вы будете думать, что сделали это, и результат будет иметь тенденцию вводить вас в заблуждение, потому что он снова запирается.
Пытаться:
personal.unlockAccount(eth.accounts[0], "<password>", 15000)
Это означает разблокировать и оставаться разблокированным в течение 15 000 секунд (достаточно времени).
Это сработало для других: развертывание трюфеля: состояние сети неизвестно при синхронизации geth
Надеюсь, поможет.
пользователь 22075