Truffle
使用 Truffle 在 Ropsten 中部署合約
我還有另一個 n00b 問題……對此感到抱歉:(
我正在嘗試將智能合約部署到 Ropsten。我已將 Ropsten 網路與 同步
geth --testnet --fast --rpc --rpcapi eth,net,web3,personal
,它看起來完全是最新的。然後我嘗試將該智能合約(我已經部署到我的私有 testrpc 網路並且它執行良好)部署到 Ropsten。為此,我正在執行
truffle migrate --network ropsten
,我收到了這個討厭的錯誤:Could not connect to your Ethereum client. Please check that your Ethereum client: - is running - is accepting RPC connections (i.e., "--rpc" option is used in geth) - is accessible over the network - is properly configured in your Truffle configuration file (truffle.js)
geth 實例實際上已經啟動並正在執行,因為我可以連接到它
geth attach http://127.0.0.1:8545
並且它工作正常。它正在接受連接,因為我使用了 –rpc 選項。它可以通過網路訪問,因為我已經訪問過它……而且我認為我的 Truffle 配置文件還可以,它的外觀如下:require('babel-register') module.exports = { networks: { development: { host: 'localhost', port: 8545, network_id: '*' // Match any network id }, ropsten: { host: "localhost", port: 8545, network_id: "3", } } }
誰能告訴我為什麼我會收到這個錯誤,我該怎麼做才能解決它?
提前非常感謝你!!!:)
當我通過 rinkeby 網路中的 truffle 部署我的合約時,在從地址和 gas 添加後,我也遇到了同樣的錯誤。試試這個
networks: { ropsten: { network_id: 3, host: '127.0.0.1', port: 8545, gas: 4000000, from: <your unlocked ropsten account address> },
很難解鎖您的 ropsten 帳戶。您可能會選擇私鑰部署。我已經為這樣的東西建構了 lib。
const etherlime = require('etherlime'); const ICOTokenContract = require('./build/contracts/ICOToken.json'); const randomAddress = '0xda8a06f1c910cab18ad187be1faa2b8606c2ec86'; const defaultConfigs = { gasPrice: 20000000000, gasLimit: 4700000 } const deployer = new etherlime.InfuraPrivateKeyDeployer('Your Privste KEY', 'ropsten', 'Your infura API key', defaultConfigs); const runICODeployment = async () => { const contractWrapper = await deployer.deploy(ICOTokenContract); const transferTransaction = await contractWrapper.contract.transferOwnership(randomAddress); const result = await contractWrapper.verboseWaitForTransaction(transferTransaction.hash, 'Transfer Ownership'); } runICODeployment()
將它放在一個簡單的 js 文件中並使用 node.js 執行它。希望這可以幫助。