I've gone through various Blockchain Tutorials but everywhere it's one or the other same thing. Download truffle/ganache, from 10 free testrpc account, use one, use metamask, Remix IDE etc, and Voila!Your Voting application is complete.

Please tell me how do I start? I need to build a website that creates a blockchain that stores Voters Details fetched from website, mines votes based on some authentication parameters, build my own blockchain network and not just relying on any APIs kinda stuff, and access those blocks, but can't change it.

How to start programming for blockchain?

http://www.dappuniversity.com/articles/the-ultimate-ethereum-dapp-tutorial https://itnext.io/build-your-first-blockchain-application-in-5-quick-steps-89ebb96adbfe https://medium.com/@mvmurthy/full-stack-hello-world-voting-ethereum-dapp-tutorial-part-1-40d2d0d807c2 etc.

P.S. I've gone through these websites for tutorials, so please don't ask to refer them.

3 Answers 3


without using any 3rd party extensions like Metamask, or IDEs like Remix

This suggests a fundamental misunderstanding. I don't think things will make sense until this is resolved.

IDEs like Remix

Avoiding IDE is like saying I want to write a story without using an editor.

Extension like MetaMask

Avoiding user-side wallets is like saying I want to make a web site without bothering with browsers.

Developers have a wide variety of tools they can use at different stages. Let us explore different concerns and how the tools can help.

Early Development Stage

Remix is ideal for fiddling with code. You can write smart contracts, compile them and interact with them at no cost and with near-instantaneous feedback. This helps you confirm your contracts compile and are feature-complete.

Quality Assurance

You can use the Ethereum testnets to deploy your contracts in a realistic setting. Testnet Ether (to pay for gas) is available free for the asking from Faucets run by volunteers. It's given away for free because it has no economic value. It this setting, you will wait for confirmation and pay for gas so you and your users can see a realistic simulation of how the DApp will work.

Deployment, UI and Unit Testing

One can work out the smart contract with Remix. Truffle is useful for deploying contracts to blockchains (testnet or mainnet), organizing and executing unit tests for the smart contracts and it creates an abrastraction layer and cleaned up syntax for the user interface. That will help make the UI code readable and more understandable from a developer perspective.

It is, of course, possible to interact with the contracts using lower-level calls, possibly down to the level of JSON RPC but that probably wouldn't make the task easier overall. The contract abstraction was created precisely to make the UI coder's life easier.

Tools do indeed introduce learning curves. One has to learn how to use each tool and learn when to use them, but avoiding the use of tools is seldom the answer.

Hope it helps.

  • Is a testnet static or dynamic? Like, just as in MySQL when a create a database and enter values it stays always untill its deleted and all further operations are performed referencing the database, does using the testnet also do the same? Can the values that I store in blocks always remain ? and can I fetch values even if I close the terminal/command prompt?
    – minsuga
    Commented Sep 1, 2019 at 15:35
  • Yes, saved values persist in a testnet. Testnets are not economically incentivized so they rely on volunteers and are thus less robust than the main net. It is a matter of strength of assurance. Commented Sep 1, 2019 at 17:03

You want to make it the hard way right ? well don't complicate things those tools called truffle suite are here to help you .. you only have to understand concepts behind them and don't look for other options. Even most experienced developers use them ..

  • Yes, I understand, truffle and all such tools that experienced developers use are always better. But, how can I show the users that it's anonymous, transparent, secure? As in , I need to demonstrate something, wherein all these tools have the following as inbuilt characteristics. I can't figure out how to start. Instead of theory, any small practical demos/code tutorials you know that might help me. I have hundreds of resources, but nowhere to start.
    – minsuga
    Commented Aug 30, 2019 at 15:04
  • It's a University Project, do everything, from entering the Voter details, how they remain anonymous, decentralized, needs to demonstrated in a visual way so that normal audience can understand.
    – minsuga
    Commented Aug 30, 2019 at 15:08
  • Ethereum is definitely not anonymous. It's pseudonymous, meaning you use your address as an alias, but every action you take on the network is signed and can be traced back to your account.
    – Ann Kilzer
    Commented Aug 30, 2019 at 15:22
  • well i am not sure if my advice will help you .. but try to start with truffle boxes .. download a box then run it and see the magic behind blockchain technology and how things fit together after that start understanding the code and the role of each tool ..
    – Abir HAMZI
    Commented Aug 30, 2019 at 18:43

Trying to build your own DApp without starting with MetaMask, Remix, or Truffle would be like trying to learn to drive a combine harvester when you've never driven a car.

I spent a lot of time puzzling over the "DApp University" tutorial you link to, and my impression was it really overcomplicates things. I made a tutorial for beginners on solidity DApps. I'm still tweaking it a bit, but it runs with Truffle, it's open source, and it has a web3 frontend. You can modify it to your liking.

I still stand by Truffle, despite its quirks, doing professional Solidity development because of it's powerful unit testing framework. These help you write high quality code, and since code deployed to the blockchain is hard if not impossible to upgrade, it's important to get it right.

CryptoZombies is a good tutorial, as well.

If you want to connect a web browser to a DApp, your browser needs to know how to speak to the Ethereum blockchain. That's what MetaMask and Web3.js do. You could also check out the Brave browser.

If you just want to write Solidity and don't care about the UI, you could start with looking at geth and solc. But the learning curve will be tougher than starting with Remix.

  • 1
    Thanks Ann, cryptozombies and your tutorial is helping me a lot more.
    – minsuga
    Commented Sep 1, 2019 at 15:39

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