普及一下:DAPP鏈上合約互助模式系統開發丨DAPP雙幣質押開發詳情

Lyr96246466發表於2023-03-10

  DAPP是Decentralized Application的縮寫,18I鏈上合約- 259l開發3365系統+即去中心化應用,也有人稱為

分散式應用。它被認為開啟了區塊鏈3.0時代。


  DAPP就是在底層區塊鏈平臺衍生的各種分散式應用,是區塊鏈世界中的服務提供形式。DAPP之於區塊鏈,有些類似APP

之於IOS和Android。


  (二)DAPP與智慧合約、區塊鏈的關係


  那麼DAPP與智慧合約是否一回事?與區塊鏈到底是什麼關係?

pragma solidity ^0.4.0;


contract SimpleStorage {

    // 一個公開的變數

    uint256 public count = 7;


    // 一個私有的方法

    function multiply(uint256 a) internal pure returns (uint256 b) {

        return a * 7;

    }

    

    // 一個公開的方法

    function getCount() public constant returns (uint256 a) {

        return multiply(count);

    }

}

  可以認為,DAPP就是基於P2P對等網路而執行在智慧合約之上的分散式應用程式,區塊鏈則為其提供可信的資料記錄。


  (三)關於智慧合約


  智慧合約是出現在比特幣時代之前,由尼克·薩博(Nick Szabo)在1996提出的概念。他對智慧合約的定義如下:


  “一個智慧合約是一套以數字形式定義的約定,包括合約參與方可以在上面執行這些約定的協議。智慧合約的基本思想是,

各種各樣的合約條款可以嵌入到我們使用的硬體和軟體中從而使得攻擊者需要很大的代價去攻擊。”


  基於區塊鏈的智慧合約構建及執行分為如下幾步:1、多方使用者共同參與制定一份智慧合約;2、合約透過P2P網路擴散並存

入區塊鏈;3、區塊鏈構建的智慧合約自動執行。


soliditySource.sol就是把示例程式碼儲存的一個檔案,字尾是.sol

// 生成bytecode,輸出的內容最前加上 0x,也就是0和x

solc --bin soliditySource.sol

// 生成abi

solc --abi soliditySource.sol


  (三)DAPP的特點


  目前對於DAPP的特點尚未取得統一看法,但是基本大同小異,這裡試歸納如下。


  1、DApp透過網路節點去中心化操作。可以執行在使用者的個人裝置之上,比如:手機、個人電腦。永遠屬於使用者,也可以

自由轉移給任何人。


  2.DApp執行在對等網路。不依賴中心伺服器,不需要專門的通訊伺服器傳遞訊息,也不需要中心資料庫來記資料。資料

儲存在使用者個人空間,可能是手機,也可能是個人云盤。


  3.DApp資料加密後儲存在區塊鏈上。可以依託於區塊鏈進行產權交易、銷售,承載沒有中介的交易方式。


  4.DApp參與者資訊被安全儲存。可以保護數字資產,保證產權不會洩露、被破壞。


  5.DApp必須開源、自治。可以由使用者自由打包生成,簽名標記所屬權。它的釋出不受任何機構限制。各種創意與創新可以

自由表達和實現。

// web3.eth.contract()中括號中的內容就是abi

// abi = [{"constant":true,"inputs":[],"name":"count","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCount","outputs":[{"name":"a","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]

var browser_ballot_sol_simplestorageContract = web3.eth.contract([{"constant":true,"inputs":[],"name":"count","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCount","outputs":[{"name":"a","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]);

// 下面中data對應的內容就是bytecode

// bytecode = '0x60606040526007600055341561001457600080fd5b60e9806100226000396000f3006060604052600436106049576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306661abd14604e578063a87d942c146074575b600080fd5b3415605857600080fd5b605e609a565b6040518082815260200191505060405180910390f35b3415607e57600080fd5b608460a0565b6040518082815260200191505060405180910390f35b60005481565b600060ab60005460b0565b905090565b60006007820290509190505600a165627a7a72305820ce3994eccf8989c24603717c6996c128cbde4dff903c7b3f6cd101c3ac6c092c0029'

var browser_ballot_sol_simplestorage = browser_ballot_sol_simplestorageContract.new(

   {

     from: web3.eth.accounts[0], 

     data: '0x60606040526007600055341561001457600080fd5b60e9806100226000396000f3006060604052600436106049576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306661abd14604e578063a87d942c146074575b600080fd5b3415605857600080fd5b605e609a565b6040518082815260200191505060405180910390f35b3415607e57600080fd5b608460a0565b6040518082815260200191505060405180910390f35b60005481565b600060ab60005460b0565b905090565b60006007820290509190505600a165627a7a72305820ce3994eccf8989c24603717c6996c128cbde4dff903c7b3f6cd101c3ac6c092c0029', 

     gas: '4700000'

   }, function (e, contract){

    console.log(e, contract);

    if (typeof contract.address !== 'undefined') {

         console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);

    }

 })


  (五)DAPP與APP的區別


  從客戶體驗角度,APP相對於DAPP有四大問題,一是截留使用者資料,二是壟斷生態平臺,三是保留使用者權利,四是限制

產品標準扼殺創新。


  從技術角度,DAPP與APP區別主要有兩個方面,一是APP在安卓或蘋果系統上安裝並執行;DAPP在區塊鏈公鏈上開發

並結合智慧合約;二是APP資訊儲存在資料服務平臺,可以運營方直接修改;DAPP資料加密後儲存在區塊鏈,難以篡改。


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

相關文章