https://geth.ethereum.org/downloads/
注意:geth是一个命令行工具,需要在命令行中运行geth,windows用户不要直接双击geth.exe。
在geth安装目录里打开Dos窗口输入命令:
geth -rpc --rpcaddr "0.0.0.0" --rpcapi "personal,db,eth,net,web3" --syncmode "light" console
或者
geth -rpc --rpcaddr "0.0.0.0" --rpcapi "personal,miner,db,eth,net,web3" --syncmode "light" --cache=1024 --maxpeers 9999
--rpc: 启用HTTP-RPC服务器启动rpc通信,可以进行智能合约的部署和调试。它在 geth中通常被默认激活
--rpcaddr value: HTTP-RPC服务器接口地址(默认值:“localhost”)
--rpcport value: HTTP-RPC服务器监听端口(默认值:8545)
--rpcapi value: 基于HTTP-RPC接口提供的API,设置允许连接的rpc的客户端, 一般为db,eth,net,web3,personal
--port:网络监听端口,默认是8080
--datadir :设置当前区块链网络数据存放的位置
--rpccorsdomain value: 这个可以指示什么URL能连接到你的节点来执行RPC定制 端任务。务必谨慎,输入一个特定的URL而不是wildcard ( * ),后者会使所有的URL都能连接到你的RPC实例。
--identity: 区块链的标示,随便填写,用于标示目前网络的名字
--networkid: 设置当前区块链的网络ID,用于区分不同的网络,是一个数字
console:启动命令行模式,可以在Geth中执行命令(console启动后在另一个命令行里启动attach[连接到节点] geth attach http://localhost:8545)
--datadir :设置当前区块链网络数据存放的位置,生成一个类socket文件geth.ipc
Full模式:
获取区块的header
获取区块的body
从创始块开始校验每一个元素
下载所有区块数据信息
Fast模式:
获取区块的header
获取区块的body
在同步到当前块之前不处理任何事务,然后获得一个快照,像full节 点一样进行后面的同步操作。沿着区块下载最近数据库中的交易,有可能丢失历史数据。比如,你的账户地址A上面有10个ETH,但转入的的交易存在于较老的历史交易中,此同步模式无法获取到交易的详细情况。
。
Light模式:
仅获取当前状态。验证元素需要向full节点发起相应的请求。
1.查询账户:
eth.accounts
2.创建账户,密码为“123456”:
personal.newAccount('123456')
每创建一个账户geth自动会生成一个json的文件放在 区块目录下的keystore(C:\Users\Administrator\AppData\Roaming\Ethereum
建议备份一定要记住加密 Keystore 的密码,一旦忘记密码,那么你就 失去了 Keystore 的使用权,并且 imToken 无法帮你找回密码,所以 一定要妥善保管好 Keystore 以及密码。)
Keystore 文件是以太坊钱包存储私钥的一种文件格式 (JSON)。它使用用户自定义密码加密,以起到一定程度上的保护作用,而保护的程度取决于用户加密该钱包的密码强度。
3.账户赋值给变量:
user1 =eth.accounts[0]
4.查询账户余额:
eth.getBalance(user1)
web3.fromWei(eth.getBalance('0xdc296fe73525ff0698bc1e6dfe8a0e217f49745c'));
eth.getBalance("0xb794F5eA0ba39494cE83 9613fffBA74279579268") //可以查询任何一个账户的余额
https://etherscan.io
https://etherchain.org //这两个网站也可以查询任何一个账户的余额
//显示的余额是个长整数,实际金额的小数点后面的18位都计入该整数内
5.显示最新区块号:
eth.blockNumber
6.转账:u0转给u1
需要先解锁 u0:personal.unlockAccount(u0,'123456'),第二个参数是密码
eth.sendTransaction({from:u0, to:u1, value:web3.to Wei(3, 'ether')}),u0转给u1三个eth
账户里有余额,想要给其他账户转账,先要进行账户解锁
personal.unlockAccount("0x5713b1495ad3449fc.............", "密码", 60))
最后一位的60是解锁时间,单位是秒,不填的话默认300,可以根据实际需 要填写时间值
开始执行转账操作,转账1个eth
eth.sendTransaction({from:"0xf414a8364186c0d9f70e71c3c........ ",to:"0x5713b1495ad3449fcc73f90f4........" ,value:web3.toWei( 1 ,'ether')})
会消耗一定量的旷工费,旷工费是随机的,如果执行成功的话,会返回一串 hash值,交易id,根据此id可以去区块浏览器中查询https://etherscan.io/
在Ethereum-Wallet安装目录里打开Dos窗口输入命令:
"D:\ETH\Ethereum-Wallet\Ethereum Wallet.exe" --rpc http://localhost:8545