0

If I have a contract code (written in Solidity), I guess I can just compile it with whatever compiler and then I need to deploy it.

What are the options for deploying it? Geth seems to be the most common option but it seems quite complicated. Is it not possible to just enter the compiled code somewhere with whatever parameters and press 'Deploy' (for example from a wallet so I can pay for the gas)? Do I have to have a full node synced? I was looking at www.myetherwallet.com contracts section but couldn't figure out how to deploy even from there.

I guess the methods are the same for testnet and main net?

  • Hope ans help you for contract deployment. Mark ans as accepted so that community is easily find ans. – Jitendra Kumar. Balla Feb 15 '18 at 14:20
  • 1
    Hi there. Questions are considered more "healty" in Stack Exchange if they have multiple answers. (Indeed, this is one of the metrics that's used to measure the health of a site when it's in Beta. I'm aware we're no longer in Beta, but the point stands.) The question is quite open ended, and it would benefit from other answers which may give different perspectives, or explain things in different ways. Asking OPs to accept your answer before other answers have been added isn't "healthy": it deters other users from adding answers which would potentially benefit the rest of the community. – Richard Horrocks Feb 15 '18 at 16:51
1

There are 3 popular methods to deploy your smart contracts in to Eth Network:

  1. Geth : Useful for learning purpose, or private network. This method will consume resources. But its fast.

  2. Truffle/Run other frame work (You no need to run any node): Using this method, it will create common folder structure for smart contract's. Compiling, Deploying, and Testing. Can be done in one place. You can save lot of time.

module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",
      port: 8545,
      network_id: "*", // Match any network id
      gas: 4700000
    },
    live: {
      host: "178.25.19.88", // Random IP for example purposes (do not use)
      port: 80,
      network_id: 1,        // Ethereum public network
      // optional config values:
      // gas
      // gasPrice
      // from - default address to use for any transaction Truffle makes during migrations
      // provider - web3 provider instance Truffle should use to talk to the Ethereum network.
      //          - function that returns a web3 provider instance (see below.)
      //          - if specified, host and port are ignored.
    }
  }};
  1. Meta mask + Remix: More like IDE+Wallet integration.You no need to pass contract gas or gas price. By using meta mask you can change gas and gas price. Advantage is: You will get realtime gas price. Remix is online editor.

Resources:

Truffle

Remix + MetaMask

  • Thanks for the input! I have some questions still. About Geth: would I need to download and sync the whole blockchain? That's not possible for me. About truffle: truffle's tutorials suggest using ganache and deploying to a test net. Would I still need to run a full node to deploy to mainnet? About remix+metamask: I couldn't find instructions on how these can be used for deployment - remix asks for "Web3 Provider Endpoint", what should I input there if I'm not running a node? Most of all: why is deployment so damn difficult? – Lauri Peltonen Feb 15 '18 at 17:09
  • I'll recommend get for setting up local network. I'm not saying testnet. Local network you no need to sync. – Jitendra Kumar. Balla Feb 15 '18 at 17:14
2
  1. Install geth and start it with the --light parameter
  2. Install the MIST wallet and make it connect to the ipc file created by geth: ethereumwallet --rpc=/path/to/geth.ipc
  3. Deploy your contract (from source code) by going to Contracts -> Deploy New Contract

geth syncing in light mode uses less than 200MB of disk space and synchronizes in minutes, rather than hours.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.