以太坊基礎知識
1.什么是以太坊:密碼學賬本,有很多高級功能(去中心化交易、用戶發行自己的貨幣,智能協議等);
2.交易費用:按照位元組收取費用,每位元組5gas;
3.錢包:
冷錢包:離線,斷網;私鑰與交易的分離;
熱錢包:聯網;私鑰存盤在能被網路訪問的位置;
中心化錢包:交易平臺注冊的賬號就是中心化錢包,所有的資料都從自己的中心化服務器獲得
輕錢包:依賴位元幣網路上其他全節點,僅同步和自己相關的資料
全節點錢包:需要同步所有的區塊鏈資料,完全去中心化
4.節點:以太坊P2P網路中的節點,在Ethereum網路中每個節點互相溝通和同步區塊資料,分為,礦工節點,其他節點,
從其他的以太坊節點接收區塊資料同步區塊,
驗證該區塊是否正確,若正確就保存在本地端的資料庫,
接收其他帳戶或Dapp所發起的交易,
挖礦來獲得獎勵的幣并把交易紀錄寫入區塊,
把區塊資料傳送給其他以太坊節點來達到同步區塊,
智能合約的布署也是由以太坊節點來負責,以太坊節點也負責智能合約執行,
外面的網站可以與以太坊節點溝通來取得區塊相關的歷史紀錄,
服務器測驗鏈轉賬:
eth.sendTransaction({from:“目標地址”,to:“接收地址”,value:web3.toWei(數量,“ether”)})
轉賬前需要解鎖目標地址
personal.unlockAccount(“目標地址”, “密碼,沒有的話不寫”,時間(單位默認為秒))
查看錢包地址余額,換算ether為單位表示
web3.fromWei(web3.eth.getBalance(“地址”),“ether”)
查看這筆交易詳細資訊:
啟動互動式視窗:
geth console
后臺運行geth 輸出實時log:
nohup geth > geth.log&
5.服務器搭建節點:
1).a.安裝 go 語言
安裝 go 主要是為了去編譯 go-ethereum 原始碼;
yum install go-ethereum
b.安裝 git
安裝 git 主要是為了拉取 go-ethereum 原始碼;
c.獲取 go-ethereum 原始碼
git clone http://github.com/ethereum/go-ethereum.git
d.配置環境變數;
略
f.創建私有鏈
geth --datadir “node1” init genesis.json
g.啟動私有鏈 ;
geth --datadir “node1” --networkid 989898 --rpc console --port 30304 --rpcport 8546
–node1 第一個節點,如果還需要啟動第二個節點,將node1變為node2,然
后同樣運行初始化,以及啟動節點命令即可(以此類推).
–rpcport value HTTP-RPC服務器監聽埠(默認值:8545),可以改為不同的埠,
–rpc console --port value HTTP-RPC服務器接受廣播埠
2).a.創建賬戶后進行挖礦
personal.newAccount()
b.啟動挖礦
miner.start()
停止挖礦
miner.stop()
c.查看用戶
eth.accounts
查看用戶1的余額
eth.getBalance(eth.accounts[0])
查看用戶2的余額
eth.getBalance(eth.accounts[1])
6.區塊鏈交易程序:
A.某人發出交易請求
B.廣播交易請求到 P2P 網路
C.驗證,礦工驗證交易正確性
D.多個交易組成一個區塊
E.新的區塊加入到一個已經存在區塊鏈中
F.交易完成
7.礦工根據交易哈希確認你是你,在發起交易時,交易發起人需要使用[私鑰]對交易進行簽名,私鑰可以生成公鑰,公鑰可以生成公鑰哈希,公鑰哈希又可以生成錢包地址.整個程序中除了公鑰哈希生成錢包地址是可逆的,其他都是不可逆的.
9.一個區塊中,包含了兩種哈希值:“上一個區塊的哈希值”和“本區塊的哈希值”,因為每個區塊都包含了上一個區塊的哈希值,所有的區塊就依次連成一條(邏輯上的)鏈,“上一個區塊的哈希值”就起到了“頁碼”的作用——給頁排序,
如果一個區塊上的交易資訊被人惡意篡改的話,“本區塊的哈希值”就會改變,由于區塊鏈中下一個區塊包含了“上一個區塊的哈希值”,為了讓下一個區塊依然能連到本區塊,需要修改下一個區塊,而這又導致下下個、下下下個…區塊也必須修改,
10.常見問題:輸入miner.start回傳null
解決方案:啟動私鏈時時,加入引數在后面添加–dev.period 1,注意,引數值為1,不是默認的0,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/289924.html
標籤:區塊鏈
