Creating decentralized smart contracts using Python
Koshik Raj (~koshikraj) |
Bitcoin has been gaining popularity in the recent years due to its market value. But more importantly, the underlying technology is gaining the attention among the developers. Many developer communities inspired by bitcoin have created their own platform to use the underlying technology widely known as "blockchain" to achieve decentralization. Ethereum is one such platform that has created a blockchain platform which allows developers to develop their own decentralized applications (dApps) in the ethereum network by coding the logic in the execulatable contracts called "smart contracts". Although ethereum has gained a huge fame due to its smart contract implementation to create decentralized applications, it imposes developer to write the logic in an ethereum's domain-specific language called Solidity. In addition to coding in a new language, it mandates the developer to set up a new develop environment.
NEO blockchain platform provides a convenient way to develop smart contracts in general purpose programming language. NEO achieves this by providing compilers to compile code written in most of the languages to bytecode that can be executed in NEO virtual machine. Currently, NEO allows compilation of python smart contracts through neo-python project. This is the first blockchain project to provide such a freedom to the developer.
NEO project provides plenty of benefits over other blockchain platforms out there. It plans to achieve smart economy by creating a strong digital identity. It achieves faster transaction rate which is the key to scale any platform. NEO is being referred to as the "New Ethereum" due to its increasing popularity.
I plan on conducting a workshop to create a decentralized application by developing and deploying smart contract using neo-python.
Following would be the agenda of the workshop.
- Introduction to Bitcoin, Blockchain, and consensus algorithms to achieve decentralization. (30 mins)
- Introduction to NEO and Setting up a NEO platform (30 mins)
- Creating and deploying Hello World contract using Python (15 mins)
- Creating a Proof of Ownership system (30 mins)
- Creating a user interface to create a complete Proof of Ownership DApp. (20 mins)
- Creating an Initial Coin Offering (ICO) using an existing template and Q&A (25 mins)
- Demo of a food supply chain blockchain use case created in neo-python. (If time permits)
** This is a rough estimation of time and topics as of now. I will try to fit more topics if possible.
An attendee will be able to create an asset management DApp such as document ownership system or launch a basic ICO after attending the workshop.
- Novice level experience in python programming.
- Basic knowledge of how bitcoin or blockchain technology is implemented would help to grasp the topic pretty well.
Although I will be using Ubuntu Linux distribution for the demo,
- Attendees can use any platform which has python 3.6 installed.
- Windows users might have to install a docker container manager as installation might create some issues.
Few resources that I will be using in the workshop.
- I completed my masters in Computer science and Information Security after getting fascinated by the security and cryptography field.
- I have a demonstrated history of working in the computer and network security industry (RSA Security) where I had worked for more than a year.
- I worked as a senior fullstack developer for a start-up called CoWrks. In the meantime, I got involved in the blockchain and decentralized application.
- I started devoting my entire time to blockchain and I'm currently writing a research book on the blockchain technology called Foundations of Blockchain
- I actively speak on blockchain technology at local meetups. I'm a guest speaker at Byte Academy.