I want to experiment with Ethereum without having to download the entire blockchain. My ISP limits my bandwidth to 50GB and downloading the ETH chain would consume a lot of that, not to mention the time. Is there any SPV like implementation of Ethereum? With Bitcoin, I could simply download bitcoinj and start coding.

I have also considered Blockchain as a Service by Azure. Are there any alternatives? (because they need my credit card number.)

What I want to do:

1. Experiment with simple transactions (sending Ether)
2. Create contracts
3. Store arbitrary data on blockchain.

Ideally I would prefer something that runs on JVM but that is not a hard constraint.

One method I have in mind is to run a private blockchain using Ethereum code but with my own genesis block. Will this approach work with other 3rd party Ethereum frameworks (such as Truffle)?

• Check out truffle. Allies you to easily use testrpc, testnet, and main net, and switch between them easily. – Thomas Jay Rush Dec 25 '16 at 17:13

Besides Browser Solidity (as @Rob Hitchens recommended), you could also develop smart contracts using Brownie. You could implement your smart contracts and test it on its local blockchain, where each transaction will be deploy right away and increment the block number.

Brownie: A python framework for Ethereum smart contract deployment, testing and interaction. https://eth-brownie.readthedocs.io

In addition to that you could also create your own private ethereum network, where blockchain will start from genesis block. If you build it as Proof-of-Authority you can fix time to 10-15 seconds for block time and and it will not consume any additional CPU usage.

Feel free to connect to A proof-of-authority private ethereum network (eBlocPOA) that I am using, please see the guide to connect.

You could find some guide to start your own private-chain:

• Creating private chain with Populus is recommended way for development, as public chain is way too slow to be useful for local development. – Mikko Ohtamaa Dec 23 '16 at 14:54
• Populus is longer maintained, it references Brownie to use – alper Jul 23 at 12:09

You can connect to a remote ethereum node such as INFURA, using the JSON RPC API, so you won't need to worry about maintaining and synchronizing a local node.

You can see this guide about using Truffle with INFURA

Disclaimer: INFURA Founder here.

• That's not a disclaimer: you should be proud of it! – Malvolio Dec 23 '16 at 19:33

You can work with Browser Solidity. It let's you experiment with Smart Contracts, compile them, run them and debug them using an in-memory execution environment (default), or the real thing. https://ethereum.github.io/browser-solidity/

testRPC is a sort of blockchain emulator that's very popular with developers. It will initialize a bunch of accounts and respond like a real blockchain would (mostly), but much faster.

Agree with Avatar, a private chain is another step toward realism before contending with the weight of testnet and the real thing. You can create a network as small as one node mining all by itself and test against that.

In addition to Infura, there are other third party ethereum node services such as QuickNode and Alchemy.

You can use Ganache to run a lightweight local ethereum instance on your computer. It's probably the best option if you start programming with its integrated block explorer and flexibility.

## protected by eth♦Mar 6 at 18:18

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).