In a previous blog post, my colleague Ubaid Rehman Qureshi and I touched upon the topic of smart contracts and the fundamental role they play in blockchains. In this post, I want to examine smart contracts in greater depth.
What is a smart contract?
Think of it as similar to a traditional contract with two or more parties stipulating the terms of an agreement, plus the actual enforcement of said contract terms. To execute the contract, however, the conditions are defined using a programming language rather than legal terms. For example, let’s look at how a supplier of goods gets paid as soon as her customer receives a shipment. A smart contract can be coded to transfer these funds the moment the customer acknowledges the receipt of goods. The contract cannot be modified, so reneging on the terms is not an option. In short, smart contracts are the means with which we define the types of interactions we record on a blockchain network.
To become a well-rounded blockchain engineer, you must possess both a fundamental understanding of smart contracts and the skills to build them on at least one of the available blockchain platforms.
In the Blockchain Smart Contracts track, the second of four within the Application Developer to Blockchain Engineer Skillsoft Aspire learning journey, you will learn:
1. Concrete examples
We examine implementations involving fund transfers with cryptocurrencies (e.g., crowdfunding), asset transfers using escrows, and supply chain management. The flexibility of smart contracts means that we can also define non-financial interactions, such as the recording of votes in an election. We explore this in further detail and the implications of the capability in the courses.
2. Implementations in different platforms and languages
We cover the different languages used for smart contract development, from the domain-specific Solidity to the general-purpose Node.js and Go. Development frameworks for smart contracts, such as the Truffle Suite for Ethereum, are hugely beneficial in providing a standard structure for smart contract projects.
3. Building applications on top of smart contracts
Users of blockchain-enabled applications do not interact with smart contracts directly. They use a web application which invokes these contracts. I teach several courses that cover both Ethereum smart contracts with Solidity and smart contracts using Hyperledger Fabric. In the Ethereum network, these are called decentralized applications or DApps, and the courses in track 3 explore the Truffle Suite and Ethereum DApps in-depth.
In Hyperledger, the composer tool includes a framework to build such apps using high-level abstractions that are intuitive. This makes it easy to involve non-technical business users in app development. Finally, Microsoft Azure and Amazon Web Services include their interfaces to build full-fledged blockchain applications within minutes, and these include abstractions on top of smart contracts.
Moving from Blockchain Basics to Blockchain Expertise
Skillsoft’s Aspire learning paths on blockchains and smart contracts cover everything you need to know about defining contractual terms in digital form. The courses provide a theoretical explanation of what smart contracts are and how they differ from regular contracts. They also explore how to implement smart contracts in the commonly used blockchain platforms, such as Ethereum and Hyperledger Fabric, and the cloud services of Microsoft and Amazon.
Together, all the Skillsoft courses in this track provide a conceptual understanding of smart contracts and a significant degree of hands-on experience. Working through a journey equips the learner with the skills necessary to implement smart contracts and applications, using both low-level definitions as well as high-level abstractions. Given the rapid pace of blockchain technologies development, it is this all-round curriculum that will ensure you can evolve and stay current as the technology evolves. With Skillsoft Aspire, you will be able to build efficient and robust smart contracts regardless of how blockchain changes in the future.
Currently, we are teaching the following courses in the second track:
- Ethereum Smart Contracts with Solidity: An Overview of Ethereum and Solidity
- Ethereum Smart Contracts with Solidity: Features of the Solidity Language
- Ethereum Smart Contracts with Solidity: The Remix Solidity IDE
- Ethereum Smart Contracts with Solidity: Functions in Solidity
- Ethereum Smart Contracts with Solidity: Ether Transfer Operations in Solidity
- Ethereum Smart Contracts with Solidity: Data & Control Structures in Solidity
- Ethereum Smart Contracts with Solidity: Build Decentralized Apps
- Smart Contracts & Hyperledger Fabric: Foundations of Hyperledger Fabric
- Smart Contracts & Hyperledger Fabric: Setting Up a Hyperledger Fabric Network
- Smart Contracts & Hyperledger Fabric: Working with Fabric Chaincode in Golang
- Smart Contracts & Hyperledger Fabric: Working with Fabric Chaincode in NodeJS
- Smart Contracts & Hyperledger Fabric: Hyperledger Fabric Web App
- Smart Contracts & Hyperledger Fabric: Hyperledger Composer Playground
- Smart Contracts & Hyperledger Fabric: Web Apps for Hyperledger Composer Networks
Kishan Iyer is a content engineer at Loonycorn, a technical video content studio. He earned his master’s degree in Computer Science at Columbia University and has worked for various companies such as Deutsche Bank, Electric Cloud and WebMD in the US. He now works at Loonycorn and is also a Skillsoft technology instructor.