本技術實施例涉及區(qū)塊鏈,特別涉及一種區(qū)塊鏈的測試方法、裝置、設備及可讀存儲介質(zhì)。
背景技術:
1、區(qū)塊鏈是一種使用密碼學保證資源的傳輸訪問安全的技術。一般情況下,資源可以在同一個區(qū)塊鏈中進行轉(zhuǎn)移,也可以在不同的區(qū)塊鏈之間進行轉(zhuǎn)移。
2、如果屬于第一區(qū)塊鏈的第一對象向?qū)儆诘诙^(qū)塊鏈的第二對象進行資源轉(zhuǎn)移,則第一區(qū)塊鏈的第一節(jié)點可以響應于第一對象進行資源轉(zhuǎn)移的操作,將資源存放在第一區(qū)塊鏈的資源池中。中繼節(jié)點響應于資源存放在資源池的事件,生成簽名信息,并向第二區(qū)塊鏈的第二節(jié)點發(fā)送針對簽名信息的投票請求。第二節(jié)點向第二區(qū)塊鏈中的其他節(jié)點發(fā)送該投票請求,并接收其他節(jié)點發(fā)送的投票結果。如果第二節(jié)點基于其他節(jié)點發(fā)送的投票結果確認投票通過,則從第二區(qū)塊鏈的資源池中劃分資源給第二對象。
3、由上述內(nèi)容可知,針對在不同區(qū)塊鏈之間進行資源轉(zhuǎn)移的情況,中繼節(jié)點生成的簽名信息至關重要,如果簽名信息被篡改,則資源轉(zhuǎn)移會失敗。基于此,如何通過模擬對簽名信息的篡改來實現(xiàn)對區(qū)塊鏈的測試,成為一個亟需解決的技術問題。
技術實現(xiàn)思路
1、本技術提供了一種區(qū)塊鏈的測試方法、裝置、設備及可讀存儲介質(zhì),可用于對區(qū)塊鏈進行測試,提高區(qū)塊鏈的測試效率,所述技術方案包括如下內(nèi)容。
2、一方面,提供了一種區(qū)塊鏈的測試方法,所述方法包括:
3、獲取資源轉(zhuǎn)移用例,所述資源轉(zhuǎn)移用例用于描述屬于第一區(qū)塊鏈的第一對象向?qū)儆诘诙^(qū)塊鏈的第二對象進行資源轉(zhuǎn)移的場景;
4、獲取中繼節(jié)點的源代碼,所述源代碼用于獲取與簽名信息相關的參考內(nèi)容;
5、在所述源代碼中插入插樁代碼得到測試代碼,所述插樁代碼用于對通過所述源代碼獲取的所述參考內(nèi)容進行篡改得到篡改內(nèi)容,所述測試代碼用于根據(jù)所述源代碼基于所述篡改內(nèi)容生成第一簽名信息;
6、在所述中繼節(jié)點基于所述測試代碼生成所述第一簽名信息的情況下,對所述第一對象向所述第二對象進行資源轉(zhuǎn)移的場景進行測試,得到第一測試結果;
7、基于所述第一測試結果,確定區(qū)塊鏈測試結果。
8、另一方面,提供了一種區(qū)塊鏈的測試裝置,所述裝置包括:
9、獲取模塊,用于獲取資源轉(zhuǎn)移用例,所述資源轉(zhuǎn)移用例用于描述屬于第一區(qū)塊鏈的第一對象向?qū)儆诘诙^(qū)塊鏈的第二對象進行資源轉(zhuǎn)移的場景;
10、所述獲取模塊,還用于獲取中繼節(jié)點的源代碼,所述源代碼用于獲取與簽名信息相關的參考內(nèi)容;
11、插入模塊,用于在所述源代碼中插入插樁代碼得到測試代碼,所述插樁代碼用于對通過所述源代碼獲取的所述參考內(nèi)容進行篡改得到篡改內(nèi)容,所述測試代碼用于根據(jù)所述源代碼基于所述篡改內(nèi)容生成第一簽名信息;
12、測試模塊,用于在所述中繼節(jié)點基于所述測試代碼生成所述第一簽名信息的情況下,對所述第一對象向所述第二對象進行資源轉(zhuǎn)移的場景進行測試,得到第一測試結果;
13、確定模塊,用于基于所述第一測試結果,確定區(qū)塊鏈測試結果。
14、在一種可能的實現(xiàn)方式中,所述參考內(nèi)容包括所述中繼節(jié)點的私鑰、簽名算法和資源轉(zhuǎn)移信息;
15、所述插入模塊,用于獲取配置文件,所述配置文件包括所述插樁代碼和所述插樁代碼在所述源代碼中的插入位置,所述插樁代碼用于篡改所述私鑰、所述簽名算法和所述資源轉(zhuǎn)移信息中的至少一項;基于所述插入位置在所述源代碼中插入所述插樁代碼,得到所述測試代碼。
16、在一種可能的實現(xiàn)方式中,所述測試模塊,用于基于所述測試代碼生成測試可執(zhí)行文件;將所述測試可執(zhí)行文件部署在所述中繼節(jié)點;在所述中繼節(jié)點基于所述測試可執(zhí)行文件生成所述第一簽名信息的情況下,對所述第一對象向所述第二對象進行資源轉(zhuǎn)移的場景進行測試,得到第一測試結果。
17、在一種可能的實現(xiàn)方式中,所述測試模塊,用于獲取用于激活所述測試代碼中的插樁代碼的第一指令;基于所述第一指令和所述測試代碼生成第一中間文件,所述第一中間文件用于描述所述源代碼、所述測試代碼和在所述源代碼中插入所述插樁代碼時所做的修改;基于所述第一中間文件確定所述測試可執(zhí)行文件。
18、在一種可能的實現(xiàn)方式中,所述測試模塊,用于獲取用于使插樁代碼對應的可執(zhí)行文件運行的第二指令,所述測試可執(zhí)行文件包括所述源代碼對應的可執(zhí)行文件和所述插樁代碼對應的可執(zhí)行文件;在所述中繼節(jié)點基于所述第二指令,運行所述源代碼對應的可執(zhí)行文件和所述插樁代碼對應的可執(zhí)行文件生成所述第一簽名信息的情況下,對所述第一對象向所述第二對象進行資源轉(zhuǎn)移的場景進行測試,得到第一測試日志,所述第一測試日志用于描述在運行所述插樁代碼對應的可執(zhí)行文件的情況下,所述第一區(qū)塊鏈中的節(jié)點的運行信息、所述中繼節(jié)點的運行信息和所述第二區(qū)塊鏈中的節(jié)點的運行信息中的至少一項;基于所述第一測試日志,確定所述第一測試結果。
19、在一種可能的實現(xiàn)方式中,所述測試代碼還用于根據(jù)所述源代碼基于所述參考內(nèi)容生成所述第二簽名信息;
20、所述確定模塊,用于在所述中繼節(jié)點基于所述測試代碼生成所述第二簽名信息的情況下,對所述第一對象向所述第二對象進行資源轉(zhuǎn)移的場景進行測試,得到第二測試結果;基于所述第一測試結果和所述第二測試結果,確定所述區(qū)塊鏈測試結果。
21、在一種可能的實現(xiàn)方式中,所述確定模塊,用于獲取用于使所述插樁代碼對應的可執(zhí)行文件停止運行的第三指令,所述測試代碼用于生成部署在所述中繼節(jié)點上的測試可執(zhí)行文件,所述測試可執(zhí)行文件包括所述源代碼對應的可執(zhí)行文件和所述插樁代碼對應的可執(zhí)行文件;在所述中繼節(jié)點基于所述第三指令,運行所述源代碼對應的可執(zhí)行文件生成所述第二簽名信息的情況下,對所述第一對象向所述第二對象進行資源轉(zhuǎn)移的場景進行測試,得到第二測試日志,所述第二測試日志用于描述在停止運行所述插樁代碼對應的可執(zhí)行文件的情況下,所述第一區(qū)塊鏈中的節(jié)點的運行信息、所述中繼節(jié)點的運行信息和所述第二區(qū)塊鏈中的節(jié)點的運行信息中的至少一項;基于所述第二測試日志,確定所述第二測試結果。
22、在一種可能的實現(xiàn)方式中,所述獲取模塊,還用于基于所述區(qū)塊鏈測試結果表征所述第一對象向所述第二對象進行資源轉(zhuǎn)移的結果符合參考條件,獲取用于清除所述測試代碼中的插樁代碼的第四指令;
23、所述裝置還包括:
24、生成模塊,用于基于所述第四指令和所述測試代碼生成第二中間文件,所述第二中間文件用于描述所述源代碼;
25、所述確定模塊,還用于基于所述第二中間文件確定所述源代碼對應的可執(zhí)行文件,所述源代碼對應的可執(zhí)行文件用于部署在所述中繼節(jié)點上,被所述中繼節(jié)點運行生成所述第二簽名信息。
26、另一方面,提供了一種電子設備,所述電子設備包括處理器和存儲器,所述存儲器中存儲有至少一條計算機程序,所述至少一條計算機程序由所述處理器加載并執(zhí)行,以使所述電子設備實現(xiàn)上述任一所述的區(qū)塊鏈的測試方法。
27、另一方面,還提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)中存儲有至少一條計算機程序,所述至少一條計算機程序由處理器加載并執(zhí)行,以使電子設備實現(xiàn)上述任一所述的區(qū)塊鏈的測試方法。
28、另一方面,還提供了一種計算機程序,所述計算機程序為至少一條,至少一條計算機程序由處理器加載并執(zhí)行,以使電子設備實現(xiàn)上述任一種區(qū)塊鏈的測試方法。
29、另一方面,還提供了一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品中存儲有至少一條計算機程序,所述至少一條計算機程序由處理器加載并執(zhí)行,以使電子設備實現(xiàn)上述任一種區(qū)塊鏈的測試方法。
30、本技術提供的技術方案至少帶來如下有益效果:
31、本技術提供的技術方案中,中繼節(jié)點的源代碼用于獲取與簽名信息相關的參考內(nèi)容,插樁代碼用于對通過源代碼獲取的參考內(nèi)容進行篡改得到篡改內(nèi)容。通過在源代碼中插入插樁代碼得到測試代碼,使得測試代碼能夠根據(jù)源代碼基于篡改內(nèi)容生成第一簽名信息,實現(xiàn)了模擬對簽名信息的篡改,奠定了對區(qū)塊鏈進行測試的基礎。由于插樁代碼的獲取難度低,且在源代碼中插入插樁代碼得到測試代碼的實現(xiàn)難度低,因此,測試代碼的獲取效率高,使得在中繼節(jié)點基于測試代碼生成第一簽名信息的情況下,對第一對象向第二對象進行資源轉(zhuǎn)移的場景進行測試時,能夠提高測試效率。