IF4074 Distributed Application Development Syllabus:

IF4074 Distributed Application Development Syllabus – Anna University PG Syllabus Regulation 2021

COURSE OBJECTIVES:

 Learn Depth Concept of GO Programming
 How to develop Smart Contracts
 How to Deploy Smart Contracts
 Front end Development using Angular
 Implementing Bitcoin Network

UNIT I GETTING STARTED WITH GO PROGRAMMING

Centralized vs Decentralized Systems Centralized Systems Decentralized Systems. Decentralized Data. Decentralized Wealth. Decentralized Identity. Decentralized Computing. Decentralized Bandwidth. Decentralized Markets for Decentralized Assets. About Go Language. The Terminal. Environment. Go. Your First Program. Variables & Data Types. Control Structures. Collection Frameworks. Functions. Structs and Interfaces. Packages. Hashes and Cryptography Packages. Servers Packages. Concurrency. Goroutines. Channels. Channel Direction. Select. Buffered Channels. The sync package. Synchronizing with mutex locks. Synchronizing access to composite
values. Concurrency barriers with sync. Wait Group. Data IO.

UNIT II BUILDING DISTRIBUTED APPLICATIONS IN GIN

Installing and configuring Gin. Dependency management in Golang. Writing a custom HTTP handler. Exploring API functionality. Defining the data model. HTTP endpoints. Implementing HTTP routes & Methods. Managing Data Persistence with MongoDB. Authentication & Authorization. Developing and Deploying Web Application using Gin

UNIT III SMART CONTRACTS USING SOLIDITY & GO

The CAP theorem. Consensus in distributed systems. Understanding the hash function and the Merkle tree. Operations using Solidity. Control Structures. Smart contract on a private blockchain. Design of DAO. Class properties of a contract. Expression and control structures. State variables. Functions & its Modifiers. Events. Implementing funding limit with inheritance. Making a contract abstract.

UNIT IV DEVELOPING DAPPS

What Is a DApp?. DApp architecture. Backend (Smart Contract). Frontend (Web User Interface). Data Storage. Inter-Planetary File System (IPFS). Swarm. Developing a Cryptocurrency. Building Your Dapp. Routing. Data Storage and Retrieval. Exploring the Truffle suite. Learning Solidity’s advanced features. Contract testing and debugging. Ethereum DApp with Angular.

UNIT V BITCOIN NETWORK

The Bitcoin Network. Network Discovery for a New Node. Bitcoin Transactions. Consensus and Block Mining. Block Propagation. Bitcoin payments. Bitcoin client. Bitcoin programming. Running a Blockchain Node. Create a Bitcoin Miner. Create a NEO Bookkeeping Node. Create an EOS Block Producer. Bitcoin Core API. Serialized Blocks. Block Header. Block Version. Bitcoin Wallet.

LIST OF EXPERIMENTS:

1: Developing Purchase Order DApp
2: Designing a Voting DApp
3: Designing and Deploying Vaccine Production using DApp
4: Developing Auction DApp
5: Developing Property Registration DApp

COURSE OUTCOMES:

CO1: Learn How to Compile and Deploy Solidity
CO2: Use Golang to Connect to Ethereum
CO3: Deploy Ethereum Smart Contracts Using Golang
CO4: Develop DApp using Angular
CO5: Develop Bitcoin Application

TOTAL: 45+30=75 PERIODS

REFERENCES

1. Caleb Doxsey, “Introducing Go”, O’Reilly Media, 2016
2. Vladimir Vivien, “Learning Go Programming”, Packt Publishing, 2016
3. Siraj Raval, “Decentralized Applications”, O’Reilly Media, 2016
4. Mohamed Labouardy, “Building Distributed Applications in Gin”, Packt Publishing, 2021
5. Chris Dannen, “Introducing Ethereum and Solidity”, Apress, 2017