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 say th

Motion Eye Docker compose File

Docker compose files are comes in handy when considering container orchestration. Below example shows my docker compose files and folder structure. ---- Your Folder (motioneye)   -- etc   -- lib   -- docker-compose.yaml You can run the docker compose file using docker-compose -d , and etc and lib folder will be automatically populated in the initiation. --- Below shows the content of the docker-compose.yaml file. version: '3' services:   nodered:    image: "ccrisan/motioneye:master-amd64"    container_name: motioneye    restart: always    user: root    ports:      - 8765:8765    volumes:      - "/etc/localtime:/etc/localtime:ro"      - "./etc:/etc/motioneye"      - "./lib:/var/lib/motioneye"

How to get Username , UserID in CAML Query

If you are want to get the userID you can simple use following code. <Where>    <Eq>       <FieldRef Name='userfieldname' />       <Value Type='Integer'>            <UserID Type='Integer' />       </Value>    </Eq> </Where> in here you should declare the UserID variable before it uses. normally If you make a user filter in the SharePoint designer it will automatically create the parameter in parameter binding section in the web part. <ParameterBinding Name="UserID" Location="CAMLVariable" DefaultValue="CurrentUserName"/> But assume you want to filter using a user name and the field is not a persongroup feild and it is just a text field. then you can use following query to archive it. <Where>    <Eq>       <FieldRef Name='userfieldname' />       <Value Type=’Text’>            <UserID Type=’Text’/>       </Value>    </Eq> </Wh