区块链技术 之 以太坊(ethereum)开发环境安装
2017-01-18 10:17
375 查看
先访问github上go语言开发客户端网址:
https://github.com/ethereum/go-ethereum
安装ethereum
https://github.com/ethereum/go-ethereum/wiki/Building-Ethereum
在MAC上安装
brew tap ethereum/ethereum
brew install ethereum
dogiant@bogon:/usr/local$brew
tap ethereum/ethereum
Updating Homebrew...
==>
Tapping ethereum/ethereum
Cloning into '/usr/local/Homebrew/Library/Taps/ethereum/homebrew-ethereum'...
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 6 (delta 1), reused 1 (delta 0), pack-reused 0
Unpacking objects: 100% (6/6), done.
Checking connectivity... done.
Tapped 3 formulae (31 files, 33.9K)
dogiant@bogon:/usr/local$brew
install ethereum
==>
Installing ethereum from ethereum/ethereum
==>
Installing dependencies for ethereum/ethereum/ethereum:
go
==>
Installing ethereum/ethereum/ethereum dependency:
go
==>
Downloading
https://homebrew.bintray.com/bottles/go-1.7.4_1.el_capitan.bottle.tar.gz
######################################################################## 100.0%
==>
Pouring go-1.7.4_1.el_capitan.bottle.tar.gz
==>
Caveats
As of go 1.2, a valid GOPATH is required to use the `go get` command:
https://golang.org/doc dc53
/code.html#GOPATH
You may wish to add the GOROOT-based install location to your PATH:
export PATH=$PATH:/usr/local/opt/go/libexec/bin
==>
Summary
� /usr/local/Cellar/go/1.7.4_1: 6,438 files, 250.7M
==>
Installing
ethereum/ethereum/ethereum
==>
Cloning
https://github.com/ethereum/go-ethereum.git
Cloning into '/Users/dogiant/Library/Caches/Homebrew/ethereum--git'...
remote: Counting objects: 2737, done.
remote: Compressing objects: 100% (2066/2066), done.
remote: Total 2737 (delta 963), reused 1654 (delta 553), pack-reused 0
Receiving objects: 100% (2737/2737), 14.91 MiB | 112.00 KiB/s, done.
Resolving deltas: 100% (963/963), done.
Checking connectivity... done.
Note: checking out 'ff07d54843ea7ed9997c420d216b4c007f9c80c3'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
Checking out files: 100% (2487/2487), done.
==>
Checking out tag v1.5.5
==>
go env
==>
make all
==>
Caveats
To have launchd start ethereum/ethereum/ethereum now and restart at login:
brew services start ethereum/ethereum/ethereum
==>
Summary
� /usr/local/Cellar/ethereum/1.5.5: 9 files, 47.7M, built in 5 minutes 30 seconds
安装完毕后
geth -h
列出当前的用户
geth account list
显示空
dogiant@bogon:~/ethereum/workspace$geth
--datadir "~/ethdev" --dev
I1228 15:16:46.907316 cmd/utils/flags.go:615] WARNING: No etherbase set and no accounts found as default
I1228 15:16:46.907493 ethdb/database.go:83] Allotted 128MB cache and 1024 file handles to /Users/dogiant/ethdev/geth/chaindata
I1228 15:16:46.911765 ethdb/database.go:176] closed db:/Users/dogiant/ethdev/geth/chaindata
I1228 15:16:46.912892 node/node.go:176] instance: Geth/v1.5.5-stable-ff07d548/darwin/go1.7.4
I1228 15:16:46.912925 ethdb/database.go:83] Allotted 128MB cache and 1024 file handles to /Users/dogiant/ethdev/geth/chaindata
I1228 15:16:46.935109 eth/backend.go:280] Successfully wrote custom genesis block: e5be92145a301820111f91866566e3e99ee344d155569e4556a39bc71238f3bc
I1228 15:16:46.935127 eth/backend.go:299] ethash used in test mode
I1228 15:16:46.935536 eth/db_upgrade.go:346] upgrading db log bloom bins
I1228 15:16:46.935580 eth/db_upgrade.go:354] upgrade completed in 48.143µs
I1228 15:16:46.935601 eth/backend.go:191] Protocol Versions: [63 62], Network Id: 1
I1228 15:16:46.935744 eth/backend.go:219] Chain config: {ChainID: 1 Homestead: 1150000 DAO: 1920000 DAOSupport: true EIP150: 2463000 EIP155: 2675000 EIP158: 2675000}
I1228 15:16:46.935983 core/blockchain.go:219] Last header: #0 [e5be9214…] TD=131072
I1228 15:16:46.935998 core/blockchain.go:220] Last block: #0 [e5be9214…] TD=131072
I1228 15:16:46.936007 core/blockchain.go:221] Fast block: #0 [e5be9214…] TD=131072
I1228 15:16:46.936626 p2p/server.go:342] Starting Server
I1228 15:16:49.127910 p2p/discover/udp.go:227] Listening, enode://05399f51a43805c17f82e5016d5969d14b3092018cae87eec77ed52291d66c50c7d7bf024d953b0afcccd44c717f17aaf251b897d770054205ea268b49a3050b@10.0.37.126:58049
I1228 15:16:49.128111 whisper/whisperv2/whisper.go:176] Whisper started
I1228 15:16:49.128115 p2p/server.go:610] Listening on [::]:55739
I1228 15:16:49.129641 node/node.go:341] IPC endpoint opened: /Users/dogiant/ethdev/geth.ipc
dogiant@dubiaoqideMBP:~$geth
--dev console 2>> file_to_log_output
Welcome to the Geth JavaScript console!
instance: Geth/v1.5.5-stable-ff07d548/darwin/go1.7.4
modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 shh:1.0 txpool:1.0 web3:1.0
> eth.accounts
[]
> personal.newAccount('123456')
"0x556d64ecb09b5df590a2ab842b53a8041e3961b4"
> eth.accounts
["0x556d64ecb09b5df590a2ab842b53a8041e3961b4"]
> eth.accounts
["0x556d64ecb09b5df590a2ab842b53a8041e3961b4"]
> personal.newAccount('123456')
"0xb0945a303834ff763695e21ed8acbe80aefee9bb"
> eth.accounts
["0x556d64ecb09b5df590a2ab842b53a8041e3961b4",
"0xb0945a303834ff763695e21ed8acbe80aefee9bb"]
>
dogiant@dubiaoqideMBP:~$geth
--dev account list
Account #0: {556d64ecb09b5df590a2ab842b53a8041e3961b4} /var/folders/jy/q2f6pdjn6p11ytfx0xk8yp7m0000gn/T/ethereum_dev_mode/keystore/UTC--2016-12-28T07-20-52.337017793Z--556d64ecb09b5df590a2ab842b53a8041e3961b4
Account #1: {b0945a303834ff763695e21ed8acbe80aefee9bb} /var/folders/jy/q2f6pdjn6p11ytfx0xk8yp7m0000gn/T/ethereum_dev_mode/keystore/UTC--2016-12-28T07-25-51.683157537Z—b0945a303834ff763695e21ed8acbe80aefee9bb
> user1 = eth.accounts[0]
"0x556d64ecb09b5df590a2ab842b53a8041e3961b4"
> user2 = eth.accounts[1]
"0xb0945a303834ff763695e21ed8acbe80aefee9bb"
> user1
"0x556d64ecb09b5df590a2ab842b53a8041e3961b4"
> user2
"0xb0945a303834ff763695e21ed8acbe80aefee9bb"
> eth.getBalance(user1)
0
> eth.getBalance(user2)
0
> eth.blockNumber
0
> miner.start()
true
> eth.getBalance(user1)
390000000000000000000
> eth.getBalance(user2)
0
> miner.stop()
true
> eth.blockNumber
99
> eth.getBalance(user1)
495000000000000000000
> eth.getBalance(user2)
0
> eth.sendTransaction({from:user1,to:user2,value:web3.toWei(3,"ether")})
Error: account is locked
at web3.js:3119:20
at web3.js:6023:15
at web3.js:4995:36
at <anonymous>:1:1
> personal.unlockAccount("0x556d64ecb09b5df590a2ab842b53a8041e3961b4","123456")
true
> eth.sendTransaction({from:user1,to:user2,value:web3.toWei(3,"ether")})
"0x39d604a1df899f6c80ce33279abe88aec28b6d97f83e2dda5f062dd3c099fcf3"
> eth.getBalance(user2)
0
> miner.start()
true
> miner.stop()
true
> eth.getBalance(user2)
3000000000000000000
>
问题1:一开始用get account list总是看不到新建的用户,后来考虑是开发控制台创建的用户要跟开发一致 加了 —dev后看到正常显示账号
看日志以太币转账,转账后需要挖矿确认
https://github.com/ethereum/go-ethereum
安装ethereum
https://github.com/ethereum/go-ethereum/wiki/Building-Ethereum
在MAC上安装
brew tap ethereum/ethereum
brew install ethereum
dogiant@bogon:/usr/local$brew
tap ethereum/ethereum
Updating Homebrew...
==>
Tapping ethereum/ethereum
Cloning into '/usr/local/Homebrew/Library/Taps/ethereum/homebrew-ethereum'...
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 6 (delta 1), reused 1 (delta 0), pack-reused 0
Unpacking objects: 100% (6/6), done.
Checking connectivity... done.
Tapped 3 formulae (31 files, 33.9K)
dogiant@bogon:/usr/local$brew
install ethereum
==>
Installing ethereum from ethereum/ethereum
==>
Installing dependencies for ethereum/ethereum/ethereum:
go
==>
Installing ethereum/ethereum/ethereum dependency:
go
==>
Downloading
https://homebrew.bintray.com/bottles/go-1.7.4_1.el_capitan.bottle.tar.gz
######################################################################## 100.0%
==>
Pouring go-1.7.4_1.el_capitan.bottle.tar.gz
==>
Caveats
As of go 1.2, a valid GOPATH is required to use the `go get` command:
https://golang.org/doc dc53
/code.html#GOPATH
You may wish to add the GOROOT-based install location to your PATH:
export PATH=$PATH:/usr/local/opt/go/libexec/bin
==>
Summary
� /usr/local/Cellar/go/1.7.4_1: 6,438 files, 250.7M
==>
Installing
ethereum/ethereum/ethereum
==>
Cloning
https://github.com/ethereum/go-ethereum.git
Cloning into '/Users/dogiant/Library/Caches/Homebrew/ethereum--git'...
remote: Counting objects: 2737, done.
remote: Compressing objects: 100% (2066/2066), done.
remote: Total 2737 (delta 963), reused 1654 (delta 553), pack-reused 0
Receiving objects: 100% (2737/2737), 14.91 MiB | 112.00 KiB/s, done.
Resolving deltas: 100% (963/963), done.
Checking connectivity... done.
Note: checking out 'ff07d54843ea7ed9997c420d216b4c007f9c80c3'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
Checking out files: 100% (2487/2487), done.
==>
Checking out tag v1.5.5
==>
go env
==>
make all
==>
Caveats
To have launchd start ethereum/ethereum/ethereum now and restart at login:
brew services start ethereum/ethereum/ethereum
==>
Summary
� /usr/local/Cellar/ethereum/1.5.5: 9 files, 47.7M, built in 5 minutes 30 seconds
安装完毕后
geth -h
列出当前的用户
geth account list
显示空
dogiant@bogon:~/ethereum/workspace$geth
--datadir "~/ethdev" --dev
I1228 15:16:46.907316 cmd/utils/flags.go:615] WARNING: No etherbase set and no accounts found as default
I1228 15:16:46.907493 ethdb/database.go:83] Allotted 128MB cache and 1024 file handles to /Users/dogiant/ethdev/geth/chaindata
I1228 15:16:46.911765 ethdb/database.go:176] closed db:/Users/dogiant/ethdev/geth/chaindata
I1228 15:16:46.912892 node/node.go:176] instance: Geth/v1.5.5-stable-ff07d548/darwin/go1.7.4
I1228 15:16:46.912925 ethdb/database.go:83] Allotted 128MB cache and 1024 file handles to /Users/dogiant/ethdev/geth/chaindata
I1228 15:16:46.935109 eth/backend.go:280] Successfully wrote custom genesis block: e5be92145a301820111f91866566e3e99ee344d155569e4556a39bc71238f3bc
I1228 15:16:46.935127 eth/backend.go:299] ethash used in test mode
I1228 15:16:46.935536 eth/db_upgrade.go:346] upgrading db log bloom bins
I1228 15:16:46.935580 eth/db_upgrade.go:354] upgrade completed in 48.143µs
I1228 15:16:46.935601 eth/backend.go:191] Protocol Versions: [63 62], Network Id: 1
I1228 15:16:46.935744 eth/backend.go:219] Chain config: {ChainID: 1 Homestead: 1150000 DAO: 1920000 DAOSupport: true EIP150: 2463000 EIP155: 2675000 EIP158: 2675000}
I1228 15:16:46.935983 core/blockchain.go:219] Last header: #0 [e5be9214…] TD=131072
I1228 15:16:46.935998 core/blockchain.go:220] Last block: #0 [e5be9214…] TD=131072
I1228 15:16:46.936007 core/blockchain.go:221] Fast block: #0 [e5be9214…] TD=131072
I1228 15:16:46.936626 p2p/server.go:342] Starting Server
I1228 15:16:49.127910 p2p/discover/udp.go:227] Listening, enode://05399f51a43805c17f82e5016d5969d14b3092018cae87eec77ed52291d66c50c7d7bf024d953b0afcccd44c717f17aaf251b897d770054205ea268b49a3050b@10.0.37.126:58049
I1228 15:16:49.128111 whisper/whisperv2/whisper.go:176] Whisper started
I1228 15:16:49.128115 p2p/server.go:610] Listening on [::]:55739
I1228 15:16:49.129641 node/node.go:341] IPC endpoint opened: /Users/dogiant/ethdev/geth.ipc
dogiant@dubiaoqideMBP:~$geth
--dev console 2>> file_to_log_output
Welcome to the Geth JavaScript console!
instance: Geth/v1.5.5-stable-ff07d548/darwin/go1.7.4
modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 shh:1.0 txpool:1.0 web3:1.0
> eth.accounts
[]
> personal.newAccount('123456')
"0x556d64ecb09b5df590a2ab842b53a8041e3961b4"
> eth.accounts
["0x556d64ecb09b5df590a2ab842b53a8041e3961b4"]
> eth.accounts
["0x556d64ecb09b5df590a2ab842b53a8041e3961b4"]
> personal.newAccount('123456')
"0xb0945a303834ff763695e21ed8acbe80aefee9bb"
> eth.accounts
["0x556d64ecb09b5df590a2ab842b53a8041e3961b4",
"0xb0945a303834ff763695e21ed8acbe80aefee9bb"]
>
dogiant@dubiaoqideMBP:~$geth
--dev account list
Account #0: {556d64ecb09b5df590a2ab842b53a8041e3961b4} /var/folders/jy/q2f6pdjn6p11ytfx0xk8yp7m0000gn/T/ethereum_dev_mode/keystore/UTC--2016-12-28T07-20-52.337017793Z--556d64ecb09b5df590a2ab842b53a8041e3961b4
Account #1: {b0945a303834ff763695e21ed8acbe80aefee9bb} /var/folders/jy/q2f6pdjn6p11ytfx0xk8yp7m0000gn/T/ethereum_dev_mode/keystore/UTC--2016-12-28T07-25-51.683157537Z—b0945a303834ff763695e21ed8acbe80aefee9bb
> user1 = eth.accounts[0]
"0x556d64ecb09b5df590a2ab842b53a8041e3961b4"
> user2 = eth.accounts[1]
"0xb0945a303834ff763695e21ed8acbe80aefee9bb"
> user1
"0x556d64ecb09b5df590a2ab842b53a8041e3961b4"
> user2
"0xb0945a303834ff763695e21ed8acbe80aefee9bb"
> eth.getBalance(user1)
0
> eth.getBalance(user2)
0
> eth.blockNumber
0
> miner.start()
true
> eth.getBalance(user1)
390000000000000000000
> eth.getBalance(user2)
0
> miner.stop()
true
> eth.blockNumber
99
> eth.getBalance(user1)
495000000000000000000
> eth.getBalance(user2)
0
> eth.sendTransaction({from:user1,to:user2,value:web3.toWei(3,"ether")})
Error: account is locked
at web3.js:3119:20
at web3.js:6023:15
at web3.js:4995:36
at <anonymous>:1:1
> personal.unlockAccount("0x556d64ecb09b5df590a2ab842b53a8041e3961b4","123456")
true
> eth.sendTransaction({from:user1,to:user2,value:web3.toWei(3,"ether")})
"0x39d604a1df899f6c80ce33279abe88aec28b6d97f83e2dda5f062dd3c099fcf3"
> eth.getBalance(user2)
0
> miner.start()
true
> miner.stop()
true
> eth.getBalance(user2)
3000000000000000000
>
问题1:一开始用get account list总是看不到新建的用户,后来考虑是开发控制台创建的用户要跟开发一致 加了 —dev后看到正常显示账号
看日志以太币转账,转账后需要挖矿确认
相关文章推荐
- 在MAC环境下之以太坊(ethereum)开发环境安装
- 以太坊go-ethereum客户端docker安装(二)开发(dev)环境搭建
- 以太坊(Ethereum)开发框架 Truffle 入门(一):安装
- 以太坊go-ethereum客户端docker安装(二)开发(dev)环境搭建
- 以太坊go-ethereum客户端docker安装(二)开发(dev)环境搭建
- 树莓派raspberry pi安装archlinux,并且在上面搭建以太坊(ethereum)环境
- 第一次安装JAVA开发环境,写出了HELLO JDK,HELLO INTELLJ IDEA。
- 新手入门:J2ME开发环境的安装和使用
- Dev-Cpp/Mingw32 开发环境介绍(2)安装开发包
- 在Redhat9 Linux下安装java开发环境,并编写“Hello world”程序
- J2ME技术入门之二——J2ME开发环境的安装和使用
- 构建跨平台的自由桌面开发环境(C/C++)(二)软件安装和配置
- Solaris上的开发环境安装及设置
- Linux下C开发环境的构成和安装
- Linux下C开发环境的构成和安装
- 快速安装 WebSphere Portal V5 和 Portlet 开发环境
- Linux下C开发环境的构成和安装
- 移动应用开发环境安装
- Flash教程:安装和配置JDK开发环境