Python on the blockchain: Triumphs and tribulations in a crypto startup
In this presentation, we outline the utility of Python and Django as backend components in a blockchain/cryptocurrency startup company. After a brief explanation of blockchain systems in general, we provide an overview of and justification for the core components of our stack, discuss encountered problems, and highlight emerging trends in the Python/crypto space.
Tags: Business & Start-Ups, Community, Django, Infrastructure, Python
Scheduled on thursday 14:00 in room lecture
I'm Daniel, originally from Australia. I'm a functional linguist by training, but my enthusiasm for programming and the blockchain led me to leave academia for a position as a developer at Bitpanda, in Vienna. I also maintain a guest researcher position at the Austrian Academy of Sciences, working at the intersection of language, computing and innovation research. I'm co-presenting with my colleague and dear friend, Lorb, Austrian born, who also has a background in the humanities and social sciences, and who was responsible for our company's much-needed backend upgrade from PHP to Python.
While many cryptographic components of blockchain protocols can be extremely complex, blockchain systems themselves are relatively easy to understand when viewed from a distance. To take the example of Bitcoin, users store digital currency in hardware or software wallets, and use private keys to sign and broadcast transactions. Broadcasted transactions are grouped together into a block through a cryptographic process known as mining, with miners rewarded through the collection of transaction fees and the issuance of new coins. The mined block of transactions is appended to the existing chain, and verified by a global network of nodes. This process repeats in perpetuity, with each newly added block adding to the trustedness and security of data stored on the chain.
Increased interest in and demand for cryptocurrencies has brought about a need for places where digital assets can easily be bought, sold or traded. Our platform, Bitpanda, accomplishes this with a backend written in Python, and relying heavily on Django and MySQL databases. In our presentation, we begin by providing a brief overview of how blockchains work. Following this, we describe the Python architecture that (e.g.) generates cryptocurrency wallets, builds, signs and sends transactions, and monitors blockchains for new, relevant data. Key challenges, solutions and failures encountered during the development of the system, and growth of our team, are presented.
Throughout our talk, we also highlight a number of broader social implications of blockchains, and our work with them. More specifically, we describe the need for open-innovation based approaches to blockchain development, the value of open-source within the blockchain community, and the current lack of critical discourse surrounding the potential uses of blockchains as mechanisms of surveillance and control.