TWI706252B - Programming question release, answer code release, answer code inspection method, device, system and computer equipment - Google Patents

Programming question release, answer code release, answer code inspection method, device, system and computer equipment Download PDF

Info

Publication number
TWI706252B
TWI706252B TW108109775A TW108109775A TWI706252B TW I706252 B TWI706252 B TW I706252B TW 108109775 A TW108109775 A TW 108109775A TW 108109775 A TW108109775 A TW 108109775A TW I706252 B TWI706252 B TW I706252B
Authority
TW
Taiwan
Prior art keywords
node
transaction
answer
topic
programming
Prior art date
Application number
TW108109775A
Other languages
Chinese (zh)
Other versions
TW202016778A (en
Inventor
楊達一
Original Assignee
香港商阿里巴巴集團服務有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 香港商阿里巴巴集團服務有限公司 filed Critical 香港商阿里巴巴集團服務有限公司
Publication of TW202016778A publication Critical patent/TW202016778A/en
Application granted granted Critical
Publication of TWI706252B publication Critical patent/TWI706252B/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • G06Q50/205Education administration or guidance

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Educational Technology (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Finance (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Educational Administration (AREA)
  • Technology Law (AREA)
  • Development Economics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Primary Health Care (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

公開了一種程式設計題目發佈、解答代碼發佈、解答代碼檢驗方法及系統。任一IT機構的設備可以存取區塊鏈網路稱為節點。在區塊鏈網路中,任一節點可以基於區塊鏈協定,發佈自身創設的程式設計題目,也就是說,任一節點可以基於自身創設的程式設計題目構建題目發佈交易,接著把題目發佈交易廣播給其他節點。獲得題目發佈交易每個節點會基於各節點間的共識機制,將題目發佈交易寫入區塊鏈。 A method and system for program design question release, answer code release, and answer code verification are disclosed. The equipment of any IT organization that can access the blockchain network is called a node. In the blockchain network, any node can publish its own programming questions based on the blockchain protocol, that is to say, any node can construct a topic publishing transaction based on the programming topic created by itself, and then publish the topic The transaction is broadcast to other nodes. To obtain the topic release transaction, each node will write the topic release transaction into the blockchain based on the consensus mechanism between the nodes.

Description

程式設計題目發佈、解答代碼發佈、解答代碼檢驗方法、裝置、系統及電腦設備 Programming question release, answer code release, answer code inspection method, device, system and computer equipment

本說明書實施例關於資訊技術領域,尤其關於一種程式設計題目發佈、解答代碼發佈、解答代碼檢驗方法及系統。 The embodiments of this specification relate to the field of information technology, and particularly relate to a method and system for issuing programming questions, issuing answer codes, and verifying answer codes.

目前,國內外的諸多資訊技術(Information Technology,IT)機構(如高等院校電腦學院、IT公司等)一般都會搭建自已的程式設計題庫,用於測試用戶(如在校學生、在職員工、面試者等)的程式設計程度。 At present, many Information Technology (IT) institutions at home and abroad (such as colleges and universities, computer schools, IT companies, etc.) generally build their own programming question bank for testing users (such as school students, current employees, Interviewer, etc.) programming level.

在實踐中,很多IT機構有共享彼此的程式設計題庫的需求。然而,對於任一IT機構而言,如何防止其他IT機構擅自修改該IT機構創建的程式設計題目,是亟待解決的技術問題。 In practice, many IT organizations have the need to share each other's programming question bank. However, for any IT organization, how to prevent other IT organizations from modifying the programming problems created by the IT organization without authorization is a technical problem that needs to be solved urgently.

為了解決任一IT機構共享給其他IT機構的程式設計題目容易被其他IT機構擅自修改的問題,本說明書實施例提供一種程式設計題目發佈方法及系統。此外,本說明書實 施例還提用了一種解答代碼發佈、解答代碼檢驗方法及系統。 In order to solve the problem that programming problems shared by any IT organization to other IT organizations are easily modified by other IT organizations without authorization, the embodiments of this specification provide a programming problem publishing method and system. In addition, this manual The example also proposes a solution code release and solution code verification method and system.

上述技術方案如下:根據本說明書實施例的第1態樣,提供一種基於區塊鏈的程式設計題目發佈方法,包括:目標節點創設待發佈的程式設計題目;所述目標節點為區塊鏈網路中的任一節點;所述目標節點基於題目相關資料,構建題目發佈交易,並向所述區塊鏈網路廣播所述題目發佈交易;所述題目相關資料包括所述程式設計題目;針對獲得所述題目發佈交易的每個節點,該節點基於各節點之間的共識機制,將所述題目發佈交易寫入區塊鏈。 The above technical solution is as follows: According to the first aspect of the embodiment of the present specification, a method for publishing a programming topic based on a blockchain is provided, including: a target node creates a programming topic to be published; the target node is a blockchain network Any node in the road; the target node constructs a topic publication transaction based on topic-related data, and broadcasts the topic publication transaction to the blockchain network; the topic-related data includes the programming topic; Each node of the topic publishing transaction is obtained, and the node writes the topic publishing transaction into the blockchain based on the consensus mechanism between the nodes.

根據本說明書實施例的第2態樣,提供一種基於區塊鏈的解答代碼發佈方法,包括:目標節點獲取程式設計題目;所述目標節點為區塊鏈網路中的任一節點,所述程式設計題目是透過上述第1態樣的方法發佈的;所述目標節點將所述程式設計題目提供給被測試用戶進行解答,並接收所述被測試用戶上傳的解答代碼;所述目標節點基於解答相關資料,構建解答發佈交易,並向所述區塊鏈網路廣播所述解答發佈交易;所述解答相關資料包括所述程式設計題目的題目標識、所述解答代碼與所述被測試用戶的用戶標識;針對獲得所述解答發佈交易的每個節點,該節點基於各節點之間的共識機制,將所述解答發佈交易寫入區塊鏈。 根據本說明書實施例的第3態樣,提供一種基於區塊鏈的解答代碼檢驗方法,包括: 獲取模組,獲取程式設計題目對應的解答代碼與上傳所述解答代碼的被測試用戶的用戶標識;所述程式設計題目是透過上述第1態樣的方法發佈的,所述解答代碼是透過上述第2態樣的方法發佈的,所述檢驗節點是區塊鏈網路中,儲存有所述程式設計題目對應的解答檢驗資料的節點; 所述檢驗節點使用儲存的對應於所述程式設計題目的解答檢驗資料,檢驗所述解答代碼; 若檢驗通過,則所述檢驗節點基於結果相關資料,構建結果發佈交易,並向所述區塊鏈網路廣播所述結果發佈交易;所述結果相關資料包括所述程式設計題目的題目標識與所述用戶標識; 針對獲得所述結果發佈交易的每個節點,該節點基於各節點之間的共識機制,將所述結果發佈交易寫入區塊鏈。 根據本說明書實施例的第4態樣,提供一種基於區塊鏈的程式設計題目發佈系統,包括由多個節點組成的區塊鏈網路; 任一節點,創設待發佈的程式設計題目;基於題目相關資料,構建題目發佈交易,並向所述區塊鏈網路廣播所述題目發佈交易,所述題目相關資料包括所述程式設計題目; 獲得所述題目發佈交易的每個節點,基於各節點之間的共識機制,將所述題目發佈交易寫入區塊鏈。 根據本說明書實施例的第5態樣,提供一種基於區塊鏈的解答代碼發佈系統,包括由多個節點組成的區塊鏈網路; 任一節點,獲取程式設計題目;所述目標節點為區塊鏈網路中的任一節點,所述程式設計題目是透過上述第1態樣的方法發佈的;將所述程式設計題目提供給被測試用戶進行解答,並接收所述被測試用戶上傳的解答代碼;基於解答相關資料,構建解答發佈交易,並向所述區塊鏈網路廣播所述解答發佈交易;其中,所述解答相關資料包括所述程式設計題目的題目標識、所述解答代碼與所述被測試用戶的用戶標識; 獲得所述解答發佈交易的每個節點,基於各節點之間的共識機制,將所述解答發佈交易寫入區塊鏈。 根據本說明書實施例的第6態樣,提供一種基於區塊鏈的解答代碼檢驗系統,包括由多個節點組成的區塊鏈網路; 檢驗節點,獲取程式設計題目對應的解答代碼與上傳所述解答代碼的被測試用戶的用戶標識,所述程式設計題目是透過上述第1態樣的方法發佈的,所述解答代碼是透過上述第2態樣的方法發佈的,所述檢驗節點是區塊鏈網路中,儲存有所述程式設計題目對應的解答檢驗資料的節點;使用儲存的對應於所述程式設計題目的解答檢驗資料,檢驗所述解答代碼;若檢驗通過,則基於結果相關資料,構建結果發佈交易,並向所述區塊鏈網路廣播所述結果發佈交易;其中,所述結果相關資料包括所述程式設計題目的題目標識與所述用戶標識; 獲得所述結果發佈交易的每個節點,基於各節點之間的共識機制,將所述結果發佈交易寫入區塊鏈。 本說明書實施例所提供的技術方案,任一IT機構的設備可以存取區塊鏈網路稱為節點。在區塊鏈網路中,任一節點可以基於區塊鏈協定,發佈自身創設的程式設計題目,也就是說,任一節點可以基於自身創設的程式設計題目構建題目發佈交易,接著把題目發佈交易廣播給其他節點。獲得題目發佈交易每個節點會基於各節點間的共識機制,將題目發佈交易寫入區塊鏈。如此,一方面,任一IT機構都可以將自身創設的程式設計題目共享給其他IT機構;另一方面,任一節點發佈程式設計題目的流程受到區塊鏈協定的制約,程式設計題目從被創設到被寫入區塊鏈的整個過程中,難以被篡改,程式設計題目被寫入區塊鏈之後,也是難以被篡改的。 此外,在本說明書實施例中,任一節點可以從各節點間共享的程式設計題目中抽取程式設計題目提供給被測試用戶解答,以對所述被測試用戶的程式設計程度進行測試。並且,被測試用戶上傳的解答代碼也會被封裝進解答發佈交易寫入到區塊鏈進行公示。 還有,在本說明書實施例中,針對任一節點,如果該節點儲存有某個程式設計題目對應的解答檢驗資料,那麼,該節點還可以對被測試用戶針對該程式設計題目給出的解答代碼進行檢驗,以判斷被測試用戶是否通過測試。並且,如果被測試用戶通過測試,則該節點也會構建結果發佈交易並廣播,以便將被測試用戶通過測試的訊息寫入區塊鏈進行公示。 可見,本發明實際上提供了一種基於區塊鏈的程式設計程度測試方案,囊括了程式設計題目發佈、解答代碼發佈以及解答代碼檢驗等階段,將IT機構創設的程式設計題目、被測試用戶針對程式設計題目的解答記錄以及被測試用戶透過測試的結果都寫入區塊鏈進行公示,使得整個程式設計程度測試過程公開透明。 應當理解的是,以上的一般描述和後文的細節描述僅是示例性和解釋性的,並不能限制本說明書實施例。 此外,本說明書實施例中的任一實施例並不需要達到上述的全部效果。According to the second aspect of the embodiments of the present specification, a method for publishing answer codes based on blockchain is provided, including: a target node obtains programming questions; the target node is any node in the blockchain network, and The programming question is issued by the method of the first aspect; the target node provides the programming question to the tested user for answering, and receives the answer code uploaded by the tested user; the target node is based on Answer relevant information, construct answer release transaction, and broadcast the answer release transaction to the blockchain network; the answer related information includes the question mark of the programming question, the answer code and the tested user For each node that obtains the answer release transaction, the node writes the answer release transaction into the blockchain based on the consensus mechanism between the nodes. According to the third aspect of the embodiments of this specification, a blockchain-based answer code verification method is provided, including: Obtain the module to obtain the answer code corresponding to the programming question and the user ID of the tested user who uploaded the answer code; the programming question is issued through the first aspect of the above method, and the answer code is through the above According to the method of the second aspect, the verification node is a node in the blockchain network that stores the solution verification data corresponding to the programming question; The verification node uses the stored answer verification data corresponding to the programming question to verify the answer code; If the test is passed, the verification node constructs a result issuance transaction based on the result-related data, and broadcasts the result issuance transaction to the blockchain network; the result-related data includes the title identification of the programming topic and The user identification; For each node that obtains the result publication transaction, the node writes the result publication transaction into the blockchain based on the consensus mechanism between the nodes. According to the fourth aspect of the embodiment of the present specification, there is provided a blockchain-based programming topic publishing system, including a blockchain network composed of multiple nodes; Any node creates a programming topic to be released; constructs a topic publishing transaction based on topic-related data, and broadcasts the topic publishing transaction to the blockchain network, and the topic-related data includes the programming topic; Each node that obtains the topic publishing transaction writes the topic publishing transaction into the blockchain based on the consensus mechanism between the nodes. According to the fifth aspect of the embodiment of this specification, a blockchain-based answer code issuing system is provided, including a blockchain network composed of multiple nodes; Any node obtains a programming topic; the target node is any node in the blockchain network, and the programming topic is issued through the method of the first aspect; the programming topic is provided to The tested user answers and receives the answer code uploaded by the tested user; builds an answer release transaction based on the answer related data, and broadcasts the answer release transaction to the blockchain network; wherein the answer is related The data includes the title identification of the programming question, the answer code and the user identification of the tested user; Each node that obtains the answer release transaction writes the answer release transaction into the blockchain based on the consensus mechanism between the nodes. According to the sixth aspect of the embodiments of this specification, a blockchain-based answer code verification system is provided, including a blockchain network composed of multiple nodes; The test node obtains the answer code corresponding to the programming question and the user ID of the tested user who uploaded the answer code. The programming question is issued through the first aspect of the above method, and the answer code is obtained through the above first aspect. Issued by the 2-mode method, the test node is a node in the blockchain network that stores the answer test data corresponding to the programming question; using the stored answer test data corresponding to the programming question, Check the answer code; if the check is passed, construct a result release transaction based on the result related data, and broadcast the result release transaction to the blockchain network; wherein the result related data includes the programming question The title identification of and the user identification; Each node that obtains the result publication transaction writes the result publication transaction into the blockchain based on the consensus mechanism between the nodes. In the technical solutions provided by the embodiments of this specification, the equipment of any IT organization that can access the blockchain network is called a node. In the blockchain network, any node can publish its own programming questions based on the blockchain protocol, that is to say, any node can construct a topic publishing transaction based on the programming topic created by itself, and then publish the topic The transaction is broadcast to other nodes. To obtain the topic release transaction, each node will write the topic release transaction into the blockchain based on the consensus mechanism between the nodes. In this way, on the one hand, any IT organization can share its own programming problems with other IT organizations; on the other hand, the process of issuing programming problems at any node is restricted by the blockchain agreement, and programming problems are never The entire process from creation to being written into the blockchain is difficult to be tampered with, and programming topics are also difficult to be tampered with after being written into the blockchain. In addition, in the embodiment of this specification, any node can extract programming questions from the programming questions shared between the nodes to provide answers to the tested user, so as to test the programming level of the tested user. In addition, the answer code uploaded by the tested user will also be encapsulated in the answer release transaction and written to the blockchain for publicity. In addition, in the embodiment of this specification, for any node, if the node stores the solution test data corresponding to a certain programming problem, then the node can also give the solution to the programming problem given by the tested user The code is checked to determine whether the tested user passes the test. Moreover, if the tested user passes the test, the node will also construct a result release transaction and broadcast it, so that the message that the tested user passed the test can be written into the blockchain for publicity. It can be seen that the present invention actually provides a program design level test program based on blockchain, including the stages of program design question release, answer code release, and answer code verification. The program design questions created by IT organizations and the tested users are targeted The answer records of programming questions and the test results of the tested users are written into the blockchain for publicity, making the entire programming level testing process open and transparent. It should be understood that the above general description and the following detailed description are only exemplary and explanatory, and cannot limit the embodiments of this specification. In addition, any embodiment in the embodiments of this specification does not need to achieve all the above-mentioned effects.

此處先對本發明所應用的業務場景(即程式設計程度測試)進行更為詳細的說明。以資訊技術公司A為例,倘若公司A想要瞭解某個用戶(如員工、面試者)的程式設計程度,那麼,公司A可以從自己的程式設計題庫中抽取任一程式設計題目提供給該用戶。該用戶根據該程式設計題目進行作答,給出解答該程式設計題目的解答代碼,並將解答代碼上傳給公司A的線上判題系統。公司A的線上判題系統儲存有上述程式設計題庫中每個程式設計題目對應的解答檢驗資料(具體是標準輸入資料與標準輸出資料),用於驗證解答代碼的正確性。具體地,公司A的線上判題系統會將該程式設計題目對應的標準輸入資料輸入到解答代碼並運行解答代碼,接著,判斷解答代碼是否能夠輸出該程式設計題目對應的標準輸出資料,若是,則認定該用戶透過測試,否則,認定該用戶未透過測試。 實踐中,很多IT機構有共享彼此的程式設計題庫的需求。為此,現有技術中,針對任一IT機構,該IT機構一般會採用爬蟲程序從其他IT機構的程式設計題庫爬取程式設計題目,將爬取的程式設計題目提供給被測試用戶進行解答。接著,該IT機構還需要將被測試用戶給出的解答代碼發送給創設該程式設計題目的IT機構的線上判題系統進行檢驗。 然而,這種方式存在如下弊端: 1、IT機構透過爬蟲程序爬取其他IT機構的程式設計題目後,有時會擅自對程式設計題目進行一些不恰當的修改,這一方面不能很好的保護創設程式設計題目的IT機構的權益,另一方面,被測試用戶針對修改後的程式設計題目給出的解答代碼往往與修改前的程式設計題目並不匹配,而線上判題系統是使用適配於修改前的程式設計題目的解答檢驗資料來測試代碼是否正確的,如此,導致測試結果不能準確反映被測試用戶的程式設計程度。 2、一旦其他IT機構的資料庫不可存取,該IT機構就無法透過爬蟲程序爬取其他結構的程式設計題目。也就是說,這種共享程式設計題目的方式並不總是有效的。 為此,在本說明書實施例中,任一IT機構可以借助於區塊鏈協定,將自己創設的程式設計題目發佈到區塊鏈中,相當於既將自己創設的程式設計題目共享給其他IT機構,又無需擔心其他IT機構會對該程式設計題目進行修改。 為了使本領域技術人員更好地理解本說明書實施例中的技術方案,下面將結合本說明書實施例中的附圖,對本說明書實施例中的技術方案進行詳細地描述,顯然,所描述的實施例僅僅是本說明書的一部分實施例,而不是全部的實施例。基於本說明書中的實施例,本領域普通技術人員所獲得的所有其他實施例,都應當屬保護的範圍。 以下結合附圖,詳細說明本說明書各實施例提供的技術方案。 圖1是本說明書實施例提供的一種基於區塊鏈的程式設計題目發佈方法的流程示意圖,包括以下步驟: S100:目標節點創設待發佈的程式設計題目。 在本說明書實施例中,各IT機構的設備可以存取區塊鏈網路,成為區塊鏈網路中的節點。也就是說,區塊鏈網路中的各節點與想要彼此共享程式設計題目的各IT機構一一對應。 在步驟S100中,所述目標節點可以是區塊鏈網路中的任一節點。也就是說,任一IT機構的設備都可以透過圖1所示的方法,創設程式設計題目並發佈。 需要說明的是,目標節點創設程式設計題目,具體可以是目標節點接收控制所述目標節點的IT機構上傳的程式設計題目,也可以是目標節點根據預設的程式設計題目創設模型,自動創設程式設計題目。 S102:所述目標節點基於題目相關資料,構建題目發佈交易。 需要說明的是,本文中所述的交易(transaction),是指區塊鏈協定中指定的資料結構。在區塊鏈協定中,交易是指節點透過安裝的區塊鏈用戶端創建,並需要最終寫入區塊鏈的一筆資料。也就是說,根據區塊鏈協定,凡是需要寫入區塊鏈進行公示的資料,都需要被封裝成交易這種資料結構。 在步驟S102中,所述題目相關資料至少包括目標節點在步驟S100中創設的程式設計題目。所述目標節點基於所述題目相關資料構建題目發佈交易,實際上是將所述題目相關資料封裝進交易這一區塊鏈協定指定的資料結構。 S104:所述目標節點向所述區塊鏈網路廣播所述題目發佈交易。 在步驟S104中,目標節點向區塊鏈網路廣播所述題目發佈交易,實際上是將所述題目發佈交易廣播給其他節點,相當於將所述程式設計題目,分享給其他節點。 S106:針對獲得所述題目發佈交易的每個節點,該節點基於各節點之間的共識機制,將所述題目發佈交易寫入區塊鏈。 針對獲得所述題目發佈交易的每個節點,該節點在將所述題目發佈交易寫入區塊鏈之前,可以針對所述題目發佈交易進行合法性驗證。 針對所述題目發佈交易進行合法性驗證的事項可以根據業務需要指定。例如,假設並不是每個節點都有發佈程式設計題目的權限,那麼,可以所述題目發佈交易中的節點標識,判斷所述節點標識對應的節點(即目標節點)是否具有發佈程式設計題目的權限,如果沒有權限,就拒絕將所述題目發佈交易寫入區塊鏈。 在步驟S106中,各節點之間的共識機制確保了各節點每次向區塊鏈寫入的資料的一致性。因此,哪怕某個節點擅自對題目發佈交易中封裝的程式設計題目進行修改,從而改變所述題目發佈交易的內容,修改後的題目發佈交易也不會被大多數節點寫入區塊鏈。 如此,目標節點創設的程式設計題目總是可以不經修改地被寫入區塊鏈,從而完成程式設計題目的分享。並且,區塊鏈的分布式儲存特性,寫入區塊鏈之後的題目發佈交易也是難以被篡改的。 需要說明的是,針對後文中將要出現的解答發佈交易、結果發佈交易,基於同樣的原因,這些交易的內容也難以被篡改。 透過圖1所示的方法,任一IT機構的設備可以存取區塊鏈網路稱為節點。在區塊鏈網路中,任一節點可以基於區塊鏈協定,發佈自身創設的程式設計題目,也就是說,任一節點可以基於自身創設的程式設計題目構建題目發佈交易,接著把題目發佈交易廣播給其他節點。獲得題目發佈交易每個節點會基於各節點間的共識機制,將題目發佈交易寫入區塊鏈。如此,一方面,任一IT機構都可以將自身創設的程式設計題目共享給其他IT機構;另一方面,任一節點發佈程式設計題目的流程受到區塊鏈協定的制約,程式設計題目從被創設到被寫入區塊鏈的整個過程中,難以被篡改,程式設計題目被寫入區塊鏈之後,也是難以被篡改的。 此外,在本說明書實施例中,所述題目相關資料還可以包括目標節點的節點標識。這意味著,目標節點也會將自身的節點標識封裝進題目發佈交易,進而寫入區塊鏈中進行公示。如此,可以明確共享給各IT機構的每個程式設計題目的創設者,保護創設程式設計題目的IT機構的權益。 另外,在實際應用中,由於區塊鏈這種資料儲存方式較為複雜,節點當想要從寫入區塊鏈的程式設計題目中調取某個程式設計題目時,操作較為複雜。 為此,在本說明書實施例中,針對獲得所述題目發佈交易的每個節點,該節點可以在創建題目儲存位址,並將所述題目相關資料存入所述題目儲存位址。這相當於還將程式設計題目以簡單的儲存方式進行儲存。需要說明的是,針對任一題目發佈交易,可以根據寫入區塊鏈的該題目發佈交易,驗證存入題目儲存位址的程式設計題目是否被篡改。透過上述方式,節點當想要調取某個程式設計題目時,可以較為便捷。 進一步地,節點具體可以將封裝有所述題目相關資料的題目智慧合約存入所述題目儲存位址。這種情況下,所述題目儲存位址實際上是所述題目智慧合約的合約標識。 智慧合約是很多區塊鏈協定(如乙太坊)天然支援的資料結構,並且,很多區塊鏈協定也天然支援智慧合約的快速呼叫。因此,可以以智慧合約這種資料結構,對程式設計題目進行儲存,方便後續透過呼叫智慧合約的形式,快速調取程式設計題目進行程式設計程度測試。 根據圖1所示的程式設計題目發佈方法,本說明書實施例進一步提供了一種基於區塊鏈的解答代碼發佈方法,如圖2所示,包括以下步驟: S200:目標節點獲取程式設計題目。 所述目標節點是區塊鏈網路中的任一節點。在實際應用中,任一IT機構想要對被測試用戶的程式設計程度進行測試時,可以觸發自身控制的目標節點獲取程式設計題目。目標節點獲取的程式設計題目是基於圖1所示的程式設計題目發佈方法發佈的。 具體地,目標節點可以從區塊鏈中的任一題目發佈交易中讀取程式設計題目。 或者,如果所述題目發佈交易所封裝的題目相關資料也被存入了某個題目儲存位址,那麼,目標節點也可以從該題目儲存位址獲取所述程式設計題目。當採用這種方式獲取程式設計題目時,較為快捷。 進一步地,如果所述題目相關資料是以智慧合約的形式(即題目智慧合約)存入該題目儲存位址的,所述目標節點可以呼叫該題目智慧合約,從而獲取到所述程式設計題目。 S202:所述目標節點將所述程式設計題目提供給被測試用戶進行解答,並接收所述被測試用戶上傳的解答代碼。 S204:所述目標節點基於解答相關資料,構建解答發佈交易。 在本說明書實施例中,所述解答相關資料至少包括所述程式設計題目的題目標識、所述解答代碼與所述被測試用戶的用戶標識。 其中,若所述目標節點從區塊鏈中的任一題目發佈交易中讀取程式設計題目,則所述程式設計題目的題目標識為所述題目發佈交易的交易雜湊;若所述目標節點從任一題目儲存位址獲取程式設計題目,則所述程式設計題目的題目標識為所述儲存位址。 進一步地,所述目標節點可以對所述解答代碼是否存在編譯或運行問題進行檢查,如果檢查通過,才會構建解答發佈交易,如果檢查不通過,則拒絕構建解答發佈交易。 S206:所述目標節點向所述區塊鏈網路廣播所述解答發佈交易。 S208:針對獲得所述解答發佈交易的每個節點,該節點基於各節點之間的共識機制,將所述解答發佈交易寫入區塊鏈。 針對獲得所述解答發佈交易的每個節點,該節點在將所述解答發佈交易寫入區塊鏈之前,可以針對所述解答發佈交易進行合法性驗證。 針對所述解答發佈交易進行合法性驗證的事項可以根據業務需要指定。例如,假設預先規定有解答代碼的格式,那麼,可以對所述解答發佈交易中的解答代碼的格式進行驗證,如果格式不符合要求,就拒絕將所述解答發佈交易寫入區塊鏈。 在步驟S208中,相當於將被測試用戶的身份資訊、被測試用戶所解答的程式設計題目的標識資訊、被測試用戶給出的解答代碼公示給每個節點。 此外,為了方便節點可以快速調取被測試用戶的解答代碼進行檢驗,在本說明書實施例中,每個節點還可以創建解答儲存位址,並將所述解答相關資料存入所述解答儲存位址。 進一步地,每個節點可以將封裝有所述解答相關資料的解答智慧合約存入所述解答儲存位址。 根據圖1所示的程式設計題目發佈方法與圖2所示的解答代碼發佈方法,本說明書實施例進一步提供了一種基於區塊鏈的解答代碼檢驗方法,如圖3所示,包括以下步驟: S300:檢驗節點獲取程式設計題目對應的解答代碼與上傳所述解答代碼的被測試用戶的用戶標識。 在本說明書實施例中,所述檢驗節點儲存有所述程式設計題目對應的解答檢驗資料的節點。所述解答檢驗資料是用於對解答所述程式設計題目所給出的解答代碼的正確性進行檢驗的資料。如前文所述,所述解答檢驗資料一般包括標準輸入資料與標準輸出資料。 所述檢驗節點一般是創設所述程式設計題目的節點。當然,創設所述程式設計題目的節點也可以將所述程式設計題目對應的解答檢驗資料分發給至少一個其他節點。這樣,所述檢驗節點也可以是除創設所述程式設計題目的節點之外,儲存有所述解答檢驗資料的其他節點。 在本說明書實施例中,檢驗節點可以根據儲存的任一解答檢驗資料,確定該解答檢驗資料對應的題目標識。接著,從區塊鏈中的查詢出包含所述題目標識的解答發佈交易,並從所述解答發佈交易中讀取解答代碼與用戶標識。 進一步地,檢驗節點也可以查詢儲存有所述題目標識的解答儲存位址,並從所述解答儲存位址獲取解答代碼與用戶標識。 更進一步地,檢驗節點可以查詢封裝有所述題目標識的題目智慧合約,並呼叫所述題目智慧合約,從而獲取到相應的解答代碼與用戶標識。 S302:所述檢驗節點使用儲存的對應於所述程式設計題目的解答檢驗資料,檢驗所述解答代碼。 S304:若檢驗通過,則所述檢驗節點基於結果相關資料,構建結果發佈交易。 在本說明書實施例中,檢驗節點如果對所述解答代碼檢驗通過,則可以將檢驗通過的訊息公示於區塊鏈。這種情況下,所述結果相關資料實際上包括所述程式設計題目的題目標識與所述用戶標識,所述結果發佈交易的含義為,舉例來說,“用戶張三答對了題目1”。 進一步地,檢驗節點如果對所述解答代碼檢驗未通過,則也可以將檢驗未通過的訊息公示於區塊鏈。這種情況下,所述結果發佈交易的含義既可以是檢驗通過,也可以是檢驗未通過。為了進行區分,所述結果相關資料還需要包括檢驗通過結果或檢驗未通過結果。 S306:向所述區塊鏈網路廣播所述結果發佈交易。 S308:針對獲得所述結果發佈交易的每個節點,該節點基於各節點之間的共識機制,將所述結果發佈交易寫入區塊鏈。 針對獲得所述結果發佈交易的每個節點,該節點在將所述題目發佈交易寫入區塊鏈之前,可以針對所述結果發佈交易進行合法性驗證。 針對所述結果發佈交易進行合法性驗證的事項可以根據業務需要指定。例如,假設只有創設所述程式設計題目的節點才有權限檢驗所述程式設計題目對應的解答代碼,那麼,可以判斷廣播所述結果發佈交易的檢驗節點是否有檢驗權限,如果沒有權限,就拒絕將所述結果發佈交易寫入區塊鏈。 在步驟S308中,相當於將被測試用戶的身份資訊、被測試用戶所解答的程式設計題目的標識資訊、被測試用戶是否通過測試的結果公示給每個節點。 此外,為了方便節點可以快速調取被測試用戶的測試結果進行查閱,在本說明書實施例中,每個節點還可以創建結果儲存位址,並將所述結果相關資料存入所述結果儲存位址。 進一步地,每個節點可以將封裝有所述結果相關資料的結果智慧合約存入所述結果儲存位址。 另外,在實踐中,所述被測試用戶可能會解答不止一個程式設計題目,上傳不止一個解答代碼。這種情況下,針對每個節點,該節點可以將所述被測試用戶解答多個程式設計題目的結果都存入同一個結果儲存位址,方便統計與查閱。 具體地,在本說明書實施例中,針對獲得所述結果發佈交易的每個節點,該節點若獲得與所述結果發佈交易相關聯的其他結果發佈交易,則基於各節點之間的共識機制,將所述其他結果發佈交易寫入區塊鏈,其中,所述其他結果發佈交易是基於所述用戶標識與其他題目標識構建的。接著,該節點根據所述其他結果發佈交易,將所述其他題目標識存入所述結果儲存位址。 也就是說,所述結果發佈交易可以視為所述被測試用戶解答的第一個程式設計題目所產生的,而其他結果發佈交易可以視為所述被測試用戶後續解答的其他程式設計題目所產生的。對於所述被測試用戶後續解答的其他程式設計題目的結果,無需重新創建結果儲存位址進行儲存,而是直接將其存入之前創建的結果儲存位址即可。 如此,每個被測試用戶都有唯一對應於自己的結果儲存位址,用於記錄自己的答題情況。 另外需要說明的是,在圖1所示的方法中,可能存在不止一個檢驗節點檢驗所述解題代碼的情況。這種情況下,針對每個檢驗節點,該檢驗節點獲取程式設計題目對應的解答代碼與上傳所述解答代碼的被測試用戶的用戶標識;接著使用儲存的對應於所述程式設計題目的解答檢驗資料,檢驗所述解答代碼;若對所述解答代碼檢驗通過,則基於結果相關資料,構建結果發佈交易,並向所述區塊鏈網路廣播所述結果發佈交易。 基於此,針對每個節點,該節點可以當確定獲得的結果發佈交易的數量為指定數量時,才會基於各節點之間的共識機制,將獲得的任一結果發佈交易寫入區塊鏈。其中,所述指定數量不大於檢驗節點的數量。 另外,在本說明書實施例中,存在三種類型的交易,即題目發佈交易、解答發佈交易以及結果發佈交易。其中,針對任一種交易,創建儲存位址並存入該種交易所封裝的相關資料,可以視為對該種交易的執行操作。 顯然,不論針對上述哪種交易,執行該種交易產生的執行結果,僅僅會對一個儲存位址產生影響。因此,本說明書實施例中的三種類型的交易,都適合採用下文給出的並行化的交易執行方式進行執行。下文將對這種並行化的交易執行方式進行介紹說明。 對於常見的區塊鏈應用場景而言,當需要進行各節點間的共識時,各節點會基於共識演算法選舉出有權限將若干待執行的交易打包成區塊的節點,即記帳節點。在共識之後,記帳節點從快取中撈取若干待執行的交易打包成區塊,並將所述區塊廣播給其他節點。隨後,針對每個節點,該節點一方面會按照所述區塊中各交易被發起的先後順序,由先到後依次執行每個交易,另一方面會將所述區塊寫入區塊鏈。 通常,將節點由先到後逐個執行區塊中的每個交易的方式稱為串列化的交易執行方式。之所以要採用這種串列化的交易執行方式,是因為在常見的區塊鏈應用場景下,一筆交易的執行有時會對不止一個儲存位址上儲存的資訊進行更新,如果不採用串列化的交易執行方式,則容易出現有的交易執行失敗的情況。 但是,在有的區塊鏈應用場景下,不存在會對不止一個儲存位址上儲存的資訊進行更新的交易。在這些區塊鏈應用場景下,採用上述的串列化的交易執行方式,會導致交易執行效率較低。 下面,以乙太坊這種區塊鏈協定為例,對採用串列化的交易執行方式的原因進行詳細說明。值得強調的是,在除乙太坊之外的其他區塊鏈協定中,採用串列化的交易執行方式的原因也是類似的。 在乙太坊中,存在外部帳戶與合約帳戶之分。外部帳戶用於儲存用戶擁有的乙太幣餘額,外部帳戶本質上是儲存有餘額資訊的儲存位址。合約帳戶用於儲存用戶創設的智慧合約,合約帳戶本質上是儲存有智慧合約代碼的儲存位址。 在乙太坊中,一般有兩種類型的交易,即外部帳戶向其他帳戶(可以是外部帳戶也可以是合約帳戶)的轉帳交易,以及外部帳戶創建合約帳戶的合約創建交易。 轉帳交易的執行一般會對不止一個儲存位址上儲存的資訊進行更新。具體而言,一筆轉帳交易的執行,通常會改變兩個帳戶的餘額(即兩個帳戶位址上儲存的餘額資訊),即從轉帳帳戶的餘額中扣除轉帳金額,向收帳帳戶的餘額中增加轉帳金額。一筆轉帳交易可執行的前提是轉帳帳戶的餘額不小於轉帳金額。 實際應用中,某一筆轉帳交易(記為轉帳交易A)中的轉帳帳戶,有可能是之前的另一筆轉帳交易(記為轉帳交易B)中的收帳用戶。如果不按照交易被發起的順序由先到後執行交易,那麼可能出現如下情況,即轉帳交易B未執行,導致轉帳交易A中的轉帳帳戶沒有充足的餘額進行轉帳。正是因為這樣,凡是關於轉帳交易的區塊鏈應用場景,都不得不採用串列化的交易執行方式,以保證交易可以順利執行。 而合約創建交易的執行實際上是創建一個合約帳戶,即創設一個儲存位址,並將智慧合約代碼存入創設的儲存位址。顯然,合約創建交易的執行只會影響一個儲存位址。 此外,區塊鏈應用場景是多種多樣的,在有的區塊鏈應用場景下,可以基於乙太坊進行擴展,開發出新類型的交易,這種交易的執行也可能只會影響一個儲存位址。例如,利用區塊鏈進行內容存證。一筆存證交易的執行,本質上是創設一個儲存位址,將要存證的內容存入創設的儲存位址。 基於以上,本文提出了一種並行化執行區塊鏈交易的方法,專門針對某一類區塊鏈應用場景,在這類區塊鏈場景下,每筆交易的執行結果只會影響一個儲存位址。 圖4是本說明書實施例提供的一種並行化執行區塊鏈交易的方法的流程示意圖,包括以下步驟: S400:針對區塊鏈網路中的每個節點,該節點獲取待寫入區塊。 在本說明書實施例中,所述待寫入區塊實際上各節點共識之後,由記帳節點打包成的區塊。記帳節點會將所述待寫入區塊廣播給其他節點。眾所周知,在區塊鏈協定中,每個節點一方面需要執行待寫入區塊中的每個交易,另一方面需要將待寫入區塊寫入到區塊鏈中進行公示。所述待寫入區塊一旦寫入區塊鏈中,相當於將待寫入區塊中的每個交易進行了公示。公示於區塊鏈上的交易可以用來核查相應的交易執行結果是否正確,以防止有節點作惡。 在步驟S400中,針對每個節點,如果該節點是記帳節點,那麼該節點獲取所述待寫入區塊的方式具體可以是從自身的快取中撈取若干交易打包成所述待寫入區塊;如果該節點不是記帳節點,那麼該節點獲取所述待寫入區塊的方式具體可以是接收記帳節點廣播的所述待寫入區塊。 值得強調的是,針對所述待寫入區塊中的每個交易,該交易的執行結果為,創設一個儲存位址並存入資訊,或更新一個儲存位址上儲存的資訊(向一個儲存位址存入資訊或修改一個儲存位址上儲存的資訊)。也就是說,所述待寫入區塊中的每個交易的執行結果,只會對一個儲存位址產生影響。 例如,創建合約帳戶的合約創建交易,就是執行結果為創設一個儲存位址並存入資訊的交易。前文提及的題目發佈交易與解答發佈交易,也是執行結果為創設一個儲存位址並存入資訊的交易。 又如,在有些區塊鏈應用場景下,需要對每個用戶的購物記錄進行存證。那麼,就需要在資料庫中創設每個用戶對應的記錄儲存位址。當目標用戶進行購物時,就會產生一條購物記錄,區塊鏈網路中的任一節點會基於該購物記錄構建記錄存證交易並廣播。接著,針對每個節點,該節點會在合適的時機(即該記錄存證交易被打包進待寫入模組並廣播給各節點時)執行該記錄存證交易,即將該購物記錄存入目標用戶對應的記錄儲存位址。顯然,目標用戶進行多次購物所產生的多條購物記錄都會被存入目標用戶對應的記錄儲存位址。因此,上述的記錄存證交易,就是執行結果為更新一個儲存位址上儲存的資訊交易。 前文提及的結果發佈交易,也是執行結果為更新一個儲存位址上儲存的資訊交易。 S402:從所述待寫入區塊中讀取各交易,並將各交易組織成N個交易佇列。 在現有技術中,每個節點通常採用串列化的交易執行方式來執行所述待寫入區塊中的各交易。如圖5所示,所謂串列化的交易執行方式,是指每個節點按照一定的先手順序,逐個執行所述待寫入區塊中的每個交易。 而在本說明書實施例中,會將所述待寫入區塊中的各交易拆分為N組,其中,N為大於1的自然數。接著,針對每個組,將這個組中的交易排列成一個交易佇列。本說明書對每個交易佇列中交易的排列順序不做具體限定。 S404:同時針對每個交易佇列,由先到後依次執行該交易佇列中的每個交易。 在步驟S404中,實際上是同時開始並行化的針對每個交易佇列進行交易執行。而具體到每個交易佇列,實際上是串列化執行該交易佇列中的每個交易。如圖6所示。 所謂“同時”,是指節點在同一時間開始執行每個交易佇列中的交易。相當於節點在同一時間創設了N個交易執行進程,每個交易進程負責執行一個交易佇列中的交易。 對比圖5和圖6的兩種交易執行方式,顯然,採用圖6所示的交易執行方式,可以在單位時間內執行更多的交易。 S406:將所述待寫入區塊寫入區塊鏈。 在本說明書實施例中,針對每個節點,可以在執行步驟S404之後,執行步驟S406;也可以不在執行步驟S404之後才執行步驟S406。 透過圖4所示的並行化執行區塊鏈交易的方法,如果待寫入區塊中的每個交易皆不是對不止一個儲存位址上儲存的資訊進行更新的交易,那麼,區塊鏈網路中的每個節點可以將待寫入區塊中的各交易組織成至少兩個交易佇列,接著,同時開始執行每個交易佇列中的交易。如此,每個節點可以在單位時間內執行更多數量的交易,提升了交易執行效率。 此外,在本說明書實施例中,每個交易佇列對應的交易數量(即每個交易佇列中的交易的數量)可以比較接近。如此,在並行化的同時針對各交易佇列進行交易執行時,每個執行進程所執行的交易的數量比較接近,不會出現有的進程閒置,有的進程負荷過重的情況。這也意味著,節點可以在單位時間內,執行盡可能多的交易。 具體地,可以設置基於每個交易佇列對應的交易數量計算得到的方差不大於指定臨界值。基於每個交易佇列對應的交易數量計算得到的方差越小,各交易佇列對應的交易數量就越接近。 另外,在本說明書實施例中,具體可以採用乙太坊協定構建區塊鏈網路。在乙太坊中,每個節點上安裝有虛擬機程序,用於為乙太坊協定的實現提供運行環境。 通常,一個虛擬機程序用於執行一個區塊鏈進程。而在本說明書實施例中,由於需要同時針對不止一個交易佇列,並行化的執行不止一個區塊鏈進程,因此,需要在每個節點上預先部署不止一個虛擬機程序。 具體地,如果需要將待寫入區塊中的交易組織成N個交易佇列,那麼,就需要預先在每個節點上部署N個虛擬機程序。 如此,在步驟S404中,可以建立預先部署的N個虛擬機程序與N個交易佇列之間的一一對應關係;同時針對每個交易佇列,透過該交易佇列對應的虛擬機程序,由先到後依次執行該交易佇列中的每個交易。 此外,在本說明書實施例中,通常,待寫入區塊中的交易既有第一類交易,也有第二類交易。其中,第一類交易是指,執行結果為更新一個儲存位址上儲存的資訊的交易;第二類交易是指,執行結果為創設一個儲存位址並存入資訊的交易。 顯然,待寫入區塊中可能存在不止一個第一類交易會對同一個儲存位址上儲存的資訊進行更新。而節點在執行每個第一類交易時,往往需要先存取當前所執行的第一類交易所針對的儲存位址。這種情況下,節點在執行待寫入區塊中的交易時,如果能對同一儲存位址對應的所有第一類交易進行集中批量執行,那麼只需要針對同一個儲存位址進行一次存取即可,這會顯著提升節點執行交易的速度。 具體地,在步驟S402中,可以從各交易中選擇出執行結果為更新一個儲存位址上儲存的資訊的交易,作為第一類交易,以及,將各交易中除第一類交易以外的其他交易作為第二類交易;將各第一類交易中,對應的儲存位址相同的第一類交易組織成一個交易子佇列;以每個交易子佇列為一個處理單位,並且,以每個第二類交易視為一個處理單位;將各處理單位組織成N個交易佇列。 如此,所述待寫入區塊中,對應於任一儲存位址的全部第一類交易都會被整合一個交易子佇列,該交易子佇列會被整體放入到某個交易佇列中。節點在針對該交易佇列進行交易執行時,一旦存取該儲存位址,就會連續執行該儲存位址對應的全部第一類交易。 進一步地,將各處理單位組織成N個交易佇列,可以如下: 根據每個處理單位對應的交易數量,由大到小對各處理單位進行排序;並且,初始化每個交易佇列對應的交易數量為0;根據排序結果,選擇第一個處理單位;將當前選擇的處理單位添加到最小交易佇列的隊尾,並更新所述最小交易佇列對應的交易數量;最小交易佇列是當前對應的交易數量最小的交易佇列;繼續選擇下一個處理單位,直至所有處理單位都被添加到交易佇列。 透過這種方式,可以使得各交易佇列分別對應的交易數量大體相當。這樣,在基於各交易佇列進行並行化的交易執行時,各執行進程上的工作負荷也大體相當,不會有某個執行進程閒置的情況出現,這樣可以在單位時間內執行最多的交易,顯著提升節點的交易執行效率。 基於圖1所示的方法,本說明書實施例還對應提供了一種基於區塊鏈的程式設計題目發佈裝置,如圖7所示,所述裝置為區塊鏈網路中的任一節點,所述裝置包括: 創設模組701,創設待發佈的程式設計題目; 構建廣播模組702,基於題目相關資料,構建題目發佈交易,並向所述區塊鏈網路廣播所述題目發佈交易;所述題目相關資料包括所述程式設計題目,以使獲得所述題目發佈交易的每個節點基於各節點之間的共識機制,將所述題目發佈交易寫入區塊鏈。 基於圖2所示的方法,本說明書實施例還對應提供了一種基於區塊鏈的解答代碼發佈裝置,如圖8所示,所述裝置為區塊鏈網路中的任一節點,所述裝置包括: 獲取模組801,獲取程式設計題目;所述程式設計題目是透過申請專利範圍第1至4任一項所述的方法發佈的; 解答模組802,將所述程式設計題目提供給被測試用戶進行解答,並接收所述被測試用戶上傳的解答代碼; 構建廣播模組803,基於解答相關資料,構建解答發佈交易,並向所述區塊鏈網路廣播所述解答發佈交易,以使獲得所述解答發佈交易的每個節點基於各節點之間的共識機制,將所述解答發佈交易寫入區塊鏈; 其中,所述解答相關資料包括所述程式設計題目的題目標識、所述解答代碼與所述被測試用戶的用戶標識。 基於圖2所示的方法,本說明書實施例還對應提供了一種基於區塊鏈的解答代碼檢驗裝置,如圖9所示,所述裝置是區塊鏈網路中,儲存有程式設計題目對應的解答檢驗資料的節點,所述裝置包括: 獲取模組901,獲取所述程式設計題目對應的解答代碼與上傳所述解答代碼的被測試用戶的用戶標識;所述程式設計題目是透過圖1所示的方法發佈的,所述解答代碼是透過圖2所示的方法發佈的; 檢驗模組902,使用儲存的對應於所述程式設計題目的解答檢驗資料,檢驗所述解答代碼; 構建廣播模組903,若檢驗通過,則基於結果相關資料,構建結果發佈交易,並向所述區塊鏈網路廣播所述結果發佈交易,以使獲得所述結果發佈交易的每個節點基於各節點之間的共識機制,將所述結果發佈交易寫入區塊鏈; 其中,所述結果相關資料包括所述程式設計題目的題目標識與所述用戶標識。 基於圖1所示的方法,本說明書實施例還對應提供了一種基於區塊鏈的程式設計題目發佈系統,包括由多個節點組成的區塊鏈網路; 任一節點,創設待發佈的程式設計題目;基於題目相關資料,構建題目發佈交易,並向所述區塊鏈網路廣播所述題目發佈交易,所述題目相關資料包括所述程式設計題目; 獲得所述題目發佈交易的每個節點,基於各節點之間的共識機制,將所述題目發佈交易寫入區塊鏈。 基於圖2所示的方法,本說明書實施例還對應提供了一種基於區塊鏈的解答代碼發佈系統,包括由多個節點組成的區塊鏈網路; 任一節點,獲取程式設計題目;所述目標節點為區塊鏈網路中的任一節點,所述程式設計題目是根據圖1所示的方法發佈的;將所述程式設計題目提供給被測試用戶進行解答,並接收所述被測試用戶上傳的解答代碼;基於解答相關資料,構建解答發佈交易,並向所述區塊鏈網路廣播所述解答發佈交易;其中,所述解答相關資料包括所述程式設計題目的題目標識、所述解答代碼與所述被測試用戶的用戶標識; 獲得所述解答發佈交易的每個節點,基於各節點之間的共識機制,將所述解答發佈交易寫入區塊鏈。 Here, a more detailed description of the business scenario (that is, the programming degree test) applied by the present invention will be given first. Take information technology company A as an example. If company A wants to know the programming level of a user (such as an employee, interviewer), then company A can extract any programming question from its own programming question bank and provide it to the user. The user answers according to the programming question, gives an answer code to answer the programming question, and uploads the answer code to company A's online questioning system. Company A’s online questioning system stores the answer test data (specifically standard input data and standard output data) corresponding to each programming question in the above-mentioned programming question bank, which is used to verify the correctness of the answer code. Specifically, the online problem determination system of company A will input the standard input data corresponding to the programming problem into the solution code and run the solution code, and then determine whether the solution code can output the standard output data corresponding to the programming problem. If so, The user is deemed to pass the test, otherwise, the user is deemed not to pass the test. In practice, many IT organizations have the need to share each other's programming question bank. For this reason, in the prior art, for any IT organization, the IT organization generally uses a crawler program to crawl programming questions from the programming question bank of other IT organizations, and provides the crawled programming questions to the tested user for answers. Then, the IT organization also needs to send the answer code given by the tested user to the online judging system of the IT organization that created the programming problem for verification. However, this method has the following disadvantages: 1. After the IT organization crawls the programming problems of other IT organizations through the crawler program, they sometimes make some inappropriate modifications to the programming problems without authorization. This aspect cannot well protect the rights and interests of the IT organizations that create programming problems. On the other hand, the answer code given by the tested user for the modified programming problem often does not match the programming problem before the modification, and the online judging system uses the solution adapted to the programming problem before the modification Check the data to test whether the code is correct, so that the test results cannot accurately reflect the programming level of the tested user. 2. Once the database of other IT organizations is inaccessible, the IT organization cannot crawl programming problems of other structures through crawlers. In other words, this way of sharing programming questions is not always effective. For this reason, in the embodiments of this specification, any IT organization can use the blockchain protocol to publish its own programming topics to the blockchain, which is equivalent to sharing the programming topics created by itself with other IT Organizations, and there is no need to worry that other IT organizations will modify the programming topic. In order to enable those skilled in the art to better understand the technical solutions in the embodiments of this specification, the technical solutions in the embodiments of this specification will be described in detail below in conjunction with the drawings in the embodiments of this specification. Obviously, the described implementation The examples are only a part of the embodiments of this specification, not all the embodiments. Based on the embodiments in this specification, all other embodiments obtained by those of ordinary skill in the art should fall within the scope of protection. The following describes in detail the technical solutions provided by the embodiments of this specification in conjunction with the accompanying drawings. Figure 1 is a schematic flow chart of a method for publishing programming questions based on blockchain provided by an embodiment of this specification, including the following steps: S100: The target node creates a programming problem to be released. In the embodiment of this specification, the equipment of each IT organization can access the blockchain network and become a node in the blockchain network. In other words, each node in the blockchain network corresponds to each IT organization that wants to share programming issues with each other. In step S100, the target node may be any node in the blockchain network. In other words, the equipment of any IT organization can create programming problems and publish them through the method shown in Figure 1. It should be noted that the programming problem created by the target node can be specifically the programming problem that the target node receives and uploads from the IT organization that controls the target node, or the target node creates a model based on the preset programming problem and automatically creates the program. Design topic. S102: The target node constructs a topic release transaction based on topic related materials. It should be noted that the transaction described in this article refers to the data structure specified in the blockchain agreement. In the blockchain protocol, a transaction means that a node creates a piece of data through the installed blockchain client and needs to be finally written into the blockchain. In other words, according to the blockchain agreement, all data that needs to be written to the blockchain for publicity needs to be encapsulated into a transaction data structure. In step S102, the topic-related data includes at least the programming topic created by the target node in step S100. The target node constructs a topic publishing transaction based on the topic-related data, which actually encapsulates the topic-related data into a data structure specified by the blockchain agreement of the transaction. S104: The target node broadcasts the topic release transaction to the blockchain network. In step S104, the target node broadcasts the topic publishing transaction to the blockchain network, which is actually broadcasting the topic publishing transaction to other nodes, which is equivalent to sharing the programming topic with other nodes. S106: For each node that obtains the topic publishing transaction, the node writes the topic publishing transaction into the blockchain based on the consensus mechanism between the nodes. For each node that obtains the topic publishing transaction, the node may perform legality verification on the topic publishing transaction before writing the topic publishing transaction to the blockchain. The items for the legality verification of the subject issue transaction can be specified according to business needs. For example, assuming that not every node has the authority to issue programming topics, then the node identification in the topic publication transaction can be used to determine whether the node corresponding to the node identification (ie the target node) has the authority to publish programming topics Permission, if there is no permission, refuse to write the subject issue transaction to the blockchain. In step S106, the consensus mechanism between the nodes ensures the consistency of the data written by each node to the blockchain each time. Therefore, even if a node arbitrarily modifies the programming topic encapsulated in the topic publishing transaction, thereby changing the content of the topic publishing transaction, the modified topic publishing transaction will not be written into the blockchain by most nodes. In this way, the programming topics created by the target node can always be written into the blockchain without modification, thereby completing the sharing of programming topics. In addition, the distributed storage feature of the blockchain makes it difficult to tamper with the issue of the transaction after being written into the blockchain. It should be noted that for the answer release transactions and result release transactions that will appear in the following text, for the same reason, the content of these transactions is also difficult to tamper with. Through the method shown in Figure 1, any IT organization's equipment can access the blockchain network called a node. In the blockchain network, any node can publish its own programming questions based on the blockchain protocol, that is to say, any node can construct a topic publishing transaction based on the programming topic created by itself, and then publish the topic The transaction is broadcast to other nodes. To obtain the topic release transaction, each node will write the topic release transaction into the blockchain based on the consensus mechanism between the nodes. In this way, on the one hand, any IT organization can share its own programming problems with other IT organizations; on the other hand, the process of issuing programming problems at any node is restricted by the blockchain agreement, and programming problems are never The entire process from creation to being written into the blockchain is difficult to be tampered with, and programming topics are also difficult to be tampered with after being written into the blockchain. In addition, in the embodiment of this specification, the topic-related data may also include the node identification of the target node. This means that the target node will also encapsulate its own node ID into the topic release transaction, and then write it into the blockchain for publicity. In this way, it is possible to clearly share the creators of each programming problem with each IT organization, and protect the rights and interests of the IT organization that creates the programming problem. In addition, in practical applications, because the data storage method of the blockchain is more complicated, when a node wants to retrieve a programming topic from the programming topic written in the blockchain, the operation is more complicated. For this reason, in the embodiment of the present specification, for each node that obtains the topic publishing transaction, the node may create a topic storage address and store the topic related data in the topic storage address. This is equivalent to storing programming questions in a simple way. It should be noted that for any topic publishing transaction, the transaction can be published according to the topic written in the blockchain to verify whether the programming topic stored in the topic storage address has been tampered with. Through the above method, the node can be more convenient when it wants to retrieve a certain programming topic. Further, the node can specifically store the topic smart contract encapsulating the topic related data into the topic storage address. In this case, the topic storage address is actually the contract identifier of the topic smart contract. Smart contracts are a data structure naturally supported by many blockchain protocols (such as Ethereum), and many blockchain protocols also naturally support quick calls of smart contracts. Therefore, the programming questions can be stored in the data structure of the smart contract, so that the programming questions can be quickly retrieved to test the programming level by calling the smart contract. According to the programming question publishing method shown in Figure 1, the embodiment of this specification further provides a blockchain-based solution code publishing method, as shown in Figure 2, including the following steps: S200: The target node obtains programming questions. The target node is any node in the blockchain network. In practical applications, when any IT organization wants to test the programming level of the tested user, it can trigger the target node under its control to obtain programming questions. The programming topic acquired by the target node is published based on the programming topic publishing method shown in Figure 1. Specifically, the target node can read the programming topic from any topic publishing transaction in the blockchain. Or, if the topic related data packaged by the topic publishing exchange is also stored in a certain topic storage address, then the target node can also obtain the programming topic from the topic storage address. When using this method to obtain programming questions, it is faster. Further, if the topic related data is stored in the topic storage address in the form of a smart contract (ie, topic smart contract), the target node can call the topic smart contract to obtain the programming topic. S202: The target node provides the programming question to the tested user for answering, and receives the answer code uploaded by the tested user. S204: The target node constructs an answer release transaction based on answer related materials. In the embodiment of this specification, the answer-related data includes at least the question mark of the programming question, the answer code and the user mark of the tested user. Wherein, if the target node reads a programming topic from any topic issuance transaction in the blockchain, then the topic identification of the programming topic is the transaction hash of the topic issuance transaction; if the target node is from If any problem storage address acquires a programming problem, the problem of the programming problem is identified as the storage address. Further, the target node may check whether the answer code has a compilation or running problem, if the check is passed, the answer issuance transaction will be constructed, if the check is not passed, it will refuse to construct the answer issuance transaction. S206: The target node broadcasts the answer release transaction to the blockchain network. S208: For each node that obtains the answer publishing transaction, the node writes the answer publishing transaction into the blockchain based on the consensus mechanism between the nodes. For each node that obtains the answer issuance transaction, the node may perform legality verification for the answer issuance transaction before writing the answer issuance transaction into the blockchain. The legality verification items for the answer release transaction can be specified according to business needs. For example, assuming that the format of the answer code is specified in advance, the format of the answer code in the answer issuance transaction can be verified, and if the format does not meet the requirements, the answer issuance transaction is refused to be written into the blockchain. In step S208, it is equivalent to publicizing the identity information of the tested user, the identification information of the programming question answered by the tested user, and the answer code given by the tested user to each node. In addition, in order to facilitate the node to quickly retrieve the answer code of the tested user for verification, in the embodiment of this specification, each node can also create an answer storage address, and store the answer-related information in the answer storage location site. Further, each node can store the solution smart contract encapsulating the solution-related data in the solution storage address. According to the method for issuing programming questions shown in FIG. 1 and the method for issuing answer codes shown in FIG. 2, the embodiment of this specification further provides a method for verifying answer codes based on blockchain, as shown in FIG. 3, which includes the following steps: S300: The inspection node obtains the answer code corresponding to the programming question and the user identification of the tested user who uploaded the answer code. In the embodiment of this specification, the verification node stores a node of the solution verification data corresponding to the programming question. The solution test data is data used to test the correctness of the solution code given to solve the programming problem. As mentioned above, the answer test data generally includes standard input data and standard output data. The check node is generally a node where the programming problem is created. Of course, the node that creates the programming problem can also distribute the solution test data corresponding to the programming problem to at least one other node. In this way, the verification node may also be a node that stores the solution verification data in addition to the node that creates the programming question. In the embodiment of this specification, the inspection node can determine the question mark corresponding to the answer inspection data according to any stored answer inspection data. Then, the answer publishing transaction containing the question identifier is found from the query in the blockchain, and the answer code and the user identifier are read from the answer publishing transaction. Further, the inspection node may also query the answer storage address where the question mark is stored, and obtain the answer code and user identification from the answer storage address. Furthermore, the inspection node can query the topic smart contract encapsulated with the topic identifier, and call the topic smart contract to obtain the corresponding answer code and user identifier. S302: The checking node uses the stored solution checking data corresponding to the programming question to check the solution code. S304: If the inspection is passed, the inspection node constructs a result release transaction based on the result related data. In the embodiment of this specification, if the verification node passes the verification of the answer code, the verification message can be published on the blockchain. In this case, the result-related data actually includes the title identification of the programming topic and the user identification, and the meaning of the result publishing transaction is, for example, "User Zhang San answered the question 1 correctly." Further, if the verification node fails the verification of the answer code, it can also publish the message that the verification fails on the blockchain. In this case, the meaning of the result release transaction may be that the inspection passes or the inspection fails. In order to distinguish, the result-related data also needs to include the result of the test passed or the result of the test failed. S306: Broadcast the result release transaction to the blockchain network. S308: For each node that obtains the result publishing transaction, the node writes the result publishing transaction into the blockchain based on the consensus mechanism between the nodes. For each node that obtains the result issuance transaction, the node may perform legality verification for the result issuance transaction before writing the topic issuance transaction to the blockchain. The items for legality verification of the result release transaction can be specified according to business needs. For example, assuming that only the node that created the programming question has the authority to check the answer code corresponding to the programming question, then it can be judged whether the verification node that broadcasts the result release transaction has the verification authority, if it does not have the authority, it is rejected Write the result release transaction to the blockchain. In step S308, it is equivalent to publicizing the identity information of the tested user, the identification information of the programming question answered by the tested user, and the result of whether the tested user passed the test to each node. In addition, in order to facilitate the nodes to quickly retrieve the test results of the tested user for review, in the embodiment of this specification, each node can also create a result storage address, and store the result-related data in the result storage location. site. Further, each node can store the result smart contract encapsulating the result related data into the result storage address. In addition, in practice, the tested user may answer more than one programming question and upload more than one answer code. In this case, for each node, the node can store the results of the tested user's answering multiple programming questions in the same result storage address, which is convenient for statistics and reference. Specifically, in the embodiments of this specification, for each node that obtains the result publication transaction, if the node obtains other result publication transactions associated with the result publication transaction, it is based on the consensus mechanism between the nodes, The other result issuance transaction is written into the blockchain, where the other result issuance transaction is constructed based on the user ID and other topic IDs. Then, the node issues a transaction according to the other results, and stores the other topic identifiers in the result storage address. In other words, the result release transaction can be regarded as the result of the first programming question answered by the tested user, and other result release transactions can be regarded as the result of other programming questions answered by the tested user later. produced. For the results of other programming questions that the tested user subsequently answers, there is no need to recreate the result storage address for storage, but directly save it to the previously created result storage address. In this way, each tested user has a unique result storage address corresponding to him, which is used to record his answer. In addition, it should be noted that in the method shown in FIG. 1, there may be more than one check node to check the problem-solving code. In this case, for each check node, the check node obtains the answer code corresponding to the programming question and the user ID of the tested user who uploaded the answer code; then uses the stored answer check corresponding to the programming question Data, check the answer code; if the answer code passes the check, construct a result release transaction based on the result related data, and broadcast the result release transaction to the blockchain network. Based on this, for each node, when it is determined that the number of result publishing transactions obtained is a specified number, the node can write any result publishing transaction obtained to the blockchain based on the consensus mechanism between the nodes. Wherein, the specified number is not greater than the number of inspection nodes. In addition, in the embodiment of this specification, there are three types of transactions, namely, topic release transactions, answer release transactions, and result release transactions. Among them, for any type of transaction, creating a storage address and storing it in the relevant information packaged by that type of exchange can be regarded as an execution operation for that type of transaction. Obviously, no matter what kind of transaction mentioned above, the execution result of executing that kind of transaction will only affect one storage address. Therefore, the three types of transactions in the embodiments of this specification are all suitable for execution using the parallelized transaction execution methods given below. This parallelized transaction execution method will be introduced below. For common blockchain application scenarios, when consensus between nodes is required, each node will select nodes that have the authority to package several transactions to be executed into blocks based on the consensus algorithm, that is, the accounting node. After the consensus, the billing node retrieves a number of transactions to be executed from the cache and packs them into blocks, and broadcasts the blocks to other nodes. Subsequently, for each node, on the one hand, the node will execute each transaction from first to last according to the order in which each transaction in the block is initiated, and on the other hand, it will write the block into the blockchain . Generally, the way in which nodes execute each transaction in a block one by one from first to last is called serialized transaction execution. The reason for adopting this serialized transaction execution method is that in common blockchain application scenarios, the execution of a transaction sometimes updates the information stored on more than one storage address. If the serialization is not used Listed transaction execution methods are prone to some transaction execution failures. However, in some blockchain application scenarios, there is no transaction that updates information stored on more than one storage address. In these blockchain application scenarios, the use of the serialized transaction execution method described above will result in lower transaction execution efficiency. Next, taking the blockchain agreement of Ethereum as an example, the reasons for the serialized transaction execution method will be explained in detail. It is worth emphasizing that in other blockchain protocols besides Ethereum, the reasons for adopting serialized transaction execution methods are also similar. In Ethereum, there are external accounts and contract accounts. The external account is used to store the ether balance of the user. The external account is essentially a storage address where the balance information is stored. The contract account is used to store the smart contract created by the user. The contract account is essentially a storage address where the smart contract code is stored. In Ethereum, there are generally two types of transactions, namely, transfer transactions from external accounts to other accounts (either external accounts or contract accounts), and contract creation transactions for external accounts to create contract accounts. The execution of the transfer transaction will generally update the information stored on more than one storage address. Specifically, the execution of a transfer transaction usually changes the balances of the two accounts (that is, the balance information stored on the two account addresses), that is, the transfer amount is deducted from the balance of the transfer account and added to the balance of the collection account Increase the transfer amount. The premise that a transfer transaction can be executed is that the balance of the transfer account is not less than the transfer amount. In practical applications, the transfer account in a certain transfer transaction (denoted as transfer transaction A) may be the receiving user in another previous transfer transaction (denoted as transfer transaction B). If the transaction is not executed from first to last in the order in which the transaction is initiated, the following situation may occur, that is, the transfer transaction B is not executed, resulting in the transfer account in the transfer transaction A not having sufficient balance for the transfer. Because of this, all blockchain application scenarios related to transfer transactions have to adopt serialized transaction execution methods to ensure that transactions can be executed smoothly. The execution of the contract creation transaction is actually to create a contract account, that is, create a storage address, and store the smart contract code into the created storage address. Obviously, the execution of the contract creation transaction will only affect one storage address. In addition, blockchain application scenarios are diverse. In some blockchain application scenarios, it can be expanded based on Ethereum to develop new types of transactions. The execution of such transactions may only affect one storage location. site. For example, the use of blockchain for content storage. The execution of a deposit certificate transaction is essentially to create a storage address and store the content of the certificate to be deposited into the created storage address. Based on the above, this article proposes a method for parallel execution of blockchain transactions, specifically for a certain type of blockchain application scenario, in which the execution result of each transaction will only affect one storage address. Fig. 4 is a schematic flowchart of a method for parallel execution of blockchain transactions provided by an embodiment of the specification, including the following steps: S400: For each node in the blockchain network, the node obtains the block to be written. In the embodiment of this specification, the block to be written is actually a block packaged by the accounting node after the consensus of each node. The accounting node broadcasts the block to be written to other nodes. As we all know, in the blockchain agreement, on the one hand, each node needs to execute each transaction in the block to be written, and on the other hand, it needs to write the block to be written into the blockchain for publicity. Once the block to be written is written into the blockchain, it is equivalent to publicizing each transaction in the block to be written. The transaction published on the blockchain can be used to check whether the corresponding transaction execution result is correct to prevent nodes from doing evil. In step S400, for each node, if the node is a billing node, the method for the node to obtain the block to be written may specifically be to fetch several transactions from its own cache and pack it into the area to be written Block; if the node is not a billing node, then the method for the node to obtain the block to be written may specifically be to receive the block to be written broadcast by the billing node. It is worth emphasizing that for each transaction in the block to be written, the execution result of the transaction is to create a storage address and store the information, or update the information stored on a storage address (to a storage Address to save information or modify the information stored on a storage address). In other words, the execution result of each transaction in the block to be written will only affect one storage address. For example, a contract creation transaction to create a contract account is a transaction in which the execution result is to create a storage address and store information. The topic release transaction and answer release transaction mentioned above are also transactions where the execution result is to create a storage address and store information. For another example, in some blockchain application scenarios, it is necessary to store the shopping records of each user. Then, you need to create a record storage address corresponding to each user in the database. When the target user makes a purchase, a shopping record will be generated, and any node in the blockchain network will build a record and record the transaction based on the shopping record and broadcast it. Then, for each node, the node will execute the record deposit transaction at the appropriate time (that is, when the record deposit transaction is packaged into the module to be written and broadcast to each node), that is, the purchase record is stored in the target The record storage address corresponding to the user. Obviously, multiple shopping records generated by the target user's multiple purchases will be stored in the record storage address corresponding to the target user. Therefore, the above-mentioned record-and-certificate transaction is a transaction that is executed as a result of updating the information stored on a storage address. The result release transaction mentioned above is also a transaction that is executed as a result of updating the information stored on a storage address. S402: Read each transaction from the block to be written, and organize each transaction into N transaction queues. In the prior art, each node usually adopts a serialized transaction execution method to execute each transaction in the block to be written. As shown in FIG. 5, the so-called serialized transaction execution mode means that each node executes each transaction in the block to be written one by one in a certain first order. In the embodiment of this specification, each transaction in the block to be written is divided into N groups, where N is a natural number greater than 1. Then, for each group, arrange the transactions in this group into a transaction queue. This manual does not specifically limit the order of transactions in each transaction queue. S404: For each transaction queue at the same time, execute each transaction in the transaction queue sequentially from first to last. In step S404, the transaction execution is actually started for each transaction queue in parallel at the same time. Specifically, for each transaction queue, each transaction in the transaction queue is actually executed serially. As shown in Figure 6. The so-called "simultaneous" means that the node starts to execute each transaction in the transaction queue at the same time. It is equivalent to that the node creates N transaction execution processes at the same time, and each transaction process is responsible for executing transactions in a transaction queue. Comparing the two transaction execution methods shown in Figure 5 and Figure 6, it is obvious that by adopting the transaction execution method shown in Figure 6, more transactions can be executed within a unit time. S406: Write the block to be written into the blockchain. In the embodiment of this specification, for each node, step S406 may be executed after step S404 is executed; or step S406 may not be executed after step S404 is executed. Through the method of parallel execution of blockchain transactions shown in Figure 4, if each transaction to be written in the block is not a transaction that updates information stored on more than one storage address, then the blockchain network Each node in the road can organize the transactions to be written in the block into at least two transaction queues, and then start to execute the transactions in each transaction queue at the same time. In this way, each node can execute a larger number of transactions per unit time, which improves transaction execution efficiency. In addition, in the embodiment of this specification, the number of transactions corresponding to each transaction queue (that is, the number of transactions in each transaction queue) can be relatively close. In this way, when transactions are executed for each transaction queue while being parallelized, the number of transactions executed by each execution process is relatively close, and some processes will not be idle and some processes will be overloaded. This also means that a node can execute as many transactions as possible within a unit time. Specifically, it can be set that the variance calculated based on the number of transactions corresponding to each transaction queue is not greater than a specified threshold. The smaller the variance calculated based on the number of transactions corresponding to each transaction queue, the closer the number of transactions corresponding to each transaction queue is. In addition, in the embodiments of this specification, the Ethereum protocol can be specifically used to construct a blockchain network. In Ethereum, a virtual machine program is installed on each node to provide a running environment for the realization of the Ethereum protocol. Usually, a virtual machine program is used to execute a blockchain process. In the embodiment of this specification, since more than one transaction queue needs to be simultaneously executed and more than one blockchain process is executed in parallel, more than one virtual machine program needs to be pre-deployed on each node. Specifically, if the transactions to be written in the block need to be organized into N transaction queues, then N virtual machine programs need to be deployed on each node in advance. In this way, in step S404, a one-to-one correspondence between the pre-deployed N virtual machine programs and N transaction queues can be established; at the same time, for each transaction queue, through the virtual machine program corresponding to the transaction queue, Each transaction in the transaction queue is executed sequentially from first to last. In addition, in the embodiments of this specification, generally, the transactions to be written in the block include both the first type of transaction and the second type of transaction. Among them, the first type of transaction refers to a transaction whose execution result is to update information stored on a storage address; the second type of transaction refers to a transaction whose execution result is to create a storage address and store the information. Obviously, there may be more than one type 1 transaction in the block to be written that will update the information stored on the same storage address. When a node executes each type 1 transaction, it often needs to access the storage address for the type 1 transaction currently executed. In this case, when the node executes the transaction to be written in the block, if it can perform centralized batch execution of all the first type transactions corresponding to the same storage address, then only one access to the same storage address is required That is, this will significantly increase the speed at which nodes execute transactions. Specifically, in step S402, a transaction whose execution result is to update the information stored on a storage address can be selected from each transaction as the first type of transaction, and the transactions other than the first type of transaction can be selected from each transaction. The transaction is regarded as the second type of transaction; among the first types of transactions, the first type of transactions with the same storage address are organized into a transaction sub-queue; each transaction sub-queue is regarded as a processing unit, and each transaction The second type of transaction is regarded as a processing unit; each processing unit is organized into N transaction queues. In this way, in the block to be written, all the first-type transactions corresponding to any storage address will be integrated into a transaction sub-queue, and the transaction sub-queue will be put into a transaction queue as a whole . When a node performs transaction execution for the transaction queue, once it accesses the storage address, it will continuously execute all the first type transactions corresponding to the storage address. Further, organize each processing unit into N transaction queues, which can be as follows: According to the transaction quantity corresponding to each processing unit, sort the processing units from largest to smallest; and initialize the transaction number corresponding to each transaction queue to 0; select the first processing unit according to the sorting result; change the current selection The processing unit of is added to the end of the minimum transaction queue, and the transaction quantity corresponding to the minimum transaction queue is updated; the minimum transaction queue is the transaction queue with the smallest transaction quantity currently corresponding; continue to select the next processing unit until All processing units are added to the transaction queue. In this way, the number of transactions corresponding to each transaction queue can be roughly equivalent. In this way, when parallelized transaction execution is performed based on each transaction queue, the workload on each execution process is also roughly the same, and there will be no idle execution process, so that the most transactions can be executed per unit time. Significantly improve the transaction execution efficiency of the node. Based on the method shown in FIG. 1, the embodiment of this specification also provides a block chain-based programming topic publishing device. As shown in FIG. 7, the device is any node in the block chain network, so The device includes: Create module 701 to create programming topics to be released; Construct a broadcasting module 702, construct a topic release transaction based on topic related data, and broadcast the topic release transaction to the blockchain network; the topic related data includes the programming topic, so that the topic can be obtained Each node that issues a transaction writes the topic issue transaction into the blockchain based on the consensus mechanism between the nodes. Based on the method shown in FIG. 2, the embodiment of this specification also correspondingly provides a blockchain-based answer code issuing device. As shown in FIG. 8, the device is any node in the blockchain network. The device includes: The obtaining module 801 obtains the programming topic; the programming topic is issued by the method described in any one of the first to fourth patent applications; The answering module 802 provides the programming question to the tested user for answering, and receives the answer code uploaded by the tested user; Construct a broadcasting module 803, construct an answer release transaction based on answer related data, and broadcast the answer release transaction to the blockchain network, so that each node that obtains the answer release transaction is based on the relationship between each node Consensus mechanism to write the answer release transaction into the blockchain; Wherein, the answer-related data includes the question mark of the programming question, the answer code and the user mark of the tested user. Based on the method shown in Figure 2, the embodiment of this specification also correspondingly provides a blockchain-based answer code verification device. As shown in Figure 9, the device is in a blockchain network and stores corresponding programming questions. The node of the solution test data, the device includes: The obtaining module 901 obtains the answer code corresponding to the programming question and the user identification of the tested user who uploaded the answer code; the programming question is issued through the method shown in FIG. 1, and the answer code is Released through the method shown in Figure 2; The inspection module 902 uses the stored answer inspection data corresponding to the programming question to inspect the answer code; Construct the broadcast module 903. If the verification is passed, construct a result publication transaction based on the result related data, and broadcast the result publication transaction to the blockchain network so that each node that obtains the result publication transaction is based on The consensus mechanism between each node writes the result release transaction into the blockchain; Wherein, the result-related data includes the title identification of the programming topic and the user identification. Based on the method shown in FIG. 1, the embodiment of this specification also correspondingly provides a blockchain-based programming topic publishing system, including a blockchain network composed of multiple nodes; Any node creates a programming topic to be released; constructs a topic publishing transaction based on topic-related data, and broadcasts the topic publishing transaction to the blockchain network, and the topic-related data includes the programming topic; Each node that obtains the topic publishing transaction writes the topic publishing transaction into the blockchain based on the consensus mechanism between the nodes. Based on the method shown in FIG. 2, the embodiment of this specification also correspondingly provides a blockchain-based answer code publishing system, including a blockchain network composed of multiple nodes; Any node obtains a programming topic; the target node is any node in the blockchain network, and the programming topic is issued according to the method shown in Figure 1; the programming topic is provided to the target The test user answers and receives the answer code uploaded by the tested user; builds an answer release transaction based on the answer related information, and broadcasts the answer release transaction to the blockchain network; wherein, the answer related information Including the title identification of the programming question, the answer code and the user identification of the tested user; Each node that obtains the answer release transaction writes the answer release transaction into the blockchain based on the consensus mechanism between the nodes.

基於圖3所示的方法,本說明書實施例還對應提供了一種基於區塊鏈的解答代碼檢驗系統,包括由多個節點組成的區塊鏈網路;檢驗節點,獲取程式設計題目對應的解答代碼與上傳所述解答代碼的被測試用戶的用戶標識,所述程式設計題目是根據圖1所示的方法發佈的,所述解答代碼是根據圖2所示的方法發佈的,所述檢驗節點是區塊鏈網路中,儲存有所述程式設計題目對應的解答檢驗資料的節點;使用儲存的對應於所述程式設計題目的解答檢驗資料,檢驗所述解答代碼;若檢驗通過,則基於結果相關資料,構建結果發佈交易,並向所述區塊鏈網路廣播所述結果發佈交易;其中,所述結果相關資料包括所述程式設計題目的題目標識與所述用戶標識;獲得所述結果發佈交易的每個節點,基於各節點之間的共識機制,將所述結果發佈交易寫入區塊鏈。 Based on the method shown in Figure 3, the embodiment of this specification also correspondingly provides a blockchain-based answer code verification system, including a blockchain network composed of multiple nodes; the nodes are verified to obtain the corresponding answers to the programming questions The code and the user ID of the tested user who uploaded the answer code, the programming question is issued according to the method shown in FIG. 1, the answer code is issued according to the method shown in FIG. 2, the verification node It is a node in the blockchain network that stores the answer test data corresponding to the programming question; uses the stored answer test data corresponding to the programming question to verify the answer code; if the test passes, it is based on Result-related data, construct a result issuance transaction, and broadcast the result issuance transaction to the blockchain network; wherein, the result-related data includes the title identification of the programming topic and the user identification; obtain the Each node of the result publishing transaction writes the result publishing transaction into the blockchain based on the consensus mechanism between the nodes.

圖10是本說明書實施例提供的一種基於區塊鏈的程式設計程度測試系統的結構示意圖。圖10所示的系統,具體可以用於實現基於區塊鏈的程式設計題目發佈系統、解答代碼發佈系統、解答代碼檢驗系統。 FIG. 10 is a schematic structural diagram of a programming degree testing system based on blockchain provided by an embodiment of this specification. The system shown in Figure 10 can be specifically used to implement a blockchain-based programming question issuing system, an answering code issuing system, and an answering code verification system.

本說明書實施例還提供一種電腦設備,其至少包括記憶體、處理器及儲存在記憶體上並可在處理器上運行的電腦程式,其中,處理器執行所述程序時實現圖1或圖2或圖3所示方法的功能。 The embodiment of the specification also provides a computer device, which at least includes a memory, a processor, and a computer program stored on the memory and running on the processor, wherein the processor executes the program to implement FIG. 1 or FIG. 2 Or the function of the method shown in Figure 3.

圖11顯示了本說明書實施例所提供的一種更為具體的計算設備硬體結構示意圖,該設備可以包括:處理器1110、記憶體1120、輸入/輸出介面1130、通訊介面1140和匯流排1150。其中處理器1110、記憶體1120、輸入/輸出介面1130和通訊介面1140透過匯流排1150實現彼此之間在設備內部的通訊連接。 FIG. 11 shows a more specific hardware structure diagram of a computing device provided by an embodiment of this specification. The device may include a processor 1110, a memory 1120, an input/output interface 1130, a communication interface 1140, and a bus 1150. The processor 1110, the memory 1120, the input/output interface 1130 and the communication interface 1140 realize the communication connection between each other in the device through the bus 1150.

處理器1110可以採用通用的CPU(Central Processing Unit,中央處理器)、微處理器、特殊應用積體電路(Application Specific Integrated Circuit,ASIC)、或者一個或多個積體電路等方式實現,用於執行相關程序,以實現本說明書實施例所提供的技術方案。 The processor 1110 may be implemented by a general CPU (Central Processing Unit, central processing unit), a microprocessor, a special application integrated circuit (Application Specific Integrated Circuit, ASIC), or one or more integrated circuits, etc., for Execute related programs to realize the technical solutions provided in the embodiments of this specification.

記憶體1120可以採用ROM(Read Only Memory,唯讀記憶體)、RAM(Random Access Memory,隨機存取記憶體)、靜態儲存設備,動態儲存設備等形式實現。記憶體1120可以儲存作業系統和其他應用程序,在透過軟體或者韌體來實現本說明書實施例所提供的技術方案時,相關的程序代碼保存在記憶體1120中,並由處理器1110來呼叫執行。 The memory 1120 can be implemented in the form of ROM (Read Only Memory), RAM (Random Access Memory), static storage device, dynamic storage device, etc. The memory 1120 can store the operating system and other application programs. When the technical solutions provided in the embodiments of this specification are implemented through software or firmware, the related program codes are stored in the memory 1120 and are called and executed by the processor 1110. .

輸入/輸出介面1130用於連接輸入/輸出模組,以實現資訊輸入及輸出。輸入輸出/模組可以作為組件配置在設備中(圖中未顯示),也可以外接於設備以提供相應功能。其中輸入設備可以包括鍵盤、滑鼠、觸控螢幕、麥克風、各類感測器等,輸出設備可以包括顯示器、揚聲器、振動器、指示燈等。 The input/output interface 1130 is used to connect input/output modules to realize information input and output. The input/output/module can be configured in the device as a component (not shown in the figure), or can be connected to the device to provide corresponding functions. The input devices may include keyboards, mice, touch screens, microphones, various sensors, etc., and output devices may include displays, speakers, vibrators, indicator lights, and so on.

通訊介面1140用於連接通訊模組(圖中未顯示),以實現本設備與其他設備的通訊互動。其中通訊模組可以透過有線方式(例如USB、網線等)實現通訊,也可以透過無線方式(例如移動網路、WIFI、藍牙等)實現通訊。 The communication interface 1140 is used to connect a communication module (not shown in the figure) to realize the communication interaction between the device and other devices. The communication module can realize communication through wired means (such as USB, network cable, etc.), or through wireless means (such as mobile network, WIFI, Bluetooth, etc.).

匯流排1150包括一通路,在設備的各個組件(例如處理器1110、記憶體1120、輸入/輸出介面1130和通訊介面1140)之間傳輸資訊。 The bus 1150 includes a path for transmitting information between various components of the device (such as the processor 1110, the memory 1120, the input/output interface 1130, and the communication interface 1140).

需要說明的是,儘管上述設備僅顯示了處理器1110、記憶體1120、輸入/輸出介面1130、通訊介面1140以及匯流排1150,但是在具體實施過程中,該設備還可以包括實現正常運行所必需的其他組件。此外,本領域的技術人員可以理解的是,上述設備中也可以僅包含實現本說明書實施例方案所必需的組件,而不必包含圖中所示的全部組件。 It should be noted that although the above device only shows the processor 1110, the memory 1120, the input/output interface 1130, the communication interface 1140, and the bus 1150, in the specific implementation process, the device may also include those necessary for normal operation. Other components. In addition, those skilled in the art can understand that the above-mentioned device may also include only the components necessary to implement the solutions of the embodiments of the present specification, rather than all the components shown in the figures.

本說明書實施例還提供一種電腦可讀儲存媒體,其上儲存有電腦程式,該程序被處理器執行時實現圖1和/或圖4所示方法的功能。 The embodiment of the present specification also provides a computer-readable storage medium on which a computer program is stored, and when the program is executed by a processor, the function of the method shown in FIG. 1 and/or FIG. 4 is realized.

電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程序的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可抹除可程式化唯讀記憶體 (EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁碟儲存或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒體不包括暫存電腦可讀媒體(transitory media),如調變的資料訊號和載波。 Computer-readable media includes permanent and non-permanent, removable and non-removable media, and information storage can be realized by any method or technology. Information can be computer-readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), and other types of random access memory (RAM) , Read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disc (DVD) or other optical storage, magnetic tape, magnetic tape, magnetic disk storage or Other magnetic storage devices or any other non-transmission media can be used to store information that can be accessed by computing devices. According to the definition in this article, computer-readable media does not include transitory media, such as modulated data signals and carrier waves.

透過以上的實施方式的描述可知,本領域的技術人員可以清楚地瞭解到本說明書實施例可借助軟體加必需的通用硬體平臺的方式來實現。基於這樣的理解,本說明書實施例的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該電腦軟體產品可以儲存在儲存媒體中,如ROM/RAM、磁碟、光碟等,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)執行本說明書實施例各個實施例或者實施例的某些部分所述的方法。 From the description of the above embodiments, those skilled in the art can clearly understand that the embodiments of this specification can be implemented by means of software plus a necessary general hardware platform. Based on this understanding, the technical solutions of the embodiments of this specification can be embodied in the form of software products, which can be stored in storage media, such as ROM/RAM, magnetic A disc, an optical disc, etc., include a number of instructions to make a computer device (which can be a personal computer, a server, or a network device, etc.) execute the methods described in the various embodiments or some parts of the embodiments of this specification.

上述實施例闡明的系統、方法、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、蜂巢式電話、相機電話、智慧手機、個人數位助理、媒體播放器、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。 The systems, methods, modules, or units explained in the above embodiments may be implemented by computer chips or entities, or implemented by products with certain functions. A typical implementation device is a computer. The specific form of the computer can be a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email receiving and sending device, and a game control A console, a tablet, a wearable device, or a combination of any of these devices.

本說明書中的各個實施例均採用遞進的方式描述,各 個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於裝置和設備實施例而言,由於其基本相似於方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的方法實施例僅僅是示意性的,其中所述作為分離部件說明的模組可以是或者也可以不是實體上分開的,在實施本說明書實施例方案時可以把各模組的功能在同一個或多個軟體和/或硬體中實現。也可以根據實際的需要選擇其中的部分或者全部模組來實現本實施例方案的目的。本領域普通技術人員在不付出進步性勞動的情況下,即可以理解並實施。 Each embodiment in this specification is described in a progressive manner, each The same or similar parts between the embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the device and equipment embodiments, since they are basically similar to the method embodiments, the description is relatively simple, and for related parts, please refer to the part of the description of the method embodiments. The method embodiments described above are merely illustrative. The modules described as separate components may or may not be physically separated. When implementing the solutions of the embodiments of this specification, the functions of the modules can be Implemented in the same one or more software and/or hardware. It is also possible to select some or all of the modules according to actual needs to achieve the objectives of the solutions of the embodiments. Those of ordinary skill in the art can understand and implement it without making progressive work.

以上所述僅是本說明書實施例的具體實施方式,應當指出,對於本技術領域的普通技術人員來說,在不脫離本說明書實施例原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本說明書實施例的保護範圍。 The above are only specific implementations of the embodiments of this specification. It should be pointed out that for those of ordinary skill in the art, without departing from the principle of the embodiments of this specification, several improvements and modifications can be made. These Improvements and modifications should also be regarded as the protection scope of the embodiments of this specification.

S100-S106:步驟 S100-S106: steps

S200-S208:步驟 S200-S208: steps

S300-S308:步驟 S300-S308: steps

S400-S406:步驟 S400-S406: steps

701:創設模組 701: Create Module

702:構建廣播模組 702: Build a broadcast module

801:獲取模組 801: Get Module

802:解答模組 802: Answer Module

803:構建廣播模組 803: Build Broadcast Module

901:獲取模組 901: Get Module

902:檢驗模組 902: Inspection Module

903:構建廣播模組 903: Build a broadcast module

1110:處理器 1110: processor

1120:記憶體 1120: memory

1130:輸入/輸出介面 1130: input/output interface

1140:通訊介面 1140: communication interface

1150:匯流排 1150: bus

為了更清楚地說明本說明書實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本說明書實施例中記載的一些實施例,對於本領域普通技術人員來講,還可以根據這些附圖獲得其他的附圖。 圖1是本說明書實施例提供的一種基於區塊鏈的程式設計題目發佈方法的流程示意圖; 圖2是本說明書實施例提供的一種基於區塊鏈的解答代碼發佈方法的流程示意圖; 圖3是本說明書實施例提供的一種基於區塊鏈的解答代碼檢驗方法的流程示意圖; 圖4是本說明書實施例提供的一種並行化的執行區塊鏈交易的方法的流程示意圖; 圖5是現有技術中串列化的交易執行方式示意圖; 圖6是本說明書實施例提供的並行化的交易執行方式示意圖; 圖7本說明書實施例還對應提供了一種基於區塊鏈的程式設計題目發佈裝置的結構示意圖; 圖8本說明書實施例還對應提供了一種基於區塊鏈的解答代碼發佈裝置的結構示意圖; 圖9本說明書實施例還對應提供了一種基於區塊鏈的解答代碼檢驗裝置的結構示意圖; 圖10是本說明書實施例提供的一種基於區塊鏈的程式設計程度測試系統的流程示意圖; 圖11是用於配置本說明書實施例方法的一種電腦設備的結構示意圖。In order to more clearly describe the technical solutions in the embodiments of this specification or the prior art, the following will briefly introduce the drawings that need to be used in the description of the embodiments or the prior art. Obviously, the drawings in the following description are merely present For some of the embodiments described in the embodiments of the specification, for those of ordinary skill in the art, other drawings may be obtained from these drawings. FIG. 1 is a schematic flowchart of a method for publishing programming questions based on blockchain provided by an embodiment of this specification; FIG. 2 is a schematic flowchart of a method for issuing answer codes based on a blockchain provided by an embodiment of this specification; FIG. 3 is a schematic flowchart of a method for verifying answer codes based on blockchain according to an embodiment of this specification; FIG. 4 is a schematic flow diagram of a method for parallel execution of blockchain transactions provided by an embodiment of this specification; FIG. 5 is a schematic diagram of a serialized transaction execution method in the prior art; FIG. 6 is a schematic diagram of a parallelized transaction execution method provided by an embodiment of this specification; Fig. 7 The embodiment of this specification also correspondingly provides a structural schematic diagram of a programming topic publishing device based on blockchain; Figure 8 The embodiment of this specification also correspondingly provides a structural schematic diagram of a solution code issuing device based on blockchain; Fig. 9 The embodiment of this specification also correspondingly provides a structural schematic diagram of a solution code checking device based on blockchain; FIG. 10 is a schematic flow chart of a programming degree testing system based on blockchain provided by an embodiment of this specification; Fig. 11 is a schematic structural diagram of a computer device for configuring the method of the embodiment of this specification.

Claims (24)

一種基於區塊鏈的解答代碼發佈方法,其基於程式設計題目發佈方法,所述程式設計題目發佈方法包括:第一目標節點創設待發佈的程式設計題目;所述第一目標節點為區塊鏈網路中的任一節點;所述第一目標節點基於題目相關資料,構建題目發佈交易,並向所述區塊鏈網路廣播所述題目發佈交易;所述題目相關資料包括所述程式設計題目;針對獲得所述題目發佈交易的每個節點,該節點基於各節點之間的共識機制,將所述題目發佈交易寫入區塊鏈;所述解答代碼發佈方法,包括:第二目標節點獲取程式設計題目;所述第二目標節點為區塊鏈網路中的任一節點;所述第二目標節點將所述程式設計題目提供給被測試用戶進行解答,並接收所述被測試用戶上傳的解答代碼;所述第二目標節點基於解答相關資料,構建解答發佈交易,並向所述區塊鏈網路廣播所述解答發佈交易;所述解答相關資料包括所述程式設計題目的題目標識、所述解答代碼與所述被測試用戶的用戶標識;針對獲得所述解答發佈交易的每個節點,所述節點基於各節點之間的共識機制,將所述解答發佈交易寫入區塊鏈。 A method for publishing answer codes based on a blockchain, which is based on a programming topic publishing method. The programming topic publishing method includes: a first target node creates a programming topic to be published; the first target node is a blockchain Any node in the network; the first target node constructs a topic publishing transaction based on topic-related data, and broadcasts the topic publishing transaction to the blockchain network; the topic-related data includes the programming Question; for each node that obtains the question issue transaction, the node writes the question issue transaction into the blockchain based on the consensus mechanism between the nodes; the answer code issuing method includes: a second target node Obtain a programming problem; the second target node is any node in the blockchain network; the second target node provides the programming problem to the tested user for answering, and receives the tested user Uploaded answer code; the second target node constructs an answer publishing transaction based on answer related data, and broadcasts the answer publishing transaction to the blockchain network; the answer related data includes the question of the programming question Identification, the answer code and the user identification of the tested user; for each node that obtains the answer release transaction, the node writes the answer release transaction into the block based on the consensus mechanism between the nodes chain. 如申請專利範圍第1項所述的方法,所述題目相關資料還包括所述第一目標節點的節點標識。 As for the method described in item 1 of the scope of patent application, the subject-related data also includes the node identifier of the first target node. 如申請專利範圍第1項所述的方法,所述程式設計題目發佈方法還包括:針對獲得所述題目發佈交易的每個節點,該節點創建題目儲存位址,並將所述題目相關資料存入所述題目儲存位址。 For example, in the method described in item 1 of the scope of the patent application, the programming topic publishing method further includes: for each node that obtains the topic publishing transaction, the node creates a topic storage address and stores the topic related data Enter the storage address of the title. 如申請專利範圍第3項所述的方法,將所述題目相關資料存入所述題目儲存位址,具體包括:將封裝有所述題目相關資料的題目智慧合約存入所述題目儲存位址。 For example, the method described in item 3 of the scope of patent application, storing the topic-related data in the topic storage address, specifically includes: storing the topic smart contract encapsulating the topic-related data in the topic storage address . 如申請專利範圍第1項所述的方法,所述第二目標節點獲取程式設計題目,具體包括:所述第二目標節點從區塊鏈中的任一題目發佈交易中讀取程式設計題目。 As in the method described in item 1 of the scope of the patent application, the second target node acquiring the programming topic specifically includes: the second target node reading the programming topic from any topic publishing transaction in the blockchain. 如申請專利範圍第5項所述的方法,若所述第二目標節點從區塊鏈中的任一題目發佈交易中讀取程式設計題目,則所述程式設計題目的題目標識為所述題目發佈交易的交易雜湊;若所述第二目標節點從任一題目儲存位址獲取程式設 計題目,則所述程式設計題目的題目標識為所述儲存位址。 For the method described in item 5 of the scope of patent application, if the second target node reads the programming topic from any topic publishing transaction in the blockchain, the topic of the programming topic is identified as the topic Publish the transaction hash of the transaction; if the second target node obtains program settings from any topic storage address If the problem is calculated, the problem of the programming problem is identified as the storage address. 如申請專利範圍第1項所述的方法,所述解答代碼發佈方法還包括:針對獲得所述解答發佈交易的每個節點,該節點創建解答儲存位址,並將所述解答相關資料存入所述解答儲存位址。 For example, in the method described in item 1 of the scope of patent application, the method for issuing the answer code further includes: for each node that obtains the answer issuing transaction, the node creates an answer storage address, and stores the answer related information in The answer storage address. 如申請專利範圍第7項所述的方法,將所述解答相關資料存入所述解答儲存位址,具體包括:將封裝有所述解答相關資料的解答智慧合約存入所述解答儲存位址。 Such as the method described in item 7 of the scope of patent application, storing the answer-related data in the answer storage address, specifically including: storing the answer smart contract encapsulating the answer-related data in the answer storage address . 一種基於區塊鏈的解答代碼檢驗方法,包括:檢驗節點獲取程式設計題目對應的解答代碼與被測試用戶的用戶標識,所述被測試用戶是上傳所述解答代碼的用戶;所述程式設計題目與所述解答代碼是透過申請專利範圍第1至8項中任一項所述的方法發佈的,所述檢驗節點是區塊鏈網路中,儲存有所述程式設計題目對應的解答檢驗資料的節點;所述檢驗節點使用儲存的對應於所述程式設計題目的解答檢驗資料,檢驗所述解答代碼;若檢驗通過,則所述檢驗節點基於結果相關資料,構建結果發佈交易,並向所述區塊鏈網路廣播所述結果發佈 交易;所述結果相關資料包括所述程式設計題目的題目標識與所述用戶標識;針對獲得所述結果發佈交易的每個節點,該節點基於各節點之間的共識機制,將所述結果發佈交易寫入區塊鏈。 A blockchain-based solution code verification method, including: a verification node obtains a solution code corresponding to a programming problem and a user identification of a tested user, the tested user is the user who uploads the solution code; the programming problem The answer code is issued by the method described in any one of items 1 to 8 in the scope of the patent application, and the test node is a blockchain network that stores the answer test data corresponding to the programming question The node; the verification node uses the stored answer verification data corresponding to the programming question to verify the answer code; if the verification passes, the verification node constructs a result release transaction based on the result-related data, and sends it to the The results of the blockchain network broadcast Transaction; the result-related data includes the title identification of the programming topic and the user identification; for each node that obtains the result of the transaction, the node publishes the result based on the consensus mechanism between the nodes The transaction is written to the blockchain. 如申請專利範圍第9項所述的方法,檢驗節點獲取程式設計題目對應的解答代碼與被測試用戶的用戶標識,具體包括:檢驗節點根據儲存的任一解答檢驗資料,確定該解答檢驗資料對應的題目標識;從區塊鏈中查詢出包含所述題目標識的解答發佈交易,並從所述解答發佈交易中讀取解答代碼與用戶標識;或查詢儲存有所述題目標識的解答儲存位址,並從所述解答儲存位址獲取解答代碼與用戶標識。 For example, in the method described in item 9 of the scope of patent application, the inspection node obtains the answer code corresponding to the programming question and the user identification of the tested user, which specifically includes: the inspection node determines the corresponding answer inspection data according to any stored answer inspection data The question mark of; query the answer release transaction containing the question mark from the blockchain, and read the answer code and user ID from the answer release transaction; or query the answer storage address where the question mark is stored , And obtain the answer code and user ID from the answer storage address. 如申請專利範圍第9項所述的方法,所述結果相關資料還包括檢驗通過結果或檢驗未通過結果。 For the method described in item 9 of the scope of the patent application, the result-related data also includes the result of the inspection passed or the result of the inspection failed. 如申請專利範圍第9項所述的方法,所述方法還包括:針對獲得所述結果發佈交易的每個節點,該節點創建結果儲存位址,並將所述結果相關資料存入所述結果儲存位址。 For example, the method described in item 9 of the scope of patent application, the method further includes: for each node that obtains the result publishing transaction, the node creates a result storage address, and stores the result-related information in the result Storage address. 如申請專利範圍第12項所述的方法,將所述結果相關資料存入所述結果儲存位址,具體包括:將封裝有所述結果相關資料的結果智慧合約存入所述結果儲存位址。 For example, the method described in item 12 of the scope of patent application, storing the result-related data in the result storage address, specifically includes: storing the result smart contract encapsulating the result-related data in the result storage address . 如申請專利範圍第12項所述的方法,所述方法還包括:針對獲得所述結果發佈交易的每個節點,該節點若獲得與所述結果發佈交易相關聯的其他結果發佈交易,則基於各節點之間的共識機制,將所述其他結果發佈交易寫入區塊鏈;所述其他結果發佈交易是基於所述用戶標識與其他題目標識構建的;以及該節點根據所述其他結果發佈交易,將所述其他題目標識存入所述結果儲存位址。 For example, the method described in item 12 of the scope of patent application, the method further includes: for each node that obtains the result publication transaction, if the node obtains other result publication transactions associated with the result publication transaction, it is based on The consensus mechanism between the nodes writes the other result release transactions into the blockchain; the other result release transactions are constructed based on the user ID and other topic IDs; and the node releases the transaction according to the other results , Save the other question mark into the result storage address. 如申請專利範圍第9項所述的方法,檢驗節點的數量大於1;檢驗節點獲取程式設計題目對應的解答代碼與被測試用戶的用戶標識,具體包括:針對每個檢驗節點,該檢驗節點獲取程式設計題目對應的解答代碼與上傳所述解答代碼的被測試用戶的用戶標識;所述檢驗節點使用儲存的對應於所述程式設計題目的解答檢驗資料,檢驗所述解答代碼,具體包括: 針對每個檢驗節點,該檢驗節點使用儲存的對應於所述程式設計題目的解答檢驗資料,檢驗所述解答代碼;若檢驗通過,則所述檢驗節點基於結果相關資料,構建結果發佈交易,並向所述區塊鏈網路廣播所述結果發佈交易,具體包括:針對每個檢驗節點,該檢驗節點若對所述解答代碼檢驗通過,則基於結果相關資料,構建結果發佈交易,並向所述區塊鏈網路廣播所述結果發佈交易。 For example, in the method described in item 9 of the scope of patent application, the number of inspection nodes is greater than 1; the inspection node obtains the answer code corresponding to the programming question and the user ID of the tested user, specifically including: for each inspection node, the inspection node obtains The answer code corresponding to the programming question and the user identification of the tested user who uploaded the answer code; the verification node uses the stored answer inspection data corresponding to the programming question to verify the answer code, which specifically includes: For each verification node, the verification node uses the stored answer verification data corresponding to the programming question to verify the answer code; if the verification passes, the verification node constructs a result release transaction based on the result-related data, and Broadcasting the result issuance transaction to the blockchain network specifically includes: for each check node, if the check node passes the check of the answer code, construct a result issuance transaction based on the result related data, and send it to the The blockchain network broadcasts the result release transaction. 如申請專利範圍第15項所述的方法,針對獲得所述結果發佈交易的每個節點,該節點基於各節點之間的共識機制,將所述結果發佈交易寫入區塊鏈,具體包括:該節點當確定獲得的結果發佈交易的數量為指定數量時,基於各節點之間的共識機制,將獲得的任一結果發佈交易寫入區塊鏈;其中,所述指定數量不大於檢驗節點的數量。 For example, the method described in item 15 of the scope of patent application, for each node that obtains the result release transaction, the node writes the result release transaction into the blockchain based on the consensus mechanism between the nodes, which specifically includes: When the node determines that the number of result publication transactions obtained is a specified number, based on the consensus mechanism between the nodes, any result publication transaction obtained is written into the blockchain; wherein the specified number is not greater than the verification node’s Quantity. 如申請專利範圍第9項所述的方法,所述檢驗節點,是所述區塊鏈網路中創設所述程式設計題目的節點。 For the method described in item 9 of the scope of patent application, the verification node is a node in the blockchain network that creates the programming topic. 一種基於區塊鏈的解答代碼發佈方法,包括:第二目標節點獲取程式設計題目;所述第二目標節點為區塊鏈網路中的任一節點;所述第二目標節點將所述程式設計題目提供給被測試 用戶進行解答,並接收所述被測試用戶上傳的解答代碼;所述第二目標節點基於解答相關資料,構建解答發佈交易,並向所述區塊鏈網路廣播所述解答發佈交易,以使獲得所述解答發佈交易的每個節點基於各節點之間的共識機制,將所述解答發佈交易寫入區塊鏈;其中,所述解答相關資料包括所述程式設計題目的題目標識、所述解答代碼與所述被測試用戶的用戶標識;所述程式設計題目是透過如下方法發佈的:第一目標節點創設待發佈的程式設計題目,所述第一目標節點為區塊鏈網路中的任一節點;基於題目相關資料,構建題目發佈交易,並向所述區塊鏈網路廣播所述題目發佈交易,所述題目相關資料包括所述程式設計題目,以使獲得所述題目發佈交易的每個節點基於各節點之間的共識機制,將所述題目發佈交易寫入區塊鏈。 A method for publishing answer codes based on blockchain, including: a second target node obtains programming questions; the second target node is any node in a blockchain network; the second target node transfers the program Design questions to be tested The user answers and receives the answer code uploaded by the tested user; the second target node constructs an answer issuance transaction based on the answer-related information, and broadcasts the answer issuance transaction to the blockchain network so that Each node that obtains the answer issuance transaction writes the answer issuance transaction into the blockchain based on the consensus mechanism between the nodes; wherein, the answer-related data includes the question identification of the programming question, the The answer code and the user ID of the tested user; the programming problem is issued by the following method: the first target node creates the programming problem to be released, and the first target node is in the blockchain network Any node; based on topic-related data, construct a topic publishing transaction, and broadcast the topic publishing transaction to the blockchain network, and the topic-related data includes the programming topic to obtain the topic publishing transaction Based on the consensus mechanism between the nodes, each node writes the topic release transaction into the blockchain. 一種基於區塊鏈的解答代碼檢驗方法,包括:檢驗節點獲取程式設計題目對應的解答代碼與被測試用戶的用戶標識,所述被測試用戶是上傳所述解答代碼的用戶;所述程式設計題目與所述解答代碼是透過申請專利範圍第1至8項中任一項所述的方法發佈的,所述檢驗節點是區塊鏈網路中,儲存有所述程式設計題目對應的解答檢驗資料的節點;所述檢驗節點使用儲存的對應於所述程式設計題目的 解答檢驗資料,檢驗所述解答代碼;若檢驗通過,則所述檢驗節點基於結果相關資料,構建結果發佈交易,並向所述區塊鏈網路廣播所述結果發佈交易,以使獲得所述結果發佈交易的每個節點基於各節點之間的共識機制,將所述結果發佈交易寫入區塊鏈;其中,所述結果相關資料包括所述程式設計題目的題目標識與所述用戶標識。 A blockchain-based solution code verification method, including: a verification node obtains a solution code corresponding to a programming problem and a user identification of a tested user, the tested user is the user who uploads the solution code; the programming problem The answer code is issued by the method described in any one of items 1 to 8 in the scope of the patent application, and the test node is a blockchain network that stores the answer test data corresponding to the programming question The node; the verification node uses the stored corresponding to the programming problem Answer the inspection data and verify the answer code; if the inspection passes, the inspection node constructs a result release transaction based on the result-related data, and broadcasts the result release transaction to the blockchain network so that the Each node of the result issuance transaction writes the result issuance transaction into the blockchain based on the consensus mechanism between the nodes; wherein the result-related data includes the title identification of the programming topic and the user identification. 一種基於區塊鏈的解答代碼發佈裝置,所述裝置為區塊鏈網路中的任一節點,所述裝置包括:獲取模組,獲取程式設計題目;解答模組,將所述程式設計題目提供給被測試用戶進行解答,並接收所述被測試用戶上傳的解答代碼;構建廣播模組,基於解答相關資料,構建解答發佈交易,並向所述區塊鏈網路廣播所述解答發佈交易,以使獲得所述解答發佈交易的每個節點基於各節點之間的共識機制,將所述解答發佈交易寫入區塊鏈;其中,所述解答相關資料包括所述程式設計題目的題目標識、所述解答代碼與所述被測試用戶的用戶標識;所述程式設計題目是透過如下方法發佈的:第一目標節點創設待發佈的程式設計題目,所述第一目標節點為區塊鏈網路中的任一節點;基於題目相關資料,構建題目發佈交易,並向所述區塊鏈網路廣播所述題目發佈交易,所述題目相關資料包括 所述程式設計題目,以使獲得所述題目發佈交易的每個節點基於各節點之間的共識機制,將所述題目發佈交易寫入區塊鏈。 A block chain-based solution code issuing device, the device is any node in the block chain network, the device includes: an acquisition module to obtain programming questions; an answer module to transfer the programming questions Provide answers to the tested users, and receive the answer codes uploaded by the tested users; construct a broadcasting module, construct answer release transactions based on answer related data, and broadcast the answer release transactions to the blockchain network , So that each node that obtains the answer issuance transaction writes the answer issuance transaction into the blockchain based on the consensus mechanism between the nodes; wherein, the answer-related data includes the question mark of the programming question , The answer code and the user identification of the tested user; the programming question is issued by the following method: the first target node creates a programming question to be released, and the first target node is a blockchain network Any node in the road; construct a topic release transaction based on topic related data, and broadcast the topic release transaction to the blockchain network, the topic related information includes The topic is programmed so that each node that obtains the topic release transaction writes the topic release transaction into the blockchain based on the consensus mechanism between the nodes. 一種基於區塊鏈的解答代碼檢驗裝置,所述裝置是區塊鏈網路中,儲存有程式設計題目對應的解答檢驗資料的節點,所述裝置包括:獲取模組,獲取所述程式設計題目對應的解答代碼與被測試用戶的用戶標識,所述被測試用戶是上傳所述解答代碼的用戶;所述程式設計題目與所述解答代碼是透過申請專利範圍第1至8項中任一項所述的方法發佈的;檢驗模組,使用儲存的對應於所述程式設計題目的解答檢驗資料,檢驗所述解答代碼;構建廣播模組,若檢驗通過,則基於結果相關資料,構建結果發佈交易,並向所述區塊鏈網路廣播所述結果發佈交易,以使獲得所述結果發佈交易的每個節點基於各節點之間的共識機制,將所述結果發佈交易寫入區塊鏈;其中,所述結果相關資料包括所述程式設計題目的題目標識與所述用戶標識。 A blockchain-based answer code verification device, the device is a node in a blockchain network that stores answer verification data corresponding to a programming problem, the device includes: an acquisition module to acquire the programming problem The corresponding answer code and the user ID of the tested user, the tested user is the user who uploaded the answer code; the programming question and the answer code are through any one of items 1 to 8 in the scope of patent application The method is issued; the inspection module uses the stored answer inspection data corresponding to the programming question to verify the answer code; builds the broadcast module, and if the inspection passes, builds the result release based on the result related data Transaction, and broadcast the result publication transaction to the blockchain network, so that each node that obtains the result publication transaction writes the result publication transaction into the blockchain based on the consensus mechanism between the nodes Wherein, the result-related data includes the title identification of the programming topic and the user identification. 一種基於區塊鏈的解答代碼發佈系統,包括由多個節點組成的區塊鏈網路;第一目標節點,創設待發佈的程式設計題目,所述第一目標節點為區塊鏈網路中的任一節點;基於題目相關資 料,構建題目發佈交易,並向所述區塊鏈網路廣播所述題目發佈交易,所述題目相關資料包括所述程式設計題目;第二目標節點,獲取程式設計題目;所述第二目標節點為區塊鏈網路中的任一節點;將所述程式設計題目提供給被測試用戶進行解答,並接收所述被測試用戶上傳的解答代碼;基於解答相關資料,構建解答發佈交易,並向所述區塊鏈網路廣播所述解答發佈交易;其中,所述解答相關資料包括所述程式設計題目的題目標識、所述解答代碼與所述被測試用戶的用戶標識;獲得所述題目發佈交易的每個節點,基於各節點之間的共識機制,將所述題目發佈交易寫入區塊鏈;獲得所述解答發佈交易的每個節點,基於各節點之間的共識機制,將所述解答發佈交易寫入區塊鏈。 A blockchain-based solution code publishing system, including a blockchain network composed of multiple nodes; the first target node creates a programming problem to be published, and the first target node is in the blockchain network Any node; based on topic-related information Data, construct a topic release transaction, and broadcast the topic release transaction to the blockchain network, the topic-related data includes the programming topic; a second target node to obtain the programming topic; the second target The node is any node in the blockchain network; the programming question is provided to the tested user for answering, and the answer code uploaded by the tested user is received; based on the answer related data, the answer issuance transaction is constructed, and Broadcast the answer issuance transaction to the blockchain network; wherein, the answer-related data includes the question identification of the programming question, the answer code and the user identification of the tested user; obtain the question Each node that issues a transaction writes the topic issue transaction into the blockchain based on the consensus mechanism between the nodes; each node that obtains the answer issue transaction, based on the consensus mechanism between the nodes, will The answer is to write the transaction to the blockchain. 一種基於區塊鏈的解答代碼檢驗系統,包括由多個節點組成的區塊鏈網路;檢驗節點,獲取程式設計題目對應的解答代碼與被測試用戶的用戶標識,所述被測試用戶是上傳所述解答代碼的用戶,所述程式設計題目與所述解答代碼是透過申請專利範圍第1至8項中任一項所述的方法發佈的,所述檢驗節點是區塊鏈網路中,儲存有所述程式設計題目對應的解答檢驗資料的節點;使用儲存的對應於所述程式設計題目的解答檢驗資料,檢驗所述解答代碼;若檢驗通過,則基於結果相關資料,構建結果發佈交易,並向所述區塊鏈網路 廣播所述結果發佈交易;其中,所述結果相關資料包括所述程式設計題目的題目標識與所述用戶標識;獲得所述結果發佈交易的每個節點,基於各節點之間的共識機制,將所述結果發佈交易寫入區塊鏈。 A blockchain-based answer code verification system, including a blockchain network composed of multiple nodes; the verification node obtains the answer code corresponding to the programming question and the user ID of the tested user, and the tested user uploads The user of the answer code, the programming question and the answer code are issued by the method described in any one of the 1 to 8 patents, and the verification node is in the blockchain network, A node that stores the answer test data corresponding to the programming question; uses the stored answer test data corresponding to the programming question to verify the answer code; if the test passes, build a result release transaction based on the result related data , And to the blockchain network Broadcast the result release transaction; wherein, the result-related data includes the title identification of the programming topic and the user identification; each node that obtains the result release transaction, based on the consensus mechanism between the nodes, will The result release transaction is written into the blockchain. 一種電腦設備,包括記憶體、處理器及儲存在記憶體上並可在處理器上運行的電腦程式,其中,所述處理器執行所述電腦程式時實現如申請專利範圍第18或19項所述的方法。 A computer device includes a memory, a processor, and a computer program stored on the memory and running on the processor, wherein the processor executes the computer program as described in item 18 or 19 of the scope of patent application. The method described.
TW108109775A 2018-10-26 2019-03-21 Programming question release, answer code release, answer code inspection method, device, system and computer equipment TWI706252B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811260961.0 2018-10-26
CN201811260961.0A CN109345392B (en) 2018-10-26 2018-10-26 Method and system for issuing programming question, issuing solution code and checking solution code

Publications (2)

Publication Number Publication Date
TW202016778A TW202016778A (en) 2020-05-01
TWI706252B true TWI706252B (en) 2020-10-01

Family

ID=65312467

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108109775A TWI706252B (en) 2018-10-26 2019-03-21 Programming question release, answer code release, answer code inspection method, device, system and computer equipment

Country Status (3)

Country Link
CN (1) CN109345392B (en)
TW (1) TWI706252B (en)
WO (1) WO2020082917A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109345392B (en) * 2018-10-26 2020-06-23 阿里巴巴集团控股有限公司 Method and system for issuing programming question, issuing solution code and checking solution code
CN110096435B (en) * 2019-04-09 2023-08-08 平安科技(深圳)有限公司 Automatic code writing method, device, computer equipment and storage medium
CN110944008B (en) * 2019-09-13 2021-03-19 腾讯科技(深圳)有限公司 Block chain-based task reward processing method, device, equipment and storage medium
CN110688410B (en) * 2019-09-23 2021-03-19 创新先进技术有限公司 Suggestion processing method and device based on block chain and electronic equipment
CN116032793B (en) * 2022-11-17 2024-04-02 中国联合网络通信集团有限公司 Information processing method, information processing device, electronic equipment and computer readable medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180158347A1 (en) * 2015-06-07 2018-06-07 Protean LLC Educational Proficiency Development and Assessment System
CN108352044A (en) * 2015-11-24 2018-07-31 索尼公司 Information processing unit, information processing method and program
CN108521456A (en) * 2018-04-01 2018-09-11 南京米好信息安全有限公司 Network establishment contest system based on block chain
TW201837805A (en) * 2017-04-10 2018-10-16 安地卡及巴布達商區塊鏈控股有限公司 Securing blockchain transaction based on undetermined data

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107622385A (en) * 2017-08-28 2018-01-23 南京邮电大学 A kind of copyright distributing method based on block chain intelligence contract
CN108171493A (en) * 2017-11-14 2018-06-15 北京欧链科技有限公司 The data processing method and device of block chain
CN108111312B (en) * 2017-12-28 2019-09-27 电子科技大学 Intelligent terminal safety communication method based on block chain
CN108550041A (en) * 2018-03-20 2018-09-18 深圳市元征科技股份有限公司 Protect the method, apparatus and terminal of original works
CN108595535B (en) * 2018-03-30 2020-11-17 李欣宇 Knowledge question-answering system and method based on same-root double-chain block chain
CN108615153A (en) * 2018-04-28 2018-10-02 百度在线网络技术(北京)有限公司 Processing method, device, system, equipment and the storage medium of block chain data
CN109345392B (en) * 2018-10-26 2020-06-23 阿里巴巴集团控股有限公司 Method and system for issuing programming question, issuing solution code and checking solution code

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180158347A1 (en) * 2015-06-07 2018-06-07 Protean LLC Educational Proficiency Development and Assessment System
CN108352044A (en) * 2015-11-24 2018-07-31 索尼公司 Information processing unit, information processing method and program
TW201837805A (en) * 2017-04-10 2018-10-16 安地卡及巴布達商區塊鏈控股有限公司 Securing blockchain transaction based on undetermined data
CN108521456A (en) * 2018-04-01 2018-09-11 南京米好信息安全有限公司 Network establishment contest system based on block chain

Also Published As

Publication number Publication date
CN109345392B (en) 2020-06-23
CN109345392A (en) 2019-02-15
WO2020082917A1 (en) 2020-04-30
TW202016778A (en) 2020-05-01

Similar Documents

Publication Publication Date Title
TWI706252B (en) Programming question release, answer code release, answer code inspection method, device, system and computer equipment
TWI743458B (en) Method, device and system for parallel execution of blockchain transactions
CN109981679B (en) Method and apparatus for performing transactions in a blockchain network
CN109377216B (en) Transaction method and system based on centralized settlement and block chain deposit certificate
WO2020029630A1 (en) Transaction method and system based on centralized clearing and blockchain record keeping
WO2020029631A1 (en) Transaction method and system based on centralized settlement and blockchain deposit certificates
CN109274667B (en) Copyright event evidence storing method and system based on block chain
TWI700600B (en) A blockchain-based method and system for proxy deposit of copyright events
TWI692990B (en) Smart device binding method, device and system, communication system
CN110046523B (en) Intelligent contract checking method and device and electronic equipment
US20210049715A1 (en) Blockchain-based data procesing method, apparatus, and electronic device
TWI706282B (en) Method and device for concealing transactions written in blockchain, blockchain system, and computer equipment
CN109299015B (en) Software testing method, device and system
TW202018555A (en) Method and apparatus for performing blockchain evidence storage on webpage by means of webpage monitoring
CN110222042A (en) For determining the method, apparatus, equipment and system architecture of having checked business datum
CN111506580B (en) Transaction storage method based on centralized block chain type account book
CN111459948A (en) Data block deleting method based on centralized block chain type account book
CN112291321B (en) Service processing method, device and system
CN111464319B (en) Transaction storage and signature verification method based on centralized block chain type account book
US20200294057A1 (en) Business processing method, apparatus, and equipment
WO2020155838A1 (en) Copyright transfer method and device employing blockchain
CN108710658B (en) Data record storage method and device
CN110245188B (en) Work list evidence-storing method, device and system based on blockchain
WO2020108055A1 (en) Multiple blockchain network-based data reading method and system
CN111858335A (en) Block chain SDK testing method and device