win10 solidity開發環境搭建

1. 軟件安裝

1) 安裝nodejs

安裝完成後將node.exe所在路徑加入環境變量PATH中,以便在cmd命令行中直接使用nodenpm命令node

下面的操做在git bash下進行

2) 安裝solc

npm install -g solc

3) 安裝truffle/ganache-cli

# 安裝truffle
npm install -g truffle

# 安裝ganache-cli
npm install -g ganache-cli

4) 安裝Ganache

官網webpack

5) 安裝web3

npm install -g web3

6) 安裝webpack

npm install -g webpack

[可選安裝]

1)安裝geth

下載地址
該步驟能夠跳過,安裝Mist瀏覽器或Ethereum Wallet錢包的時候會安裝gethgit

2) 安裝Mist/Ethereum Wallet

github下載地址
安裝完成後,將geth所在路徑github

C:\Users\<username>\AppData\Roaming\Mist\binaries\Geth\unpacked

加入環境變量PATH中,其中 爲你的用戶名。 web

2. 建立dApp項目

1) 新建項目

$ mkdir demo
$ cd demo

$ truffle unbox webpack
Downloading...
Unpacking...
Setting up...
Unbox successful. Sweet!

Commands:

  Compile:              truffle compile
  Migrate:              truffle migrate
  Test contracts:       truffle test
  Run linter:           npm run lint
  Run dev server:       npm run dev
  Build for production: npm run build

$ ls
app/            build/      migrations/    package-lock.json  webpack.config.js
box-img-lg.png  contracts/  node_modules/  test/
box-img-sm.png  LICENSE     package.json   truffle.js

不要使用truffle unbox metacoin, metacoin中不包含後面須要用到的的package.json文件npm

2) 安裝項目依賴的NPM包

$ npm install

3) 修改配置

因爲使用命令行版的ganache-cli,須要修改truffle.js,將port修改成8545, 若是使用圖形版的ganache,則不須要修改,其port就是7545json

$ vi truffle.js
# 設置內網
networks: {
    development: {
      host: "127.0.0.1",
      port: 8545,
      network_id: "*" // Match any network id
    }
  }

注意: 將ganache改成developement, 不然會出現以下提示:瀏覽器

Error: No network specified. Cannot determine current network.

4) 啓動節點

另外打開一個git bash,輸入以下命令啓動節點:bash

$ ganache-cli

注意:網絡

  • 單純使用ganache-cli每次都隨機生成10個帳戶地址
  • 若是保證每次啓動,生成的帳戶都一致,須要加上-d參數,此外還能夠使用--db指定鏈數據保存路徑

若是配合metamask使用,建議ganache-cli -d啓動
輸出以下:

回到原來的終端

5) 編譯合約

$ truffle compile

6) 部署合約

truffle migrate

若是成功,會出現以下提示:

Using network 'development'.

Running migration: 1_initial_migration.js
  Deploying Migrations...
  ... 0x833670e1b1d67d41ab7c83d8dcae313641504122418d2a0191a6294cf88e6859
  Migrations: 0xbd613fcb1b2e57137ccb6e7834677dd017f4e7bb
Saving successful migration to network...
  ... 0xdc6041f8003d27b2caef37d921dd21d1b5be88ca672e94c6a0ec2c86fa3e246b
Saving artifacts...
Running migration: 2_deploy_contracts.js
  Deploying ConvertLib...
  ... 0x251fe34333ceb9bacdf6dd8273b9c70a849bc4422869dda60187a39321fe5828
  ConvertLib: 0xd09d860b99174cee7cc7a63e284066235bf01924
  Linking ConvertLib to MetaCoin
  Deploying MetaCoin...
  ... 0x02c392cfac6f6c9cd69da824fddddbf6d65e5db1b43221d7a62b4806dcf1ee07
  MetaCoin: 0x8e72de56522f6c88ed6e744018eab54379e9261b
Saving successful migration to network...
  ... 0xe45785b07b32d34e048136d4d66ff8bb06c93ff7c0d373f17e1947267b9a3a3a
Saving artifacts...

注意同時在ganache-cli端也會有信息輸出。

7) 運行合約

$ npm run dev

輸出內容以下:

> truffle-init-webpack@0.0.2 dev F:\Workspace\test\demo
> webpack-dev-server

i 「wds」: Project is running at http://localhost:8080/

8) 瀏覽器訪問

效果:

情形1> metamask沒有登陸

情形2> metamask使用ganache-cli生成的帳戶登陸

1) 使用12個單詞短語恢復帳號

2) 將網絡切換到"localhost:8545"

3) 從新訪問,效果以下:

4) 導入其他的9個帳戶

經過9次"Create Account"便可將其他的9個帳戶一同導入


使用ganache

ganacheganache-cli使用方法相同,且默認每次啓動都使用相同的帳戶

另外 還須要 新建rpc,點擊"Custom RPC"

切換網絡爲localhost:7545

參考:

  • https://truffleframework.com/docs/truffle/getting-started/creating-a-project
  • https://truffleframework.com/docs/truffle/reference/configuration
  • https://github.com/trufflesuite/truffle-init-webpack
  • https://truffleframework.com/docs/truffle/getting-started/truffle-with-metamask
  • https://truffleframework.com/tutorials/truffle-and-metamask
相關文章
相關標籤/搜索