As reported before, we investigate quality characteristics of decentralised applications in analogy to the usual assessment of microservice artefacts. We are happy to report on how we shared the intermediate results at the most recent Azure Blockchain meetup in Zurich, apart from reporting on the event itself.
The Azure Blockchain Zurich meetup group consists of technical and business enthusiasts sharing their blockchain experience, both with and without involving the corresponding Azure-hosted services. Due to ongoing renovations in the usual meetup place, we were happy to host the group in one of the auditoriums of the ZHAW/ZHdK building in Zurich.
The first talk by Daniel Szegö introduced the Hyperledger open source project, under the umrella of Linux Foundation, and in particular Hyperledger Fabric as dockerised platform to implement consensus and byzantine fault tolerance for business consortiums. A typical use case is multiple companies or universities working together, knowing but not fully trusting each other. An interesting feature is Fabric’s support for mainstream programming languages like Go and JavaScript, removing the divide with otherwise chain-specific languages such as Solidity, as well as support for composite actions. The talk led to heavy discussions on why not using public blockchains and why not using distributed, in particular master-less/shared-nothing, database setups. Moreover, the performance was discussed, with references to the contract-less/blockchain-less Radix as one of the fastest distributed ledgers available now (alas, not as open source).
The second talk was initiated by Josef Spillner and mainly delivered by Ilham Qasse to convey our research directions and results. It outlined historic and current connections between decentralised computing and cloud computing. The more interesting started by covering the acquisition of metrics on dapps in various blockchains as advertised by several dapps marketplaces, before proceeding to the code level of smart contracts. Among the interesting findings is the discrepancy between dapps and contracts. There are standalone contracts not part of any dapp – not much surprising for older contract blocks on the chain, but hinting at unadvertised usage for newer ones – and there are dapps without contracts, presumably referencing execution logic outside the typical dapp structure. A discussion topic after the talk has been the pricing. Indeed, cloud-hosted blockchains are assisting in the deployment but not in the development or usage of dapps. The experiments scripts used to produce the data shown in the talk are available via Git, and the slides are up on Speakerdeck.
The talk also asked participants to fill out a questionnaire on quality aspects around dapps and cloud apps to let us gain more knowledge. Unfortunately, with only 8 questionnaires returned, the results are not representative, but perhaps indicative of some developer concerns targeting cloud and blockchain platforms. While we will repeat the survey and report in more detail at a later point in time, it is worth showing a figure which shows the divided nature of developers when it comes to offering PaaS functionality during the development process. According to the figure below, half prefer self-running while some prefer either only reports or even automatically generated suggestions for fixes to be delivered to them upon code and artefact changes. The answers were partially exclusive to one of these choices, and partially involved even multiple choices. A correlation between choice and platform technology (cloud, blockchain, cloud-hosted chain) could not be identified, but this may, again, be due to the limited representativeness of the data points.
An important element of meetup talks are live demos. Both talks presented websites and terminal instructions for conveying how to make best use of the offered software.
The topic of combining blockchains and clouds remains interesting with many more possibilities which also came up during the meetup discussions. These include:
- cloud-hosted blockchains
- cloud functions as implementation of smart contract execution logic
- cloud artefacts, such as Docker containers, as smart contract implementation
- in analogy to nested clouds, there could be blockchains hosted within other blockchains (or ledgers within other ledgers, respectively), with obvious limitations
We thank the organisers of the meetup, and look forward to continue working with University of Sharjah and Penta on solving complex problems in clouds.