Part of list:
Technical Overview of Ethereum Platform
There is no doubt that the Ethereum blockchain platform is a game changer. There are lots of resources (articles, videos, platform documentation) about it, yet it’s still easy to get overwhelmed. Furthermore, many of them are outdated understandably because the platform is still evolving at a rapid pace.
It takes time to piece together and get a complete picture of what Ethereum is and how it works. Talking to developers in meetup groups and other online communities, it feels like there are many people who would like to get their hands dirty with this new technology but have the same issue. This article is our attempt at explaining Ethereum from a web developer’s point of view.
If you are a web developer, you know how a webapp with it’s client server architecture works at a very high level.
You have your web application hosted on a hosting provider like AWS, Heroku or a VPS. All the clients interact with this one central application. Clients can be a browser, another api consuming your service etc. When a client makes a request to the server, the server does it’s magic, talks to the database and/or cache, reads/writes/updates the database and serves the client.
This architecture works very well most of the times. However, there are certain applications where it would be really helpful if that database was publicly and securely accessible by everyone and you don’t have to rely on this webapp owner for your data.
For example, let’s look at eBay. If you are a power seller who has earned hundreds of good reviews and for some reason eBay suspends your account. That would be very bad and could severely impact your business. What would be really nice is the ability for you take all your reviews and ratings and move to another platform (say eBay Competitor). eBay does provide a service by being the trusted third party between buyers and sellers. But then, they also take a commission off each sale. What if there was a way to eliminate eBay altogether from the transaction between buyer and seller so you save on commission and also you have access to all your data? This is where decentralized applications come in to picture. Ethereum makes it very easy to build Dapps (decentralized applications).
This is how an Ethereum Dapp looks at a high level:
If you notice, every client (browser) communicates with it’s own instance of the application. There is no central server to which all clients connect to. This means, every person who wants to interact with a dapp (Decentralized Application) will need a full copy of the blockchain running on their computer/phone etc. That means, before you can use an application, you have to download the entire blockchain and then start using the application. This might sound ridiculous at first but it has the advantage of not relying on a single central server which might disappear tomorrow.
In reality, you don’t need to spend lot of your hard disk and RAM downloading the entire blockchain. There are a few workarounds/optimizations to keep the application decentralized yet make the interaction quick and easy.
Now, what exactly is this blockchain? It has:
So basically, the blockchain stores your data, stores the code and also runs the code in the EVM (Ethereum Virtual Machine).
Another big and most important feature is the financial capabilities of the platform. What if we tell you, as soon as you start using a dapp, you get an in built bank account? Actually, not one bank account, but you can create as many bank accounts as you like in a fraction of second? These bank accounts are called wallets where you store money (Ether - the currency used in the Ethereum ecosystem) and transact.
There are lot of details about the inner workings of the blockchain we left out deliberately because we wanted to concentrate on mostly comparing the blockchain based Dapp with a centalized webapp.