
Web3 Applications & Filecoin/IPFS
This course provides an introduction to building simple DApps on blockchains with storage on Filecoin/IPFS. The course covers Bitcoin, Ethereum, Filecoin/IPFS, and data science techniques useful for the blockchain industry. Learners will program a smart contract voting machine with anonymous elections, an NFT Pet Store on Ethereum with storage on Filecoin/IPFS, a decentralized ride share app, and complete a data science lab using blockchain data. Learners will finish the course with the knowledge of the infrastructure tools used to build blockchain DApps, exposure to the Solidity smart contract language, and four assignments to include in their portfolio.
Robert Dowling
Associate Engineer at Filecoin Foundation
Robert Dowling is an Associate Engineer at Filecoin Foundation, an organization dedicated to growing and supporting the Filecoin Ecosystem in order to preserve humanity’s most important information. There, he contributes to FF’s satellite program and its Web3 software engineering initiative, ProtoSchool. Formerly the Founder and CEO of Alphagora, a robo-advisory offering active trading strategies for cryptocurrency portfolios, and formerly the Founder and COO of rePurpose, a plastic recycling financing platform in India.

Filecoin/IPFS has been one of the defining platforms to come out of the cryptocurrency / blockchain boom. Decentralized file storage is a consequential use case that provides an alternative, more efficient way to store and access files on the internet, affords anyone the opportunity to provide space to those looking to store data, and serves as a key infrastructure for the new decentralized web. Even a majority of NFTs, which have exploded in the past year, are stored on Filecoin/IPFS.
Despite the massive interest in Web3 and industry demand for software engineers familiar with building on these new platforms, such material is not included in many computer science and software engineering curricula.
In this course, we will cover the fundamentals of building DApps on a blockchain and storing data associated with a DApp using Filecoin/IPFS. We’ll discuss the new data architecture that serves as the foundation for Filecoin/IPFS, build from scratch a DApp on a blockchain, and explore how Filecoin/IPFS will serve as critical infrastructure for this DApp.
- History of the technology, financial, and social.
- What enables Bitcoin as a peer-to-peer electronic cash system.
- Use cases of blockchain and how Ethereum realizes them.
- Ethereum Developer Environment | We will set up the Ethereum development environment and do some simple interactions with the blockchain, such as setting up wallets and issuing a transaction.
- Voting Machine on Ethereum | You will develop smart contracts that enable a simple Ethereum voting DApp with anonymous participants.
- What enables Ethereum as the “world computer.”
- Various smart contract token standards.
- How NFTs use multiple platforms to accomplish the digital art use case.
- Token Standards | You will become familiar with the different smart contract standards for tokens on Ethereum.
- NFT Pet Store on Ethereum | You will develop a simple NFT Pet Store on Ethereum, including the NFT smart contracts on Ethereum and storing the files on Filecoin/IPFS.
- What enables Filecoin as a decentralized storage marketplace.
- How Filecoin and IPFS interact with each other.
- Other tools used for Filecoin/IPFS development.
- Ride Sharing DApp on Filecoin/IPFS | You will develop a simple ridesharing app on Filecoin/IPFS.
- Useful data scraping techniques.
- Simple data analysis and machine learning techniques.
- We will come full circle in our understanding of blockchain by seeing how its unique design enables data analysis not possible in other transaction systems.
- Data Science on the Blockchain | In a Jupyter Notebook and in Python, you will complete a “data lab” that will have you will scrape a third party website (such as a block explorer, or from the blockchain directly) for blockchain-level crypto data, wrangle it such that the data is cleaned and useful, do some exploratory data analysis, and then produce a visualization or some predictive model that gives interesting insight learned from the data.
Having invited Robert Dowling to lecture Penn undergraduates multiple times on the recondite complexities of the emergent culture of cryptocurrency, I have been able to observe at close range Dowling's comprehensive understanding of the history of economic systems, his refreshing interpretations of "crypto-mythology," and a prophetic outlook about where the industry is heading . I highly recommend anyone interested in cracking the Bitcoin-culture code to take his course, which promises to be both vastly illuminating and unexpectedly entertaining.
Robert’s professional experience has allowed him to give students unique insights into both technology and industry. He is particularly interested in preparing students for industry and encouraging entrepreneurial endeavors, which informed the course materials he created for us. A course with Robert is bound to be insightful and compelling.
Web2 software engineers looking to familiarize themselves with the Web3 development environment and gain a deeper understanding of building on decentralized platforms.
Web3 software engineers looking to better understand how to use a decentralized storage platform (Filecoin/IPFS) for their Web3 apps.
Ability to write in any language and work with various libraries.
Working with JavaScript, nodeJS, React.
Experience building applications on Web2.
Strong interest in cryptocurrency / blockchain / Web3.