web3.0系統開發技術詳細介紹與分析
Web 3.0的紐帶作用:
與DAPP瀏覽器相輔相成的是其底層網路架構Web 3.0,這是和資訊網際網路時代傳統瀏覽器基於的Web 2.0完全不同的體系架構。區塊鏈技術,尤其是ETH的出現使Web 3.0成為基於區塊鏈進行價值傳遞的基礎網路。
從技術架構來看,Web 3.0的體系架構更為複雜,它在傳統資訊網際網路的基礎上,增加了價值(Token)的傳遞。
合約是程式碼(它的功能)和資料(它的狀態)的集合,存在於ETH區塊鏈的特定地址。合約賬戶能夠在彼此之間傳遞資訊,進行圖靈完備的運算。合約依靠被稱作ETH虛擬機器(EVM)位元組程式碼(ETH特有的二進位制格式)上的區塊鏈執行。
合約很典型地用諸如Solidity等語言寫成,然後編譯成位元組程式碼上傳到區塊鏈上。
ETH語言
合約依靠被稱作ETH虛擬機器(EVM)位元組程式碼(ETH特有的二進位制格式)上的區塊鏈執行。如有系統開發需求對接V:MrsFu123然而,合約很典型地用諸如Solidity等語言寫成,然後用ETH虛擬機器編譯器編譯成位元組程式碼上傳到區塊鏈。
編譯合約
solidity合約的編譯可以透過很多機制完成。
透過命令列使用solc編譯器。
在geth或eth提供的javascript控制檯使用web3.eth.compile.solidity(這仍然需要安裝solc編譯器)。
線上Solidity實時編譯器。
建立solidity合約的Meteor dapp Cosmo。
Mix IDE。
ETH錢包。
注意:關於solc和編譯Solidity合約程式碼的更多資訊可在此檢視。
在geth設定solidity編譯器
如果你啟動了geth節點,就可以檢視哪個編譯器可用。
這一指令會返回到顯示當前哪個編譯器可用的字串。
注意:solc編譯器和cpp-ethereum一起安裝。或者,你可以自己建立。
如果你的solc可執行檔案不在標準位置,可以用—solc標誌為solc可執行檔案指定一個定製路線
或者你可以透過控制檯在執行期間設定這個選項:
編譯一個簡單合約
讓我們編譯一個簡單的合約源:
這個合約提供了一個單一方法multiply,它和一個正整數a呼叫並返回到a*7。
注意:編譯器透過RPC因此也能透過web3.js,對瀏覽器內任何透過RPC/IPC連線到geth的Ðapp可用。
下面的例子會向你展示如何透過JSON-RPC接合geth來使用編譯器。
Code編譯的ETH虛擬機器位元組程式碼
Info從編譯器輸出的額外後設資料
Source原始碼
Language合約語言(Solidity,Serpent,LLL
LanguageVersion合約語言版本
compilerVersion用於編譯這個合約的solidity編譯器版本。
abiDefinition應用的二進位制介面定義
userDoc使用者的NatSpec Doc。
developerDoc開發者的NatSpec Doc。
編譯器輸出的直接結構化(到code和info)反映了兩種非常不同的部署路徑。編譯的ETH虛擬機器程式碼和一個合約建立交易被髮送到區塊,剩下的(info)在理想狀態下會存活在去中心化雲上,公開驗證的後設資料則執行區塊鏈上的程式碼。
如果你的源包含多個合約,輸出會包括每個合約一個入口,對應的合約資訊物件可以用作為屬性名稱的合約名字檢索到。你可以透過檢測當前的GlobalRegistrar程式碼來試一下:
建立和部署合約
注意:用線上Solidity實時編譯器或Mix IDE程式會更容易完成。
所有的二進位制資料都以十六進位制的格式序列化。十六進位制字串總會有一個十六進位制字首0x。
注意:注意arg1,arg2,…是合約建構函式引數,以備它要接受引數。如果合約不需要建構函式引數,就可以忽略這些引數。
值得指出的是,這一步驟需要你支付執行。一旦交易成功進入到區塊,你的賬戶餘額(你作為傳送方放在from領域)會根據ETH虛擬機器的gas規則被扣減。一段時間以後,你的交易會在一個區塊中出現,確認它帶來的狀態是共識。你的合約現在存在於區塊鏈上。以不同步的方式做同樣的事看起來是這樣:
與合約互動
與合約互動典型的做法是用諸如eth.contract()功能的抽象層,它會返回到javascript物件,和所有可用的合約功能一起,作為可呼叫的javascript功能。描述合約可用功能的標準方式是ABI定義。這個物件是一個字串,它描述了呼叫簽名和每個可用合約功能的返回值。
現在ABI中具體說明的所有功能呼叫都在合約例項中可用。你可以用兩種方法中的一種來呼叫這些合約例項上的方法。
當用sendTransaction被呼叫的時候,功能呼叫透過傳送交易來執行。需要花費以太幣來傳送,呼叫會一直記錄在區塊鏈上。用這種方式進行的呼叫返回值是交易散表。
當用call被呼叫的時候,功能在ETH虛擬機器被本地執行,功能返回值和功能一起返回。用這種方式進行的呼叫不會記錄在區塊鏈上,因此也不會改變合約內部狀態。這種呼叫方式被稱為恆定功能呼叫。以這種方式進行的呼叫不花費以太幣。
隨著公鏈等基礎設施的完善,未來將會出現更多基於不同應用場景的DAPP,包括:儲存、社交、即時通訊等領域均已出現相應的代表案例。手機錢包作為區塊鏈世界的“支付寶”,可以連線DAPP提供的服務端,以及終端使用者,因此內嵌DAPP瀏覽器成為很自然的選擇。
當然,如果未來出現殺手級的DAPP,演變成新的流量入口,那麼該應用也可能內建錢包和DAPP瀏覽器的功能,從而和錢包應用爭奪入口級的機會。因此,DAPP瀏覽器在未來更可能內嵌在高頻剛需的流量入口中。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70029396/viewspace-2952117/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CeresDAO智慧合約web3.0系統開發技術(詳情分析)Web
- Web3.0智慧合約DAPP系統開發技術介紹丨框架WebAPP框架
- 鏈動2+1系統開發詳細介紹
- 分投趣fintoch合約系統開發詳情技術介紹
- 關於UTO烏托邦模式系統開發詳情技術介紹模式
- mysql表分割槽技術詳細介紹MySql
- CeresDAO智慧合約模式系統開發技術介紹模式
- 永春堂1300模式系統開發詳細介紹模式
- 分投趣(Fintoch)系統技術開發細節分析
- NFT借貸協議質押模式系統開發詳情技術介紹協議模式
- WindowsPE重灌Windows系統詳細介紹Windows
- 合約量化系統開發技術詳細及原始碼原始碼
- MetaX星球NFT鏈遊開發系統技術(詳細方案)
- BSEX交易所繫統技術開發詳情(細節分析)
- 關於DAPP馬蹄鏈合約系統開發詳情技術介紹APP
- web3.0智慧合約NFT鑄造挖礦系統開發技術分析Web
- 美鏈電商商城系統開發技術詳情分析
- “量化交易”系統開發技術詳細丨“量化交易”原始碼原始碼
- DAO智慧生態鏈專案系統開發技術介紹
- 區塊鏈去中心化技術詳細介紹區塊鏈中心化
- DAPP馬蹄鏈智慧合約專案系統開發詳情技術介紹APP
- NFT碎片化系統開發智慧合約定製詳細功能介紹
- 關於/區塊鏈系統開發|(成熟技術)/區塊鏈系統開發介紹方案區塊鏈
- 艾倍生系統開發模式詳情介紹模式
- 《謠言資料可視分析系統》專案詳細介紹
- 旺旺農場NFT遊戲系統技術開發詳情分析遊戲
- 達贊商城公排系統開發技術分析詳情
- 紅蟻旅遊商城系統技術開發(詳情分析)
- 迪斯克Disrupt DEX系統技術開發詳情分析
- fintoch分投趣系統開發技術詳細及分析丨分投趣fintoch系統原始碼案例原始碼
- DAPP系統開發|流動性挖礦DAPP軟體系統詳細介紹APP
- 鷗易WEB3.0合約跟單交易系統技術開發程式碼詳情Web
- GameFi鏈遊系統技術開發/NFT遊戲元宇宙系統開發詳情分析GAM遊戲元宇宙
- FINTOCH分趣投系統開發技術詳細及案例原始碼原始碼
- 阿凡達(Avatar)泰山眾籌商城系統開發技術詳細及案例
- Meta force佛薩奇NFT系統開發原始碼技術介紹原始碼
- NFT 鑄造交易 OpenSea 平臺系統開發案例技術介紹
- 開發DAPP公排互助矩陣模式系統技術介紹APP矩陣模式