• <option id="cacee"><noscript id="cacee"></noscript></option>
  • <table id="cacee"><noscript id="cacee"></noscript></table>
  • <td id="cacee"></td>
  • <option id="cacee"></option>
  • <table id="cacee"></table>
  • <option id="cacee"><option id="cacee"></option></option>
  • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
    <option id="cacee"><option id="cacee"></option></option>
     找回密碼
     立即注冊

    掃一掃,登錄網站

    首頁 百科 查看內容
    • 2304
    • 0
    • 分享到

    為什么開發DApp需要用到區塊鏈技術

    2019-8-30 11:07

    來源: 電子發燒友

    最近,我突發奇想,想做一個和自動販賣機有關的去中心化應用。簡單來說,它是自動販賣機的信任賬本。我們知道,自動販賣機是用來賣東西的。既然賣東西,就需要賬本。那為什么是信任賬本呢? 因為運營一臺自動販賣機,往往需要多方的參與。在我的應用場景里,不但有販賣機的運營方,還有販賣機的制造方,商品的供貨方,以及場地的租賃方。并且,每一方都會定期有相應的利潤分成。

    為什么開發DApp需要用到區塊鏈技術


    因此,我需要用一個大家都信任的方式來進行記賬。

    那為什么不用現有的數據庫呢? 因為數據庫里的數據容易被篡改。但是區塊鏈就不一樣了。因為,區塊鏈從本質上來說,就是一種分布式的、不可篡改、高通明度的記賬系統,它能夠提供一種低成本的信任方式,就是機器信任。因為這種信任機制,我們能保證我們的賬本具有真實性,確保每一方都能公正的獲得屬于自己的利潤。因此,我們需要區塊鏈來給我們提供一個信任賬本。

    為什么開發DApp需要用到區塊鏈技術

    上面的討論,其實是在回答我們開發 DApp 前需要思考清楚的第一個問題 —— 為什么要用區塊鏈? 區塊鏈這個概念雖然越來越火,但我們不可以盲目跟風。因為我們目前已經有很多完善、成熟的技術可以非常方便的解決了我們生活中的問題。所以,我們一定要定位清楚,我們的應用為什么要用區塊鏈。而像我之前和大家提到的,我的自動販賣機項目需要區塊鏈來解決信任問題,并且這個問題只有區塊鏈才能很輕松地解決。

    第二個問題是,我的 DApp 哪些部分需要用區塊鏈,哪些部分要用傳統的方式? 也就是說,我們要構思清楚哪些部分我們要放在鏈上,哪些要放在鏈下。因為目前區塊鏈的開發成本比較大,因此好鋼用在刀刃下,我們要將區塊鏈用于最關鍵的部分,而其他事情就用傳統的方法來做。就我的項目而言,因為我需要區塊鏈來保證自動販賣機賬本的不可篡改性,所以只需要在鏈上完成記賬,也就是記錄數據這個步驟。至于賬單如何生成、如何呈現給相關方,就通過鏈下的方式來解決。

    為什么開發DApp需要用到區塊鏈技術

    第三個問題,我需不需要為我的 DApp 發鏈? 還是說,我要在原有的鏈上開發應用,或者考慮跨鏈?這個問題取決于我們對項目的設計和規劃。因為我這是一個全新的項目,我打算用自己的鏈來開發。

    最后一個問題,我需要創建錢包嗎? 在 Forge 里,錢包的概念就和賬戶一樣,是鏈上所有行為的發起方,或者是接收方。另外我多說一句,我們 Forge 里所有行為都稱為「transaction」[2],英文直譯是「交易」,意譯的話,可理解為事務。它是鏈上最小的活動單位。在我的販賣機項目里,我希望通過販賣機的賬戶在鏈上發送賬單信息,同時相關方的賬本里會有這筆賬單的記錄。因此,我需要為每一臺販賣機,和每一位相關方創建錢包賬戶。

    思考完以上四個問題,我們就可以開始為自己的 DApp 建模了。我來和大家介紹下我的模型。我的自動販賣機 DApp 共由以下三個部分組成:

    ?賬單的生成,

    ?賬單的記錄,

    ?以及,賬單的呈現。

    賬單的生成是指模擬現有的販賣機系統,隨機生成賬單信息。而賬單的記錄是通過販賣機的錢包賬戶將這些數據發送到鏈上。最后,賬單的呈現是通過調取鏈上的數據,在鏈下整合后通過 pc 端平臺來展示。因此,我第一部分和第三部分主要依賴鏈下的技術,而第二部分--賬單的記錄,就是鏈上的了。這部分通常我們最不熟悉的區域,也是我上周主要在做的部分。

    為什么開發DApp需要用到區塊鏈技術

    前面我們提到,鏈上的一切行為都叫作交易。創建錢包算一個交易,轉賬也算一個交易。那我們是如何定義一個交易的呢?交易定義是通過 transacTIon protocol[3],交易協議,或者說是智能合約,來完成的。Forge 開發框架為開發者提供了很多常見的交易協議,例如錢包的創建、轉賬、交換資產等等。同時 Forge 開發框架簡化了編寫、部署交易協議的過程,通過提供模版化流程讓開發者可以輕松定義新的交易協議。

    為了滿足我 DApp 的需求,我做了一個新的交易協議,叫「合并交易」。這個交易滿足了我記賬的要求:首先,當販賣機發起這個「合并交易」時,該交易會為鏈上發送商品的信息,例如:商品的名稱、價格、消費時間,以及商家的信息,例如:運營方、制造方、供貨方,和場地方。而且,「合并交易」發送成功后,不但這些信息會永遠地記錄在鏈上,同時,相關方的錢包賬戶里會更新相應的利潤金額。這個就是我對「合并交易」的定義了。

    為什么開發DApp需要用到區塊鏈技術

    確認好了交易協議的定義,接下來就是寫碼的工作了!

    版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。
    標簽: DAPP
    相關新聞
    發表評論

    請先 注冊/登錄 后參與評論

      回頂部
    • <option id="cacee"><noscript id="cacee"></noscript></option>
    • <table id="cacee"><noscript id="cacee"></noscript></table>
    • <td id="cacee"></td>
    • <option id="cacee"></option>
    • <table id="cacee"></table>
    • <option id="cacee"><option id="cacee"></option></option>
    • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
      <option id="cacee"><option id="cacee"></option></option>
      妖精视频