一、總體架構(gòu)
二、區(qū)塊鏈_區(qū)塊_賬戶_交易_出塊時間_塊高的關(guān)系
比特幣出塊時間是平均10分鐘,而以太坊約是15秒。
賬戶與賬戶之間的多個轉(zhuǎn)賬交易(Transaction),被打包為了一個區(qū)塊,多個區(qū)塊通過一定的算法鏈接起來,就成了區(qū)塊鏈,這是圖中要表達(dá)的意思。
三、以太坊分布式網(wǎng)絡(luò)
以太坊的任意一個節(jié)點都能是該網(wǎng)絡(luò)的入口和出口。
四、交互
開發(fā)者通過代碼和來和以太坊網(wǎng)絡(luò)進(jìn)行交互,普通用戶則通過各種DAPP來和以太坊網(wǎng)絡(luò)進(jìn)行交互。
五、以太坊賬戶
以太坊賬戶包含了地址、公鑰、私鑰。Rinkeby為賬戶的測試環(huán)境,主網(wǎng)為線上環(huán)境。
六、賬戶和錢包的關(guān)系
通過對比我們能看出區(qū)塊鏈去中心化的輪廓。
七、合約賬戶和普通賬戶的區(qū)別
先是開發(fā)者通過合約用戶來定義智能合約的業(yè)務(wù)邏輯,然后普通用戶才能利用智能合約完成各個賬戶之間的交易,最后合約與合約之間的交互使得整個系統(tǒng)能有序進(jìn)行。
八、智能合約開發(fā)工作流
Remix:以太坊官方推薦的智能合約開發(fā)IDE,適合新手,可以在瀏覽器中快速部署測試智能合約。
Visual Studio Code :(簡稱VS Code/VSC) 是一款免費(fèi)開源的現(xiàn)代化輕量級代碼編輯器,支持幾乎所有主流的開發(fā)語言的語法高亮、智能代碼補(bǔ)全、自定義熱鍵、括號匹配、代碼片段、代碼對比 Diff、GIT 等特性,支持插件擴(kuò)展,并針對網(wǎng)頁開發(fā)和云端應(yīng)用開發(fā)做了優(yōu)化。
Node.js :是一個基于 Chrome V8 引擎的 JavaScript 運(yùn)行環(huán)境。使用了一個事件驅(qū)動、非阻塞式 I/O 的模型,使其輕量又高效。它的包管理器 npm,是全球最大的開源庫生態(tài)系統(tǒng)。
九、基于 Node.js 的智能合約工作流
上一篇文章就是這個圖中描述的業(yè)務(wù)邏輯的實現(xiàn)。
十、web3.js的橋梁作用
web3.js是以太坊提供的一個Javascript庫,它封裝了以太坊的JSON、 RPC、API,提供了一系列與區(qū)塊鏈交互的Javascript對象和函數(shù),包括查看網(wǎng)絡(luò)狀態(tài),查看本地賬戶、查看交易和區(qū)塊、發(fā)送交易、編譯/部署智能合約、調(diào)用智能合約等,其中最重要的就是與智能合約交互的API。