目的
记录一下本人在Ubuntu环境下配置以太坊开发环境的过程,希望对后来者有所帮助。
过程
首先安装npm和NodeJS
sudo apt-get install npm
sudo apt-get install curl
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
然后用npm安装solc和solc的命令行工具solc-cli
sudo npm install -g solc solc-cli --save-dev
运行命令solcjs测试是否安装成功,如果没有输出则尝试重新启动shell或者重新连SSH。
安装solc二进制包
sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc
安装testrpc和truffle,这两个用npm就可以安装
sudo npm install -g ethereumjs-testrpc
sudo npm install -g truffle
测试一下
root@server-01:~# testrpc
EthereumJS TestRPC v6.0.3 (ganache-core: 2.0.2)
Available Accounts
==================
(0) 0x3675e40d6bfe7566************************
(1) 0x08d58806fc0594b9************************
(2) 0xb03848d8e9359c13************************
(3) 0xc3161063b46b2ca7************************
(4) 0x026c1c6020e8bdb4************************
(5) 0xe16f58c2ce883c7b************************
(6) 0x77ef98fe516c2b27************************
(7) 0x9ea92133dfccc26b************************
(8) 0xc417d04c5c3a07fe************************
(9) 0x9a2057c26ca2f31b************************
Private Keys
==================
(0) 7257cca8f9dedc96e5763f65b************************
(1) e1e0966f65791b770f5f02889************************
(2) e06e8b51551acf86911218e2b************************
(3) c5c5541ff80373e67250da33f************************
(4) 84fcce7aa99ae2fb2daeb3d39************************
(5) b4a85007439171cb749c8a735************************
(6) d915802e5ed351f580e647dd4************************
(7) f968d8be8c8eca6921e096f0f************************
(8) 8ad639d0ab8cba1330d0166d0************************
(9) 3832604233464c554487c4638************************
HD Wallet
==================
Mnemonic: talent eyebrow split nasty belt crane minor tenant text exact arrow bronze
Base HD Path: m/44'/60'/0'/0/{account_index}
安装Geth客户端(go-ethereum)
sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum
测试一下效果
root@server-01:~# geth
WARN [02-07|22:25:13] No etherbase set and no accounts found as default
INFO [02-07|22:25:13] Starting peer-to-peer node instance=Geth/v1.7.3-stable-4bb3c89d/linux-amd64/go1.9
INFO [02-07|22:25:13] Allocated cache and file handles database=/root/.ethereum/geth/chaindata cache=128 handles=1024
INFO [02-07|22:25:13] Initialised chain configuration config="{ChainID: 1 Homestead: 1150000 DAO: 1920000 DAOSupport: true EIP150: 246
3000 EIP155: 2675000 EIP158: 2675000 Byzantium: 4370000 Engine: ethash}"
INFO [02-07|22:25:13] Disk storage enabled for ethash caches dir=/root/.ethereum/geth/ethash count=3
INFO [02-07|22:25:13] Disk storage enabled for ethash DAGs dir=/root/.ethash count=2
INFO [02-07|22:25:13] Initialising Ethereum protocol versions="[63 62]" network=1
INFO [02-07|22:25:13] Loaded most recent local header number=1689199 hash=33deb6…58ab28 td=26797004748806845550
INFO [02-07|22:25:13] Loaded most recent local full block number=0 hash=d4e567…cb8fa3 td=17179869184
INFO [02-07|22:25:13] Loaded most recent local fast block number=1682884 hash=3ae41f…d86991 td=26497997153318071852
INFO [02-07|22:25:13] Loaded local transaction journal transactions=0 dropped=0
INFO [02-07|22:25:13] Regenerated local transaction journal transactions=0 accounts=0
INFO [02-07|22:25:13] Upgrading chain index type=bloombits percentage=72
INFO [02-07|22:25:13] Starting P2P networking
INFO [02-07|22:25:16] UDP listener up self=enode://2351f92b96adcaaa0f648e4646677052ca20943756a7005f378907420aa85ac2671
721b0048496ec535611624b25442689d1f5f94764276598b8f31949e5a6de@[::]:30303
INFO [02-07|22:25:16] RLPx listener up self=enode://2351f92b96adcaaa0f648e4646677052ca20943756a7005f378907420aa85ac2671
721b0048496ec535611624b25442689d1f5f94764276598b8f31949e5a6de@[::]:30303
INFO [02-07|22:25:16] IPC endpoint opened: /root/.ethereum/geth.ipc
总结
这样以太坊的开发环境的配置就大功告成了。以太坊是一个分布式的账本数据库,在机器上运行geth后,该机器就成为以太坊的一个P2P节点,会不断更新本机的以太坊分布式账本数据库。