NO IMAGE

一、首先請搞清楚幾個概念:
1,EVM是一個隔離的輕量級虛擬機器環境,以確保區塊鏈資料的一致性和容錯性;
2,智慧合約由客戶端上傳到區塊鏈,在礦工的EVM中執行;
3,以太坊採用賬戶系統、世界狀態,而不是UTXO模型,因此,可以直接訪問狀態查詢和變更,儲存空間小,易於程式設計,但也不支援追溯歷史,需要處理好重放攻擊。綜合來說,各有千秋。
4,主要靠Gas限制來降低不穩定合約和DDoS攻擊。
5,未來有計劃加入PoS共識機制、分片機制和UTXO模型(之後詳細論述)。


二、開發常用IDE
Mist 功能齊全的客戶端
Geth 用來接入以太坊網路的常用客戶端
Truffle 功能豐富的應用開發框架
Embark 支援整合以太坊和IPFS的DApp開發框架
Remix 線上IDE,內建除錯和測試環境


三、建議使用命令列安裝客戶端(ubuntu16.04)

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

四、搭建測試用私有鏈
1,新建gensis.json檔案

{
"config": {
"chainId": 23,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"nonce":"0x0000000000000023",
"mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x400",
"alloc": {},
"coinbase":"0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "",
"gasLimit":"0x2fefd8"
}

chainId指定區塊鏈ID,不同的ID網路的節點無法互相連線

2,啟動區塊鏈

生成創世區塊和初始狀態

$geth --datadir    PATH_TO_DATADIR init PATH_TO_GENSIS.JSON
$geth --identity "YOUR_NAME" --rpc --rpcport "DEFAULT_IS_8545" --datadir PATH_TO_DATADIR --port "DEFAULT_IS_30303" --nodiscover console

–nodiscover用來關閉節點發現限制,防止加入有相同初始配置的陌生節點

3,進入js console介面

建立賬號

personal.newAccount()

查詢餘額

eth.getBalance(myaddress)

啟動挖礦

miner.start()

終止挖礦

miner.stop()