{"title":"Toward Scalable Docker-Based Emulations of Blockchain Networks for Research and Development","authors":"Diego Pennino, Maurizio Pizzonia","doi":"arxiv-2402.14610","DOIUrl":null,"url":null,"abstract":"Blockchain, like any other complex technology, needs a strong testing\nmethodology to support its evolution in both research and development contexts.\nSetting up meaningful tests for permissionless blockchain technology is a\nnotoriously complex task for several reasons: software is complex, large number\nof nodes are involved, network is non ideal, etc. Developers usually adopt\nsmall virtual laboratories or costly real devnets, based on real software.\nResearchers usually prefer simulations of a large number of nodes, based on\nsimplified models. In this paper, we aim to obtain the advantages of both\napproaches, i.e., performing large, realistic, inexpensive, and flexible\nexperiments, using real blockchain software within a virtual environment. To do\nthat, we tackle the challenge of running large blockchain networks in a single\nphysical machine, leveraging Linux and Docker. We analyze a number of problems\nthat arise when large blockchain networks are emulated and we provide technical\nsolutions for all of them. Finally, we describe two experiences of emulating\nfairly large blockchain networks on a single machine, adopting both research\noriented and production oriented software, and involving up to more than 3000\ncontainers.","PeriodicalId":501291,"journal":{"name":"arXiv - CS - Performance","volume":"43 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-02-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Performance","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2402.14610","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Blockchain, like any other complex technology, needs a strong testing
methodology to support its evolution in both research and development contexts.
Setting up meaningful tests for permissionless blockchain technology is a
notoriously complex task for several reasons: software is complex, large number
of nodes are involved, network is non ideal, etc. Developers usually adopt
small virtual laboratories or costly real devnets, based on real software.
Researchers usually prefer simulations of a large number of nodes, based on
simplified models. In this paper, we aim to obtain the advantages of both
approaches, i.e., performing large, realistic, inexpensive, and flexible
experiments, using real blockchain software within a virtual environment. To do
that, we tackle the challenge of running large blockchain networks in a single
physical machine, leveraging Linux and Docker. We analyze a number of problems
that arise when large blockchain networks are emulated and we provide technical
solutions for all of them. Finally, we describe two experiences of emulating
fairly large blockchain networks on a single machine, adopting both research
oriented and production oriented software, and involving up to more than 3000
containers.