I've read this post and this one and I'm still wondering if there is a way to deploy a contract without fully syncing the blockchain, for example by using a light client. I would like try my hand at writing contracts (and be more helpful to people on StackExchange!) but I'm short on disk space and would prefer to use a public test net rather than a private chain. My backup plan is to deploy a test net node on a small VPS instance I'm already paying for, so I won't cry if the answer is "you need to fully sync the blockchain".
3 Answers
If you want to start coding smart contract this is a quite smooth environment to set up:
- Use Remix online IDE for coding and link it with your local node
- Download testRPC on your PC and run a local node (no sync needed & light weight)
- Set up Ethereum Wallet to run on your local node
Then you can deploy contracts and test them through MEW while checking out the txs with your testRPC view. I found myself well with these settings. Hope it helps.
Sure, use https://www.myetherwallet.com/#contracts to deploy a contract and use online solidity to write it and compile: https://ethereum.github.io/browser-solidity/
-
1Thanks; I suppose I should have specified I'd like to get acquainted with the Ethereum CLI, but I'll accept this answer when StackExchange's minimum-time-until-accept timer expires.– lungjJul 17, 2017 at 14:48
-
1Sorry... I've decided to accept @PaoloGuerra's answer (you still get my up vote!) since it seems to better satisfy my needs. And I guess you still get the rep for your edit :)– lungjJul 17, 2017 at 14:55
To submit a contract to the Ethereum blockchain, the contract creation transaction needs to be mined.
You do not need a fully synced copy of the chain to submit a contract.
In fact, if you wanted to, you could sign a deployment transaction offline, write it on a piece of paper and pass it to someone else to submit to the chain.
To see that a contract has been deployed at a given address you do not need the chain fully synced. Given however that Ethereum is essentially a state machine, you would need to query a fully synced node to query the most recent state (that would include your deployed contract).
This can be done through any public node. For example Infura.io