日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【以太坊智能合约】Embark Framework 开发基础篇

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【以太坊智能合约】Embark Framework 开发基础篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在之前的文章中,我們看到了使用Solidity開發以太坊智能合約的所有基本知識。我們使用了以太坊錢包,我們能夠輕松設置小型產品開發環境。我們會發現開始的時候很不錯,但是如果我們想要更深入的話呢?我們要編寫更大的應用程序,能夠使用多個源文件。編寫、測試、調試、使用版本控制系統,一次部署多個合約等等。

為了更深入,我們將使用Embark框架。 Embark框架很容易上手,并具有很多功能:

  • Blockchain (Ethereum)
  • 去中心化 Storage (IPFS)
  • 去中心化交流 (Whisper, Orbit)
  • Web 技術

目錄

  • 1. 安裝 Embark framework
  • 2. Embark framework Hello World
    • 2.1 啟動服務器和控制器
    • 2.2 終端讀取和修改storedData的值
    • 2.3 Web端獲取storedData的值
    • 2.4 Web端點擊Set Value修改storedData的值
  • 3. 小結

1. 安裝 Embark framework

你可以在任何平臺安裝Embark framework,下面是你需要安裝的工具。

  • Geth:Ethereum 協議的官方go實現
  • NodeJS和NPM:JavaScript應用的運行時和包管理器

如果你已經安裝上面的工具,我們將使用NPM來安裝?embark framework。

localhost:~ yuechunli$ npm -g install embark ethereumjs-testrpc /usr/local/bin/embark -> /usr/local/lib/node_modules/embark/bin/embark /usr/local/bin/testrpc -> /usr/local/lib/node_modules/ethereumjs-testrpc/build/cli.node.js + ethereumjs-testrpc@4.1.3 + embark@2.5.2 updated 2 packages in 42.504s╭─────────────────────────────────────╮│ ││ Update available 5.3.05.4.2 ││ Run npm i -g npm to update ││ │╰─────────────────────────────────────╯localhost:~ yuechunli$

2. Embark framework Hello World

2.1 啟動服務器和控制器

Embark framework包含最基本能夠用來部署并讓我們容易理解它如何運作的demo。打開終端,首先我們創建一個一個文件夾embark_demo,切換到embark_demo文件夾里面,通過embark demo命令來創建Embark framework的初始化項目。

localhost:SmartContractDemo yuechunli$ ls BloggerCoin EncryptedToken HelloWorld localhost:SmartContractDemo yuechunli$ mkdir embark_demo localhost:SmartContractDemo yuechunli$ cd embark_demo/ localhost:embark_demo yuechunli$ embark demo Initializing Embark Template.... Installing packages.. this can take a few seconds Init completeApp ready at embark_demo ------------------- Next steps: -> cd embark_demo -> embark blockchain or embark simulator open another console in the same directory and run -> embark run For more info go to http://github.com/iurimatias/embark-framework localhost:embark_demo yuechunli$ ls embark_demo localhost:embark_demo yuechunli$ cd embark_demo/ localhost:embark_demo yuechunli$ ls app embark.json package.json chains.json node_modules test config package-lock.json localhost:embark_demo yuechunli$

為了運行這個demo,我們得先通過embark simulator啟動simulator。

localhost:embark_demo yuechunli$ embark simulator localhost:embark_demo yuechunli$ embark simulator EthereumJS TestRPC v6.0.1 (ganache-core: 2.0.0)Available Accounts ================== (0) 0x32b083632f44917e2e9125c3025a120c97bb9f8c (1) 0xe38af4e162a40d27c6f15e754be1a940ca6b41ab (2) 0x19f321c2a9f531cd11b45be37ea12b835390d816 (3) 0x982eadda586d29e13b38d745d45dccd931a1b471 (4) 0xb0b4422bfdf431f58df48d0645e8d933d9c7f81d (5) 0xd69080b8a458a3fbd3f354b16b2a5964178a2579 (6) 0x87b394b8f8d7530cd677fdb8fb785aed0431146e (7) 0xc1da7d151ed95b616f8b67ed5ce4774525455ee0 (8) 0xa1878496046ff767401cb768e352c407c7f53018 (9) 0xd16faa875634d4fe88333555cd7dc9e8c22f3e2ePrivate Keys ================== (0) a70c22b2e6fe5f44ca15b44883333ad551e22608953a5f16e44a8b616e151360 (1) 73a0e9cf90828d1099e5c5ac513cb18b5b804be7278aebf9bb2db5602d0e36da (2) 1e083df4a9aa021e64b52318fd64ec8d5959018b2244856466dc5ea102fa2cf8 (3) 74afaab038ec34c8ac18559a09888dbd4e057fdfa9f41e99a99bbb1fceb32bc7 (4) 3f27399b396c4d4cacfca45bffb0ce67f1f141bc5202bcd38bf66a9f8213c922 (5) 36e4b3bfab27957163165aa185fed01134d90a41d2dbaed88a9eeff7c7be4583 (6) 94292f49bd516fecd6bf775b5057cd215bb159efbc808b4cf0cf04afcd43418b (7) d9d43481879b1f130379c26df5a32ded19aabe3812e46ba52ef8b163f858ce40 (8) 61679bc6a888d5d76af56ffcfcd7383befd44032254e35272e1f227f12dd4016 (9) a8ac9f59c020136da2933424bf0f196d0a42e4a7f5d1ec8b973ff4d8c6b68a6fHD Wallet ================== Mnemonic: soap idle agree episode breeze utility page drive dumb vibrant repeat potato Base HD Path: m/44'/60'/0'/0/{account_index}Listening on localhost:8545**

simulator有兩個優勢

  • 第一,它將在你的計算機上創建一個區塊鏈(blockchain),因此當你需要部署合約或者做其他交易時,你的計算機將能夠挖礦(mine)。
  • 第二,你不需要下載所有的Ethereum區塊鏈,這樣能節省你的空間。

接下來我們重啟一個終端通過embark run命令來運行程序。

localhost:embark_demo yuechunli$ embark run

元素解釋:

  • 當前部署的合約和地址列表顯示在Embark演示的demo中只有一個簡單的合約SimpleStorage,SimpleStorage合約具有簡單的任務:存儲一個值,并使這個值可從外部讀取。
  • http://localhost:8000為當前UI前端的地址和端口。
  • 可以和你合約進行交互的控制臺。
  • 2.2 終端讀取和修改storedData的值

    讓我們用atom打開demo看看合約代碼:simple_storage.sol文件在app/contracts文件夾下面。

    在SimpleStorage這個合約中,有一個storedData狀態變量用于存儲一個uint無符號整型的值。因為前面我們已經啟動了服務,并且已經將合約部署到了本地測試網絡,所以我們可以切換到終端,在終端中通過SimpleStorage.get()獲取storedData的值,通過SimpleStorage.set(88)修改狀態變量的值,操作如下圖所示:

    2.3 Web端獲取storedData的值

    瀏覽項目,不難發現,在app這個文件夾中,除了contracts文件夾外,還有css、images、js等文件夾,它們包含了和區塊鏈交互的web app的源碼。在瀏覽器中打開http://localhost:8000看看Embarkdemoweb端的效果。

    Note:默認端口為8000,如果想修改端口可以到config/webserver.json文件里面進行修改。

    下圖是WebApp效果圖:

    默認的初始值為100,如果想在Web端點擊Get Value按鈕獲取值,當前的MetaMask錢包必須和本地的區塊鏈測試網絡一致,本地測試網絡的RPC地址和端口為:localhost:8545,所以需要在MetaMask錢包中將測試網絡切換到localhost:8545,然后點擊Get Value按鈕,即可獲得存儲到區塊鏈上的storedData的值。【PS:從區塊鏈獲取值不需要花費gas,但是MetaMask錢包網絡必須和區塊鏈部署的網絡是同一個測試網絡。】

    2.4 Web端點擊Set Value修改storedData的值

    目前我們的MetaMask的localhost:8545測試網絡中,錢包地址中默認的以太幣為0,如下圖所示:

    如果我們想在Web端通過Set Value按鈕去修改storedData的值,我們的MetaMask賬號里面必須得有以太幣,那么,那么,那么……

    如何獲取以太幣呢?

    在我們終端中通過embark simulator啟動時,會默認分配10個錢包地點,并且每個賬號里面的余額都默認為100,我們在終端查詢一下先:

    下一步拷貝我們MetaMask里面的錢包地址,在控制臺執行下面的命令。

    count = web3.toWei(60,'ether');web3.eth.sendTransaction({from: '0xe38af4e162a40d27c6f15e754be1a940ca6b41ab',to: '0xF055775eBD516e7419ae486C1d50C682d4170645',value: count});

    ??:我們在終端查詢0xe38af4e162a40d27c6f15e754be1a940ca6b41ab地址余額時,它比40個以太幣要少一些,原因是因為轉賬需要花手續費。

    如上圖所示,0xF055775eBD516e7419ae486C1d50C682d4170645賬號已充值60 ether。

    接下來我們就可以在Web端調用Set Value來修改storedData的值,我們在Web端將其值修改為520,然后再在終端查看一下storedData的值是否被修改并且同步。

    3. 小結

    本篇文章主要是帶大家初步認識Embark framework,通過本篇文章,相信大家對Embark framework框架有了初步的認識,知道如何安裝Embark framework環境,如何啟動模擬器,如何運行程序,如何在控制臺和合約實例交互。

    4. 參考文檔

    • https://solidity.readthedocs.io
    • ethereumbuilders.gitbooks.io/guide/content/en/ethereum_javascript_api.html
    • web3js.readthedocs.io/en/1.0/index.html
    • https://ethereumdev.io/getting-started-with-embark-framework
    • http://embark.readthedocs.io/en/2.5.2

    http://liyuechun.org/2017/11/30/embark-basic/

    總結

    以上是生活随笔為你收集整理的【以太坊智能合约】Embark Framework 开发基础篇的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。