Publications-Theses
Article View/Open
Publication Export
-
題名 支援智能合約剖面導向程式設計、部署及事件監控之以太坊區塊鏈整合工具
Supporting aspect-oriented programming, deployment and event monitoring of smart contracts on the Ethereum blockchain作者 洪健哲
Hung, Chien-Che貢獻者 廖峻鋒<br>陳恭
Liao, Chun-Feng<br>Chen, Kung
洪健哲
Hung, Chien-Che關鍵詞 區塊鏈
智能合約
剖面導向程式設計
開發維運
Blockchain
Smart contract
Aspect-oriented Programming
DevOps
Solidity日期 2019 上傳時間 7-Aug-2019 16:36:24 (UTC+8) 摘要 隨著數位貨幣的興起,區塊鏈技術在現今生活中越來越受到產業界與學界的矚目。其中,智能合約的出現更讓區塊鏈如虎添翼,使其從原本的加密貨幣衍生出各式各樣的產業應用情境,智能合約的開發也逐漸受到重視。然而,目前區塊鏈上針對智能合約程式碼的寫作及開發機制未臻完善。例如,智能合約中尚無針對橫切面考量的邏輯提供通用的解決方案;此外,目前仍缺乏智能合約之開發、部署、資料監控的整合機制,導致區塊鏈應用的開發需要較繁複的手續、較高的開發時程成本。基於上述原因,本研究提出一個支援智能合約剖面導向程式設計的機制,並結合網頁技術、區塊鏈標準API、快取資料庫模組,設計一套便於開發的整合系統,以智能合約開發人員使用情境為案例,結合上述平台,就所開發的系統進行可用性檢驗,以使區塊鏈服務應用開發更有效率、縮短區塊鏈商品化週期。
With the development of digital currency, blockchain technology has attracted much attention from industry and academia nowadays. Meanwhile, the emergence of smart contracts has made the blockchain more powerful, which led to many innovative industrial application scenarios. However, there are still many issues to be resolved in the development of smart contracts. For example, there is no universal solution for modularizing cross-cutting logic in smart contracts. Besides, there still lacks an integration mechanism for development, deployment, and monitoring of smart contracts. Based on the reasons mentioned above, this thesis proposes a mechanism to support aspect-oriented programming (AOP) for the smart contract. Also, the research integrates web technologies, blockchain APIs, and cache modules to design a set of reusable and integrated middleware for contract developers. Finally, the study uses the actual development scenario and experiments to verify feasibility and performance. Our experiences indicate that the development cost of developers can be effectively reduced.參考文獻 [1] L. Luu, D. Chu, H. Olickel, P. Saxena, and A. Hobor, "Making Smart Contracts Smarter" in Proc. ACM Conference on Computer and Communications Security, 2016.[2] X. Xu et al., "A Taxonomy of Blockchain-Based Systems for Architecture Design,"2017 IEEE International Conference on Software Architecture (ICSA), Gothenburg, 2017, pp. 243-252.[3] Buterin Vitalik, "A Next Generation Smart Contract & Decentralized Application Platform. Ethereum White Paper," 2014.[4] K. Delmolino, M. Arnett, A. Kosba, A. Miller and Elaine Shi, "Step by Step Towards Creating a Safe Smart Contract: Lessons and Insights from a Cryptocurrency Lab," 2016.[5] K. Christidis and M. Devetsikiotis, " Blockchains and Smart Contracts for the Internet of Things," The Plethora of Research in Internet of Things, 2016.[6] M. Swan, "Blockchain: Blueprint for a new economy," O’Reilly Media, Inc, 2015.[7] Solidity: A Contract Language for Ethereum Blockchains. https://solidity.readthedocs.io/en/v0.4.24/, accessed 2018.11.30.[8] E. Ligu, A. Chatzigeorgiou, T. Chaikalis, N. Ygeionomakis, Identification of refused bequest code smells. In: Software Maintenance (ICSM), 2013 29th IEEE International Conference on Software Maintenance, pp. 392–395.[9] Y. Li, K. Zheng, Y. Yan, Q.Liu and X. Zhou, "EtherQL: A Query Layer for Blockchain System, " 2017.[10] Gradecki, J.and Lesiecki, N. Mastering AspectJ: Aspect-oriented Programming in Java. Wiley, Indianapolis, Ind., 2003.[11] Walker, M.A., Dubey, A., Laszka, A., and Schmidt, D.C, "PlaTIBART: a platform for transactive IoT blockchain applications with repeatable testing, " 2017.[12] S. Kazuyuki, S.Kenji, "Towards Application Portability on Blockchains," arXiv:1801. 01421 [cs.DC], 2018.[13] A. Brinckman et al., "A Comparative Evaluation of Blockchain Systems for Application Sharing Using Containers," 2017 IEEE 13th International Conference on e-Science (e-Science), Auckland, 2017, pp. 490-497.[14] Y. Li, K. Zheng, Y. Yan, Q.Liu and X. Zhou, "EtherQL: A Query Layer for Blockchain System, " 2017.[15] X. Xu et al., "The Blockchain as a Software Connector," 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA), Venice, 2016, pp. 182-191.[16] H. Nakashima and M. Aoyama, "An Automation Method of SLA Contract of Web APIs and Its Platform Based on Blockchain Concept," 2017 IEEE International Conference on Cognitive Computing (ICCC), Honolulu, HI, 2017, pp. 32-39.[17] Rongmei Zhang and Y. C. Hu, "HYPER: A Hybrid Approach to Efficient Content-Based Publish/Subscribe," 25th IEEE International Conference on Distributed Computing Systems (ICDCS`05), Columbus, OH, 2005, pp. 427-436.[18] Y. Yuan and F. Y. Wang, "Towards blockchain-based intelligent transportation systems," 2016 IEEE 19th International Conference on Intelligent Transportation Systems (ITSC), Rio de Janeiro, 2016, pp. 2663-2668.[19] 蔡詠捷,"區塊鏈中介服務設計探討-以Ethereum為例",國立政治大學資訊科學系碩士論文,2016.[20] Kiselev, I. Aspect-oriented Programming using AspectJ Sams, Indianapolis, Ind., 2003. 描述 碩士
國立政治大學
資訊科學系
106753007資料來源 http://thesis.lib.nccu.edu.tw/record/#G0106753007 資料類型 thesis dc.contributor.advisor 廖峻鋒<br>陳恭 zh_TW dc.contributor.advisor Liao, Chun-Feng<br>Chen, Kung en_US dc.contributor.author (Authors) 洪健哲 zh_TW dc.contributor.author (Authors) Hung, Chien-Che en_US dc.creator (作者) 洪健哲 zh_TW dc.creator (作者) Hung, Chien-Che en_US dc.date (日期) 2019 en_US dc.date.accessioned 7-Aug-2019 16:36:24 (UTC+8) - dc.date.available 7-Aug-2019 16:36:24 (UTC+8) - dc.date.issued (上傳時間) 7-Aug-2019 16:36:24 (UTC+8) - dc.identifier (Other Identifiers) G0106753007 en_US dc.identifier.uri (URI) http://nccur.lib.nccu.edu.tw/handle/140.119/124873 - dc.description (描述) 碩士 zh_TW dc.description (描述) 國立政治大學 zh_TW dc.description (描述) 資訊科學系 zh_TW dc.description (描述) 106753007 zh_TW dc.description.abstract (摘要) 隨著數位貨幣的興起,區塊鏈技術在現今生活中越來越受到產業界與學界的矚目。其中,智能合約的出現更讓區塊鏈如虎添翼,使其從原本的加密貨幣衍生出各式各樣的產業應用情境,智能合約的開發也逐漸受到重視。然而,目前區塊鏈上針對智能合約程式碼的寫作及開發機制未臻完善。例如,智能合約中尚無針對橫切面考量的邏輯提供通用的解決方案;此外,目前仍缺乏智能合約之開發、部署、資料監控的整合機制,導致區塊鏈應用的開發需要較繁複的手續、較高的開發時程成本。基於上述原因,本研究提出一個支援智能合約剖面導向程式設計的機制,並結合網頁技術、區塊鏈標準API、快取資料庫模組,設計一套便於開發的整合系統,以智能合約開發人員使用情境為案例,結合上述平台,就所開發的系統進行可用性檢驗,以使區塊鏈服務應用開發更有效率、縮短區塊鏈商品化週期。 zh_TW dc.description.abstract (摘要) With the development of digital currency, blockchain technology has attracted much attention from industry and academia nowadays. Meanwhile, the emergence of smart contracts has made the blockchain more powerful, which led to many innovative industrial application scenarios. However, there are still many issues to be resolved in the development of smart contracts. For example, there is no universal solution for modularizing cross-cutting logic in smart contracts. Besides, there still lacks an integration mechanism for development, deployment, and monitoring of smart contracts. Based on the reasons mentioned above, this thesis proposes a mechanism to support aspect-oriented programming (AOP) for the smart contract. Also, the research integrates web technologies, blockchain APIs, and cache modules to design a set of reusable and integrated middleware for contract developers. Finally, the study uses the actual development scenario and experiments to verify feasibility and performance. Our experiences indicate that the development cost of developers can be effectively reduced. en_US dc.description.tableofcontents 摘要 IIABSTRACT III目錄 IV圖目錄 VI表目錄 VII第1章 緒論 11.1研究背景 11.2研究動機 31.3研究目標 3第2章 技術背景與相關文獻 42.1區塊鏈與智能合約 42.2剖面導向技術 82.2.1 剖面導向技術術語介紹 9第3章 支援智能合約剖面導向之擴充機制 123.1設計考量 123.2 ASPECT SOLIDITY結構及流程 153.3 ASPECT語法 183.4縫合機制 20第4章 支援智能合約開發、部署與事件監控的中介軟體 264.1降低DAPP開發門檻 274.2部署智能合約與追蹤合約事件 294.3監控查詢資料與事件分享機制 33第5章 系統評估 405.1智能合約剖面導向之擴充機制 415.1.1案例研討 415.1.2結果討論 465.2智能合約開發、部署與事件監控之中介軟體 485.2.1實驗設計 485.2.2案例研討 53第6章 結論 55參考文獻 57附錄 60附錄一 相關發表著作 60 zh_TW dc.format.extent 1525155 bytes - dc.format.mimetype application/pdf - dc.source.uri (資料來源) http://thesis.lib.nccu.edu.tw/record/#G0106753007 en_US dc.subject (關鍵詞) 區塊鏈 zh_TW dc.subject (關鍵詞) 智能合約 zh_TW dc.subject (關鍵詞) 剖面導向程式設計 zh_TW dc.subject (關鍵詞) 開發維運 zh_TW dc.subject (關鍵詞) Blockchain en_US dc.subject (關鍵詞) Smart contract en_US dc.subject (關鍵詞) Aspect-oriented Programming en_US dc.subject (關鍵詞) DevOps en_US dc.subject (關鍵詞) Solidity en_US dc.title (題名) 支援智能合約剖面導向程式設計、部署及事件監控之以太坊區塊鏈整合工具 zh_TW dc.title (題名) Supporting aspect-oriented programming, deployment and event monitoring of smart contracts on the Ethereum blockchain en_US dc.type (資料類型) thesis en_US dc.relation.reference (參考文獻) [1] L. Luu, D. Chu, H. Olickel, P. Saxena, and A. Hobor, "Making Smart Contracts Smarter" in Proc. ACM Conference on Computer and Communications Security, 2016.[2] X. Xu et al., "A Taxonomy of Blockchain-Based Systems for Architecture Design,"2017 IEEE International Conference on Software Architecture (ICSA), Gothenburg, 2017, pp. 243-252.[3] Buterin Vitalik, "A Next Generation Smart Contract & Decentralized Application Platform. Ethereum White Paper," 2014.[4] K. Delmolino, M. Arnett, A. Kosba, A. Miller and Elaine Shi, "Step by Step Towards Creating a Safe Smart Contract: Lessons and Insights from a Cryptocurrency Lab," 2016.[5] K. Christidis and M. Devetsikiotis, " Blockchains and Smart Contracts for the Internet of Things," The Plethora of Research in Internet of Things, 2016.[6] M. Swan, "Blockchain: Blueprint for a new economy," O’Reilly Media, Inc, 2015.[7] Solidity: A Contract Language for Ethereum Blockchains. https://solidity.readthedocs.io/en/v0.4.24/, accessed 2018.11.30.[8] E. Ligu, A. Chatzigeorgiou, T. Chaikalis, N. Ygeionomakis, Identification of refused bequest code smells. In: Software Maintenance (ICSM), 2013 29th IEEE International Conference on Software Maintenance, pp. 392–395.[9] Y. Li, K. Zheng, Y. Yan, Q.Liu and X. Zhou, "EtherQL: A Query Layer for Blockchain System, " 2017.[10] Gradecki, J.and Lesiecki, N. Mastering AspectJ: Aspect-oriented Programming in Java. Wiley, Indianapolis, Ind., 2003.[11] Walker, M.A., Dubey, A., Laszka, A., and Schmidt, D.C, "PlaTIBART: a platform for transactive IoT blockchain applications with repeatable testing, " 2017.[12] S. Kazuyuki, S.Kenji, "Towards Application Portability on Blockchains," arXiv:1801. 01421 [cs.DC], 2018.[13] A. Brinckman et al., "A Comparative Evaluation of Blockchain Systems for Application Sharing Using Containers," 2017 IEEE 13th International Conference on e-Science (e-Science), Auckland, 2017, pp. 490-497.[14] Y. Li, K. Zheng, Y. Yan, Q.Liu and X. Zhou, "EtherQL: A Query Layer for Blockchain System, " 2017.[15] X. Xu et al., "The Blockchain as a Software Connector," 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA), Venice, 2016, pp. 182-191.[16] H. Nakashima and M. Aoyama, "An Automation Method of SLA Contract of Web APIs and Its Platform Based on Blockchain Concept," 2017 IEEE International Conference on Cognitive Computing (ICCC), Honolulu, HI, 2017, pp. 32-39.[17] Rongmei Zhang and Y. C. Hu, "HYPER: A Hybrid Approach to Efficient Content-Based Publish/Subscribe," 25th IEEE International Conference on Distributed Computing Systems (ICDCS`05), Columbus, OH, 2005, pp. 427-436.[18] Y. Yuan and F. Y. Wang, "Towards blockchain-based intelligent transportation systems," 2016 IEEE 19th International Conference on Intelligent Transportation Systems (ITSC), Rio de Janeiro, 2016, pp. 2663-2668.[19] 蔡詠捷,"區塊鏈中介服務設計探討-以Ethereum為例",國立政治大學資訊科學系碩士論文,2016.[20] Kiselev, I. Aspect-oriented Programming using AspectJ Sams, Indianapolis, Ind., 2003. zh_TW dc.identifier.doi (DOI) 10.6814/NCCU201900370 en_US