Skip to main content

Use Ethereum Blockchain for Enterprise Applications, Simplified

Before jumping to Blockchain word let's have a look at simple enterprise applications and their underline technologies.

No alt text provided for this image
Voting Solution


The above illustrates a real Business use case. Let's see the challenges of the current usual technical architecture and mitigations.

  • User should be able to Vote - This is not a complex requirement. unless the service is down, service SLA can be improved using proper DR techniques and using correct cloud infrastructure set-up.
  • Votes should not be able to change after the vote - This can be mitigated using proper crypto graphical controls. However, central control of the solution data is held by one party this can not be avoided.
  • Storage of the votes - This is quite challenging with the existing technology as storage of the votes data will be owned by one single entity. Regardless of security controls and processes implement in an organization to restrict access to data, there is always a risk of getting expose, manipulated, and availability cause of internal and external threats.
  • Accuracy of the votes - This totally depends on how secure the application and storage are. As long as storage is centrally owned people can debate about the accuracy of the

Understand the Ethereum Blockchain

No alt text provided for this image
ETH Network in laymen's terms

The above diagram simplifies the underline ETH blockchain technology. EVM (Ethereum Virtual Machine) is a hypothetical one machine but actually, machine data (state) is shared among Nodes participating in the ETH network. There is an advanced mechanism used by the network to make sure the data of the machine (we called the state of the machine) is not manipulated and is accurate.

The participant can run program (execute code) on this machine. This we called smart contracts. The output of the code will be saved among multiple machines (state) to make sure the accuracy of the data. Along with this transaction data will be saved in storage which we called as blockchain one after the other. Copies of this storage are shared among computers to make sure data is distributed and does not have any central ownership.

Advanced algorithms are used to make sure data accuracy and integrity. Since many machines are owned the data and operations of the network there is no central ownership of the data. There are still improvements going on to archive more decentralization and distribution in the network.

Back to our problem

Let's think that we store the votes in the Blockchain. In this case, we can eliminate the central ownership of the data. More entities will share the same information and manipulation will of the data be nearly impossible.

If you are planning to use public ETH blockchain then we have to pay for the nodes/validators to carry out our work. That's when we use ETH to pay for our smart contract executions.

On the other hand, we can run a private ETH blockchain with multiple validators. To ensure data transparency and d

No alt text provided for this image

Comments

Jumpers said…
Very helpful post;)

Popular posts from this blog

How to Link Two List and Create a combine view in the SharePoint 2010

In this way you can join multiple list together and can create a combine view. for an example assume that you are managing a list for some events. And also you are having a participants in separate list. Thus you want to join the two list and create a composite view. SharePoint 2010 allows you to create this kind of view using  Linked Data Source. in this approach you can create your own custom list in the SharePoint. How to Create a Linked Data source Go to SharePoint designer and  go to the link called data sources. And Click the Linked Data Source button in the ribbon. Then SharePoint designer will prompt following kind of a dialog. In there add two list, that you wan to linked together. I'm adding airline schedule and booking list. those are the two list that i wan to merge. then click next. And it will guide you another screen. it will ask you to select either Merge Merge use to combine list which are having same columns definition. for and example we can s...

The content database has a schema version which is not supported this version

How to copy you production SharePoint  database to development environment. I had my production environment as SharePoint 2013 SQL Server 2012 and I want to move the instance to another environment , which is freshly installed and different environment and different KBs Share Point 2013 SQL Server 2016 How to migrate SharePoint 2013 , SQL Server 2012 Content Database to SharePoint 2013 SQL Server 2016. Method 1. This is a general method, which is used for upgrading your content database. 1 . Get the back up of the current Content Database 2. Copy SQL backup to new environment 3. Restore the SQL Back Up in to the new environment 4. Go to the Security Login section and grant permission to content database for existing SharePoint Users.   5. You need to select the User mapping and DBO for the content database. 6 Then, execute below PS in SharePoint PowerShell. Make sure you executed as Run as Administrator 7 Firstly, You need to Update the content database. 8. then, mount the usi...

How to set Current User Name to InfoPath Person/Group Picker

This method also use for get User Profile Information such as First Name , Last Name , Office and etc. In generally we can not set a default value to InfoPath Person/Group Picker. On the other hand we can not get Current Username in the InfoPath. (Yeh it is true that we can use userName() function. But this will return the Current User Account ID not the name). So we want to use SharePoint user profile services to do this. First we need to  create a user profile connection. Thus First go to Manage connection and click add connection. Then go to receive data option and SOAP Web service and specify the User Profile Service URL . The URL will be something like ( http://sever/sites/site/_vti_bin/UserProfileService.asmx ). This is depends on your site or site collection. if it is a site collection you can omit /sites/site/ part from your URL. then proceed to next , select UserProfileByName and un select the Automatically load. Now you have created the connection....