如果想要试试在以太坊上的操作,可以直接在官网下载个客户端,然后选择网络为私有网络即可。
此时,你就可以通过客户端创建账户、挖矿、转账、部署智能合约、调用智能合约等等。
如果希望命令行部署,可以接着往下看。notice:下面内容讲的是geth钱包部署。
系统环境
Mac10.10.5(ubuntu系统下类似)
安装方式:
一、通过Homebrew安装
brew tap ethereum/ethereum brew install ethereum
可以通过brew install ethereum --devel命令安装开发分支。
二、通过源码安装
首先,下载项目:git clone https://github.com/ethereum/go-ethereum
安装所需依赖:brew install gmp go
最后构建geth:
cd go-ethereum make geth
geth --help 查看是否成功安装
三、通过geth运行以太坊
1. 创建一个私有网络的目录,并进入该目录
mkdir test-geth
cd test-geth
2. 在私有网络目录下新建一个文件genesis.json,此为创世快配置文件,内容如下:
{ "config": { "chainId": 15, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "coinbase" : "0x0000000000000000000000000000000000000000", "difficulty" : "0x40000", "extraData" : "", "gasLimit" : "0xffffffff", "nonce" : "0x0000000000000042", "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000", "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000", "timestamp" : "0x00", "alloc": { } }
将此内容拷如genesis.json中。
里面的数据还没有全部搞清楚,可以试着修改一下。
3. 执行初始化命令,生成初始化数据。
geth --datadir data0 init genesis.json,数据在data0目录中,
4. 启动私有网络,geth --datadir ./data0 --networkid 11 --rpc --rpcaddr 99.1.187.159 --rpcport 8545 console,这里的参数可以自己根据需要指定。我在后续用sdk的过程中发现不指定地址连接不到,还不知道为什么,就先指定了。
好了,现在私有网络就启动了 :( go的版本好低。。。
四、使用geth尝试以太坊
1. 查看已有账户
eth.accounts,当然,现在还没有账户
2. 新建账户
personal.newAccount(),连续输入两次相同密码就成功创建了一个账户,展示的就是对外地址
那么私钥在哪?在data0/keystore目录下,格式为
3. 查询账户余额
eth.getBalance(eth.accounts[0]),刚创建的账户,余额为0
4. 挖矿,给账户挣钱
miner.start(2); admin.sleepBlocks(1); miner.stop();
这里需要说明一下,miner.start(2)是两个cpu挖矿的意思,admin.sleepBlocks(1)是指挖了一个矿就停下,图里面有一个锤子🔨,miner.stop()是指停止挖矿。如果是第一次执行,那么需要等待DAG创建的过程,比较漫长,等待100percents就可以了,中间不要随便退出。在此查询余额就发现你的账户里已经有钱了。
5. 转账
新建一个账户,并给他转钱。
eth.sendTransaction({from:eth.accounts[0], to:eth.accounts[1], value:100})
是的,如图所示,出错了,显示账户锁定了,这是因为他有密码,不能随便转,那我们先打开它。
personal.unlockAccount(eth.accounts[0])
再转一次就成功了
你在查询余额的时候可能发现还是没变化,那是因为还没有挖矿打包区块,所以再挖一次矿就可以了。
然后你可以多试试geth的命令,熟悉一下了。