Skip to content

StefanoFioravanzo/ethereum-python-tutorial

Repository files navigation

ethereum-python-tutorial

Author: Stefano Fioravanzo

  • Master in Computer Science @ UniTn
  • Junior Research Scientist @ MPBA (FBK)

This guide is aimed at all developers that want to approach the Ethereum ecosystem and love Python :)

Ethereum is a relatively new technology, the development of its core technology and other tools are fast and often break retro-compatbility. Other tools have completely been deprecated, other lack even a single line of documentations...you can easily get lost in all this mess!

I will try to sort out all these things for you, providing a comprehensive list of Python tools, pointing out which ones you should use and the ones that have been deprecated.

For now the focus is on using Serpent e Vyper (soon), since they are the most Pythonic Smart Contract language. Still, I will consider adding some references about Solidity in the future.

Outline (Work in progress)

  1. Theoretical Introduction
    • Blockchain Origins: Bitcoin
    • Main Bitcoin Characteristics
    • DLT vs Blockchain
    • Immutability
    • Consensus
    • Mining
    • Issues with Bitcoin
    • Ethereum
    • EVM
    • Smart Contracts
    • GHOST
    • Mining (improved)
  2. Python Dev Tools for Ethereum
    • Ethereum main components
    • Ethereum client
    • RPC library
    • Smart Contracts Languages
    • Testing And Deploying Smart Contracts
  3. go-ethereum (geth)
    • Main net
    • Test nets
    • Build a local private net (single node)
    • Build a local private net (multi node)
    • Py-Geth - geth Python Wrapper
  4. Serpent
    • Intro: Language basics and differences w.r.t. Python
    • Examples
    • Testing with pyethereum.tester
  5. Web3.py
    • Basic connectivity to Eth nodes
    • PoA
    • Basic operations on the blockain
    • SC - Bytecode and ABI
    • Crowdfunding example

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published