75

I'll take my shot. Experts, please correct me. "Full" Sync: Gets the block headers, the block bodies, and validates every element from genesis block. Fast Sync: Gets the block headers, the block bodies, it processes no transactions until current block - 64(*). Then it gets a snapshot state and goes like a full synchronization. Light Sync: Gets only the ...


69

There's a lot of detail on this PR on github. Here's a quote: 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.


58

Don't forget to use an SSD If you're able to, using an NVMe SSD is even better. If you have limited space on SSD see Can chaindata be split across two (or more) locations? That said, the Ethereum state is large and getting larger. Be patient and it will be worth it. Prior answer Don't forget --cache Everyone mentions --fast but you probably also need --...


53

Continuing to research, need to enter the geth node console to enter special commands. The following works: geth attach Sends user to the geth node console. eth.syncing Produces a result like current block: 82,100; highest block 2,910,032. exit To go back to Pi prompt.


51

I am using Windows 10, Mist Wallet 0.7.2 which includes geth v1.3.6, a non-SSD hard drive and ethernet connection to 16Mbs modem. I had incredibly slow syncing of the blockchain, even with 25 peers and was actually having to to quit and restart Mist just to download another few blocks. I had installed the Mist Wallet for Win64 from here, which also includes ...


43

For Geth, in another terminal, attach to the Geth console, such as geth attach. This will allow you to keep your syncing node running, without restarting, and you will not see the noisy logs as you would if you simply ran "geth console" without other parameters. In the console, run eth.syncing > eth.syncing { currentBlock: 745600, ...


42

After running your normal geth --fast command you can open a new window and run the "geth attach" command as this will attach you to the javascript interface $ geth attach Then you can use this script to have a nice output of what is happening. It is very rudimentary but works really well to give you an idea of how long you will still need to wait. First ...


41

Use --fast and don't forget --cache with Geth Everyone mentions --fast but you probably also need --cache=1024 (and --jitvm may also help). Without it, you are running with the default which is --cache=16. --fast is important to help sync past computationally intensive blocks. If you are starting from the beginning, use: geth --fast --cache=1024 If you ...


40

Do following steps to check the sync state: 1.) open a new geth instance and type in geth attach 2.) now type in eth.syncing This shows you the "currentBlock" and the "highestBlock".


35

Update Mar 5 2017 The state cleaning was announced by Vitalik Buterin in the tweet State clearing 100% complete dated 23:07 Nov 29 2016. This time corresponds to block 2,718,436. The Clearing Contract can be found at 0xe9c9068240d8450da314f60804debfc194b72309. There was over 10,000 transactions involved in clearing the state. The first transaction to ...


34

Don't forget to use an SSD If you're able to, using an NVMe SSD is even better. If you have limited space on SSD see Can chaindata be split across two (or more) locations? That said, the Ethereum state is large and getting larger. Be patient and it will be worth it. How can I get a geth node to download the blockchain quickly? wiki has been updated. This ...


33

Why Does Fast Sync Restart 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 ...


28

Lets take it one step at a time. Blockchains generally work by having an origin (genesis) state with a few accounts having funds, and then every block that you place on top of the chain moves those origin funds around, also granting a bit of extra for the miner. So whenever you import a new block into your existing chain to take a look at what your view (...


24

The --datadir flag specifies the location data directory. geth --datadir <path to data directory> This directory should contain the following subdirectories: chaindata keystore nodes On start up GETH will try to open IPC (inter-process communication) unix socket within your data directory geth.ipc. However FAT32 file systems do not support the ...


24

The way I check is: Find out what the last block is. https://etherchain.org Start geth with console (https://github.com/ethereum/go-ethereum/wiki/Command-Line-Options) When geth is running enter the command eth.syncing eth.syncing will show you your block sync info. You are looking for currentBlock. Example: ./geth console > eth.syncing Output: { ...


22

geth and parity have differents methods to save the ethereum blockchain in their internal format. I made many benchs because i find it so long just to use a Wallet. The pruning mode is how the block data are saved. With the archive mode, all states are saved. So, you know the state at each moment without to reload all the blockchain. With fast and light, we ...


21

Your geth client is already running in the background. You can attach to it by typing: $ geth attach in your command line. This will allow you to run commands on the geth client console.


19

It's difficult to give an answer without just re-hashing the explanation on the Parity wiki... The pertinent part is as follows: These snapshots can be used to quickly get a full copy of the state at a given block. Every 30,000 blocks, nodes will take a consensus-critical snapshot of that block's state. Any node can fetch these snapshots over the ...


18

If you are using Geth: geth attach http://host then enter: web3.eth.blockNumber It will give you the block number as integer, here's the function documentation. If you are looking for the block hash instead you can use: web3.eth.getBlock(BLOCK_NUMBER).hash so for the current block (atm) it will be: web3.eth.getBlock(887893).hash and for the latest ...


18

geth 1.5 is way faster but there are problems to keep connections with peers. When there is a high latency, it removes agressively the peer connection. I use the patch 2630 from Péter Szilágyi in the 1.5 version. geth 1.4.4 benchmarks done on OS X with 37320qm 16Go ram 1To SSD with geth 1.4.4 (stable): ...


17

The --fast command line option will sync more quickly. You have to use it from scratch though, you can't use it if the blockchain has been downloaded already. If you have a node which is already synced then you can use the Javascript interface and the exportChain and importChain commands to sync your node.


17

Two reasons: Fast sync indeed has one additional weakness compared to full sync. As long as an attacker can keep you isolated from the main chain (e.g. infect your router), it may construct an arbitrary state that your node will believe (details in https://github.com/ethereum/go-ethereum/pull/1889, Weakness section). This is the reason why fast sync is only ...


17

Answer If you want to download the blockchain data from an external source that is up to you, but that does come with risks of the data being corrupted or sabotaged in a way to compromise your machine or Ethereum wallets. So the "security issue" is that you are trusting an un-trusted, non-Ethereum network source when you download the file. As long ...


16

To remove your blockchain with geth, run: geth removedb Then: Use --fast but you probably also need --cache=1024 (and --jitvm may also help). Without it, you are running with the default which is --cache=16. A 50% speed increase is possible just by increasing the cache. If you are starting from the beginning, use: geth --fast --cache=1024 --jitvm ...


15

There is state trie pruning in the works, which would be able to constantly delete old data that is not needed any more. Hand in hand with pruning is the fast sync, which sync to the network in such a way that it doesn't generate all the intermediate junk, but rather downloads the latest state from the get go. Pruning is aimed to be included in Geth 1.5. ...


14

geth --maxpeers 0 will not sync. geth --maxpeers 0 console may be more helpful and will bring you the console: you don't even need the RPC, and can paste in and execute Javascript.


13

By default, geth uses port 30303 for connection to other nodes. You may need to modify your firewall to allow traffic over this port. You can check your peer count as well as getting a list of peers when attached to the javascript console (geth attach). instance: Geth/v1.3.2/darwin/go1.5.1 datadir: /Users/home/Library/Ethereum coinbase: ...


13

With each block state (contracts storage and balances) is changing. By default (archive) we keep in database full state of every block. With different pruning algorithms we are ditching state data for old blocks maintaing only the parts that are needed. basic/fast/light are just various approaches to that problem with different trade-offs. geth --fast is ...


11

From my experience #2 is the best way to check the status of a node. eth.syncing returns false even when the blocks are not synced. When geth is starting it's false, and often while not all blocks have synced it still returns false. > web3.eth.syncing false > I0607 08:09:04.878618 eth/downloader/downloader.go:320] Block synchronisation started > ...


11

during fast sync, web3.eth.syncing downloads the state trie. knownStates is the number of trie nodes that the sync algo knows about pulledStates is the number it already downloaded there's no way to know in advance how much state entries there are and I haven't figured out a meaningful statistical way to estimate it, current mainnet is around 2.8M.


Only top voted, non community-wiki answers of a minimum length are eligible