2

Is it possible for the network clients to just keep the latest network state (without keeping track of the past transactions) while not harming the network security? That is, is it really needed to keep the whole transaction history? I am aware that then it would not be possible to reconstruct the blockchain from the genesis block but is it really a big issue?

Thank you

Masoud jt
  • 751
  • 2
  • 7
  • 20
Jan Beneš
  • 569
  • 1
  • 7
  • 14

1 Answers1

1

Most Ethereum nodes already operate by having only the current state. This is also known as a full node. Full nodes may or may not include "logs" or Solidity event history, needed e.g. to show your past transactions in a wallet. By default, this history is disabled by GoEthereum node software and not available from many free RPC providers.

What you are describing is called an Archive node. A node launched normally keeps only the current state. For example, you cannot query past balances of Ethereum addresses. Archive node allows you to query the full transaction history.

Mikko Ohtamaa
  • 22,269
  • 6
  • 62
  • 127
  • Ok, thanks for answering. However what I meant to ask is whether it would be an issue if the transaction history was forgotten. That is, there would be no more archive nodes in existence. Thanks – Jan Beneš Jun 14 '20 at 08:19
  • Full nodes and archive nodes download the same dataset. However, full nodes discard all data on disk and memory that is irrelevant for the current state so it does not take 3 GB. Archive nodes build various indices to query this data. So full nodes have themselves the backlog of transactions, but they do not have the backlog of historical states per block. – Mikko Ohtamaa Jun 14 '20 at 08:49