1 | macos |
data/keystore
下1 | geth --datadir ./data account list# 列出当前所有的account |
Generating DAG in progress
的操作,很慢,并且很耗CPU,这之后就好了difficulty
,是一个动态变化的值,即使初始块为0,这之后也会越来越大的1 | miner.setEtherbase(base) |
1 | personal.unlockAccount('0x111111')# 转账前需要先解锁账号 |
新建目录
1 | mkdir ~/config# 配置目录 |
创建第一个账户方便测试,记录下public address和secret key file地址,可以给它初始化balance。后面也可以用这条命令创建更多的测试账户
1 | geth account new --datadir data |
首先配置一个初始块(initial block)/创世块(Genesis Block)
1 | // vim ~/config/genesis.json |
初始化创世块,如果后续有啥不顺的,可以直接将data下的geth目录和history移除,重新初始化并创建创世块
1 | geth init --datadir ~/data ~/config/genesis.json |
启动以太坊私有测试链
http://ip:8545/graphql/ui
,但是实际看感觉graphql的api不全呀,就只能查一些区块的东西,contract的基本不支持,这应该是目前的支持列表EIP-17671 | geth --identity "FirstNode" --nodiscover --datadir data --allow-insecure-unlock --http --http.addr "0.0.0.0" --http.corsdomain '*' --http.api "eth,net,web3,personal" --graphql --graphql.corsdomain '*' --nat extip:172.168.254.4 --networkid 202203101600 console# 这里的console能够直接进入控制台 |
创建另外的节点(member节点)
admin.nodeInfo
获取到1 | geth --datadir data2 init ~/config/genesis.json# 同样需要先初始化 |
客户端报错the method xxx does not exist/is not available: 需要将要使用的api添加到--http.api
参数中,例如--http.api "eth,web3,personal,miner"
Error: invalid opcode: SHR: 需要在创世块配置里面加上
1 | "byzantiumBlock": 0, |
移除所有pending的transaction: 删除data/geth/transactions.rlp
,然后重启geth服务端,注意queued的transaction不会清除,nonce从0开始,导致queud队列中的一直执行不了,此时只需要把中间空白的nonce值补齐就行(创建transaction)
invalid host specified: 可能是在运行network的时候没有指定hosts,参考上面的配置