最近手头上有一个项目需要用PHP对接以太坊的区块进行类似支付的一个功能。然后就研究了一下以太坊。
1.首先下载geth进行安装,下载地址为[geth客户端](https://geth.ethereum.org/downloads/),下载的时候会出现
然后我们打开浏览器的开发者模式,找到windows下载的地方点击就可以进行下载了
安装完成后再开始菜单点击geth,这个时候就开始同步ETH的区块,区块非常大,网络不好需要很长时间。区块同步的地址在C:\Users\用户名\AppData\Roaming\Ethereum下,这个时候我们最好用一个软链接把区块地址链接的别的盘符,否则一旦同步下来C盘可能会被暂满首先我们将C:\Users\用户名\AppData\Roaming\Ethereum**剪切**到其他任意盘,如D盘,然后打开CMD窗口输入mklink /J C:\Users\用户名\AppData\Roaming\Ethereum D:\blockchain\Ethereum。这样就可以开始同步区块了。
2.搭建私链,首先在geth的安装文件里面新建一个genesis.json,加入
{
"config": {
"chainId": 10,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x99999",
"extraData" : "",
"gasLimit" : "0x2fefd8",
"nonce" : "0x0000000000000042",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00",
"alloc" : {}
}
这是搭建私链的基本参数。然后打开在该文件夹里按住shift键点击鼠标右键,在此处打开命令窗口。
3.然后来初始化这个私链。
geth --datadir ./data init genesis.json
这个命令是在该文件夹下新建一个data文件夹,存储私链相关的区块的公钥信息
geth --identity "rpc etherum" --datadir "data" --nodiscover --rpc --rpcapi "web3,eth,personal,miner" --rpccorsdomain "*" --rpcaddr 0.0.0.0 --rpcport 8545 --networkid 666 console
该命令是打开私链的rpc和控制台输入等,可以输入相关命令进行操作。
查看账户:eth.accounts
新建账户:personal.newAccount("账户密码")
开始挖矿:miner.start()
停止挖矿:miner.stop()
查询账户余额:eth.getBalance(eth.accounts[0])
解锁账户:personal.unlockAccount(eth.accounts[0]) 假如0账户向1账户转账,需要先把0账户锁定,然后才能进行交易
实际操作过程中经常会报(anonymous): Line 1:13 Unexpected token ILLEGAL (and 10 more errors),然后每次我都输入查询命令在输入其他就没有错误不知道什么原因。
4.用php调用这些命令进行具体操作
如果需要使用可以下载[web3.php](https://download.csdn.net/download/qq_34618795/10900412)