[發(fā)明專利]一種基于容器的智能合約實時調(diào)試方法在審
| 申請?zhí)枺?/td> | 201910037863.9 | 申請日: | 2019-01-16 |
| 公開(公告)號: | CN109783195A | 公開(公告)日: | 2019-05-21 |
| 發(fā)明(設(shè)計)人: | 李偉;邱煒偉;梁秀波;李啟雷;尹可挺 | 申請(專利權(quán))人: | 杭州趣鏈科技有限公司 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455;G06F8/41 |
| 代理公司: | 杭州求是專利事務(wù)所有限公司 33200 | 代理人: | 邱啟旺 |
| 地址: | 310012 浙江省杭州*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 編譯 調(diào)試 智能 部署 錯誤反饋 代碼調(diào)試 調(diào)用結(jié)果 發(fā)明集成 規(guī)則檢測 結(jié)果反饋 前端系統(tǒng) 失敗結(jié)果 語法解析 拉取 語法 捕獲 成功 反饋 返回 失敗 配置 | ||
本發(fā)明公開了一種基于容器的智能合約代碼實時調(diào)試方法。主要調(diào)試流程包括:1)由用戶輸入智能合約代碼;2)前端系統(tǒng)根據(jù)配置好的規(guī)則檢測合約代碼,將代碼是否符合規(guī)范的結(jié)果反饋出來;3)在Docker容器中拉取合約代碼,進(jìn)行語法解析并編譯智能合約,獲取合約對應(yīng)的abi,同時將編譯結(jié)果和語法錯誤反饋出來;4)如果步驟3)編譯合約代碼成功,將合約部署至hyperchain聯(lián)盟鏈中;5)如果步驟3)編譯合約代碼失敗,則將失敗結(jié)果反饋出來并給出修改意見;6)如果步驟4)中部署合約成功,則啟動合約代碼的調(diào)試流程,捕獲用戶輸入的合約參數(shù),同時返回合約調(diào)用結(jié)果。本發(fā)明集成了智能合約的編譯、部署和調(diào)試,解決了智能合約代碼調(diào)試不夠方便快捷的問題。
技術(shù)領(lǐng)域
本發(fā)明涉及區(qū)塊鏈技術(shù)、solidity智能合約技術(shù)、Docker容器,尤其涉及一種基于容器的智能合約實時調(diào)試方法。
背景技術(shù)
區(qū)塊鏈技術(shù),是一種新型的分布式賬本技術(shù),其特點是去中心化與不可篡改性。通過共識算法的驅(qū)動,區(qū)塊鏈上的每個驗證節(jié)點都參與到交易驗證的過程中,保證區(qū)塊鏈賬本數(shù)據(jù)的一致性與不可篡改。
智能合約,是指可運行在區(qū)塊鏈上的一串二進(jìn)制代碼,可以理解為區(qū)塊鏈與外界溝通的橋梁,在區(qū)塊鏈不可篡改的特性下,可以在智能合約上進(jìn)行一些高保險操作,比如數(shù)字貨幣交易,銀行的跨行清算等操作。智能合約的執(zhí)行是自動地,而且操作具有原子性,即要么成功,要么全撤銷。這就和傳統(tǒng)數(shù)據(jù)庫系統(tǒng)中的原子操作一樣重要,在一些比較重要的場合,比如大額支付、跨境轉(zhuǎn)賬等操作中作用更加明顯。
Docker容器,是虛擬機技術(shù)(VM)的一種演化,是一種容器引擎。運行在不同容器中的應(yīng)用,能夠保持完全的隔離狀態(tài),而宿主機器只需要提供極小的額外性能開銷。輕量和環(huán)境隔離的特性,很容易實現(xiàn)對用戶空間中的智能合約代碼操作進(jìn)行隔離。
目前,智能合約的編寫、調(diào)試和測試是一個相對繁瑣的過程。部署和調(diào)用合約之前,需要搭建聯(lián)盟鏈和智能合約編譯環(huán)境,在編寫和調(diào)試合約的過程中,需要在相互隔離的環(huán)境中不斷嘗試進(jìn)行合約調(diào)用。繁瑣的過程極大的限制了智能合約的應(yīng)用。
發(fā)明內(nèi)容
本發(fā)明的目的是針對現(xiàn)有技術(shù)的不足,提供一種基于Docker容器的智能合約實時調(diào)試方法,提供智能合約編寫、編譯、部署和調(diào)試的集成環(huán)境,提高智能合約調(diào)試效率。
本發(fā)明的目的是通過如下技術(shù)方案實現(xiàn)的:一種基于容器的智能合約代碼實時調(diào)試方法,包括如下步驟:
1)由用戶輸入智能合約代碼;
2)前端系統(tǒng)根據(jù)配置好的規(guī)則檢測合約代碼,將代碼是否符合規(guī)范的結(jié)果反饋出來;
3)在Docker容器中拉取合約代碼,進(jìn)行語法解析并編譯智能合約,獲取合約對應(yīng)的abi,同時將編譯結(jié)果和語法錯誤反饋出來;
4)如果步驟3)編譯合約代碼成功,將合約部署至聯(lián)盟鏈中;
5)如果步驟3)編譯合約代碼失敗,則將失敗結(jié)果反饋出來并給出修改意見;
6)如果步驟4)中部署合約成功,則啟動合約代碼的調(diào)試流程,捕獲用戶輸入的合約參數(shù),同時返回合約調(diào)用結(jié)果。
進(jìn)一步地,所述的步驟1)中,用戶使用前端系統(tǒng)輸入合約代碼時有良好的編碼體驗,免去為常用代碼IDE安裝復(fù)雜的擴展插件的流程。
進(jìn)一步地,所述的步驟2)中,前端系統(tǒng)擁有一套通用的合約校驗規(guī)則,通過這些校驗規(guī)則檢測合約代碼的書寫規(guī)范度和正確性,用戶能夠在編譯前找到基本的錯誤,同時得到修改建議。
進(jìn)一步地,所述步驟3)中,前端系統(tǒng)與Docker容器相連接,在容器中進(jìn)行語法解析和嚴(yán)格的語法校驗。如果合約語法正確,則獲取合約編譯生成的字節(jié)碼,否則,將語法錯誤信息反饋至前端系統(tǒng)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于杭州趣鏈科技有限公司,未經(jīng)杭州趣鏈科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910037863.9/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 調(diào)試系統(tǒng)、調(diào)試方法和調(diào)試控制方法
- 一種終端調(diào)試方法和裝置
- 設(shè)備自動工程調(diào)試方法、裝置、系統(tǒng)和計算機設(shè)備
- 基于串口的遠(yuǎn)程設(shè)備調(diào)試系統(tǒng)及方法
- 一種安卓系統(tǒng)動態(tài)調(diào)試的方法及系統(tǒng)
- 調(diào)試裝置和遠(yuǎn)程調(diào)試系統(tǒng)
- 一種調(diào)試方法、裝置及系統(tǒng)
- 一種應(yīng)用程序開發(fā)的調(diào)試系統(tǒng)及方法
- 樓宇設(shè)備的異地調(diào)試控制方法、裝置和計算機設(shè)備
- 一種芯片調(diào)試系統(tǒng)及芯片調(diào)試方法
- 一種業(yè)務(wù)處理執(zhí)行語言流程部署方法
- 云計算平臺應(yīng)用快速部署的管理方法
- 虛擬化網(wǎng)絡(luò)功能部署方法及系統(tǒng)
- 版本部署的方法、裝置、設(shè)備和計算機存儲介質(zhì)
- 測試環(huán)境部署方法、部署裝置及存儲介質(zhì)
- 程序部署任務(wù)執(zhí)行方法、裝置、計算機設(shè)備和存儲介質(zhì)
- 一種基于Ansible的輕量級容器化分布式系統(tǒng)與部署方法
- 模型部署方法、模型部署裝置及終端設(shè)備
- 系統(tǒng)部署狀態(tài)的可視化方法、裝置、設(shè)備及可讀存儲介質(zhì)
- 一種任務(wù)部署方法、系統(tǒng)、電子設(shè)備及存儲介質(zhì)





