I have synced using the --fast
command. Now how should I proceed?
I tried stopping it, and then running geth --rpc
but it says:
Last Header #1311471
Last Block #0
Fast Block #1310224
What should I do to stay synced?
Ethereum Stack Exchange is a question and answer site for users of Ethereum, the decentralized application platform and smart contract enabled blockchain. It only takes a minute to sign up.
Sign up to join this communityI have synced using the --fast
command. Now how should I proceed?
I tried stopping it, and then running geth --rpc
but it says:
Last Header #1311471
Last Block #0
Fast Block #1310224
What should I do to stay synced?
As stated in Péter Szilágyi
's comment above, you will have to wait for --fast
syncing to complete, otherwise you will have to restart the process again. The message you should see on your console when --fast
syncing has completed is "fast sync complete, auto disabling" as shown below:
I0416 17:16:12.631667 30629 blockchain.go:1251] imported 195 block(s)
(0 queued 0 ignored) including 0 txs in 1.235990428s. #384 [d707e667 / d3d5d5c1]
I0416 17:16:12.631825 30629 sync.go:180] fast sync complete, auto disabling
I0416 17:16:48.831757 30629 blockchain.go:1251] imported 4 block(s) (0
queued 0 ignored) including 0 txs in 12.933585ms. #388 [bbb506ab / 0ace7268]
And to restart, you will have to clear your chaindata folder - see "How do I reset my blockchain and run geth --fast" below.
Sync the blockchain, and when you have the latest blocks being sycned, you can type the following command in your console:
miner.start(n)
where n is the number of threads you want your CPU to mine with.
I'm assuming here that you want to mine the blockchain with a regular CPU, and not a graphics processing unit (GPU). You may want to refer to Is CPU mining even worth the Ether? .
If you do have a GPU on your computer, you may first want to search this site for "mining" Q&As, or ask a separate question if you cannot find an answer. Here is one Q&A - How to mine Ether on GNU + Linux? .
Note that you will have to firstly create an account into which your mining rewards get paid into. See "But I do have a GPU and want to mine with it" below.
See details below.
You should only need to run geth --fast console
for the first time. The --fast
option will not sync the blocks any faster after the first time. You can omit the --fast
parameters in subsequent runs of geth
.
When you run geth
for the first time without the --fast
parameter, geth
may take a few days to download the blockchain from other computers over the Internet - this time depends on the speed of your network connection and your computer CPU.
If you do use geth --fast
for the first time in your fresh installation, geth --fast
will take several hours to download the blockchain - again this would depend on your network connection and your CPU.
After your initial download of the blockchain using geth --fast
, you only run geth
without the --fast
parameter. The synching now will be fast as only the new blocks need to be download from other Ethereum nodes over the Internet and they are being produced at an average rate of about one block every 14 to 15 seconds.
If you want to reset your blockchain and re-download the blockchain using --fast
, see the section below "How do I reset my blockchain and run geth --fast
".
geth --fast
is not for mining?geth --fast
is used to INITIALLY download a copy the current blockchain from other Ethereum nodes over the Internet. As answered in What is Geth's "fast" sync, and why is it faster? :
Instead of processing the entire block-chain one link at a time, and replay all transactions that ever happened in history, fast syncing downloads the transaction receipts along the blocks, and pulls an entire recent state database.
geth --fast
is NOT for mining. It is just the first step of downloading a copy of the blockchain. You will subsequently need a continuously syncing copy of the blockchain if you want to mine.
Not that I can tell. It is unusual that your chain will start syncing from the beginning, unless it did not complete correctly or there are some configuration problems. Try clearing your chaindata
directory and re-sync your blockchain. You should not need to re-sync from scratch after this.
I'm assuming that you want to run the syncing command in one window (#1) and attach another geth
console in another window (#2). And when you want to exit from your console, use the Control-D (^D) keystroke. If you you Control-C multiple times, or kill the process in other ways (kill
in Linux or Mac, or Task Manager in Windows), your blockchain data can get corrupted (only very rarely - happened to me once).
In window #1, run the command:
geth --fast console
In window #2, run the following command to attach to the geth --fast console
instance above:
geth attach
You don't need the --rpc
flags for this as communication between these two geth
instances will be done over the IPC protocol. The IPC protocol only runs within the local computer through a file descriptor. The RPC protocol can be used for communication across different computers.
In window #1, run the command:
geth console
In window #2, run the following command to attach to the geth console
instance above:
geth attach
--fast
and normal syncingThe following messages are displayed on the geth --fast console
screen - note the header(s) and receipt(s):
I0416 13:35:53.497422 30629 blockchain.go:889] imported 192 header(s)
(0 ignored) in 71.941018ms. #6336 [2edbbc3f… / b80c9ac3…]
I0416 13:35:54.263134 30629 blockchain.go:1044] imported 192 receipt(s)
(0 ignored) in 55.447062ms. #6336 [2edbbc3f… / b80c9ac3…]
I0416 13:35:54.683682 30629 blockchain.go:889] imported 192 header(s)
(0 ignored) in 73.050377ms. #6528 [8ab9a7af… / f2ffecac…]
And the following messages are displayed on the geth console
screen - note the block(s):
I0416 13:32:23.331906 30581 blockchain.go:1251] imported 256 block(s) (0
queued 0 ignored) including 0 txs in 979.938402ms. #6366 [66dcf4c1 / c5d009a1]
I0416 13:32:24.169955 30581 blockchain.go:1251] imported 256 block(s) (0
queued 0 ignored) including 0 txs in 836.388044ms. #6622 [e11a3fa9 / d211c2e1]
I0416 13:32:24.974790 30581 blockchain.go:1251] imported 256 block(s) (0
queued 0 ignored) including 0 txs in 803.457715ms. #6878 [c9f9ae12 / 238493b8]
Here is the transition when the --fast
syncing has completed and normal syncing starts:
I0416 17:16:12.631667 30629 blockchain.go:1251] imported 195 block(s)
(0 queued 0 ignored) including 0 txs in 1.235990428s. #384 [d707e667 / d3d5d5c1]
I0416 17:16:12.631825 30629 sync.go:180] fast sync complete, auto disabling
I0416 17:16:48.831757 30629 blockchain.go:1251] imported 4 block(s) (0
queued 0 ignored) including 0 txs in 12.933585ms. #388 [bbb506ab / 0ace7268]
geth --fast
The blockchain data, by default, is stored in the following locations (reference Backup & Restore):
Delete the contents of the directory above, or move it to another location and when you have successfully synced you data then delete the old copy.
Once the data in the chaindata
directory is removed, you should be able to --fast
sync again.
In this case you will need another application like ethminer
that will perform the mining operations on the GPU. Communications between geth
and ethminer
does not work via IPC. You will need to enable the RPC communications using:
geth --rpc console
geth
uses the default --rpcaddr 127.0.0.1
and --rpcport 8545
. Start your ethminer
with the following command
ethminer -F http://127.0.0.1:8545 -G
The -G
parameter is the instruction for ethminer
to perform the mining computations using your GPU.
Before you can run the commands above to mine, you will have to create an account into which any mining rewards will be paid into. Run the following command
geth account new
You will be prompted for a password twice, then you are good to run the commands above.
The moderators may mark this question as a duplicate as there are several questions on this site that are possibly related:
But I hope that this is a more complete guide to get you past your sync problems.
geth
has been syncing for a week with --fast
option and still not finished. It did the full sync to the total num of blocks once then it restarts from the first block to process them. This second process is extremely slow. Is there a way to torrent the blockchain without having to spend weeks just syncing?
If you want to mine one cannot use --fast
Now i have to start allover again since I had stopped syncing last time with --fast