Sunday 3 June 2018

Week 2 at Cateina Technologies

In our second week, we started learning blockchain. Now let me explain to you what is blockchain?
Blockchain is a distributed database that maintains a continuously-growing list of records called blocks. Each block contains a timestamp and a link to previous block. Data stored in block is immutable, that means the data cannot be altered. Blockchains are an example of distributed computing system with high byzantine fault tolerance.
Byzantine fault tolerance system: It is actually like an algorithm developed to prevent catastrophic faults in fault-tolerant systems, like distributed computing systems. This algorithm makes sure that any faulty processes by any corrupt member of the system can be detected by other members via consensus or in simple words majority members agree to a particular process in the system. This algorithm is based on a famous problem called the Byzantine Generals problem.
In Cateina Technologies, we work on Hyperledger Fabric and Hyperledger Composer.
Hyperledger is an open source project on blockchain and related tools. It supports the development of blockchain based distributed ledgers. It is a permissioned blockchain solution.
Hyperledger Fabric is a popular framework for developing blockchains and distributed ledgers. Programming can be done in languages like Go language (by Google) and node.js.
Hyperledger Composer is a module for the framework where it can maintain and deploy the developed blockchain solutions. It has its own modelling language and an access control language which decides who does what in business network for blockchain.

Hyperledger Composer has a software called Composer Playground where you can develop the entire business network for your blockchain solution. It has model files which define assets, participants, transactions and events in business  network.
The modelling language is Object-Oriented modelling language. Assets, participants, transactions are class definitions. Assets and participants are followed by an identifying field. Transactions and events; their identifying fields are selected automatically.
An asset can be anything which has a value. It can be physical asset(house) or non physical (mortgage).
Participants are the organizations or people taking part in the business network.
Transactions are submitted by a participant to affect the assets held in the asset registries on the Hyperledger blockchain.
Events are defined set of instructions which can implemented once a transaction is carried out.
ACL(Access Control Language) determines which users are permitted to create, read, update or delete elements in business network. 

In our IOT project, which I mentioned in my previous blog; we now will combining the IOT project with a blockchain solution for it. The IOT project prototype consists of a contactless temperature sensor, arduino board and wireless sensor. The data from temperature sensor gets conveyed to the wireless sensor via arduino board. The wireless sensor sends the data to Hyperledger Composer and data gets registered in a block of the blockchain. An event gets triggered which enables a financial transaction for claim of goods in business between two parties within few seconds. 

Sunday 27 May 2018

Week 1 at Cateina Technologies


I have joined as an intern in a company named Cateina technologies, which specializes in field of Blockchain technology.
On my first day, I was introduced to all members of the company.Along with me, my two friends have also joined as interns in this company. With a brief introduction of the company and its various products and ongoing projects, we were assigned tasks. We started our day by learning a online course on Bitcoin and other cryptocurrencies by Princeton University. I learnt about hash functions and their applications, consensus mechanism, proof of work methodology used by Bitcoin and other features of cryptocurrencies. This cleared all the doubts regarding bitcoin and its working principle - blockchain, which I had only come across in newspaper articles.
We were assigned an IOT(Internet Of Things) project. We had to come up with a prototype for Cold Storage Solutions.We were provided with an arduino kit and asked to come up with solution, within one week (which we did complete!).
Rest of the day we brainstormed over various methods to solve the problem and wrote down the specifications of the given problem statement. We came up with model which used RFID tag system. But later learnt that other checks like cost, reliability, size, etc have to be taken into consideration for a successful prototype.
We had HR activity on the second working day. I volunteered for the non-technical news. So that morning I read and explained recent events happening in fields of politics, sports, entertainment, health and fitness. After presenting each article of news, everyone would pour in their own opinions and we would have follow up group discussion. I really enjoyed the half an hour seesion we had.
On the second working day, we came up with alternative solutions, like temperature sensor, ardunio board sending data via bluetooth module or wifi sensor or 3G/leap sield.The problem of identification of containers in truck was resolved by assigning unique identification numbers to each container and truck by the arduino board, thus replacing the costly RFID system out of our prototype. For achieving long distance communication, to send the temperature and id numbers of containers, we decided to use wifi module in our prototype.
We had 'Fun Friday' group activity in morning, on my third working day. Every team had to come up with ideas for their own 'Mini Cateina' company and present its company's agenda, misson, long and short term goals on paper.We had to present our company's goal and vision using newspaper and magazine cutouts.Each team would decide the CEO and respective members of company. That was also enjoyable.
On our third working day, we were completing our project and writing the code for the arduino board. We learnt how to code using Aduino IDE. We learnt how to build circuits. We simulated our temperature sensor by entering temperature values and wifi module was simulated using a LED alert. If temperature value would be out of range then an alert would be raised, otherwise not. At the end of the day, we presented it to our manager and it was accepted.