從0開始搭建基於以太坊的區塊鏈開發環境


區塊鏈】從0開始搭建基於以太坊的區塊鏈開發環境

引言

Ethereum(以太坊)是一個使開發人員能夠建立和發布下一代分布式應用的公共區塊鏈平台。 通過其專用加密貨幣以太幣(Ether)提供去中心化的虛擬機(稱為“以太虛擬機”Ethereum Virtual Machine)來處理點對點合約。

本文從0開始搭建了以太坊的開發環境,猶如當年初學其他語言一樣,這是我們的第一個hellowork程序,在完成搭建后又進行了賬戶創建、挖礦、轉賬等測試。

圖片名稱

環境搭建

本次的以太坊環境是用go語言開發,虛擬機內部運行的是javascript. 可能有人不太理解,舉個例子,java虛擬機本身就是用c開發的(windows平台上),但是運行在虛擬機之上運行的是java語言。

環境准備

一台能聯網的Ubuntu64位機器(已經安裝git),如果是其他機器類型,請參考其他安裝教程,點我

開始安裝

兩種安裝方式,任意選擇一種(建議使用第一種):

第一種使用 Personal Package Archives 直接安裝,命令如下:

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

第二種安裝方式,使用源碼安裝,自己用go語言進行編譯,命令如下:

1.下載源碼

1
git clone https://github.com/ethereum/go-ethereum

 

2.安裝go的運行環境,參考本文
3.綁定運行環境到go

1
sudo apt-get install -y build-essential golang

 

4.進入到源碼目錄中,開始編譯源碼

1
2
cd go-ethereum
make geth

 

5.運行

1
build/bin/geth

 

初步探索

進入虛擬機並輸出日志

1
get --dev console 2>> geth-log

主界面:
圖片名稱

日志界面:
圖片名稱

全局變量

其中有一些是全局變量,你可以認為是javascript的全局變量,全局變量擁有自己的方法和函數。
如下eth變量:

圖片名稱

如下的的personal變量:

圖片名稱

下面對用戶操作,對礦機的操作,轉賬操作,挖礦操作,實際都在運用這些全局變量中的參數,然后穿上適當的方法。

賬戶操作

1.創建新賬戶

1
personal.newAccount('123456')

 

創建成功后,會展示創建成功的地址,其中上面的表達式中,中間傳入的123456為密碼

2.查看一下系統有的用戶

1
eth.accounts

 

圖片名稱

因為我之前有個用戶,所以在有兩個用戶

3.為用戶取一個別名,很顯然如果操作上面的字符串地址是很不方面的,所以下面對字符串用戶進行取別名,因為是js語言,所以可以直接使用,如下:

1
2
user1 = eth.accounts[0]
user2 = eth.accounts[1]

 

如果你在查看user1.則如下,已經成功賦值
圖片名稱

4.對賬戶進行解鎖,為了安全起見,一般一個用戶在創建的時候都是出於鎖定的狀態,有日志狀態可以看到,如下

ehcoo

對賬戶進行解鎖的命令

1
personal.unlockAccount(user2,'123456')

 

開始挖礦

挖礦的過程,主要是對miner這個全局變量進行操作
ehcoo

開始之前我們檢查一下賬戶user1和user2的金額,你會發現兩者的金額都為0

1
2
eth.getBalcance(user1)
eth.getBalcance(user2)

開始挖礦,命令如下:

1
miner.start()

 

停止挖礦命令:

1
miner.stop()

 

開始挖礦后台輸出挖礦日志:
ehcoo

運行一會后你去查看用戶的賬戶金額

ehcoo

發現第一個賬戶中已經含有金額。也就是說默認是挖到了第一個賬戶中。

轉賬測試

現在我們模擬從第一個賬戶像第二個賬戶轉賬的命令

1
eth.sendTransaction({from:user1,to:user2,value:8})

 

ehcoo

需要說明的是轉賬后,賬戶2並沒有立即收到錢,而在是挖礦之后才收到的,主要原因是當前的交易還沒有並入到區塊鏈中,我們從日志中可以獲取相關信息

ehcoo

像地址0x0b52…寫的的交易0xab24..,在區塊8中才寫入,我們可以查看區塊8進行驗證

ehcoo

總結

本文快速搭建了一個以太坊的環境,並進一步探索了賬戶操作,轉賬,挖礦等操作,其中主要參考了汪曉明老師的教程。

聲明

本文20%為翻譯組合,80%為原創

引用

https://github.com/ethereum/go-ethereum/wiki/Installation-Instructions-for-Ubuntu
http://ethcast.com/v1
http://www.8btc.com/ethereum
https://zh.wikipedia.org/wiki/%E4%BB%A5%E5%A4%AA%E5%9D%8A


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM