摘要:一理解以太坊工具以太坊有很多工具,隨著時間的推移有些會過時,但早期的網絡文章會有介紹,從而與目前的工具造成時差上的迷惑,有些工具是隨著工程化的需要逐漸流行起來的。可視化的以太坊錢包,可以管理賬戶發布合約。
一、理解以太坊工具
以太坊有很多工具,隨著時間的推移有些會過時,但早期的網絡文章會有介紹,從而與目前的工具造成時差上的迷惑,有些工具是隨著工程化的需要逐漸流行起來的。有必要梳理以下:
1、go-ethereum:以太坊Go語言版本的源碼(也叫Client,注意區塊鏈網絡里沒有服務端)。 2、Geth:go-ethereum的命令行終端,能調用go-ethereum的API。可以通過多種方式獲得,比如用homebrew安裝、下載可執行二進制文件、通過go install/make geth go-ethereum源碼等方式得到geth。 3、Ethereum Wallet:可視化的Geth(以太坊錢包),可以管理賬戶、發布合約。 4、Mist:以太坊瀏覽器,因為它連接的是以太坊區塊鏈網絡,可以通過mist訪問DApp,當然也能訪問管理Ethereum Wallet。 5、Solidity:開發智能合約的編程語言,運行在EVM。 6、Remix:開發智能合約的IDE,基于瀏覽器。適合新手(版本控制、存儲等不便)。(Mix停止更新,browser-solidity也停止更新,都使用Remix了) 7、Truffle和Embark是開發DApps的兩個常用框架,可以寫代碼-編譯-部署-測試-打包DApp(注意不僅僅可以開發智能合約)。 8、web3:以太坊基金會為DApp開發的標準RPC訪問接口,也就是以太坊區塊鏈網絡與鏈外網絡的連接橋梁。二、DAPP的工具、開發與原理
通過一個Dapp開發例子來理解。
1、安裝truffle(音:車否)
npm i -g truffle
2、安裝Ganache(音:擱那師),Ganache是用于以太坊開發的僅為個人使用的區塊鏈,下載可視化安裝包。
http://truffleframework.com/g...
3、新建Dapp項目。首先新建一個空目錄如dapp,然后進入空目錄。
通常可以用truffle初始化工程:
truffle init
也可以從truffle在線應用里拆箱即用一個模板如webpack:
truffle unbox webpack
我們用第二種方式進行下文演示。
4、我使用的IDE是GoLand(intellij idea系列的IDE都可以),安裝插件Intellij-Solidity。打開工程后就可以友好地編寫智能合約和DApp了。
dapp目錄下的幾個文件說明:
truffle.js:默認配置了一個網絡,這個網絡啟動ganache后就自動啟用了(每次啟動都是全新的初始網絡,之前的應用數據會丟失),智能合約就是被部署到這個網絡里的。
migrations目錄:這里面是合約的部署腳本,注意命名以數字加下劃線開頭,合約部署時按這個數字序號順序執行。
5、編譯工程
終端cd到dapp目錄下執行編譯命令
truffle compile
會看到dapp下多了一個build目錄,存放編譯后的文件。這些文件都是json格式,可以在應用代碼文件中通過import或require引用這些編譯后的合約文件。
6、部署合約到區塊鏈網絡
在終端里執行
truffle migrate
執行結束并成功后可以從ganache界面中看到產生了幾個區塊和幾筆交易,這些交易是從默認的第一個外部擁有賬戶到合約賬戶(這兩個賬戶的概念參見以太坊黃皮書說明,此處不大篇贅述)。
7、打包應用程序并訪問
在終端里執行(應用程序根目錄下)
1)webpack編譯打包應用
npm run build
【DApp原理】這個打包的結果就是單頁前端應用SPA (Single-Page App)。你可以將它放在自己的云web服務器上,服務器上同時要部署一個以太節點,應用通過節點接入區塊鏈網絡。DApp一般都部署在鏈外,合約是發布到鏈上的。因特網的用戶訪問App界面操作功能,這些功能是合約暴露的web3接口。DApp之所以是去中心化的,就在于其核心——合約,分布于鏈上所有節點。
2)本地啟用app
npm run dev
訪問 http://localhost:8080,就可以看到dapp的界面,包含可視化的合約功能。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/23979.html
摘要:郵件列表以太坊上的開發者郵件列表停止使用。開發的移動以太坊瀏覽器開發階段由支持的瀏覽器內。是以太坊的開發環境,測試框架和資產管道。審查隨機數以太坊虛擬機是以太坊智能合約的執行環境。 去中心化應用去中心化應用是可以使用戶和供應商之間直接互動的服務(例如,連接某些市場上的買方和賣方,文件存儲里的持有者和儲存者)。以太坊去中心化應用典型地通過HTML/Javascript網絡應用與用戶互動,...
摘要:以太坊是什么以太坊是一個建立在區塊鏈技術之上,去中心化應用平臺。運行環境以太坊虛擬機是以太坊中智能合約的運行環境。是由以太坊客戶端提供的是典型的開發以太坊時使用的客戶端,基于語言開發。 本文首發于深入淺出區塊鏈社區原文鏈接:以太坊是什么 - 以太坊開發入門指南原文已更新,請讀者前往原文閱讀 很多同學已經躍躍欲試投入到區塊鏈開發隊伍當中來,可是又感覺無從下手,本文將基于以太坊平臺,以通俗...
摘要:目前通常指代基于以太坊或者上的智能合約開發的相關應用。引入以太坊通過的交互流程大致如下總結隨著區塊鏈近些年的大紅大紫,被推上了風口浪尖,本文從技術的角度大致介紹了一下所涉及的技術要點。 當你開始探索區塊鏈開發,需要了解到這些。 showImg(https://segmentfault.com/img/remote/1460000016608233?w=1370&h=389); 一、DA...
閱讀 1837·2023-04-25 14:49
閱讀 3117·2021-09-30 09:47
閱讀 3100·2021-09-06 15:00
閱讀 2224·2019-08-30 13:16
閱讀 1436·2019-08-30 10:48
閱讀 2668·2019-08-29 15:11
閱讀 1287·2019-08-26 14:06
閱讀 1663·2019-08-26 13:30