DAPP智慧合約理財質押挖礦分紅系統開發詳細需求及原始碼部署

搭建lovei130908發表於2023-04-17

一個智慧合約是一套以數字形式定義的承諾(promises),包括合約參與方可以在上面執行這些承諾的協議。




  按現在計算機的觀點來看,智慧合約就是一個在計算機系統上,當一定條件被滿足的情況下,可以被自動執行的合約,也就是程式碼化的一個約定。比如信用卡自動還款、SP業務自動續訂等等,也可以算是一種簡單的智慧合約。




  基於區塊鏈的智慧合約構建及執行分為如下步驟:




  1、智慧合約的構建:由區塊鏈內的多個使用者共同參與制定一份智慧合約;




  2、智慧合約的儲存:智慧合約透過P2P網路擴散到每個節點,並存入區塊鏈;




  3、智慧合約的執行:智慧合約定期進行自動機狀態檢查,將滿足條件的事務進行驗證,達成共識後自動執行並通知使用者。




  合約建立:智慧合約DAPP質押挖礦系統開發詳細對接唯:MrsFu123




  使用者編寫完成智慧合約後,經過編譯器編譯為位元組碼,需要透過傳送交易的形式部署到區塊鏈上。傳送的交易將被共識節點和同步節點接收和處理,在校驗完成各項引數後,位元組碼將被儲存在區塊鏈資料庫中。




  在校驗引數的過程中,如果下列校驗出錯,將把執行的錯誤資訊記錄在交易的執行結果中:




  同一條鏈上不允許存在重名的合約




  位元組碼不能為空




  指定的智慧合約執行引擎必須有效




  版本資訊不能為空




  隨後將呼叫執行合約的初始化方法:




  對於WASM而言,將呼叫合約的init_contract()方法,使用者必須提供匯出的init_contract()方法




  對於EVM而言,將呼叫合約的構造方法




  合約升級




  ChainMaker支援對基於WASM和EVM的位元組碼進行升級




  對於WASM而言,將呼叫upgrade_contract()方法,使用者必須提供匯出的upgrade_contract()方法




  對於EVM而言,並不會呼叫任何方法,只是單純更新位元組碼




  對於DOCKER_GO而言,將呼叫InitContract()方法,該方法用於合約的部署與升級




  合約升級也需要校驗引數,如果下列校驗出錯,將把執行的錯誤資訊記錄在交易的執行結果中:




  合約必須已經被部署成功




  位元組碼不能為空




  智慧合約事件




  智慧合約事件(contract event)是合約虛擬機器中提供的一種智慧合約向客戶端傳送通知訊息的功能。當一筆交易觸發了合約事件時,事件資料會進行廣播並記錄在區塊當中。




  事件的傳送:使用者可以在合約函式中指定合約事件topic和對應的合約事件資料,當一筆交易呼叫了包含合約事件的函式即可觸發合約事件,ChainMaker會向指定的topic傳送事件資料,從而進行合約事件傳送。




  參見智慧合約章節,智慧合約示例程式碼說明部分。




  事件的訂閱:可以使用ChainMaker SDK進行合約事件的訂閱,如果使用者對指定topic進行了訂閱,當合約事件觸發後,使用者會收到對應topic的合約事件資料。




  參見GoSDK使用說明訊息訂閱章節。




  事件的儲存:合約事件功能支援使用者可配置儲存,目前支援mysql的可配置儲存。




  版

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70028605/viewspace-2946317/,如需轉載,請註明出處,否則將追究法律責任。

相關文章