Skip to main content
main-content

Tipp

Weitere Kapitel dieses Buchs durch Wischen aufrufen

2021 | OriginalPaper | Buchkapitel

SaaS - Microservices-Based Scalable Smart Contract Architecture

verfasst von : Eranga Bandara, Xueping Liang, Peter Foytik, Sachin Shetty, Nalin Ranasinghe, Kasun De Zoysa, Wee Keong Ng

Erschienen in: Security in Computing and Communications

Verlag: Springer Singapore

share
TEILEN

Abstract

Existing blockchain smart contract platforms are designed as monolithic architectures. Even though there are multiple smart contracts with fully independent business logic, they run on a single monolithic container. This dependence on a monolithic container can be a performance bottleneck during the processing of a large number of transactions. To address this challenge, microservice-based architecture is adopted in the blockchain smart contracts by introducing a novel architecture to run independently on separate microservices. The new smart contract architecture is built on top of Mystiko blockchain, a functional programming and actor-based “Aplos” concurrent smart contract platform. Aplos is identified as a “Smart Actor” platform since it is built using Actor-based concurrency handling. Based on the philosophy of microservices, the Aplos Smart Actor platform on Mystiko blockchain is redesigned. This architecture is introduced as “SaaS - Smart actors as a service”. With SaaS, different Aplos smart actors in the blockchain are deployed as separate independent services (e.g. docker containers) instead of a single monolith service. This ensures different smart actors can execute transactions independently. An additional benefits to SaaS is that the architecture increases the scalability by guaranteeing concurrent execution of transactions, producing high transaction throughput on the blockchain.
Literatur
5.
Zurück zum Zitat Aderaldo, C.M., Mendonça, N.C., Pahl, C., Jamshidi, P.: Benchmark requirements for microservices architecture research. In: 2017 IEEE/ACM 1st International Workshop on Establishing the Community-Wide Infrastructure for Architecture-Based Software Engineering (ECASE), pp. 8–13. IEEE (2017) Aderaldo, C.M., Mendonça, N.C., Pahl, C., Jamshidi, P.: Benchmark requirements for microservices architecture research. In: 2017 IEEE/ACM 1st International Workshop on Establishing the Community-Wide Infrastructure for Architecture-Based Software Engineering (ECASE), pp. 8–13. IEEE (2017)
6.
Zurück zum Zitat Adrian, O.R.: The blockchain, today and tomorrow. In: 2018 20th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC), pp. 458–462. IEEE (2018) Adrian, O.R.: The blockchain, today and tomorrow. In: 2018 20th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC), pp. 458–462. IEEE (2018)
7.
Zurück zum Zitat Androulaki, E., et al.: Hyperledger fabric: a distributed operating system for permissioned blockchains. In: Proceedings of the Thirteenth EuroSys Conference, p. 30. ACM (2018) Androulaki, E., et al.: Hyperledger fabric: a distributed operating system for permissioned blockchains. In: Proceedings of the Thirteenth EuroSys Conference, p. 30. ACM (2018)
9.
Zurück zum Zitat Białecki, A., Muir, R., Ingersoll, G., Imagination, L.: Apache lucene 4. In: SIGIR 2012 Workshop on Open Source Information Retrieval, p. 17 (2012) Białecki, A., Muir, R., Ingersoll, G., Imagination, L.: Apache lucene 4. In: SIGIR 2012 Workshop on Open Source Information Retrieval, p. 17 (2012)
10.
Zurück zum Zitat Burns, B., Grant, B., Oppenheimer, D., Brewer, E., Wilkes, J.: Borg, omega, and kubernetes. Queue 14(1), 70–93 (2016) CrossRef Burns, B., Grant, B., Oppenheimer, D., Brewer, E., Wilkes, J.: Borg, omega, and kubernetes. Queue 14(1), 70–93 (2016) CrossRef
13.
Zurück zum Zitat Davis, A.L.: Akka streams. In: Reactive Streams in Java, pp. 57–70. Springer, Berlin (2019) Davis, A.L.: Akka streams. In: Reactive Streams in Java, pp. 57–70. Springer, Berlin (2019)
14.
Zurück zum Zitat Destounis, A., Paschos, G.S., Koutsopoulos, I.: Streaming big data meets backpressure in distributed network computation. In: IEEE INFOCOM 2016-The 35th Annual IEEE International Conference on Computer Communications, pp. 1–9. IEEE (2016) Destounis, A., Paschos, G.S., Koutsopoulos, I.: Streaming big data meets backpressure in distributed network computation. In: IEEE INFOCOM 2016-The 35th Annual IEEE International Conference on Computer Communications, pp. 1–9. IEEE (2016)
15.
Zurück zum Zitat Eykholt, E., Meredith, L.G., Denman, J.: Rchain architecture documentation. Retrieve. Jan. 19, 2019 (2017) Eykholt, E., Meredith, L.G., Denman, J.: Rchain architecture documentation. Retrieve. Jan. 19, 2019 (2017)
16.
Zurück zum Zitat Fernandes, J.L., Lopes, I.C., Rodrigues, J.J., Ullah, S.: Performance evaluation of restful web services and amqp protocol. In: 2013 Fifth International Conference on Ubiquitous and Future Networks (ICUFN), pp. 810–815. IEEE (2013) Fernandes, J.L., Lopes, I.C., Rodrigues, J.J., Ullah, S.: Performance evaluation of restful web services and amqp protocol. In: 2013 Fifth International Conference on Ubiquitous and Future Networks (ICUFN), pp. 810–815. IEEE (2013)
17.
Zurück zum Zitat Gormley, C., Tong, Z.: Elasticsearch: the definitive guide: a distributed real-time search and analytics engine. O’Reilly Media, Inc. (2015) Gormley, C., Tong, Z.: Elasticsearch: the definitive guide: a distributed real-time search and analytics engine. O’Reilly Media, Inc. (2015)
18.
Zurück zum Zitat Gupta, M.: Akka essentials. Packt Publishing Ltd, Birmingham (2012) Gupta, M.: Akka essentials. Packt Publishing Ltd, Birmingham (2012)
19.
Zurück zum Zitat Harz, D., Knottenbelt, W.: Towards safer smart contracts: A survey of languages and verification methods (2018) Harz, D., Knottenbelt, W.: Towards safer smart contracts: A survey of languages and verification methods (2018)
21.
Zurück zum Zitat Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978) CrossRef Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978) CrossRef
22.
Zurück zum Zitat Hughes, J.: Why functional programming matters. Comput. J. 32(2), 98–107 (1989) CrossRef Hughes, J.: Why functional programming matters. Comput. J. 32(2), 98–107 (1989) CrossRef
23.
Zurück zum Zitat Kreps, J., Narkhede, N., Rao, J., et al.: Kafka: a distributed messaging system for log processing. In: Proceedings of the NetDB. pp. 1–7 (2011) Kreps, J., Narkhede, N., Rao, J., et al.: Kafka: a distributed messaging system for log processing. In: Proceedings of the NetDB. pp. 1–7 (2011)
24.
Zurück zum Zitat Kurath, A.: Analyzing Serializability of Cassandra Applications. Ph.D. thesis, Master’s thesis. ETH Zürich (2017) Kurath, A.: Analyzing Serializability of Cassandra Applications. Ph.D. thesis, Master’s thesis. ETH Zürich (2017)
25.
Zurück zum Zitat Kwon, J.: Tendermint: Consensus without mining. Draft v. 0.6, fall 1, 11 (2014) Kwon, J.: Tendermint: Consensus without mining. Draft v. 0.6, fall 1, 11 (2014)
26.
Zurück zum Zitat Lakshman, A., Malik, P.: Cassandra: a decentralized structured storage system. ACM SIGOPS Oper. Syst. Revi. 44(2), 35–40 (2010) CrossRef Lakshman, A., Malik, P.: Cassandra: a decentralized structured storage system. ACM SIGOPS Oper. Syst. Revi. 44(2), 35–40 (2010) CrossRef
28.
Zurück zum Zitat Merkel, D.: Docker: lightweight linux containers for consistent development and deployment. Linux J. 2014(239), 2 (2014) Merkel, D.: Docker: lightweight linux containers for consistent development and deployment. Linux J. 2014(239), 2 (2014)
29.
Zurück zum Zitat Nakamoto, S.: Bitcoin: A peer-to-peer electronic cash system (2008) Nakamoto, S.: Bitcoin: A peer-to-peer electronic cash system (2008)
30.
Zurück zum Zitat O’Connor, R.: Simplicity: A new language for blockchains. In: Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security. pp. 107–120. ACM (2017) O’Connor, R.: Simplicity: A new language for blockchains. In: Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security. pp. 107–120. ACM (2017)
31.
Zurück zum Zitat Odersky, M., et al.: An overview of the scala programming language. Technical Report (2004) Odersky, M., et al.: An overview of the scala programming language. Technical Report (2004)
32.
Zurück zum Zitat Popejoy, S.: The pact smart contract language 2017 (2016) Popejoy, S.: The pact smart contract language 2017 (2016)
33.
Zurück zum Zitat Sergey, I., Kumar, A., Hobor, A.: Scilla: a smart contract intermediate-level language (2018) Sergey, I., Kumar, A., Hobor, A.: Scilla: a smart contract intermediate-level language (2018)
34.
35.
Zurück zum Zitat Traiger, I.L., Gray, J., Galtieri, C.A., Lindsay, B.G.: Transactions and consistency in distributed database systems. ACM Trans. Database Syst. (TODS) 7(3), 323–342 (1982) CrossRef Traiger, I.L., Gray, J., Galtieri, C.A., Lindsay, B.G.: Transactions and consistency in distributed database systems. ACM Trans. Database Syst. (TODS) 7(3), 323–342 (1982) CrossRef
36.
Zurück zum Zitat Zamani, M., Movahedi, M., Raykova, M.: Rapidchain: a fast blockchain protocol via full sharding. IACR Cryptol. ePrint Arch. 2018, 460 (2018) Zamani, M., Movahedi, M., Raykova, M.: Rapidchain: a fast blockchain protocol via full sharding. IACR Cryptol. ePrint Arch. 2018, 460 (2018)
37.
Zurück zum Zitat Zyskind, G., Nathan, O., Pentland, A.: Enigma: decentralized computation platform with guaranteed privacy. arXiv preprint arXiv:​1506.​03471 (2015) Zyskind, G., Nathan, O., Pentland, A.: Enigma: decentralized computation platform with guaranteed privacy. arXiv preprint arXiv:​1506.​03471 (2015)
Metadaten
Titel
SaaS - Microservices-Based Scalable Smart Contract Architecture
verfasst von
Eranga Bandara
Xueping Liang
Peter Foytik
Sachin Shetty
Nalin Ranasinghe
Kasun De Zoysa
Wee Keong Ng
Copyright-Jahr
2021
Verlag
Springer Singapore
DOI
https://doi.org/10.1007/978-981-16-0422-5_16

Premium Partner