搭建私有鏈及部署智能合約

搭建私有鏈及部署智能合約

1、搭建以太坊私有鏈

1.1 安裝以太坊客戶端

假設你使用的ubuntu, 那麼用如下方式安裝go ethereum:php

sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum

1.2 建立genesis.json

{
  "config": {
    "chainId": 33,
    "homesteadBlock": 0,
    "eip155Block": 0,
    "eip158Block": 0
  },
  "nonce": "0x0000000000000033",
  "timestamp": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "gasLimit": "0x8000000",
  "difficulty": "0x100",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x3333333333333333333333333333333333333333",
  "alloc": {}
}

1.3 搭建私有鏈

建立創世區塊git

mkdir mycoin
geth --datadir mycoin init genesis.json

鏈接私有網github

geth --datadir mycoin --networkid 20 --rpc --rpcaddr 0.0.0.0 --rpccorsdomain "*" --rpcapi db,net,web3,admin,debug,miner,eth,personal console
  • --datadir 指定目錄
  • --networkid 指定網絡ID
  • --rpc 開啓rpc
  • --rpcaddr RPC監聽地址
  • --rpccorsdomain 容許跨域訪問
  • --rpcapi 開啓的API列表
  • console 開啓控制檯

1.4 建立一個用戶並挖礦

進入到控制檯以後, 建立一個新用戶, 密碼設置爲"password"web

personal.newAccount('password')

啓動挖礦, 第一次挖礦準備時間比較長,時間長短取決於機器的性能shell

miner.start()

當你看到以下圖信息時, 恭喜你,挖礦成功:
此處輸入圖片的描述json

挖了一會,就可使用如下命令中止了ubuntu

miner.stop()

查看用戶餘額api

eth.getBalance(eth.coinbase)

2、佈署智能合約

2.1 使用remix ide編譯智能合約

remix ide 地址跨域

本課程並不探討關於智能合約開發的話題. 智能合約可使用開源的,地址以下:網絡

智能合約地址

須要整理一下, 導入到 remix ide.

導入成功後,進行編譯。若是有黃色背景的警告,能夠忽略。若是有紅色背景的錯誤,能夠更改智能合約版本從新編譯,步驟爲: "Settings->Solidity version", 在下拉列表選擇另外一個版本,IDE就會自動從新編譯。

編譯成功後,根據如下圖片所示步驟進行操做:

此處輸入圖片的描述

先選擇"StandardToken"(這裏是否是StandardToken取決於你的合約代碼), 再點擊Details. 複製WEB3DEPLOY

此處輸入圖片的描述

複製後,粘貼到文本編輯器,對一些變量進行賦值

var name = "China Test Coin"; /* 代幣全稱 */
var symbol = "CTC"; /* 代幣簡稱 */
var decimals = 18; /* 默認精度 */
var totalSupply = 100000000; /* 發行代幣總額 */
var _owner = "0x...."; /* 代幣擁有者地址, 若是你使用上面開源的合約地址,沒有此項請忽略 */

...

編輯完成後,保存代碼。

2.2 發佈智能合約

轉到geth的控制檯上,

解鎖用戶, 這一步是必須的

personal.unlockAccount(eth.coinbase)

佈署合約

把上面保存的代碼複製粘貼到控制檯上,回車,若是成功則會顯示合約地址, 這裏的合約地址必定要保存起來, 後面會用到. 若是失敗,通常調整gas大小,再發布就能夠了.

合約佈署後,交易尚未寫到區塊上,啓動挖礦,建立區塊

miner.start()

當你看到transaction=之類的信息, 表示交易已經寫到區塊上.

至此,私有鏈的搭建和智能合約的佈署就完成了. 下一步咱們將使用php與ethereum客戶端進行交互. 並學習如何調用合約中的方法.

相關文章
相關標籤/搜索