Abstract
Smart contract is a programming interface to interact with the underlying blockchain storage models. It is a database abstraction layer for blockchain. Existing smart contract platforms follow the imperative style programming model since states are shared. As a result, there is no concurrency control mechanism when executing transactions, resulting in considerable latency and hindering scalability. To address performance and scalability issues of existing smart contract platforms, we design a new smart contract platform called “Aplos” based on the Scala functional programming language and Akka actors. In Aplos, all blockchain-related smart contract functions are implemented with Akka actors. The Aplos platform is built over Mystiko—a highly scalable blockchain storage for big data. Mystiko supports concurrent transactions, high transaction throughput, data analytics and machine learning. With Aplos smart contracts over Mystiko, we have developed a blockchain for highly scalable storage that aligns with big data requirements.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
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)
Akka: Akka documentation. https://doc.akka.io/docs/akka/2.5/actors.html
Akka: Akka streams documentation. https://doc.akka.io/docs/akka/2.5/stream/
Androulaki, E., et al.: Hyperledger fabric: a distributed operating system for permissioned blockchains. In: Proceedings of the Thirteenth EuroSys Conference, p. 30. ACM (2018)
Armknecht, F., et al.: A guide to fully homomorphic encryption. IACR Cryptol. ePrint Arch. 2015, 1192 (2015)
Bandara, E., et al.: Mystiko - blockchain meets big data. In: IEEE International Conference on Big Data, Big Data 2018, Seattle, WA, USA, 10–13 December 2018, pp. 3024–3032 (2018)
Buterin, V., et al.: A next-generation smart contract and decentralized application platform. White paper (2014)
Cassandra: Cassandra LWT. https://docs.datastax.com/en/cassandra/3.0/cassandra/dml/dmlLtwtTransactions.html
Coreos: coreos/etcd, August 2018. https://github.com/coreos/etcd
Docker: Docker documentation, August 2018. https://docs.docker.com/
Elasticsearch: Elasticsearch documentation. https://www.elastic.co/guide/index.html
Eykholt, E., Meredith, G., Denman, J.: RChain architecture documentation (2017)
Harz, D., Knottenbelt, W.: Towards safer smart contracts: a survey of languages and verification methods, September 2018
Hewitt, C.: Actor model of computation: scalable robust information systems. arXiv preprint arXiv:1008.1459 (2010)
Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978)
Karunanayake, A., De Zoysa, K., Muftic, S.: Mobile ATM for developing countries, January 2008. https://doi.org/10.1145/1403007.1403014
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)
Kubernetes: Kubernetes documentation. https://kubernetes.io/docs/home/?path=users&persona=app-developer&level=foundational
Kurath, A.: Analyzing serializability of cassandra applications. Ph.D. thesis, Master’s thesis, ETH Zürich (2017)
Lakshman, A., Malik, P.: Cassandra: a decentralized structured storage system. ACM SIGOPS Oper. Syst. Rev. 44(2), 35–40 (2010)
Lamport, L.: The part-time parliament. ACM Trans. Comput. Syst. (TOCS) 16(2), 133–169 (1998)
Lucene: Apache lucene documentation. http://lucene.apache.org/
MBSL: MBSL bank. https://www.mbslbank.com
McConaghy, T., et al.: BigchainDB: a scalable blockchain database. White paper, BigChainDB (2016)
Meng, X., et al.: MLlib: machine learning in apache spark. J. Mach. Learn. Res. 17(1), 1235–1241 (2016)
Nakamoto, S.: Bitcoin: a peer-to-peer electronic cash system (2008)
O’Connor, R.: Simplicity: a new language for blockchains, pp. 107–120, October 2017. https://doi.org/10.1145/3139337.3139340
Odersky, M., et al.: An overview of the scala programming language. Technical report (2004)
Popejoy, S.: The pact smart contract language, June 2017 (2016). http://kadena.io/docs/Kadena-PactWhitepaper.pdf
Redis: Redis documentation. https://redis.io/documentation
Richardson, C.: Microservices pattern. http://microservices.io/patterns/microservices.html
Scala: Scala documentation. https://docs.scala-lang.org/
Sergey, I., Kumar, A., Hobor, A.: Scilla: a smart contract intermediate-level language, January 2018
Solidity: Solidity documentation. https://solidity.readthedocs.io/en/develop/
Zamani, M., Movahedi, M., Raykova, M.: RapidChain: a fast blockchain protocol via full sharding. IACR Cryptol. ePrint Arch. 2018, 460 (2018)
Zyskind, G., Nathan, O., Pentland, A.: Enigma: decentralized computation platform with guaranteed privacy. arXiv preprint arXiv:1506.03471 (2015)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Singapore Pte Ltd.
About this paper
Cite this paper
Bandara, E., Ng, W.K., Ranasinghe, N., De Zoysa, K. (2020). Aplos: Smart Contracts Made Smart. In: Zheng, Z., Dai, HN., Tang, M., Chen, X. (eds) Blockchain and Trustworthy Systems. BlockSys 2019. Communications in Computer and Information Science, vol 1156. Springer, Singapore. https://doi.org/10.1007/978-981-15-2777-7_35
Download citation
DOI: https://doi.org/10.1007/978-981-15-2777-7_35
Published:
Publisher Name: Springer, Singapore
Print ISBN: 978-981-15-2776-0
Online ISBN: 978-981-15-2777-7
eBook Packages: Computer ScienceComputer Science (R0)