<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jiajin Xu</string-name>
          <email>xujj@sscenter.sh.cn</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Huan Zhang</string-name>
          <email>zhangh@sscenter.sh.cn</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jiayu Gong</string-name>
          <email>gjy@sscenter.sh.cn</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Shanghai Key Laboratory of Computer</institution>
          ,
          <addr-line>Software Evaluation. Shanghai, Computer Software Technology</addr-line>
          ,
          <institution>Development Center</institution>
          ,
          <addr-line>Shanghai</addr-line>
          ,
          <country country="CN">China</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2011</year>
      </pub-date>
      <abstract>
        <p>-With the maturity and popularity of blockchain technology, it has applied to many industries, such as financial sector, logistics, notarization and so on, but there is no correct quality model to describe the brockchain software. This paper we combined with the general software quality model(SQuaRE), formed a suitable quality model of the blockchain platform (Hyperledger Fabric) and expound its special quality measure. The research result of this paper can be applied to test or evaluate of blockchain application.</p>
      </abstract>
      <kwd-group>
        <kwd>Hyperledger Fabric</kwd>
        <kwd>blockchain</kwd>
        <kwd>software quality</kwd>
        <kwd>software quality model</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        Recently blockchains attract the interests of stakeholders
across a wide span of industries: finance ，healthcare， real
estate, and government, because of its decentralization,
nontampering, traceability, collective maintenance, openness and
transparency. As a new infrastructure, blockchains
application testing is quite different from the traditional ways.
General software quality models may not quite compatible
with the blockchain applications since their different features
from other software. This paper introduces general software
model ISO/IEC 25010[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and describes blockchain
application’s features and its special quality measures. They
can be used as a supplement to ISO/IEC 25023:2016[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>II. GENERAL SOFTWARE QUALITY MODEL</p>
      <p>Due to the different requirements, the stakeholders may
have different quality perspectives. For users, software
quality is to meet the needs of users. For developers,
software quality is consistent with requirements. In order to
give a reasonable evaluation of the quality of software
products, a software quality model is necessary</p>
      <p>
        Last decade, ISO/IEC JTC1 SC7 has designed a new
generation of software quality standards, namely ISO/IEC
25000 SQuaRE or Software Product Quality Requirements
and Evaluation. ISO/IEC 25010 software product quality
model is a general model for judging software’s quality,
which includes eight quality characteristics, functional
suitability, performance efficiency, compatibility, usability,
reliability, security, maintainability and portability[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. For
each characteristic, it contains several sub characteristics.
Fig.1 shows the details of System and software product
quality model.
Capacity
      </p>
      <sec id="sec-1-1">
        <title>System/Software Product Quality</title>
        <p>Appropriateness
Recognisability
Learnability
Operability
User error
protection
User interface
aesthetic
Accessibility</p>
        <p>Maturity
Availability
Fault tolerance
Recoverability</p>
        <p>Confidentiality</p>
        <p>Integrity
Non-repudiation
Accountability
Authenticity</p>
        <p>Maintainability
Modularity
Reusability
Analysability
Modifiability
Testability</p>
        <p>III.</p>
        <p>HYPERLEDGER FABRIC BLOCKCHAIN SOFTWARE</p>
        <p>FEATURES</p>
        <p>In the blockchain application, Hyperledger is an excellent
implementation of the union chain, and Hyperledger Fabric
is the kernel of Hyperledger project.</p>
        <p>Hyperledger Fabric is essentially a distributed ledger,
using a high availability modularization as its design concept.
The modules, such as MSP, Ordering Service, Ordering
Service, Ordering Service are deployed separately. This way
can configure the requirement flexibly. The key technologies
of Hyperledger Fabric as follow.</p>
        <p>Chain
Coder Org1</p>
        <p>Peer0
Ledgers</p>
        <p>Org1
LedgersPeer1 Ledgers</p>
        <p>Chain Chain
Coder Org2 Chain CoderOrg3</p>
        <p>Peer0 Coder Org2 Peer0</p>
        <p>Peer1 Ledgers
Ledgers</p>
        <p>Chain
CoderOrg3</p>
        <p>Peer1
Ledgers</p>
        <p>Order1
Order2</p>
        <p>Order3 RAFT
Org1
Org1</p>
        <p>CA
Org2 Org3</p>
        <sec id="sec-1-1-1">
          <title>A、 Ledger[3]</title>
          <p>A Fabric Ledger is a series of orderly and immutable
records which states has been transformed. Its inside
structure is been comprised of a block which stores the
immutable, ordered records, and simultaneously contains a
state database to record the current state.</p>
        </sec>
        <sec id="sec-1-1-2">
          <title>B、 Blockchain[3]</title>
          <p>The Block chain is based on the local file system, and its
blocks are put in local hard disk which store the file system.
The previous block hash is pointed to the current block hash,
so they can connect with a block chain.</p>
          <p>
            C、 Peer[
            <xref ref-type="bibr" rid="ref3">3</xref>
            ]
          </p>
          <p>Peer is the main body to do the operation of trade
processing and maintain ledger, which is mainly responsible
for the consensus process, and does ledger’s reading and
writing operation through chaincode. Peers can be divided
into Endorser Peer and Committer Peer, according to
different functions.</p>
        </sec>
        <sec id="sec-1-1-3">
          <title>D、 Channel[3]</title>
          <p>A channel is a private space which is used to
communicate information between two or multiple peers.
The transaction data in the channel is separated from the data
outside the channel, so we can ensure that the data in the
channel is safe enough. Transactions on the network must be
executed on the Channel. Each member of the transaction
needs authorization and certification, otherwise they cannot
be allowed to trade on the Channel.</p>
        </sec>
        <sec id="sec-1-1-4">
          <title>E、 Orderer[3]</title>
          <p>Orderer is sorting the transactions which is generated by
different channels in the blockchain network, and at the same
time broadcasting to the peer. Orderer is implemented as a
pluggable component and has two kinds of algorithms
(SOLO and Kafka).</p>
          <p>The fig2 is the structure chart of software which use the
technology of Hyperledger Fabric, we can know the
composition of this blockchain network clearly. In this
blockchain network, there are three organizations(Org1,
Org2, Org3), and each organization maintains 2 peers(peer0,
peer1) at the same time. The consensus algorithm is Raft, it
consists of three orders (Order1 、 Order2 、 Order3). And
chaincode</p>
          <p>Query user
information
Up chain by
image</p>
          <p>Query image history</p>
          <p>information
Query image</p>
          <p>details
Transfer by
image</p>
          <p>Blockchain-network
then there are three channels (Channel1, Channel2 and
Channel3) in the network, each channel contains different
organization, the organizations(Org1, Org2, Org3) have
joined Chanel1, the organizations(Org1, Org2) have joined
Chanel, the organizations(Org1, Org3) have joined Chanel3.
The functions of chaincode are up chain by image, transfer
by image, query user information, query history of image
and query detail of image.</p>
          <p>IV.</p>
          <p>HYPERLEDGER FABRIC SOFTWARE QUALITY MODEL
Based on the above characteristics of Hyperledger Fabric,
we tested with the application scenario of Hyperledger
Fabric, and established a software quality requirement
system which is suitable for HyperLedger Fabric as the fig3.
It also contains eight quality characteristics which is the
same as ISO/IEC 25010-2011. But many quality
characteristics have different sub characteristics, such as
functional suitability, performance efficiency; and many sub
characteristics have different test measures, such as
compatibility , reliability and security, the details as fig3.</p>
          <p>Hyperledger Fabric Blockchain System</p>
          <p>Product Quality in</p>
        </sec>
        <sec id="sec-1-1-5">
          <title>A． Functional suitability</title>
          <p>
            In ISO/IEC 25023-2016[
            <xref ref-type="bibr" rid="ref1">1</xref>
            ], there are two sub
characteristics, functional completeness, functional
correctness. But for Hyperledger Fabric, we add some new
sub characteristics to replace the normals’. The new sub
characteristics can be defined as function of user application
function, distributed application function and function of
management application [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ], the detail definition as follow;
1)
2)
3)
1)
2)
3)
4)
information to application system that will automatically fill
the encrypt attribute to the image. Then, the application will
send the basic information on image and encrypted
information to block chain system after the user presses the
on chain button. The detailed interactions of this blockchain
system as the fig4, and the interface specification of this
blockchain as the table1.
          </p>
          <p>Query detailofimage
Query history of image
Up chain by image
Transferby image</p>
          <p>X</p>
          <p>Imagestore
Application system</p>
          <p>File system</p>
        </sec>
        <sec id="sec-1-1-6">
          <title>Functiong of user application: It is the interaction</title>
          <p>between the blockchain customer and the
blockchain service, including two user operation
mode, the command line interface and image
interface.</p>
        </sec>
        <sec id="sec-1-1-7">
          <title>Function of distributed application: It is the</title>
          <p>distributed apply function of blockchain, including
selection or cancellation of blockchain service,
ordering and unordering of blockchain services and
the business operation of ledger.</p>
        </sec>
        <sec id="sec-1-1-8">
          <title>Function of management application: It is the</title>
          <p>management application function of blockchain,
including manage by member and manage by
monitor.</p>
        </sec>
        <sec id="sec-1-1-9">
          <title>B． Performance efficiency</title>
          <p>In ISO/IEC 25023-2016, there are three sub
characteristics, time-behaviour, resource utilisation and
capacity. But for Hyperledger Fabric, except these normal
sub characteristics, we add a additional indicator which
called transaction time. It can be defined as time of sorting
the consensus algorithm, time of completing the block
broadcast for transaction, time of completing verification and
submission for transaction, and time of completing
submission for transaction, the detail definition as follow;</p>
        </sec>
        <sec id="sec-1-1-10">
          <title>Time of sorting the consensus algorithm: The</title>
          <p>average time difference between WriteBlock and
Propose in order’s log file;</p>
        </sec>
        <sec id="sec-1-1-11">
          <title>Time of completing the block broadcast for</title>
          <p>transaction: The average time difference between
StoreBlock in peer’s log file and WriteBlock in
order’s log file;</p>
        </sec>
        <sec id="sec-1-1-12">
          <title>Time of completing verification and submission for</title>
          <p>transaction: The average time difference between
Validate and StoreBlock in peer’s log file;</p>
        </sec>
        <sec id="sec-1-1-13">
          <title>Time of completing submission for transaction: The</title>
          <p>average time difference between
CommitWithPvtData and Validate in peer’s log file.</p>
        </sec>
        <sec id="sec-1-1-14">
          <title>C． Compatibility</title>
          <p>
            In ISO/IEC 25023-2016, there are two sub-characteristics,
co-existence and interoperability, interoperability is defined
as data formats exchangeability, data exchange protocol
sufficiency and external interface adequacy. But for
Hyperledger Fabric, interoperability has different test
measures, it can be defined as the description of system
interaction interface[
            <xref ref-type="bibr" rid="ref4">4</xref>
            ]. The detail definition as follow;
          </p>
        </sec>
        <sec id="sec-1-1-15">
          <title>1) Description of system interaction interface: It needs</title>
          <p>to give a detailed description with the interface name,
request system, response system, method of the
interface be used , parameters of the interface and
return results of the interface.</p>
        </sec>
        <sec id="sec-1-1-16">
          <title>The example as follow:</title>
          <p>The image resource is stored in the file system while the
image encryption is stored in the application system. When
the user wants to put image on chain, they must interact with
file system, application system and block chain system.
Firstly, the user fills in the basic information, chooses the
image which would be uploaded, and finally presses the
upload button, enabling the file system to send the image
Interface Specification</p>
        </sec>
      </sec>
      <sec id="sec-1-2">
        <title>Method:</title>
        <p>EnrollAsset(ctx，
assetID，
assetName，
assetUrlHash，
ownerID， metadata)
Parameter:
assetName, assetID,
assetUrlHash,
ownerID, Metadata
Method:
QueryAssetsByUserI
D(ctx， userID)
Parameter:
userID
Method:
QueryAssetsHistoryB
yAssetID(ctx，
assetID)
Parameter:
assetID
Method:
ExchangeAsset(ctx，
assetHistoryID，
assetID，
origenUserID，
currentUserID)
Parameter:
assetHistoryID,
assetID,
origenUserID,
currentUserID
Return
ed
Result
transact
ion
result</p>
      </sec>
      <sec id="sec-1-3">
        <title>Image detail</title>
      </sec>
      <sec id="sec-1-4">
        <title>Image history</title>
      </sec>
      <sec id="sec-1-5">
        <title>Result of transfer</title>
      </sec>
      <sec id="sec-1-6">
        <title>Transfer by image</title>
      </sec>
      <sec id="sec-1-7">
        <title>Applicati on System</title>
      </sec>
      <sec id="sec-1-8">
        <title>Blockchain system</title>
        <sec id="sec-1-8-1">
          <title>D． Reliability</title>
          <p>In ISO/IEC 25023-2016, there are four
subcharacteristics, maturity, availability, fault tolerance and
recoverability. For Hyperledger Fabric, it is a peer-to-peer
network, with equivalent nodes, each node of the block
should reach a consensus and then to go to the next operation,
in the end all nodes make up a distributed ledger, complete a
command or result which cannot be changed. Because of this
consensus mechanism, the blockchain system allows partial
node or ledger to be incorrect. As long as most of them are
correct, the system also can works normally. So the fault
tolerance in Hyperledger Fabric can be defined as node
abnormal tolerance and ledger abnormal tolerance, the detail
definition as follow;
1） Node abnormal tolerance: Node tolerance rate of
the block chain system, the purpose is to find out
the maximum error number of endorsement nodes
and verification nodes, while not affecting the
normal use of the application;</p>
        </sec>
        <sec id="sec-1-8-2">
          <title>2） Ledger abnormal tolerance: Ledger tolerance rate</title>
          <p>of the block chain system, the purpose is to find out
the maximum number of the ledger file which is
been deleted or tampered, while not affecting the
normal use of the application;</p>
        </sec>
        <sec id="sec-1-8-3">
          <title>E． Security</title>
          <p>In ISO/IEC 25023-2016, confidentiality, non-repudiation
and authenticity are all the security’s sub-characteristic.
Confidentiality is defined as the correctness of data, access
control; Non-repudiation is defined as data signature
utilization quality metrics; Authenticity is defined as the
adequacy of the identification mechanism and the conformity
of the identification rules. But for Hyperledger Fabric, there
are different test measures, confidentiality can be defined as
unauthorized access restrictions, channel isolation, and node
confidentiality; Non-repudiation can be defined as
nonrepudiation of operations on the chain and non-repudiation of
log data; Authenticity can be defined as the identification
mechanism, the detail definition as follow;
1） Unauthorized access restrictions: When there is
unauthorized data access, the data privacy
processing of the block chain;
2） Channel isolation: Isolation measures in block
chain channels;
3） Node confidentiality: Confidentiality measures for
block chain ledger data and node data;</p>
        </sec>
        <sec id="sec-1-8-4">
          <title>4） Non-repudiation of operations on the chain: All</title>
          <p>chain operations can be logged and traced;</p>
        </sec>
        <sec id="sec-1-8-5">
          <title>5） Non-repudiation of log data: All log data only can</title>
          <p>be viewed but cannot be tampered;</p>
        </sec>
        <sec id="sec-1-8-6">
          <title>6） Identification mechanism: The identification</title>
          <p>mechanism adopted by block chain;</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>V. CONCLUSION</title>
      <p>This paper analyzed the characteristics of Hyperledger
Fabric, formed a software quality management system which
is suitable for Hyperledger Fabric, and then explained its
special quality measure. We hope that can provide a
reference when testing with the blockchain software, and
improve the blockchain’s software quality.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1] ISO/IEC 25023:
          <article-title>Systems and software engineering -- Systems and software Quality Requirements and Evaluation (SQuaRE) -- Measurement of system and software product quality</article-title>
          , Geneva, Switzerland: International Organization for Standardization,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2] ISO/IEC 25010:
          <article-title>Systems and software engineering -- Systems and software Quality Requirements and Evaluation (SQuaRE) -- System and software quality models</article-title>
          , Geneva, Switzerland: International Organization for Standardization,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Bellaj</given-names>
            <surname>Badr</surname>
          </string-name>
          , Richard Horrocks,
          <string-name>
            <surname>Xun (Brian) Wu</surname>
          </string-name>
          , “Blockchain By Example” England, Birmingham:Packt Publish,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4] CBTCA-001:
          <article-title>Grading Evaluation Specification for Blockchain Distributed Ledger Information System (Chinese)</article-title>
          ,
          <source>Chaoyang District</source>
          , Beijing: China Blockchain Evaluation Alliance,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>CBD-Forum-</surname>
          </string-name>
          001:
          <string-name>
            <surname>Blockchain-Reference Dongcheng</surname>
            <given-names>District</given-names>
          </string-name>
          , Beijing: China Technology Standardization,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>