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. Commented Dec 25, 2016 at 17:13

4 Answers 4


Creating a local in-memory blockchain (Ganache) with Brownie is recommended way for development.

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.

If you are required to experiement on a private chain, you can connect and use freely a proof-of-authority private ethereum network (eBlocPOA) that I have started and using, please see the guide to connect and feel free to contact with me through the github link.

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

  • 2
    Creating private chain with Populus is recommended way for development, as public chain is way too slow to be useful for local development. Commented Dec 23, 2016 at 14:54
  • 1
    Populus is longer maintained, it references Brownie to use
    – alper
    Commented Jul 23, 2019 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.

  • 2
    That's not a disclaimer: you should be proud of it! Commented Dec 23, 2016 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.


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.

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