Best Workforce Management Tools for Big Companies

Hello friends, I hope you all are happy healthy, and content. We have been discussing workforce management lately, today we will discuss another topic related to workforce Management which is none other than, "Best Workforce Management Tools for Big Companies."

Giant companies with thousands of workers need a systemic and uninterrupted workflow, with the advancement of technology workflow is fully automated through workforce management software and tools. We will discuss some of the best available tools for big companies in this article, let's get started:

Definition of Workforce Management

Let's define workforce management first:
  • Workforce Management is the amalgamation of different processes, which helps companies to optimize their employee's performance and workflow."

Workforce Management System

Now you have a clear idea of what is workforce management? we will proceed further with our discussion, as per our definition of workforce management, several processes are involved in this system, which is now fully automated and controlled by workforce management tools or software in our modern-day society, who wants to be surrounded by paperwork all day with heaps of files and papers to go through? Absolutely no one! That's why workforce management software is here to help us achieve bigger things with smart work, as they say, work smarter not harder!

  • I'm listing below a few possible systems which are automated through workforce management software which leads to an overall automated workforce management system;
    • Time tracking and attendance system.
    • Human resource management system.
    • Payroll management system.
    • Talent acquisition and talent management system.
    • Benefits management system.

List of workforce management Tools used by big companies

Big companies having thousands of employees use fully automated workforce management systems with the help of workforce management software, the reason for using such a highly sophisticated and efficient system is the fact that such a huge number of employees can not be managed manually, we will now be discussing a few immensely famous and widely used workforce management tools and software used by big companies.

ADP LLC

  • The first one on our list is ADP LLC, the workforce management tools provided by ADP, LL are matchless in quality and efficiency.
  • ADP LLC is a famous software used mostly by big businesses having an employee range of up to 1000+ employees.
  • According to an estimate, ADP LLC has 80,000 clients who use their workforce management software services and tools.
  • ADP LLC provides the tools for workforce management by automation of following systems;
    • Payroll Management
    • Time tracking and attendance
    • Talent acquisition and management
    • Tax management
    • Leave Management
  • ADP LLC can help you recruit and train new employees through their fully automated system.
  • You can also keep track of your employees performance by strong analytics of ADP LLC.
  • ADP LLC has a mobile app for time tracking which is accurate and up to the mark, through time tracking system employees can log in anytime without using plenty of timesheets.
  • The leave case management process is also very convenient by tools provided by ADP LLC software, in case an employee wants to apply for annual leave, leaves can be viewed and approved easily through the app by workforce managers.
  • A big company has to deal with a lot of legalities, ADP LLC can manage your Taxes according to regulations of federal, state, and local government.
  • ADP LLC offers a three months free trial as well although, with a few terms and conditions, you won't see it anywhere else, maybe there can be a few exceptions in the industry but a free trial for such a sophisticated system isn't a common thing.
  • You can get a quote In case you want to buy the services and tools provided by ADP LLC, just fill the form and submit it and patiently wait until their team gets back to you.

Paylocity

  • Paylocity is a versatile workforce management software retaining everything you need for seamless and effortless workforce management.
  • Paylocity provides countless tools through its workforce management software for the automation of the workflow for big companies.
It is responsible for;
  • HR management
  • Payroll management
  • Talent acquisition and management
  • Benefits management
  • PayloCity is client-oriented and user-friendly.
  • The tools for time tracking and scheduling are powered by the geofencing parameters and time clocks.
  • Talent management is done through fully automated recruiting software, attracting candidates which are perfect for the company using the tools provided by Paylocity.
  • Paylocity has top-notch analytical tools that provide data insights with highly analyzed reports and surveys to improve the operation and productivity of the company.
  • A payroll management system of paylocity is highly sophisticated which can be configured and can be incorporated with any service provider you want.
  • If you are a big company thinking to buy a full-fledged service of paylocity, then tools provided by paylocity for workforce management through their fully automated software can certainly live up to the expectations, go for it!

Workday

Workday provides high-quality tools for workforce management in big companies through their all-in-one workforce management software. Workday is a one place solution to all the following through their workforce management software;
  • Human resource management HR
  • Talent acquisition management
  • Enterprise management
  • Payroll management
  • Workday workforce management software has an outstanding time tracking tool powered with geofencing, through this efficient tool the employees receive an indication or alert for check-in and check-out when he or she embarks the site of the job.
  • Workday workforce management software provides the facility of self-service to employees by empowering them with the option of entering and editing their data through the workday workforce management mobile app.
  • Workday also provides another tool to the employees i.e they can view the full schedule and timelines of the project from the company calendar which is accessible to everyone, keeping everyone updated on the current situation.
  • The payroll system can also be integrated with the service provider of your own choice, all thanks to the tools provided by workday.
  • One of the most amazing featuring of the workday is that it also provides an open shift board with a swapping option your employees can easily mention their availability and take a paid time off.
  • Workday provides an analysis of global labor cost with this tool the company high ups can view the global labor trends and ongoing situation of the industry with the strong analytical tools of the workday, it helps big companies in making better decisions for growth and prosperity.
  • workday offers different packages to companies according to their size, You can get the per-user cost from the customer support team of the workday, by filling a simple form available at their website.

Teleopti

  • Teleopti provides tools for workforce management to Enterprise Level businesses.
  • Teleopti workforce management software is specialized for the following;
    • Staffing
    • Scheduling
    • Tasking
    • Customer support of the company using teleopti
  • Teleopti fully automates the workflow of big companies by effectively managing staff and creating automated schedules for the employees.
  • Strong analytical tools provided by teleopti are used for analyzing the performance of the employees.
  • Another astounding feature of Teleopti is the tool provided by teleopti for generating in-depth and well-analyzed reports, helping companies improve their customer service operation.
  • Teleopti allows a provision of fully automated training of employees to cover their lackings in different fields, helping the employees improve their skill and competency.
  • One of the most amazing tools provided by Teleopti workforce management software includes the internal communication option by instant alerts and text notifications within the working hours, keeping everyone aware connected, and on track throughout the day.
  • Many big companies vouch for their services in terms of their customer service tools and analytics, you can also get a quote by filling a simple form available on their website.

Paycom

Paycom provides workforce management tools to big companies that ease the automation of the following systems;
  • Human Resource Management
  • Payroll management system
  • Paycom can help you manage the payroll process within hours with a single click, that is why is mostly used by big companies. They provide an extremely smooth workflow and above all, Paycom claims to be everything you need for workforce management from hiring to retiring!
  • Paycom is mostly used by enterprise-level companies for managing their workforce with a very user-friendly app that is easily available on the play store.
  • In the paycom app, for performing Managerial tasks and services, There is a remarkable feature of the Manager on the go, the tools available in the manager on the go helps manage the following;
    • Tacking time cards
    • Approving and rejecting Time off requests made by the employees
    • managing schedules
    • Supervise expenses and overall finance of the task
  • The Paycom app has a very simple user interface for employees of every rank, every employee has his or her login id and security pin for logging in to the account.
  • For attendance and time tracking employees can instantly clock in and clock out through their Paycom mobile app.
  • Paycom provides tailored workforce management tools to the big companies, you can easily get a quote by filling a form on their website.

Skedulo

  • The next most amazing of all the workforce management tools provider is skedulo, the workforce management software which automates everything from A to Z, but hey! There's is a twist, it used by big companies which hire people who don't work in the traditional office setting.
  • You can yourself imagine the network of Runway, DHL, American Red Cross among many others which use skedulo for their day-to-day tasks.
  • Skedulo provides effective tools for the automation of the following processes;
    • Tasking of the employees
    • scheduling of the employees
    • Preventing Over job scheduling of the employees
  • One of the most remarkable tools of skedulo is the deskless productivity cloud for managing the system especially for the employees who are working remotely because it helps them manage their day-to-day tasks effectively.
  • Let's talk about the skedulo app which is highly talked about by the big companies, Skedulo app has the following features;
    • Scheduling and tasking jobs
    • Synchronized calendars for employees
    • Online and offline maps
    • Photo attachment alternative
    • Electronic Signature alternative for customers
    • Mapping and routing of the employees which is used to locate an employee as well
    • Chat and communication feasibility for staffers in the same team or job
    • Leave submission and approval by the employees
    • Mobile forms that can be easily filled and submitted by the employees and consumers
  • Analytics provided by skedulo workforce management software help in full automation and a reminder of daily tasks through skedulo deskless cloud software, lowering the cost of on-site and off-site tasks and projects.

 BambooHr

BambooHr is an all-in-one tool for workforce management and helps in the  following;
  • Human Resource Management
  • Tasking system
  • Scheduling system
  • Time Tracking system
  • Leave Management system
  • BambooHr has a cloud-based system that gathers, stores, and analyzes employee's data at a cloud-based database with utmost security.
  • The most distinctive feature of BambooHr is their time off feature, the time off feature is used by the employees for sending leave requests by following a simple procedure, the HR Managers can approve the leave request with a single click, convenient and simple! Isn't it?
  • Scheduling and tasking tools are very convenient to use in BambooHr workforce management software, the mobile app of bambooHR is highly user-oriented, managers can schedule anything on the calendar and publish it for their employees.
  • The electronic signature tool introduced by BambooHr enables the employees to sign documents anytime without any pen or paper, this is indeed a great step to reduce paper waste and automate workflow without using heaps of papers.
  • BambooHr has an excellent internal communication system, Announcements can be made through the BambooHr app for a specific project or a task and it reaches everyone within a matter of seconds.

Reflexis

  • Reflexis provides workforce management tools to big companies like American Eagle, outfitters, MacDonald's, The home Depot, Sunglass Hut, and many more.
  • Reflexis workforce management software provides tools to automate the following systems;
    • Time tracking
    • Scheduling
    • Labor management
    • Forecasting
  • Reflexis is powered by an AI system to automate the workflow of big companies through their workforce management software.
  • Reflexis help in the overall management of the company's workflow by automated schedules which can be immediately viewed by the employees once they are issued by the workforce managers. The scheduler tool of the Reflexis software is compatible with both the Android and iOS systems.
  • Reflexis enables its users to clock in and clock out during shifts or designated working hours, you can easily manage paid time off, shift swaps missed shifts, and leave management.
  • Reflexis strong analytic tools provide insights about the current situation of budget, labor costs, and other expenses. These in-depth reports make it possible for the big companies to reduce their labor costs and cut down extra expenses.

Kronos Workforce Central

  • Kronos workforce central is being annually used by forty million users, which is definitely a huge amount, isn't it?
  • Big companies opt for Kronos workforce Central because of the tools it provides for the automation of the following systems;
  • Tasking system
  • Human Resource Management system
  • Scheduling system
  • Time tracking system
  • Payroll management system
  • Tax management system
  • Kronos workforce Central enables the big companies to automate their workflow, the HR system which needs a lot of time and dedication is easily managed by Kronos workforce Central tools.
  • Kronos Workforce Central has a remarkable tool for analyzing daily operations, the workforce managers can easily probe into the in-depth analytics of the ongoing project through the dashboard in the app.
  • Time tracking is also a hassle-free process when it comes to the time management and tracking tools of Kornos workforce Central, workforce managers can view the individual time punches, availability, and location of any employee, on the parallel line employees can instantly clock in and clock out according to their Working hours.
  • Kronos Workforce Central provides excellent tools for scheduling that prevent overstaffing, moreover, the self-service facility provided by Kornos workforce Central to its employees helps them to mention their availability and swap shifts.
  • Kronos Workforce Central has in-built tools to calculate the working hours of employees for payroll management, this payroll management, and integration considerably reduces the time from days to a few hours for payroll processing and management.
  • The workforce management system provided by Kronos Workforce Central can also be integrated with other third-party apps and products to keep the important documents in a single place for a smoother workflow.
  • The only drawback to the Kronos workforce Central tools is that they require dedicated training to be used efficiently and easily, you can't expect to operate everything without a proper training program or demo.

Oracle Workforce Management Software

Oracle Workforce Management software is a web-based system used by enterprise-level companies. It helps in the automation of the following processes;
  • Human Resource Management System
  • Time tracking system
  • Scheduling and tasking system
  • Forecasting system
  • Attendance management system
  • Payroll management system
  • Talent acquisition and talent management system
  • Oracle Workforce Management provides tools for data analytics, the in-depth data analytics helps take important decisions regarding tasking and scheduling of employees.
  • Oracle Workforce Management system enables the integration of payroll management system with the working hours of the employees, it eventually helps in keeping the payroll management process simpler, easier and quicker.
  • The user interface of the system is super easy and convenient, the drag and drop functionality makes it possible to add unlimited data daily into the system.
  • Company calendar which is always visible to the employees with important details, projects, and milestones is always the highlight of the day for people using the Oracle Workforce Management system.
  • Oracle Workforce Management system has an error-free time tracking and attendance system, the inbuilt tools determine overtime and premium hours of the employees without any glitches.
  • The system of Oracle Workforce Management software is highly configurable, there is no need to make changes and amends in the source code of the product for the addition or deletion of a certain feature.
  • Oracle Workforce Management system makes it possible for big companies to identify the areas of less productivity for rectification, all thanks to their strong analytical tools.
  • You can easily use the Oracle Workforce Management system for any type of employee, either hour-based, remote, onsite, office-based, or shift-based.
  • Oracle Workforce Management system provides tools for very strong internal communication, Hr managers can release an instant alert for the employees about a certain disease, emergency, or unsafe situation, ensuring the safety of everyone around.
  • Oracle Workforce Management system provides a constant twenty-four hours support to the companies using their system for managing a smooth and effective workflow.

TimeTrex

The last entry for the workforce management tools used by big companies is the TimeTrex software, TimeTrex provides the following services to its clients by automating the whole system;
  • Human resource management system
  • Time and attendance management system
  • Payroll management system
  • Talent acquisition and management system
  • Leave Management system
  • The most famous of all the tools provided by TimeTrex is the attendance management tool, your employees don't need buddy punching at all, biometric facial recognition is the new trend to be followed, alongside facial recognition, QR code can also be scanned for attendance, these time clocks inbuilt in the TimeTrex software can recognize the employees even with hats, glasses and facial hair.
  • You can set ultimate rules for the time and attendance software as well, it significantly reduces the chance of human error while calculating overtime, accruals and premium hours.
  • Another amazing tool provides by TimeTrex is the synchronization of the company schedule for the employee with his or her phone calendar, you can't even forget a day or date for a meeting or event, in case you ever want to!
  • Payroll management is a wholly manageable process for the companies using TimeTrex, as time tracking has already been connected with QR code, the system immediately calculates the working hours and associated salary with a single click, you can integrate it with a third-party service provider, and above all TimeTrex provides inbuilt tools which calculate relevant taxes as well.
  • If you are looking for an all-in-one system for your company then TimeTrex can definitely be your best bet.

It's a wrap for today, TimeTrex concludes the best workforce management software used by big companies, I presume it has been an informative journey for you. It is never easy to find your best match in one go but real customer reviews always help, just in case you are wondering how would you find the best of all the available tools! If you know the best tool for workforce management, then you can mention it in the comment section below. I'll see you with another discussion soon. Have a good day ahead!

Diode: Definition, Symbol, Working, Characteristics, Types and Applications

Hello friends, I hope you all are happy, healthy, and, content. Today, our discussion is all about "Diodes". Whoever has been a science student, knows about diodes. Although it seems to be a tiny component of a circuit, apparently it is true but it has a lot of complexities or you can say, it's a storm in a teacup. You might have read a lot about diodes in physics, in today's discussion we would be moving step by step into the pool of diodes from definition to working of diodes, their types, and then lastly its applications. Let's get started!

Diode Definition

First things first, Let's define diode,
  • A diode is a basic discreet electronic component made up of semiconductor material, used in electronic circuits, which allows unidirectional current to flow through it, i.e it only conducts current in one direction.
  • You must be thinking, how is it possible for a device to conduct electricity in only one direction only, even when it has two terminals?
  • The answer lies in making of a diode, a diode has zero resistance in one direction, meanwhile, the other direction has infinite resistance, hence maintaining the flow in only one direction hindering the flow in other direction, but keep one thing in mind, its an ideal case, otherwise a little bit of current flow is always there and ideal cases do not exist!
  • A diode can act as a conductor and as an insulator as well. When the diode is reverse biased it acts as an insulator meanwhile when a diode is forward biased, it acts as a conductor.
  • Diodes are mainly made up of two famous semiconductors silicon and Germanium.
  • There are several different types of a diode, make of each one differs according to its function and the way it transmits current, don't worry we are going to have a detailed account of it soon.

Diode symbol

  • The above symbol represents a diode, it's the symbol for a basic diode, let me clear one thing for you, there are several different types of diodes that we would be studying next and each one is represented with a different symbol accordingly. So, do not doubt yourself when you see a slightly different one!
  • You can observe two ends or two terminals labeled as cathode and anode respectively.
  • The Arrowhead represents the anode and direction of current flow.
  • The other end is the cathode represented as a line attached to the terminal vertex of the triangle representing the anode.

History of Diode

Here is a brief account of the history of diodes, a little touch-up hurts no one!
  • So, the History of diodes dates back to 1900 when the thermionic diodes and semiconductor diodes were made for radio.
  • Vacuum tube diodes were the trendiest items of early 1950 being used and altered by several scientists through different experiments such as Fredrick Guthrie and Thomas Edison.
  • Fleming valve was the first recognized diode of its age with all the elements present in a diode in the true sense.
  • In world war ll, crystal diodes and Crystal rectifiers were used intensively in radar systems which led to extreme usage and development in the diode world, all thanks to their wide window of utility.

Working and Construction of Diode

In order to understand the working of a diode, let us first discuss its basic structure, how would you understand the working until unless you understand the make and build of a thing!

The basic structure of a Diode

  • A basic diode is made up of a semiconductor, a p-type semiconductor and an n-type semiconductor joined together. Do you have a basic idea of semiconductors? Semiconductors are materials that have properties lying within the spectrum of metals and nonmetals, you can read our detailed article on the periodic table if you want to know more about the elements and their respective properties.
  • Anyhow, we were talking about semiconductors, semiconductors are of two types, Intrinsic semiconductors, and extrinsic semiconductors.
  • Intrinsic semiconductors are pure semiconductors without any additional impurity. They include silicon and germanium.
  • Extrinsic semiconductors are the ones with doping, don't worry we are about to discuss it next.
  • I hope you have a general idea about p-type and n-type semiconductors, if not, we have got you covered. Read the next section for details;

Doping in Semiconductors

To understand p-type and n-type semiconductors, you must be aware of the concept of Doping. We can define doping as; Doping is the intentional addition of impurities into an intrinsic semiconductor. It changes the physical, electrical, and optical characteristics of that very intrinsic semiconductor.

1. p-type semiconductors

  • A p-type semiconductor is made by doping i.e adding an impurity which is an electron acceptor by nature into the semiconductor i.e gallium and boron are added to the silicon, turning it into a p-type semiconductor.
  • You must be thinking about why they are called p-type semiconductors? Let me tell you, The name p-type is given due to the presence of a positive charge on the semiconductor.
  • The p-type semiconductor contains a majority of holes and a minority of electrons.

2. n-type semiconductors

  • The n-type semiconductor is made by doping the semiconductor with an electron donor element.
  • The n-type semiconductor has a majority of electrons and a minority of holes.
  • The name n-type is given due to the negative charge of electrons present in the semiconductor, you knew that already, or you didn't?
  • Arsenic and phosphorus are used for the doping of silicone making it a n-type semiconductor.
Now we are done with the basics of n-type and p-type semiconductors, let us discuss their utility in making a semiconductor diode. The following section includes a breakdown of components and concepts lying in the scope of diodes.

PN junction

  • Our discussion would be incomplete without the PN junction, can you think of a diode without it? Yes, there are a few exceptions but typical ones necessarily have a PN junction.
  • As I have told you earlier semiconductor diodes are made up of n and p-type semiconductor materials joined together to make a diode.
  • The merger of these two materials is responsible for the making of PN junction made between the contact point of two materials.
  • After the formation of the PN junction, the process of diffusion takes place, we would be discussing it next, don't worry!

Depletion Region

  • There is a considerable difference between the amount of holes and electrons on both sides. If you know about the simple concept of diffusion, a particle moves from the area of higher concentration to the area of lower concentration and vice versa, same happens here, the holes from the p side move to the n side of the diode.
  • Meanwhile, electrons move from the n side where they are higher in concentration to the p side where they are lower in concentration.
  • This movement of electrons and holes generate a diffusion current leading to the formation of an immobile layer of positive and negative ion on the PN Junction, this layer is called depletion region.
  • Now you must be thinking why I'm telling you about the depletion region? Why is it necessary?
  • The depletion region limits the diffusion of electrons and holes from the opposite doped semiconductor portion, otherwise, after the constant diffusion, all the electrons and holes would have been diffused into each other leaving behind almost no charge carriers to conduct the current when the diode is connected to the battery.
  • On the other hand, the size of the depletion region maintains the current flow and resistance. Larger the depletion region, the Larger the resistance. You will understand this concept more easily once we would be done discussing the forward and reverse biasing of the diode and characteristics of the diode. Stay tuned!

Biasing conditions of the Diode

To understand the working of a simple diode, you must know about the biasing conditions of the diode first,
  • Forward biasing

  • Reverse biasing

  • Zero biasing

1. Forward Biasing

  • When the positive terminal of the battery is connected to the p-type semiconductor meanwhile the n-type semiconductor is connected to the negative terminal of the battery it is called forward biasing of the diode.
  • The depletion region is very thin in this case and it is easier for the forward Voltage or VF to overcome the depletion region for conduction of current.
  • PN junction offers very little resistance to the current flow due to the thin depletion region.
  • In forward biasing condition, an ideal diode has zero resistance, but as I told you earlier, an ideal condition does not exist.

 2. Reverse Biasing

  • In reverse biasing condition, negative terminal is connected to the p-type region of the diode, meanwhile positive terminal is connected to the n-type region of the diode.
  • The depletion region in this case is very thick.
  • The PN junction in reverse biasing offers a very high resistance due to the thickness of the depletion region.
  • A diode in ideal condition when reverse biased has infinite resistance.

3. Zero biasing

  • Voltage has not been applied to the diode, in zero biasing condition.
  • In zero biasing conditions, there is a thermal equilibrium in the diode.
  • The natural potential barrier is present in the diode, which is 0.5V to 0.7V for silicon and for germanium this potential barrier is 0.3V.

Characteristics of diode

  • We have already learned about the forward and reversed biased condition of the diode, in order to understand the current and Voltage characteristics of both the conditions , consider the following graph consisting of a single characteristic curve.
  • The voltage is usually plotted on the x-axis of the graph meanwhile the current takes the y- axis.
  • The starting point of the graph can be seen in the center, where both the values i.e current and the voltage is zero.
  • Forward current can be observed extending upwards, above the horizontal axis meanwhile, reverse current extends downwards.
  • In the upper right corner you can see the combined values of forward voltage and forward current.
  • The lower left corner shows the combined value of reverse current and reverse voltage.

Forward Characteristic of Diode

  • We have already studied about the forward biasing of the diode, forward characteristic corresponds to that.
  • In forward characteristic the current IF flows in forward direction and depends on the amount of forward voltage VF.
  • The relationship between VF and IF is called IV characteristic of diode or ampere volt relationship, this is the point of focus of our discussion!
  • When forward voltage is zero i.e
  • 0V, the forward current IF is also zero i.e 0mA.
  • From the graph we can clearly see that the increase in forward voltage , VF causes can increase in forward Current IF, when the value starts from the point 0 of the given graph.
  • Now its the turn for the most important point of the curve, the knee voltage denoted as VK.
  • You must be thinking why we call it knee voltage? And how is it achieved? Have a look at the line formed , it seems like an extended knee, so we call it knee voltage. Knee voltage is the point where forward voltage VF is large enough to overcome the depletion region of the diode and there is surge in forward current IF, marking the highest point of voltage, knee Voltage VK.
  • Knee voltage varies from material to material i.e VK is material specific.

Reverse Characteristic of Diode

  • During the reverse biased condition, a very little current is conducted by the diode.
  • You can observe the Reverse Voltage and Reverse current in the graph, represented by VR and IR respectively.
  • There is a very little amount of charge carriers which conduct the reverse current IR.
  • We cannot observe a considerable increase in Reverse current IR even with a large amount of Reverse Voltage VR.
  • VBR is one of the most important characteristics of the reverse biased diode, its the breakdown voltage of the reverse biased diode which refers to the amount of voltage at which the reverse current IR increases rapidly breaking the PN junction.

Diode Equation

Following equation refers to the ideal condition of the current and voltage of a diode either in forward biased or reversed biased condition; The equation corresponds to the following things;
  • I is the diode current sometimes represented as ID as well.
  • IS is the reverse bias saturation current and is not constant for any device, it usually varies with temperature.
  • VD is the voltage across the diode
  • VT is the thermal voltage which is equal to 25.8563 mV at 300 K.
  • In other conditions, Vt equals Boltzmann's constant × temperature ÷ electron charge i.e kT/q
  • n is the ideality factor, also called the quality factor and emission coefficient.
  • The equation is called Shockley ideal diode equation in which the ideality factor is preset to 1.
  • In other conditions, the ideality factor can range from 1 to 2 or maybe higher than that in some cases.
  • In forward bias condition, the ideality factor is almost negligible and the equation can be written as;

Types of Diode

With the advancement in technology and increasing human needs, diodes also changed shapes and took over several functions, there are several types of the diode, some of them are explained below;

1. Zener Diode

  • It is a heavily doped PN junction diode that works in a reverse-biased condition when a certain specified voltage is reached, this voltage is called Zener Voltage.
  • The Breakdown voltage marks the best possible functional capacity of the diode.
  • Zener diode is used for voltage regulation, you may observe one in clipping operations, circuit protectors, surge suppressors, and switching applications among the countless other uses which can not be listed here at once.
  • They are available in different zener voltages and can be used according to the need.

2. PIN diode

  • A PIN diode is a semiconductor diode having a wide undoped semiconductor region sandwiched between heavily doped n-type and p-type regions.
  • PIN photodiode doesn't rectify or distort the signal.
  • They have a wide range of applications being used in microwave switches and radars.
  • PIN diodes are also used in fiber optics and photodetectors.
  • Gamma rays and x-ray photons can be detected using a PIN photodiode.

3. Schottky diode

  • This is not like a typical PN junction diode, Schottky diode is made by the combination of the metal with the n-type semiconductor.
  • Because of the absence of a typical P and N-type combination, we do not see a depletion region in this diode.
  • They are also called the hot carrier or Schottky barrier diode.
  • These are highly efficient and used in digital devices which are highly sophisticated and fast.

4. Photodiode

  • This is one of the most famous types of diodes which are almost known by everyone. A photodiode is a semiconductor p n junction.
  • It works in a reverse-biased condition when current is generated on the absorption of light, i.e it converts light in current.
  • They have countless applications in the medical, automotive, and other industrial fields such as CAT scanners, PET scanners, light meters, cameras, bar code scanners, and whatnot!
  • Photodiodes are used in signal demodulation, detection, and switching.

5. Laser Diode

  • Have you ever thought of the full form of the word LASER? You might have, but for the people who haven't, here it is, light amplification by stimulated emission of radiation.
  • Laser diode works on the principle of stimulated emission.
  • A laser diode works exactly opposite to the photodiode, it converts the voltage into high-intensity coherent light.
  • The p-n junction of acts as the active region or laser medium of the diode.
  • Laser diodes are highly efficient and can be produced at much lower costs than other diodes known to us.
  • Laser diode requires a lower power to operate and produce coherent light than other diodes.
  • There are countless applications of laser diodes being used in radiological scans, barcode readers, laser pointers, laser printing, and much more.

6. Tunnel Diode

  • A tunnel diode is also known as Esaki diode.
  • Tunnel diode as the name suggests works on the principle of tunneling, based on quantum mechanical effects.
  • These diodes have a 10nm pn junction which is heavily doped which works on the negative conductance property of the semiconductors.
  • Tunnel diodes are used in high-frequency oscillators and receivers, microwave circuits are also made using them.
  • They are not widely used in every other circuit because of their low current.

7. Varactor diode

  • Varactor diode is made up of two things, a diode and a variable capacitor. They are used as voltage-controlled capacitors.
  • It is also named as varicap diode.
  • A varactor works in a reverse-biased condition, I hope you know how the reverse-biased condition works, don't fret, if you still don't know, give it another read from the previous sections.
  • They are used in frequency modulation, RF phase shifter, and have multiple other applications.

8. Vacuum Diode

  • It is the simplest form of the diode and works on the principle of thermionic emission. It does not a PN junction, which are present in the modern day diodes, it's an old school one!
  • The cathode and anode are made up of specified metals, different metals are used for the purpose.
  • Both the cathode and anode are enclosed in a vacuum tube.
  • The cathode is heated with the help of a power supply which in turn releases the electrons, these electrons are then attracted towards the anode.
  • The stream of electrons flows from cathode to anode generating current.
  • Vacuum diode only works in forward biased condition, in reverse biased condition, it does not work.
  • It is the most primitive form of the diode and was used in almost every electronic appliance in the twentieth century, when technology was about to touch the new horizons, there were many available options such as radio, television, computers, and telephones to name a few with a vacuum diode as their functional component.

9. LED

  • First things first, please do not call it LED diode, led already is a complete word, Light emitting diode, you can not write it , light emitting diode diode, or can you?
  • Who is not aware of the light emitting diodes in this modern age? With endless advertisements and media campaigns, we all have a vague notion about LEDs to an extent.
  • Light emitting diodes are similar to laser diodes but they do not emit laser beams on applying voltage.
  • LEDs work in forward biased conditions i.e on applying and increasing voltage, current also increases emitting a non-coherent light.
  • They are widely used in digital devices for display screens, optical fiber communication, and several detection systems.

10. Gunn diode

  • If you remember, I told you earlier about the diodes without a PN junction, Gunn diode is one of them.
  • The Gunn diode is a transferred electron device TED, which works on the Gunn effect, named after a scientist. It's a negative differential resistance device.
  • There are three regions in total, N- region is the negative region, which is sandwiched between two P+ regions which are heavily doped.
  • The materials used in the formation are Indium phosphide and Gallium Arsenide.
  • It is a low-power oscillator used in the production of microwaves.
  • Gunn diode provides high reliability, and high bandwidth at comparatively lower costs than other available options.

Applications and examples of Diode

As we are at the terminal stage of our discussion, you must be aware of the wide window of utilities we have for diodes, here is the list of few uses of diode which you might already know to an extent;

1. Inverter Technology

  • You must be aware of the inverter technology used in modern appliances, they make use of rectifiers which convert the alternating current into direct current.
  • Power conversion with the help of diodes has worked as the game-changer in the electronic world, the conversion of alternating current into direct current or higher dc voltage has revolutionized modern technology. You might have seen endless advertisements of invertors technology in home appliances such as air conditioners, and refrigerators to name a few.
  • Automotive alternators and voltage multipliers are the well-known examples in this respect.

2. Boolean logic gates

  • All of us have thoroughly learned boolean algebra and its logic gates in physics or somehow in computer sciences as well, I always had a love-hate relationship with the logic gates, I still don't know why!
  • Those logic gates especially the AND and OR logic gates can be made using diodes and other necessary components required to complete the circuit.
  • Diode logic gates were used a lot in the earlier production of computers when other available options were not cost-effective.

3. Signal Demodulation

  • Do you know, what is signal demodulation? Let me answer this first, Picking up the actual signal from the modulated wave is called signal demodulation.
  • Signal demodulation is carried out by the diode, usually for radio signals.
  • The basic task is to remove the negative signals from the carrier wave, generating a clear output signal in terms of sound or an image.
  • Signal demodulation is one of the most important things done by diodes.
  • Can you guess how this process is carried out? The AM envelope detector, which is simply a diode and an RC circuit the leads for demodulation.

4. Electronics

  • From transistors and rectifiers to Light emitting diodes and an endless spectrum of usage, diodes have a significant place in electronics.
  • Diodes have plenty of variants to choose from, such as Diode 1n4004 is the most famous diode, which is used for rectification. It has a maximum current carrying capacity of 1A, there are plenty of options you can use as per your requirement.
  • One of the most observed examples includes the LEDs, the festive fairy lights to large traffic signal lights and radiological detectors, we all have seen endless diodes in our lives.
  • Zener diodes and tuning diodes act as voltage regulators, without them, your circuits would suffer a burnout soon, nobody can withstand a financial and human loss in general at such a large scale.
  • We have discussed all of them in detail, you can refer to the section above, in case you have skipped it!

5. Bypass Diodes in Solar panels

  • Hot spot heating is one of the many problems faced by the solar system, the solar cell gets damaged due to the low output in presence of shade, dust or snow or any other factors hindering the sunlight to the solar cell.
  • Now, you must be thinking about how a hotspot is formed even though the cell itself is not working?
  • It is absolutely true that the cell is not working, but the other cells are functional and the current of these cells flow through this faulty cell, heating it up and making a hot spot.
  • For this purpose, to protect the faulty cell, bypass diodes are used. This is one of the least celebrated uses of diode indeed!
  • These bypass diodes are connected in parallel with the solar cells which helps to reduce the flow of current through the flawed solar cell, making the current flow through an external circuit.

6. Diodes as Clippers

  • Let's first discuss the function of a clipper circuit, in case you don't know, a clipper circuit is used to cut down certain parts of the signal, without disturbing the actual waveform, imagine you are making a sandwich with the sandwich cutter, upon cutting with the stencil the sandwich takes the shape of the cutter only from the corners, shedding off the extra parts and bits, but the actual build and assembly of the sandwich is not disturbed, the clipper does the same with the signals.
  • These clippers are usually of two types, shunt clippers and series clipper, depending on their function.

7. Diodes in Radiology

  • Have you ever been to the hospital for a scan? For a broken bone or for a diagnostic one?
  • Laser diodes are the ones used for this purpose, we have already read about them in detail in our previous section.
  • Nowadays, laser diodes are even used for surgical treatments such as retinal repair, and other eye-related surgeries. Lithotripsy is also done by laser, the stone in your kidney is broken from outside of the body, through a laser beam without any incision. Isn't it revolutionary? Definitely, it is!
So, friends, it was all about diodes, I presume you have a clear understanding of many concepts related to diodes including their basic structure, working,  types, and applications. I tried to keep it simple but significant, You can re-read the section you least understood, it happens to everyone and it helps. See you with another soon, have a good day ahead!

Ethereum Transactions

Hello friends, Hope you are doing good and having fun. I am here with another article on the blockchain. Previously, we have discussed the blockchain, some of its concepts, and its characteristics, and today I will talk about transactions. We would also explore the concept of gas in this tutorial. So let’s start by defining a transaction.

What is Ethereum Transaction?

  • A transaction is a message signed by an account owner that is added to a block and recorded in the blockchain.
  • A transaction is initiated by an externally owned account and then it gets transmitted to the Ethereum network.
  • It can be originated only by an externally owned account (an account owned by a human) and not by a contract account.
  • Through transactions, one can interact with the Ethereum world. As a result, they change and update the state of Ethereum.
  • The transaction can be any action such as transferring ether or calling functions of a smart contract. Consequently, the state of the Ethereum virtual machine (EVM) is changed. For example, when account x transfers some ether to account y, a transaction is initiated and after that, the balances of both accounts are updated. The new balances are then stored in the Ethereum network.
  • Any account or node has the right to initiate a transaction. But it must be verified through mining.
  • Every transaction has a gas limit and a gas fee. This fee is given to miners as a reward for verifying (or mining) that transaction. I will cover the concept of mining in my next tutorials.

These points highlight the importance of a transaction. You can see that a transaction is the only thing that can change the state of the Ethereum virtual machine. By transaction, you can execute a smart contract or deploy a new smart contract to Ethereum and there is no other way to do that. Contracts cannot deploy themselves, contracts cannot call other contracts unless a transaction is initiated by an externally owned account. So, the Ethereum network state depends on the transactions.

Now, this was the definition and importance of a transaction in the blockchain. In the next part, I am going to explain the structure of a transaction.

Structure of Ethereum Transaction

Any transaction in the Ethereum network has some specific components when it is transmitted to the network. Every node receives the transaction and stores it in its memory. The data of a transaction or the components are listed below:

1. Recipient:

  • The address of the account that will receive the transaction is called the recipient. The recipient can be an externally owned account or a contract account. Each transaction is directed towards a recipient.

2. Nonce:

  • A nonce is a number showing the sequence of a transaction, Nonce is assigned by the account initiating the transaction.

3. Gas Price:

  • Any transaction requires some fee that is paid by the creator of the transaction. The fee is calculated per gas unit. The unit is Wei a smaller unit of ether.

4. Gas Limit:

  • The creator of the transaction gives the number of gas units that can be used for the transaction. This is the maximum limit of gas that would be consumed.

5. Value:

  • The value specifies the amount of Wei or Ether that the sender account wants to send to the recipient.

6. Data:

  • If a transaction recipient is a smart contract then the data contains information for executing functions of the contract. This includes data of variable length.

7. Signature:

  • A Signature is the identification of the sender. The signature is generated when an externally owned account confirms and signs the transaction via its private key.

These are the components included in a transaction. In the next section, I will discuss the types of transactions in the Ethereum blockchain.

Types of Ethereum Transaction

The transactions can be classified into three general types that are listed below and defined further.
  1. Funds Transfer
  2. Contract Deployment
  3. Function Execution

Funds Transfer

This type of transaction takes place whenever an account sends some funds (in form of ether) to another account. This transaction has a value associated with it but does not have any data. For example, when account A sends some money to account B for buying something. The gas price is set by the sender.

Contract Deployment

Whenever a contract is deployed on the Ethereum network, this transaction takes place. It has data that is the bytecode of the smart contract. There is no recipient for this kind of transaction. The gas limit must be enough for deploying a contract.

Function Execution

After a contract is deployed on Ethereum, its functions can be called. When a function is called by an account, then this type of transaction occurs. The transaction is directed towards a contract account, therefore the recipient is a contract address. The data contains the function name and its arguments.

So, friends, this was a general classification of transactions. Up till now, you must have got an idea of a transaction and its components. The steps of a transaction generation till its confirmation can be listed as below:

  1. A transaction is initiated by the sender. The sender’s account provides important information such as recipient address, data, value, and gas limit. After generation, a hash is created that is called a transaction hash.
  2. The transaction has is a unique identifier for a transaction. An example of this hash is given below:

0x2446f1fd773fbb9f080f674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c

  1. The transaction generated is transmitted to the network and added to the transactions pool waiting to be confirmed.
  2. A miner picks transactions for the pool to add to the block. This verifies the transactions. When there are a lot of transactions, the waiting time is more. Therefore, a transaction with a higher gas price would be picked first by a miner. In this way, the miner will get more money.
  3. A number called block confirmation number is given to a verified and added transaction. This shows the number of blocks created after the block in which the transaction was added. As the chain length of the blockchain increases, the transaction becomes more and more trusted and immutable.

This is the process through which a transaction passes. I hope you have an idea of it's working. Next time I will be here with another topic. Till then, take care!

What is Solidity Programming

Hello friends, hope you are doing fine and doing great. In the previous tutorial for introducing Smart Contracts, I told you about Solidity. Solidity is a high-level programming language for writing smart contracts. It is the most popular programming language for Ethereum. So, in this article, I will explain the basic components of solidity. Let’s get started by revising the key points of solidity.

Solidity Programming

  • Solidity programming language is made for writing code for the Ethereum platform. These codes (smart contracts) help in executing different functions in Ethereum virtual machine (EVM).
  • It is easy to learn the language. If you are familiar with C and JavaScript, you can easily learn solidity.
  • The code written in solidity is converted into bytecode by solidity compiler. The compiler of solidity language is solc.
  • The extension of a solidity file is .solc.
  • It is a case-sensitive language.
  • Solidity is a statically typed language.
  • The process of writing and compilation is shown in the figure below.

The layout of a Solidity File

In this section, I am going to discuss the general layout of a solidity file. It contains different components. The layout of a solidity file is explained below. It has:
  1. Pragma
  2. Comments
  3. Import
  4. Contract / Library

Pragma in Solidity Programming

  • Before writing the solidity program, you want to mention the version of solidity compiler. So that anyone using the file can choose the correct version for compilation.
  • For this purpose, pragma directive is used. It specifies the compiler version of the file.
  • Solidity is still growing and a lot of improvements have been made since its development. Therefore, the version keeps on improving.
  • The current solidity version is 0.7.4.
  • The version is mentioned by using the following syntax.

pragma Solidity ^0.7.0;

I should mention here that semi-colon is the statement terminator in solidity.
  • It is declared as the first statement of the program.
  • The version number comprises a major build number and a minor build number. When you use ^ character with version number, it means the latest version of the major build number.
  • For example, as I declared the version 0.7.0 with ^ character. Here major build number is 7. So solidity compiler of version 7 will compile it.

Comments in Solidity Programming

  • Guys, if you are familiar with programming, you must know that programming languages support the option of commenting. Solidity also provides this facility.
  • There are two types of comment in solidity:
    • Single-Line Comments: single-line comment means a comment comprising of one line only.
    • Multi-Line Comments: multiline comments consist of more than one line.
  • Forward slashes are used for denoting comments. Single line comment is denoted by double forward slash //. While multiline comment starts with /* and ends with */.
  • It is a good practice to add comments to your program. This improves readability.

Import in Solidity Programming

  • The import keyword helps in importing other solidity files. These files can then be used in code.
  • The functions of the imported file can then be used in a solidity file.
  • This functionality helps us in writing code in the form of modules. In this way, lengthy code can be converted into smaller readable ones.
  • The syntax for using the import keyword is given below:

import filename;

  • The address of the file is mentioned within the import statement.

Contract / Library in Solidity Programming

  • The contracts are defined in the solidity file.
  • You can define more than one contract or library in one file.
  • Contracts, libraries and interfaces can be defined one after the other in a file.
So, this was the general layout of a solidity file. Now, I will move to the next section in which we are going to discuss the structure of a contract.

Structure of a Contract

Contracts are somehow similar to classes in OOP (Object Oriented Programming) Languages. The contracts are written for ethereum virtual machine. Just like other languages, contract code contains functions and variables. The contracts can also inherit from other solidity contracts. There are two special types of contracts in solidity called library and interface. In this section, I have discussed different constructs in a contract. The contract consists of the following:
  1. State Variables
  2. Structures
  3. Modifier Functions
  4. Event Declarations
  5. Enumerations
  6. Functions
Now let’s define these for further understanding.

State Variables

  • Variables store values in storage locations. The value saved in a variable can be change or update while programming execution.
  • Once a variable is declared, you can use it anywhere in your program, at multiple locations.
  • State variables are stored in Ethereum blockchain permanently. The changes in their value and their current value is secured.
  • The data type of state variable is declared while writing the program.
  • Other qualifiers, used while declaration, are listed below:
    • Internal
    • Private
    • Public
    • Constant
  • The following data types can be used in solidity:
    • Bool for boolean
    • Uint / int for unsigned / signed integer
    • Bytes for 8 bit signed integer
    • Address for addresses of accounts
    • Mapping for mappings
    • Enum for enumerations
    • Struct for structures
    • String for character strings

Structure

  • With the help of structure, you can define a data type of your own.
  • A structure is a composite data type and that means it can contain different variables having different or same data types.
  • A group of variables is defined in a structure. Each one is given a name and a data type.
  • A structure is declared by using the struct keyword.

Modifier

  • A modifier is a function that can change the behavior of the code.
  • In solidity, modifiers are used with functions, so they can change the actions of a function.
  • If you are calling a solidity function that has a modifier associated with it, then the modifier function will execute first. After its execution, the called function would be executed.
  • You will define modifier function only once in the program but you can use it anywhere with multiple functions.

Events

  • If you are familiar with programming, you know that different programming languages support events.
  • Solidity also supports events. Events tell about the change in the state of a contract.
  • With the help of logs, the caller can view the state of the contract after execution.
  • Events are declared outside functions, at the global level. Then these events can be called in any function.
  • The keyword for event declaration is an event. After that, the identifier is declared followed by a parameter list. The parameter list contains the data type of the variables.

Enumeration

  • Enumeration provides us with an interesting facility. With the help of it, you can define a data type of your own choice.
  • It contains a list of constants, from which the variable can take values.
  • Each value is given an integer starting from 0 for solidity.
  • The enumeration is declared by the enum keyword. After the keyword, the identifier is defined followed by the list of constant values in brackets.
  • There is no semi-colon at the end of the enum declaration statement.

Function

  • Just like any other programming language, a function is a key component of solidity.
  • Whenever a transaction is initiated, a function of a smart contract is called.
  • Functions can read and write state variables. When a function is executed and a transaction is processed, the state variable may change its state.
  • A function can take input parameters, perform operations on them and can return values. The return values can be more than one.
  • A function has a name that is its identifier. This identifier can be used anywhere in the program for the execution of functions.
  • You can use various qualifiers with a function declaration that decides the visibility of a function. These qualifiers are listed below:
    • Public
    • Private
    • Internal
    • External
  • Other than visibility qualifiers, some other qualifiers are also used with functions. These show the ability of the underlying function in terms of changing values of state variables. The qualifiers are given below:
    • Constant
    • View
    • Pure
    • Payable
So, friends, I have tried to give you a basic idea of the structure of a solidity program. It is not compulsory for a program to have all of the above-listed features. I hope you have learned and got a good understanding of the basics of this language. That was all from my side. Please let me know if you have any questions. I would love to answer them. I am signing off for today, Take care!

Structure of a Block in Blockchain

Hello guys, hope you are doing good and enjoying your lives. Today, I am going to introduce you to the blocks of a blockchain. I gave you an understanding of blockchain, its characteristics, and some idea about accounts and wallets in my previous tutorials, and today my article is about the structure of a block in the blockchain. I will first define the block before going into the details about its structure. So let’s start without any further delay.

Block in Blockchain

  • A block is actually the building block or the key element of a blockchain.
  • The definition of a blockchain is based on its blocks. As I defined in my previous posts, a blockchain is a chain of multiple blocks.
  • Blocks contain transactions. Each block contains a different number of transactions.
  • These transactions are contained in blocks so that they would be added to the distributed ledger.
  • The number of transactions is limited by the block size and gas limit. Generally, the block contains more than 500 transactions.
  • Other than transactions, a block also consists of some metadata. This metadata is stored in the header of the blockchain.
  • The size of a block header is 80 bytes, the detail of which is given in the upcoming sections of this article.
  • Let’s first define a parent block in the next part.

Parent Block in Blockchain

As the blocks are linked together one after the other, they have a parent-child relationship. Each block is the parent of the upcoming block. Each child block contains the hash of the previous block i.e., its parent block. The first block of the blockchain is called Genesis Block and it has no parent. The block contains different fields which can be roughly categorized as listed below:
  • The block size: The size of this field is 4 bytes and it contains the size of the block.
  • The block header: The size of a block header is 80 bytes. It further contains different fields.
  • The transaction counter: This field contains the number of transactions and the size of it is between 1-9 bytes.
  • The transactions: This field contains transactions of the block and its size is variable.
This was some information regarding the fields of an Ethereum block. Now, we will move towards the next part in which I am going to give you an idea about the block header and its fields.

Block Header in Blockchain

The header of an Ethereum block contains different fields of metadata which are listed below.
  • Hash of the previous block: Every block header gives information about the previous or parent block. This field contains the hash value of the previous block and this reference connects all the blocks. The size of this field is 32 bytes.
  • Version: This field stores the version number to show software upgrades. The size of the version field is 4 bytes.
  • Difficulty: The mining difficulty at the time of the block creation is stored in this field. The concept of mining would be explained in the upcoming articles. Its size is 4 bytes.
  • Timestamp: This field contains the time at which the block was created. The size of this field is 4 bytes.
  • Nonce: A nonce is a value used during the mining of the block. This field’s size is also 4 bytes.
  • Merkle tree root: A Merkle tree is a structure obtained from hashing the transactional data of a block. The root of this tree is stored in the block header under this field. 32 bytes is the size of the Merkle tree root field.
This was all about the header of a block. In the next part, I am going to give you an idea about the properties of a block.

Properties of a Block:

There are a lot of properties of a block that give us important information about it. I am listing down the properties here.

Difficulty Property:

  • As I mentioned earlier, this property gives the difficulty level of solving the puzzle to mine the block.

totalDifficulty Property:

  • This property of the block tells us the total difficulty of the blockchain.

gasLimit Property:

  • This property tells us the maximum gas allowed by the block which in turn tells us about the number of transactions that the block can accommodate.

gasUsed Property:

  • The gasUsed property gives the amount of gas used by the block for executing all of its transactions.

Number Property:

The number shows the block number in the list of blocks.

Transactions Property:

  • This means all of the transactions contained in the block.

Hash Property:

  • This property shows the hash of the block.

parentHash Property:

  • This property saves the hash of the previous block.

Nonce Property:

  • Nonce property shows the nonce value that I defined earlier. It is a variable used in mining the block.

Miner Property:

  • The miner property gives information about the miner of the block. This gives the account of the block miner.
So guys these were the properties of a block. I will move towards the next part i.e., the identification of a block.

Block Identification:

The blocks of a blockchain need an identification to refer them or distinguish them from other blocks. Two parameters are used for this purpose which are given below:

1. Block Hash

Block hash is the main identification parameter of a block. This value is obtained by cryptographic hashing of the header of the block. The hashing operation is performed twice. The header of the block contains metadata of the block and when this data is hashed the result is the block hash, whose size is 32 bytes. The hash of the block is not stored in the block’s data whether the block is being transmitted to the other nodes or it is stored as part of the blockchain on some node. When a node receives a block from the network, it computes its hash itself.

2. Block Height

The second parameter used for identifying a block is its height. As we already know that the blocks are linked together in a list type structure starting from the genesis block. The genesis block is given a height 0 zero. The second block in the blockchain or the first block after the genesis block is at height 1 and so on. In this article, I have explained the structure of an Ethereum block. The article explained the header and some properties of the blocks. I hope you have learned something new from it. Take care!

Real Time Embedded Systems: Definition, Types, Examples and Applications

Hello friends, I hope you are happy, healthy and content. We have been discussing embedded systems lately and this discussion would be incomplete without an in-depth discussion on Real time embedded systems. You might have observed their utility and their absolute need in our constantly changing external and internal environment, the ease of managing the room temperature with a single tap, generating several results with a single click and streaming videos and playing games anytime and anywhere are the blessings of real time embedded systems.

Definition of Real Time Embedded Systems

Real time embedded systems can be defined as;
  • "The embedded systems which respond to real time situation with the help of its embedded software and hardware, within the specified time constraints are called real time embedded systems."

Characteristics of a Real-Time Embedded System

Real time embedded systems must have the following characteristics;

1. Constant Response:

  • A real-time embedded system always responds in the same manner to a certain situation, it is not allowed to deviate from its normal designated output. An air-conditioner is not allowed to throw hot air in summers.

2. Deadline:

  • A deadline is crucial to the working of an embedded system, a missed deadline can cost lives and finances.

3. Accuracy:

  • In case of any malfunctioning, the system failure can cause havoc, what would happen if the pacemaker can't maintain the heartbeat, patient would eventually die!

4. Quick Response:

  • It is the most important characteristic of all, the real-time embedded system must be swift enough to respond to the changing external environment with immediate effect.

Components of Real Time Embedded Systems

We have already discussed the embedded system components in detail within our previous article, for a quick overview , let's revise the basic things;

1. Hardware

  • The hardware parts include a microcontroller or a microprocessor, Input and Output ports, sensors , actuators , relays, power supply or batteries and several other peripheral parts according to the design and function of the embedded system.

2. Software

  • Real time embedded systems have embedded software which directs the system for performing designated tasks.
  • For a real time embedded system, embedded operating systems software must have the critical feature of task scheduling, because we need a system which sticks to the deadline and performs the task within that limited time range. Let's have a look, how task scheduling is done;

Task Scheduling

To understand task scheduling you must understand pre-emptive and non-preemptive scheduling.

Preemptive scheduling

IT refers to the scheduling of tasks based on priority, it is a flexible process and interruption between the tasks doesn't upset the whole system. It's same as you are washing dishes and someone ask for a clean dish at immediate basis, you leave the thing in your hands and start washing that dish which is needed immediately!

Non- preemptive scheduling

it is a rigid process, the other task at hand has to wait until the first one has been completed. Now, you are well aware of the types of approaches used in task scheduling, its time for a detailed outlook on the basic types of Task Scheduling done in the real time embedded systems.

First Come First Served Task Scheduling

  • As the name clearly indicates, the task that is assigned first is completed first.
  • This is a non-preemptive scheduling approach.
  • The system is highly efficient and tries to complete the task real quick and responds quickly.

Round Robin Task Scheduling

  • In this task scheduling technique the preemptive approach is applied, but there is a difference, it doesn't priorities a task, instead it allocates the time for each task.
  • Its same as, you have an exam tomorrow morning and you allocate 2 hours to each chapter for revision!

Shortest Job First Task Scheduling

  • All of us have done this at some point of our lives, if you aren't a very diligent student, you choose the shortest paragraph to read first. Isn't it?
  • Same is done by the preemptive scheduling system in this case, the task which can be performed quickly , is chosen and performed first.
  • If a new task is assigned which can be performed earlier than the one being performed at hand, the system starts performing the shorter one which has just arrived, unfair! Isn't it?

Priority Scheduling

  • Let's suppose its your best friends birthday and you are in charge of all the celebrations or we can say a surprise birthday party, what would you arrange first? snacks?, decorations? or a birthday cake? The answer is clear , it would be a birthday cake winning the priority list.
  • Same is the case with priority scheduling, the system prioritizes all the tasks at hand, but the one with utmost urgency and priority is performed first.
  • This system can be designed using both the preemptive and non-preemptive approaches.

Real time operating system

  • Real time embedded systems are everywhere around us and have real time operating system as their basic component, they are almost similar to embedded operating systems , only having a few particular features different from the typical embedded operating systems due to the task specifications.
  • RTOS are implied in the embedded systems which are time sensitive.
  • Time constraints are the key, a task completed after due time or deadline would be rendered useless or would have a negative impact on the users. You can't enter your lecture hall after the starting time of your lecture without feeling guilty of being late!
  • Time maintenance component is crucial to the real time operating system, tasks are specified and given preference according to the time constraints of each task.
You can refer to the diagram for the components of a real time embedded system.

Types of Real Time Embedded Systems

As we are done with the definition and components of a real time embedded system, being made up of real time operating system, embedded software and hardware.It would be easier to learn their types. Real Time embedded systems have the following three types, we would discuss each of them in detail.

1. Soft Real Time Embedded Systems

Following are the characteristics of soft real time embedded systems;
  • In soft real time embedded systems, timeliness of a task poses a positive impact on the system, but it is not crucial for the performance of the system.
  • Missing a deadline would not degrade the performance of the whole embedded system.

Example of Soft Real Time Embedded System

A data acquisition system can tolerate delays and hence its a soft real time embedded system. Other examples include, websites, computer games, cellular networks, online database and multimedia transmission and reception.

2. Hard Real Time Embedded Systems

Following are the characteristics of hard real time embedded systems;
  • For a hard real time embedded system, time is crucial.
  • The output must be completely on time, the prescribed deadline can not be missed in any case. You can't submit your exam paper after the time is over, or can you?
  • In case a deadline is missed, it would be regarded as a system failure.
Following table shows the brief account of characteristic features for both soft and hard real time embedded systems.

Example of Hard Real Time Embedded System

The missile launch system is one of the most suitable examples in such systems, if the missile is not launched in time, it would miss the target claiming a huge environmental, economic and human loss. Other examples include medical equipment and handheld devices, avionics, industrial control systems, and transportation control.

3. Firm Real Time Embedded Systems

Following are the characteristics of firm real time embedded systems;
  • Timelines of a task are crucial but the missed deadline can be compensated as it occurs rarely.
  • Missed deadline doesn't degrade the system performance.
  • In case of the missed deadline, The system continues to perform and discard the delayed response.

Example of Firm Real Time Embedded Systems

A fully automated assembly line doesn't crash when a task isn't performed in time, it rather ignores that missed part and continues to complete the rest.

Examples of Real Time Embedded System

  • Real time embedded systems examples are being listed below, we will only discuss the few basic ones in detail out of an endless list.

Cardiac Pacemaker - A Real Time Embedded System

  • First one on the list is a pacemaker, let's have a brief idea about the function of pacemakers first, a pacemaker maintains the heart beat, so is crucial to human life. A pacemaker is a real time embedded system.
  • The sensors present in the pacemaker detect the intensity of the beat and send an electrical signal, if its too low to maintain normal function of the heart, in response to this signal an electrical impulse is generated to maintain the already diminishing heartbeat, your heart can't skip a beat, otherwise you'd die of heart attack! It only happens in movies.

Airbags- A real Time Embedded System

  • Who is not aware of the importance of air bags in this era of modern vehicles! Airbags are indeed one of the most celebrated safety inventions of modern age.
  • Air bags are necessary for human survival in case of a road accident which is obviously a life threatening condition.
  • The airbags are inflated on the detection of collision or crash by the sensors, upon detection certain chemical react instantly to inflate the bags, providing cushion to the passengers to land on, saving passengers from serious injuries.
  • Hence, airbag system of a car is a real time embedded system which works within strict time constraints, otherwise it would be useless for an airbag to inflate after the passenger has already got a whiplash injury during collision, ending up in a hospital bed or a deathbed.

Manufacturing Assembly Line

  • The above mentioned examples were the life threatening ones, the one we are about to discuss is light and crispy!
  • Now consider a manufacturing assembly line for production of Lays, the one you have seen in your childhood on national geographic, or maybe you were lucky enough to see it in real!
  • What would happen if the automated system fails to fill in the chips in designed time? It doesn't happen that much, but just imagine for an instance!
  • That one delayed step would disturb all the preceding steps in line, such as sealing and flavouring the packets.
  • This is not life threatening situation , but a delay that would cost millions or much more. Packaging is just the terminal step, you can yourself imagine the importance of timelines in the whole manufacturing process.
  • Or in another instance the missed step would be ignored if it is not on a large scale and the process would continue, the same thing that happens in firm real time embedded systems. It all about programming the system according to your personal preference and available resources.
  • Thus a manufacturing assembly line is a real time embedded system, which needs to be in time.

Crusie Control of a Car

  • Cruise control which once seemed a crazy concept a while ago is now a new normal for longer trips.
  • It's a real-time embedded system that controls the speed of a car.
  • The real-time embedded software algorithm has basic features of keeping the car at a preset speed as indicated by the driver, maintaining a safe measurable distance from a preceding vehicle, and lastly it is designed to switch between the two discussed modes according to the real-time situation on road.
  • A minor miscalculation of the speed and distance would cause havoc on the road, thus real time embedded systems need to be accurate and on time during their performance.

Safety critical systems

  • We have discussed safety critical systems in one of our previous articles as well, but a discussion on real time embedded system without an example of a safety critical system is incomplete.
  • First things first, Safety Critical Systems are real time embedded systems.
  • You might have got a slight idea about the safety critical systems from their name, The systems which can't afford delay are called safety critical systems, their output delay can claim a human life, can pose serious financial and environmental crisis.
  • One the most common example is a missile launching system.
  • Missile launching system is a real time embedded system, imagine the destruction with one single delay or miscalculated response. Another example include shuttle launch in space which is also a safety critical system.

Applications of Real Time Embedded Systems

  Real time embedded system applications are countless, a few popular ones are being discussed below;

Medical Industry

  • Real time embedded systems are deeply rooted into the healthcare sector either in the form of handheld devices such as insulin pump, BP apparatus, pulse oximeter or large devices such ECG machines, and industrial scanners, real time embedded systems are everywhere.
  • These embedded systems have made diagnosis , treatment and prognosis much easier than before. Diagnosis and treatment would be a difficult thing to do without the real time embedded systems, how would you identify a tumor without a scan? How insulin levels would be checked? Nobody can deny the importance of real time embedded systems in the medical field.

Manufacturing and Assembly Lines

  • Real time embedded systems have revolutionized the automation of production lines, you might see the fully automated processes of biscuits, chips and soda in documentaries or maybe in real. Have you ever thought how it is done? The mechanism and machinery behind the fully automated processes? These are large robots with real time embedded systems, performing their designated tasks in a real time environment.
  • Control of internal environment according to the manufacturing process, for humidity , air pressure and temperature is also done by real time embedded systems. Would you ever like soggy lays? Or a soda without gas? A cookie without crunch? No! Nobody does! All these factors are controlled by real time embedded systems through predictive maintenance.

Military Operations

  • Either it is a preventive or defensive approach, real time embedded systems are an essential part of a bigger picture in military armaments.
  • You might have heard of guided missiles, detection systems and much more intelligent weapons, all these systems are real time embedded systems.
  • In military SWaP size, weight and power is a decisive factor of winning and losing for the soldiers in the battlefield, real time embedded systems, reduce size and weight of the power gear and provides quicker and better turnover during a strike.
  • Microcontroller technology has led to the reduction of production costs along with the manufacturing of lightweight power gear.

Home Automation

  • You might have seen the central cooling and heating systems, smart lighting system, security system, fire alarm, security surveillance system and many other systems that are controlled by the sensors by collecting data from external environment, these are real time embedded systems which have added to the ease of human beings.
  • All the above mentioned systems are controlled through internet but they can be regulated manually as well.
  • We have already discussed in detail the concept of a Smart home, in which several electronic devices are connected to a central hub through internet. Real time embedded systems have helped a lot in turning this unpopular concept into reality. To say the least, it is indeed an expensive concept.

Automotive industry

  • Automotive industry has reaped the benefits of the real time embedded systems to full extent.
  • Can you imagine a car without a GPS system these days? No , its an absolute necessity now!
  • Crusie control, smart parking, car tracking, traction control system, and a lot more which are a part of another bigger picture have real time embedded systems in them.
  • Hybrid vehicles which consume less fuel and save environment are a gift of real time embedded systems as well.

Multimedia Systems

  • Multimedia systems which provide the audio and video interface to their users, have real time embedded systems as their integral part.
  • The gaming world would be incomplete if real time embedded systems are not implied, many of the modern games are also networked and played live among the users from all over the world at the same time.
So, friends, that's all about the Real Time Embedded Systems, I have tried to cover everything regarding this topic. I hope you have learned something new from this article. In case you want to add something new to the list of applications or examples of embedded systems, you can mention in the comment section below. See you soon with another topic. Have a good day ahead!

Smart Contracts: Definition, Working, Writing & Deploying

Hello friends, Hope you are doing fine and having a good time in your life. The topic that I am going to discuss today is a very interesting and important one in the context of blockchain. I will discuss smart contracts in this article and I am sure you will learn the concept by the end of this tutorial. I have mentioned smart contracts in my previous articles and defined them before.

Before discussing smart contracts, let’s first revise what a contract is, and then we will talk about smart contracts.

Contract

  • When two persons or two parties want to carry out a deal or a transaction such as buying property, they need some proof for future reference.
  • So, a contract between two or more individuals is a legal document that serves as proof for the transaction.
  • All conditions of the transaction are mentioned in the contract and must be fulfilled by the involved parties.
This was the basic idea and revision of the concept of a contract. Now, I will introduce a smart contract in the next section.

Smart Contract

When reading about blockchain and decentralized applications, you must have encountered the term “Smart Contract”. The name may indicate to you that it could be a contract that executes smartly or that has smart conditions. Well, in actuality, it is a contract whose conditions fulfill when it executes. If the conditions of such a contract are not met, then the execution fails.
  • In the Ethereum blockchain, a smart contract is actually a program that is deployed on Ethereum.
  • The smart contract contains logic and it is written in some high-level language.
  • An example of a high-level language is solidity that we will discuss in the upcoming tutorials.
  • A smart contract is a set of rules that are coded in the form of a program. These rules govern the transactions between the Ethereum accounts. The transaction could be a transfer of assets, transfer of money, or a change of Ethereum state.
  • In Ethereum, the type of account having a smart contract is called “Contract Account”.
  • Smart contracts can have balance and can also store data. They contain several functions that can be called by other accounts.
I have told you earlier that only an externally owned account can initiate a transaction on Ethereum and call a smart contract. Once initiated, the smart contract can call other smart contracts deployed on Ethereum or it can deploy a new contract.

Writing Smart Contracts

In this part of the tutorial, we are going to discuss writing smart contracts for Ethereum. Various tools are available for writing smart contracts. First, let’s talk about Remix.

Remix

  • The remix is an Integrated Development Environment for writing smart contracts.
  • It is a browser-based IDE and helps in developing contracts easily.
  • The language used is Solidity.
  • It helps in the following functions:
    • Writing and developing smart contracts
    • Deploying contracts on Ethereum networks
    • Troubleshooting contracts
  • A remix is an open-source tool available freely for everyone. So, if you are not comfortable using the online version, you can simply download it and use its functionality.
  • The downloaded version can be used offline on a local computer system.
  • The general steps for writing a smart contract using the online tool are given below:
    • Open your browser and type https://remix.ethereum.org/ in the address bar.
    • The site will show some default contracts. You can use that, study that or you can simply delete that if not needed.
    • On the left bar, there would be an option to create a new file. Use that to create your smart contract.
    • Write the code for your smart contract in the newly made file.
    • The next steps are to compile the contract using a solidity compiler and deploying it on the network.
    • After deployment, the functions written in the contract code can be executed.
This was a brief introduction to remix. Let’s talk about Solidity now.

Solidity

  • Solidity is a high-level programming language used for writing smart contracts.
  • This language has similarities with C and JavaScript languages.
  • Solidity is case-sensitive.
  • The extension of a solidity file is .solc and this file contains code.
  • You can write and read such a file in any text editor.
  • The solidity compiler is used for the compilation of code and named “solc”. The compiler generates the bytecode of the smart contract.
  • This bytecode is generated for the Ethereum virtual machine as it cannot understand code in the high-level language.
  • You can install solc using npm by typing the following command in the command prompt.

npm install –g solc

Remix and Solidity are the two essential tools for writing smart contracts. In the next part, we will discuss the deployment of contracts.

Deploying Smart Contracts

The contracts are deployed after compilation. The solidity compiler performs this task and generates two main outputs that are listed below:
  1. ABI
  2. Bytecode
Now let’s explore these two concepts.

ABI

  • ABI stands for Application Binary Interface.
  • ABI of a smart contract contains a declaration of all public and external functions. It also contains their parameters and returns types.
  • ABI is the definition of a contract. Any account that wants to execute a contract function uses its ABI.
  • After deployment, the contract instance is created using its application binary interface.

Bytecode

  • The bytecode is understandable by Ethereum and helps in deploying the contract on the Ethereum virtual machine.
  • Ethereum virtual machine cannot understand solidity so bytecode is a must.

ABI definition and bytecode both are necessary for deployment. The transaction for deploying a contract on EVM takes place and an address is generated for the smart contract. This address is the identifier of the contract. Any function of the contract can be called and executed using the contract address.

So, guys, this was all about smart contracts. We discussed the main idea and some steps to create a smart contract. The two main tools for creating a contract are also discussed in this tutorial. I hope you have learned these concepts and enjoyed reading them. That’s all for today. Take care and have fun.

dApps: Definition, Features, Comparison & Developing Tools

Hello friends, hope you are doing fine and enjoying your life. In today’s article, I am going to discuss decentralized applications that are abbreviated as dApps. With the invention of blockchain technology and afterward Ethereum, the idea of decentralized applications has gained a lot of attention. So let’s get into the details and learn what a dApp is.

Decentralized Applications (dApps)

 
  • An application built on a decentralized platform such as Ethereum is called a Decentralized Application(dApp).
  • A dApp generally consists of a backend and a frontend.
  • The backend of a dApp is a smart contract mostly written in solidity language.
  • The front end of a decentralized application is the user interface. The user can interact with the application using the frontend.
  • Smart contracts available on Ethereum are open for anyone. So, a dApp can use the smart contracts present on Ethereum other than its own backend.
  • Now l am going to give you the similarity and differences between a centralized application and a decentralized application in the next section.

Centralized vs Decentralized Application

In the traditional internet system, there is a central server and various computer systems connected with it. The backend program of centralized applications runs on that central server. While in decentralized applications, the backend program runs on a decentralized network. I have discussed the decentralization concept in my previous articles.

The front end of a centralized application can be written in various languages such as HTML. The front end of the application connects the user with the functionality of the backend. Similarly, in decentralized applications, the front end can be written in any programming language and that will help the user in interacting with the backend.

In the upcoming section, I am going to discuss smart contracts. We have already discussed them before. So we will try to make a connection of a dapp with smart contracts.

Smart Contracts

  • A smart contract is simply a program that is controlled by its logic.
  • The logic given in the code controls the execution of the smart contract.
  • It is deployed on the Ethereum network by an account.
  • The backend of a dApp is written in the form of smart contracts. Thus, smart contracts control the execution of a dApp.

Features of a dApp

In this part of the tutorial, I will talk about the characteristics of a DApp that make it so useful. These are listed below:

Decentralization

  • As a dApp runs on a decentralized platform, it is independent.
  • No central authority controls it. A dApp is controlled by the backend logic.

Deterministic

  • The output of the dApp is known. It will always produce the same result with the same conditions.

Open Source

  • The dApps are open source and available for anyone. The dApp’s operation is autonomous.

Transparency

  • Dapps provide transparency, trust and audibility. The data is secure and accessible to anyone.

Turing Compatibility

  • As Ethereum is Turing complete, a dApp on Ethereum is Turing compatible.

Isolation

  • All dApps on Ethereum virtual machines are executed independently in a virtual environment.
  • Any errors in one code do not break the functions of the rest of the network.

Privacy

  • While using or deploying a dApp, the user does not have to provide his real identity and that helps in privacy.

Data Integrity

  • Data is secure and immutable in dApps. No hacker or malicious entity can change the data.

No Downtime

  • When a decentralized application is deployed on the peer-to-peer network, it is available for everyone.
  • Not like traditional systems, where a failure in the central server makes the app unavailable.
These are some features of a decentralized application. Along with these features, some other points make Ethereum dApps different and usable. I am listing some of those exciting features below:
  • A dApp is uncensored as no party has control over it.
  • A dApp is able to create digital assets.
  • A dApp can create a new currency.
  • A dApp allows you to use the functionality of decentralized systems in any application.
  • Any node can use a dApp and connect to the Ethereum network.

Tools for Developing dApps

A variety of tools are available for developing dapps. Some of them are listed below:
  • Programming Language
  • Web3 Library
  • Development Frameworks
  • Integrated Development Environment
  • Blockchain
  • Ethereum Network
  • Wallet

Programming Language:

  • A programming language for writing smart contracts is needed while developing a dApp.
  • The most common one is solidity.
  • Vyper and LLL are two other options for writing contracts.

Web3 Libraries:

  • Web3 library provides an interface for interaction with Ethereum nodes. They are available in different language options. Such as web3.js and ethers.js for javascript and web3.py for python.

Development Framework:

  • The development framework helps you in performing operations such as compilation, ABI generation and testing etc.
  • The most common development framework is Truffle. It is node-based and the most used one.

IDE:

  • IDE or Integrated Development Environment also helps in dApp development.
  • The Remix is an online IDE that you can use from your web browser. It is the most convenient option.
  • You can also use the Visual Studio extension for solidity.

Blockchain:

  • While testing your dApp, you need some development blockchain where you can quickly deploy your contracts and test them.
  • Ganache is the tool for that facility. It creates a local blockchain on your system.

Ethereum Network:

  • While working on the dApps, you have the option to deploy it on the network of your choice.
  • For example, while testing you can use the test network.
  • There is no value of ether on the test network, so you can easily test your dApp.
  • Ether has value on the main Ethereum network, named Mainnet.

Wallet:

  • A wallet is a software application that is used for keeping track of the balance and managing keys.
  • Various wallets are available with different functions and security levels. The common one is Metamask, a web-based wallet.
These are some of the tools that you need for developing a dApp. With that, I am concluding this article. I am hoping you have got some good information from this tutorial. Let me know if you have any queries. Take care, bye!

Ethereum Wallet: Definition, Working and Types

Hello friends, hope you are doing good and enjoying your life. Today, I am going to introduce you to the Ethereum wallets. I have given you an introduction to blockchain, its characteristics, and an introduction to accounts in my previous tutorials, so let’s get started with today’s tutorial on Ethereum wallets.

What is Ethereum Wallet???

In this section, I will introduce you to the Ethereum wallet and then we will move into its further details.
  • A blockchain wallet is just like a real-life wallet but in software form. It is the digital form of a wallet.
  • A wallet is application software that acts as a user interface to the Ethereum network.
  • The wallet is a system to manage and store the keys.
  • This digital wallet allows transferring cryptocurrencies from one account to another.
  • The functions that can be performed by using a wallet are:
    • Access to your money
    • Access to accounts
    • Management of keys
    • Management of addresses
    • Management of cryptocurrencies such as bitcoin or ether
    • Tracking and viewing the user’s balance in different accounts
    • Initiating transactions
    • Signing transactions
    • Interacting with contract accounts
This was some basic idea of wallet technology. Let’s move towards an important feature of wallets i.e., key management in the next section.

Key Management in Ethereum Wallet

  • The actual function of a wallet is managing keys.
  • If you think that your wallet will contain money then it is not true. You can view your balance via your wallet but this balance is actually residing on the Ethereum blockchain.
  • Your wallet contains keys (both private and public) and by using these keys, you can sign transactions on Ethereum.
  • To transfer ether or any cryptocurrency to other accounts, you need keys stored in your wallet.
  • In centralized systems such as banks, your money is saved under your account. You can check the account balance and perform transactions with the involvement of banks. While in the blockchain you can control your money with your wallet yourself.

Ethereum Wallet Design

  • While designing or choosing a wallet, two factors are considered that are convenience and privacy.
  • There is always a trade-off between the two.
  • With more convenience comes privacy issues and with strict privacy, convenience is compromised.

Types of Wallet

The wallets are classified into two main types depending upon the relationship between the keys they hold. These types are given below:
  1. Deterministic Wallet
  2. Non-deterministic Wallet
Now, I will explain these types a little bit. The first one is the deterministic wallet.

1.      Deterministic Wallet

  • In this kind of wallet, all wallet keys are generated from a single key.
  • This single key is called the master key and it is derived from a seed.
  • All of the keys are related to each other. Here, the original seed value is very important.
  • These keys can be generated again with the use of seed value.
  • Commonly, these keys are linked in the form of a tree structure where the root is the seed value.

2.      Non-deterministic Wallet

  • The second type of wallet is a non-deterministic wallet. In this kind, the keys are not related to each other.
  • Each key of such a wallet is generated independently from different seed values.
  • This wallet is also termed a random wallet and it is better than a deterministic wallet in terms of security.

Mnemonic Words

  • There is a concern about security in deterministic wallets as all keys are related.
  • If anyone gets a hold of the seed value, he can generate the master key and then all other keys of the wallet. It will give access to the balance.
For unfortunate data loss accidents, when a person loses his seed, the seed value is converted to mnemonic codewords. The mnemonic code words are a bunch of English words that the wallet holder has to keep safe. This word list can be saved in the form of a hard copy by writing that on a piece of paper and then storing it in a secure place. This concludes the section here. I will now discuss different wallet applications available for you in the next part.

Different Forms of Wallet

There are different kinds of wallet applications for you to select from. The interesting thing about wallets is that you can switch from one type of application to the other. If you do not like the wallet that you are using, you can change your wallet easily and there is no loss in doing so. All the funds in your current wallet would be transferred to the new wallet. Your keys would be moved from the old wallet to the new one. The wallet applications are classified into three types that are listed below.
  1. Mobile Wallet
  2. Desktop Wallet
  3. Online Wallet
  4. Hardware Wallet
  5. Paper Wallet

Mobile Wallet

  • A mobile wallet is simple a phone application.
  • You install the wallet application on your mobile phone and then access your account.
  • These wallets can be used anywhere and are safer than online wallets.
  • The only problem arises when there is a phone breakdown when you can lose your money.

Desktop Wallet

  • A desktop wallet is also a safer option than online wallets.
  • You can download a desktop wallet on your personal computer and access it anytime from the same device.
  • The issue with this type of wallet arises when your desktop gets out of order, gets hacked, or is infected by a virus.

Online Wallet

  • An online wallet is a convenient option to use.
  • It can be opened anywhere from any device having an internet connection.
  • These wallets reside on the cloud. Online wallets have higher security issues and can be used wisely.

Hardware Wallet

  • In this kind of wallet, the keys are stored on some hardware device such as a flash drive.
  • The hardware wallet remains offline mostly which provides security features.
  • This wallet is a convenient and safe option although expensive among others.

Paper Wallet

  • The last type of wallet is a paper wallet. This is the safest option among all options.
  • The public and private keys are written or printed on a sheet of paper to make a physical copy and that copy is called a paper wallet.
  • The transactions are done by entering private keys or you can also scan the QR code of your paper wallet.
These were the types of wallet applications and you can choose any of them depending on the features you prefer the most. So, guys, this was all about wallets. I hope you have learned something new from this article. That was all for today, Take care!

Ethereum Accounts: Definition, Types and Fields

Hello friends, hope you are doing good and enjoying your life. Today, I am going to introduce you to Ethereum accounts. I have given you an introduction to blockchain in my previous tutorials, so let’s get started on the essentials of this technology. I am going to start with accounts.

Ethereum Accounts

  • An account is an important component of the Ethereum system.
  • It is the main building block and has a balance in ether (ETH) (Ethereum currency).
  • An account is capable of sending transactions on the Ethereum network.
  • The interactions between different accounts create transactions that are stored in the distributed database.
  • Each transaction involves the sender account, receiver account and contract account.
  • An account can be controlled by a user or it can be a program deployed on the Ethereum blockchain.

Types of Ethereum Accounts

In this section, I am going to describe the two types of accounts in Ethereum, namely externally owned and contract.
  • Each account has a balance property that shows how much balance the account currently holds.
  • Therefore, accounts are classified into two main types:
    1. Externally Owned Accounts
    2. Contract Accounts

Externally Owned Accounts

  • Externally Owned Account is abbreviated as EOA. This is the type of account that is owned by people on the Ethereum network.
  • An individual makes an account on Ethereum and a public-private key pair is generated for the account. The account is not identified by the person’s name or any personal information.
  • The private key of EOA gives control and access to one’s assets and contracts. The private key is kept secured by the user.
  • While, as the name suggests, the public key of the account is open. This key acts as the identity of the account.
  • The public key is generated from the private key via a one-way cryptographic function.
  • As an example, if you create an account on Ethereum, you will keep the private key to yourself while the public key would be shared. Transactions between accounts are carried out through public keys.
  • The address of an Ethereum account is generated through its public key.
  • This type of account interacts with other externally owned accounts and contract accounts. It carries out transactions with the former one and interacts with the latter one by calling and executing its functions.
  • This type of account has no code. It has balance in ether.
  • Now, let’s talk about the second type of Ethereum accounts.

Contract Accounts

  • In this section, I am going to tell you about the second type that is contract accounts.
  • In some ways, contract accounts are similar to externally owned accounts but there are some differences between them too that I will mention later.
  • First, let’s define a contract account. A contract account has a code for a smart contract.
  • The contract account is identified by its public address.
  • This account does not own a private key.
  • These accounts also have balance property and they can hold ether too but these accounts have smart contract code. This code contains functions to execute and state variables.
  • The logic of the smart contract controls this account. The smart contract that is deployed on the Ethereum blockchain is the owner of the contract’s account.
  • When an externally owned account initiates a transaction with a contract account, the code of that contract runs in Ethereum virtual machine. The transaction contains data other than ether that tells information about what functions to run and what parameters should be given to the functions for execution.
This was some introduction to both accounts. Now, I am going to highlight some key differences and similarities between these two types.

Difference in Externally Owned Account and Contract Account

  • An externally owned account (EOA) does not have a code while a contract account has a code.
  • Externally owned accounts have a private key associated with them that contract accounts do not have.
  • An externally owned account can initiate a transaction with another externally owned account or a contract account. But a contract account cannot initiate transactions.
  • A contract account responds to transactions and in doing so it can call further contracts and their functions.
  • Transaction between two EOAs is only of one kind that is the transfer of ether while transactions with a contract account can be of any kind, for example, calling other contract’s functions, deploying another contract, etc.
  • An externally owned account is free to create while creating a contract account has a cost.

Similarities in Externally Owned Account and Contract Account

  • Contract and externally owned accounts both are identified by their public addresses.
  • Both types of accounts can have a balance and are capable of sending and receiving ether.
  • Both of these accounts can interact with smart contracts deployed on Ethereum.
This was a comparison between externally owned and contract account. In the upcoming section, I am going to tell you about the components of an account.

Fields of an Ethereum Account

Any Ethereum account, whether an EOA or a contract account contains four fields which are given below:
  1. Nonce
  2. Balance
  3. CodeHash
  4. StorageRoot
I am going to give you an introduction to each of them. The first one on the list is Nonce.

Nonce:

  • The nonce of an account is actually a counter that tells us about the number of transactions sent from that account for an externally owned account.
  • While, for a contract account, this counter indicates the number of contracts created by that account.

Balance:

  • This property shows the balance of the account as the name suggests.
  • The balance is actually in Wei, a unit of ether (ETH) where 1 eth = 1x10e18 Wei.

CodeHash:

  • This field gives the hash value of the contract code of the account.
  • In the case of contract accounts, the smart contract code is hashed and the resulting value is stored in this field.
  • While for externally owned accounts, this field contains the hash value of an empty string.

StorageRoot:

  • The data of an account is stored in the world state trie.
  • Each leaf of this trie represents one account.
  • The storageRoot contains the hash value of the root of the storage trie.
  • This field of account is empty by default.
These are the four fields of an Ethereum account. I hope this article has given you an understanding of Ethereum accounts. I will bring another interesting topic next time for you. Till then, take care!
Syed Zain Nasir

I am Syed Zain Nasir, the founder of <a href=https://www.TheEngineeringProjects.com/>The Engineering Projects</a> (TEP). I am a programmer since 2009 before that I just search things, make small projects and now I am sharing my knowledge through this platform.I also work as a freelancer and did many projects related to programming and electrical circuitry. <a href=https://plus.google.com/+SyedZainNasir/>My Google Profile+</a>

Share
Published by
Syed Zain Nasir