Content uploaded by Muhammad Talha Riaz
Author content
All content in this area was uploaded by Muhammad Talha Riaz on Jan 29, 2021
Content may be subject to copyright.
2020 3rd International Conference on Computing, Mathematics and Engineering Technologies – iCoMET 2020
XXX-X-XXXX-XXXX-X/XX/$XX.00 ©20XX IEEE
Meta-model for Stress Testing on Blockchain Nodes
Adil Aziz
Department of Computer &
Software Engineering
College of Electrical &
Mechanical Engineering
(CEME), National University of
Science & Technology (NUST)
Islamabad, Pakistan
adil.aziz18@ce.ceme.edu.pk
Muhammad Talha Riaz
Department of Computer &
Software Engineering
College of Electrical &
Mechanical Engineering
(CEME), National University of
Science & Technology (NUST)
Islamabad, Pakistan
talha.riaz18@ce.ceme.edu.pk
Muhammad Shah Jahan
Department of Computer &
Software Engineering
College of Electrical &
Mechanical Engineering
(CEME), National University of
Science & Technology (NUST)
Islamabad, Pakistan
shah.jahan18@ce.ceme.edu.pk
Kashif Ayub
Department of Computer &
Software Engineering
College of Electrical &
Mechanical Engineering
(CEME), National University of
Science & Technology (NUST)
Islamabad, Pakistan
muhammad.kashif18@ceme.nust.
edu.pk
Abstract— Blockchain nodes are essential part of a blockchain
network. The quality of blockchain nodes are very crucial as these
are building blocks of a network. The failure of nodes may lead to
the failure of network. In this paper we have discussed the meta-
model for stress testing on blockchain nodes, which will test
blockchain nodes. Meta-model is based on UML 2.0. It is destined
to be worked on all blockchain networks with minor changes.
Keywords— Blockchain, Blockchain nodes, Stress Testing,
Meta-model for stress testing.
I. INTRODUCTION
Blockchain is becoming an area of interest for people from
diverse background because of its applications and trust which
it is providing. Developers are developing applications on top
of blockchain. A blockchain network require at least 3 nodes to
be fault tolerant. There is no maximum limit of nodes. Nodes
keep on joining the blockchain networks to provide reliability
and mining the network fees. There are currently many
blockchain networks like Bitcoin, Ethereum, Stellar etc. These
networks have multiple nodes.[1][3]
With increasing number of transactions on blockchain
networks. The block size on a node is increasing which is
causing scaling problem. Also, many people concurrently do
transactions on blockchain networks which are affected by slow
processing power of node. A node is usually built on top of
traditional servers which may crash in peak hours. As there is
no single authority hence the regulation of node cannot be
done.[5]
So, in this paper, we are going to discuss meta model for stress
testing on blockchain nodes. This will help us in further testing
any blockchain node written in any language.
II. LITERATURE REVIEW
Blockchain's first known application was Bitcoin which
came into existence in 2009. Since then rapid number of bitcoin
nodes as well as other networks' nodes are being deployed across
the globe [1]. With the Blockchain Proof of Work [4], Proof of
Stake and other mechanism which offer benefits to the people
having nodes, more people are focused on having nodes and
mine cryptocurrencies.[13] Most people are making nodes on
public networks. On Proof of Work networks people are
installing miners to mine the cryptocurrency out of it and hence
trafficking the network. Permission less networks are more
exposed to threat then Permissioned networks because no
authority is regulating the joining nodes [4]. There is no check
on specification and load resistant servers. With the passage of
time number of transactions on blockchain networks are
increasing which result in block size increase beyond the
expectation and all nodes are not ready to accommodate such
large blocks on them, resulting in Blockchain Scalability
issues.[2][5]
As low-quality nodes are cheap and easy to hack, if low
quality nodes keep on joining the network, it will become more
exposed to failure. 51% attack can be inserted to take down
network, in majority attack, 51% nodes in network are tempered
to take down blockchain network.[6] If a network will have
more of its nodes down, Byzantine fault tolerance will also fail.
This is unavoidable security flaw and was highlighted by Satoshi
Nakamoto when he launched bitcoin.[1]
To alter this risk, we need the proper testing of server before
making it part of our network. There came need of the modern
stress techniques to be embedded in blockchain network node's
core code to be apply pre-validate server before making it part
of consensus of payments on network. This will help in
minimizing security threats due to load of server in peak time
and leading transactions on network.[12]
III. METHODOLOGY
A. Proposed Solution
Before Modeling of blockchain has been done in past but
now we are going to make meta model for stress testing of nodes
which are part of network. The following parameters are
variable in different blockchain networks.
i. Block Size [2]
ii. Transaction speed [7]
Getting current block size and transaction speed of a
network we can calculate the transactions for a specific
blockchain network and can predict how much time it will be
sufficient for node to handle the transactions safely. [7]
We will do modeling of enterprise modeling using above
mentioned metrics. As meta-model is platform independent,
so we are not modeling this for a specific blockchain
network.[8] This meta-model will generate models for
different blockchain networks. Meta-model will gather the
networks' recent stats and then prepare a test analyzing the
data. All of this will be on an independent node hence
maintaining the decentralized status of network.
Blockchain nodes will have a code embedded in
repository which will be shipped to server before making it a
node of blockchain network. Code will execute the sample
data set to test reliability and other requirement of the
connection.
B. Requirements for Proposed Solution
• Blockchain network will have at least 3 master nodes
to validate transactions. [1]
• Candidate node should have reliable internet
connectivity to take part in validation process.
• Blockchain network's core code should be publicly
available and easy to fork.
C. Support for Testing by MDSD Approach
We will discuss the scope of problem, which we have
discussed in this paper, in this section. Then we will present our
approach which will generate automated testing script to
validate blockchain node according to Model Driven Software
Design. [10]
D. Problem Definition
Automation in testing of a blockchain node includes writing
a script which can be acknowledged by any testing tool, which
will imply test cases which we have defined prior for node under
examination. Test script will validate the node under
consideration despite of network of blockchain which will run
on that specific node.[15]
E. Model-Driven Solution
We use the concepts of MDSD to automatically generate the
testing script for blockchain node.
Fig 1 Basic model of generating test sets.
Figure-1 shows the model and how we convert our model
into the in-test cases for blockchain node, through test script
generator we have made. This is a platform independent model
hence it can work for any blockchain network, representing test
case set for blockchain node as input of the model. For example,
Test Script Generator will take Model and platform specific
blockchain technologies constraints to generate platform
specific test set. [14]
F. Meta-Model
In this section a conceptual model present abstractions of
testing blockchain network and its nodes. On the basis on
conceptual model, to support testing blockchain node, we then
present a UML 2.0 profile of a meta-model. [9]
1) Conceptual Model of Blockchain Node Testing
Fig 2 Meta-model for blockchain nodes’ testing.
Conceptual model is being shown in figure of working of
blockchain node. Providing abstraction for visual elements of
testing of blockchain node. BlockNodeObject is on the top in the
hierarchy of object types, which is a general representative for
any element in blockchain node. BlockNodeObject is derived
from BlockchainNetwork object, which is an interesting aspect
of this model. This is because a blockchain network have many
nodes in it, and testing should address such scenarios. [11]
IV. VALIDATION
A. Case Study
We will discuss the case study as initial proof of concept of
our methodology, which we have discussed in this paper, in this
section. We first mention features of blockchain network, and
then describe the technologies and test tools required for
experiment. The findings and limitations are also mentioned in
this section. The network under study is Stellar Network.
Fig 3 Working of Stellar Network
B. Test Implementation
To implement the model-driven testing solution
presented, we developed a prototype in java. First test cases
for Stellar Network were designed using block size and
transaction speed.
C. Generation of Test Scripts
Tests Scripts will be generated by using parameters of
Blockchain Network and will compare ideal characteristics of a
Stellar network with the BlockNodeObject.
Fig 4 Application of Meta-model on Steller Network quorum having 3 nodes.
In the above-mentioned model, BlockchainNetwork's
instance StellarNetwork is at top of hierarchy. Stellar network
has nodes in it. Here we have taken, three nodes because at least
3 nodes are required to validate a network. These nodes have
Testcase on each node for execution of stress testing. These test
cases are derived from same testing scenario which has
specification of testing scenario.
V. CONCLUSION AND FUTURE WORK
The reason for the contextual investigation was to exhibit the
practicality of applying a model-driven way to deal with the plan
and improvement of testing contents for a web application.
Actualizing the model offers assurance to the case that the
procedure can be utilized to characterize stage free tests and
convert them into contents for a mechanized testing instrument.
The majority of the base experiments created for the contextual
analysis were effectively executed. This recommends the
conceptual builds utilized in the present model were in this way
adequate for speaking to the stage explicit develops required to
approve the Stellar Network. In spite of the fact that the present
variant of the model does not execute the innovation model for
Blockchain, this could be effectively fused by broadening the
summed-up classes given by the foundation. Leading the
investigation likewise given us understanding into the
complexities of building up a system for the proposed
methodology. In spite of the fact that the Stellar Network test set
just required the model to address a predetermined number of
test situations, structuring the structure to keep up autonomy
among the test model, innovation model, and content generator
was testing. Confinements of the present model incorporate
inclusion of just a subset of web controls and gadgets, and
manual identification of model limitation infringement. In any
case, the last could be settled using model-driven engineering
devices, for example, the Eclipse Modeling Framework. This
model can be further improved by including more specific
details of each blockchain platform. Since blockchain
technology is open to innovation. Every network tries to
accommodate the cons of previous network. This result in
change of detailed specification. We need to make a standard of
blockchain network in order to implement this globally.
REFERENCES
[1] Satoshi Nakamoto. Bitcoin: A Peer-to-Peer Electronic Cash System.
https://bitcoin.org/bitcoin.pdf
[2] Iuon-Chang Lin, Tzu-Chun Liao. A Survey of Blockchain Security Issues
and Challenges International Journal of Network Security, Vol.19, No.5,
PP.653-659, Sept. 2017
[3] DAVID MAZI`ERES, The Stellar Consensus Protocol:A Federated
Model for Internet-level Consensus, Stellar Development Foundation
[4] Debin Liu, L Jean Camp. Proof of Work can Work, Indiana University,
2006.
[5] Croman, Kyle; Eyal, Ittay (2016). On Scaling Decentralized Blockchains.
[6] Jake Frankenfield. 51% Attack, Investopedia, 2019.
[7] CoinBundle Team, Transaction Speeds to Infinity & Beyond, 2018.
[8] Fill, Hans-Georg, Haerer, Felix, Knowledge Blockchains: Applying
Blockchain Technologies to Enterprise Modeling, 2018.
[9] Y. Hernandez, TM. King, J. Pava, PJ. Clarke, “A Meta-model to
Support Regression Testing of Web Applications”, SEKE-
works.bepress.com, 2008: 500-505.
[10] Atifi Meriem, Marzak Abdelaziz, A Meta-Model for Risk-Based Testing
Technique Based on the MDA Approach, 2018.
[11] Ildevana P. Rodrigues, Márcia de Borba Campos, Avelino F. Zorzo,
Usability Evaluation of Domain-Specific Languages: a systematic
literature review, 2017.
[12] Andreas M. Antonopoulos. 2014. Mastering Bitcoin: Unlocking Digital
Crypto-Currencies (1st ed.). O'Reilly Media, Inc.
[13] Dhillon, Vikram & Metcalf, David & Hooper, Max. (2017). Blockchain
Enabled Applications: Understand the Blockchain Ecosystem and How to
Make it Work for You. 10.1007/978-1-4842-3081-7.
[14] Alberts, Berend & O. Meertens, Lucas & Iacob, Maria-Eugenia &
Nieuwenhuis, Bart. (2013). A Meta-Model Perspective on Business
Models. Lecture Notes in Business Information Processing. 142. 64-81.
10.1007/978-3-642-37478-4_4.
[15] Cihak, Martin. (2007). Introduction to Applied Stress Testing. IMF
Working Papers. 07. 10.5089/9781451866230.001.