以太坊 智能合約學習筆記1


暫時粗略放置,以後會整理,望見諒,對CSDN使用不是很熟練,設計難看望見諒。新手學習,如有問題請大神指教,同時歡迎大家一同學習討論。

1.geth(go ethereum)。

是一個客戶端,是以太坊節點的一個實現,是真正的以太坊環境,也是目前使用最廣泛的客戶端。支持windows、linux和OSX三類操作系統。可以用來管理賬戶、轉賬、部署智能合約等。
下載地址:http://ethereum.github.io/go-ethereum/downloads.
geth安裝、測試與基礎操作。
geth version
geth account list 查看以太坊賬戶 geth account list --datadir xxx
geth account new 創建以太坊賬戶 geth account new --datadir xxx
geth console 通過JS控制檯和JS代碼訪問以太坊網絡 geth --datadir xxx console
geth console 2>>geth.log 2表示日誌通道

啓動geth節點(一些參數可以顧名思義):
geth --rpc --rpcaddr 0.0.0.0 --rpcport 8545 --rpcapi=“db,eth,net,web3,personal,web3” --datadir private console

geth --rpc --rpcaddr 0.0.0.0 --rpccorsdomain “*” --rpcport 8545 --rpcapi=“db,eth,net,web3,personal,web3” --allow-insecure-unlock --datadir private console

進入交互命令行:eth.accounts可以查看賬戶
txpool.status 可以查看交易池的狀態。

2.testrpc。

testrpc是在本地模擬的一個以太坊環境,主要用於開發調試。調試通過後可以部署到真正的以太坊環境中。testrpc本身是一個服務,端口號爲8545。
testrpc安裝、測試與基礎操作。
安裝:npm install -g ethereumjs-testrpc
運行命令:testrpc

3.建立私有鏈。

創世塊:block.json文件

{
	"config":
	{
		"chainId":15,
		"homesteadBlock":0
	},
	"difficulty":"20",
	"gasLimit":"2100000",
	"alloc":{
	}
}

其中各項含義:
chainId:指定了獨立的區塊鏈網絡ID。公鏈的ID是1。
homesteadBlock:值爲0表示有效。
difficulty:挖礦的難易程度,值越小越容易。
gasLimit:挖每個區塊需要消耗資源的上限。
alloc:爲了測試挖礦而臨時分配的賬戶。

初始化區塊鏈:geth init block.json --datadir test
啓動以太坊客戶端:geth --datadir test console 其中datadir參數表示會使用test目錄保存相關文件。
綁定礦工:miner.setEtherbase()
查詢賬號餘額:eth.getBalance()
開始挖礦:miner.start() miner.start(n) n表示線程數
停止挖礦:miner.stop()
控制挖礦數量:miner.start(2);admin.sleepBlocks(10);miner.stop();
查詢當前區塊鏈中的區塊數:eth.blockNumber

4.Remix。

remix是官方推出的開源的Solidity智能合約編寫工具。
在線鏈接:https://remix.ethereum.org
開源地址:https://github.com/ethereum/remix
可以將源代碼下載下來,在自己機器上搭建本地remix,環境問題非常多,新手不建議嘗試。

5.Node.js。

下載地址:http://nodejs.org

6.Solidity編譯器。

用於編譯Solidity源代碼.sol文件,可將其編譯成多種目標文件。
安裝:npm install -g solc
solcjs --abi xxx.sol 將xxx.sol編譯成abi文件
solcjs --abi --bin xxx.sol 可將xxx.sol編譯成xxx_sol_xxx.bin和xxx_sol_xxx.abi

7.Web3.js。

Web3.js是一套API,Web3.js是Node.js的一個模塊。
安裝:npm install web3 是在當前目錄下安裝Web3.js。
npm install [email protected]制定安裝的版本號。
Node.js的repl環境中導入Web3模塊
var Web3 = require(“web3”)只有此目錄下安裝了web3.js纔可以導入。
var web3 = new Web3(new Web3.providers.HttpProvider(“http://localhost:8545”)); 創建we3實例。

8.Ethereum Wallet。

Ethereum Wallet是一個可視化的客戶端,功能與geth類似但是不如geth。
開源代碼地址:https://github.com/ethereum/mist
安裝包地址:https://github.com/ethereum/mist/releases

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章