15

EDIT : I hadn't see the other question but this one ain't a duplicate because I'm asking here, precisely, if the state differs and if it does, what are the implications. The answer to that question isn't present in the other question and isn't present in the comment of that other question: all that is written, in a comment, is that the state ends up being different. I'd like to know what are the implication of the state being different.

When I start a geth Ethereum node from scratch, I can use "geth --fast", which is faster than just using geth to synch the blockchain.

My question is: do I end up with a node in the same state as if I hadn't used the --fast option and, if not, what are the implications of the two states being different.

Here are, for example, many related subquestions one could have...

Questions

  1. If the two are identical, why isn't geth --fast always used when starting geth with an empty chain?

  2. If the two are not identical, are there any security concerns when using the --fast option? Is it able to then verify every new block correctly? (if so I take it the end state is totally exactly identical?)

  3. Does a node started with "geth --fast", once synched, then act as a "normal node"?

  4. If a new "geth --fast" node was connected to one and only one node and that node was a "geth --fast" started one, would the new "geth --fast" node be able to download the blockchain from scratch?

  5. If a new "geth" node was connected to one and only one node and that node was a "geth --fast" started one, would the new "geth" node be able to download the blockchain from scratch?

  6. What if in the entire world there were only "geth --fast" nodes operational, would that prevent the Ethereum network from operating normally? What would be lost?

5
  • 1
    Basically I think that this needs more explanation than a comment saying: "The state is different" Commented Mar 11, 2016 at 3:03
  • 1
    Q5 might be interesting to ask separately.
    – eth
    Commented Apr 19, 2016 at 9:06
  • 1
    1. intermediate state transitions aren't preserved with fast, it will be the default after switching to archive/non-archive node models; 2. github.com/ethereum/go-ethereum/pull/1889 > Weakness section; 3. yes; 4. yes; 5. yes; 6. it would remain operational, the "lost" data is the ability to say what the balance/state of some account/contract was a long time ago, but all the data is there to regenerate it if you really want to. Commented Apr 19, 2016 at 10:37
  • @PéterSzilágyi With Q5 the new node will have "lost" data like Q6: the new node can't query balance of an account a long time ago. Is that correct?
    – eth
    Commented Apr 21, 2016 at 10:26
  • No. The blocks themselves are enough to reconstruct everything else. Fast sync simply does not reconstruct everything. But you only need the blocks which fast sync also retains. Commented Apr 26, 2016 at 9:00

0

Browse other questions tagged or ask your own question.