/Coursera_Blockchain_Specialization

This is the content and projects related to the Blockchain Specialization taught by University of Buffalo and provided by Coursera

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Coursera Blockchain Specialization

This is the content and projects related to the Blockchain Specialization taught by University at Buffalo and provided by Coursera.

This specialization introduces blockchain, a revolutionary technology that enables peer-to-peer transfer of digital assets without any intermediaries, and is predicted to be just as impactful as the Internet. More specifically, it prepares us to program on the Ethereum blockchain. The four courses provide learners with (i) an understanding and working knowledge of foundational blockchain concepts, (ii) a skill set for designing and implementing smart contracts, (iii) methods for developing decentralized applications on the blockchain, and (iv) information about the ongoing specific industry-wide blockchain frameworks.

The specialization covers a range of essential topics, from the cryptographic underpinnings of blockchain technology to enabling decentralized applications on a private Ethereum blockchain platform.

Here various concepts where taught in the 4 courses:

  1. Blockchain Basics: The first course of the Blockchain specialization provided a broad overview of the essential concepts of blockchain technology – by initially exploring the Bitcoin protocol followed by the Ethereum protocol – to lay the foundation necessary for developing applications and programming. Got equipped with the knowledge needed to create nodes on personal Ethereum blockchain, create accounts, unlock accounts, mine, transact, transfer Ethers, and check balances.
    Learned about the decentralized peer-to-peer network, an immutable distributed ledger and the trust model that defines a blockchain. This course explained basic components of a blockchain (transaction, block, block header, and the chain) its operations (verification, validation, and consensus model) underlying algorithms, and essentials of trust (hard fork and soft fork). Content included the hashing and cryptography foundations indispensable to blockchain programming, which was the focus of two subsequent specialization courses, Smart Contracts and Decentralized Applications (Dapps). Worked on a virtual machine image, specifically created for this course, to build an Ethereum test chain and operate on the chain. This hands-on activity will helped me understand the workings of a blockchain, its transactions, blocks and mining.

  2. Smart Contracts: The second course of the Blockchain specialization will helped me design, code, deploy and execute a smart contract – the computational element of the blockchain technology. Smart contracts allow for implementing user-defined operations of arbitrary complexity that are not possible through plain cryptocurrency protocols. They allow users to implement conditions, rules and policies of the domain applications. Smart contracts are a powerful feature that, when properly designed and coded, can result in autonomous, efficient and transparent systems. Designed and programmed smart contracts in Solidity language, tested and deployed them in the Remix development environment, and invoked them from a simple web interface that Remix provided. This course features best practices for designing solutions with smart contracts using Solidity and Remix IDE.

  3. Decentralized Applications (Dapps): The third course of the Blockchain specialization prepared to design and develop end-to-end decentralized applications (Dapps) – which provide anyone with access to the blockchain’s features and services. Used Truffle IDE, smart contracts, a simple web client and a MetaMask client. Learned about the architecture of a Dapp: the front-end client interface, backed by the blockchain and smart contracts. The course covers the basic design of a Dapp, Truffle development process and commands (init, develop, test and migrate), test-driven development of Dapp, Dapp application models and emerging standards that are essential for predictable Dapp behavior.

  4. Blockchain Platforms: The fourth course of the Blockchain specialization provides an understanding of the broader blockchain ecosystem. I was introduced to other blockchain platforms, details of two decentralized application use cases, and challenges such as privacy and scalability. Discussed permissioned blockchain architectures of Hyperledger and Microsoft Azure's blockchain as a service model and analyze the Augur and Grid+ decentralized application platforms. Course material includes emerging alternative decentralization models such as IPFS and Hashgraph, challenges in broader blockchain adoption, and continuous improvement solutions.