  Scalability is one of the main roadblocks to business adoption of blockchain
systems. Despite recent intensive research on using sharding techniques to
enhance the scalability of blockchain systems, existing solutions do not
efficiently address cross-shard transactions. In this paper, we introduce
SharPer, a permissioned blockchain system that improves scalability by
clustering (partitioning) the nodes and assigning different data shards to
different clusters where each data shard is replicated on the nodes of a
cluster. SharPer supports both intra-shard and cross-shard transactions and
processes intra-shard transactions of different clusters as well as cross-shard
transactions with non-overlapping clusters simultaneously. In SharPer, the
blockchain ledger is formed as a directed acyclic graph where each cluster
maintains only a view of the ledger. SharPer also incorporates a flattened
protocol to establish consensus among clusters on the order of cross-shard
transactions. The experimental results reveal the efficiency of SharPer in
terms of performance and scalability especially in workloads with a low
percentage of cross-shard transactions.
