Prepare for the January 28, 2018 IOTA Snapshot

All credits to: Ralf Rottmann –  Original post: https://goo.gl/EQuamg

 

The IOTA Foundation has publicly announced the next snapshot of the Tangle for January 28th, 2018.

Basically, without going into too much detail, a snapshot reduces the size it takes for nodes to save the entire Tangle (to disk). In the foreseeable future, this process will be automated. At the time of this writing, it is a coordinated roll-out usually in tandem with an update of the node software (“IRI”).

The snapshot compacts the Tangle by removing parts of its history, except addresses with value.

The good: Your IOTA tokens are 100% safe, even if you do not do anything, are on vacation during the snapshot period or on a trip to the moon!

The bad: If you log into the wallet with your seed sometime after the snapshot, your wallet might report a zero balance and might not be able to see the transaction history you’ve become so used to. Don’t worry!

Why is this so?

At the current stage of the project, the official IOTA wallet is completely stateless. It does not store anything locally on your machine. Once you log out, it forgets everything. Instead, the wallet relies on the data available on the Tangle, which it requests immediately after you log in. (That’s also the reason, why sometimes it takes a while to start up.)

The following section does not want to be technically precise. It is an attempt to provide a high level illustration in clear words, which hopefully helps you to understand the bigger picture.

So you log in. The wallet derives the first address from your seed and asks the node to look it up on the Tangle. The wallet repeats this process, until the node reports that an address could not be found. The wallet then stops and starts calculating the sum of all balances it has received from the node.

Now, with much of the transaction history on the Tangle gone due to snapshotting, your wallet might not be able to reconstruct this “address history” on its own. In fact, even the first request from the wallet to the node might fail, as the node might no longer know this address. The wallet will stop the process and assume a balance of zero.

This is, why you have to help with some manual support.


Here is what you want to do:

Before the snapshot

Log into the official IOTA wallet with your seed. Go to HISTORY. Copy

a) the address of the first transaction ever made,
b) the address of the most recent address ever made and
c) the total number of addresses and

paste these three bits of information somewhere for later. In my case, these would be:

  • ZOWKEWUCNRDICY9DWEPWGYCUZBZIFHR9MFK9ECSEDDTWNHVQYYHH9YMTVFODAWEEMNLURHCTXDXPGIVADBCXR9OOCZ (a)
  • FXVNDYUBIQEZJCQDWCNXBAWM9DAKVEVUJRQAMYFJEEMEBXLH9OXDXLWCKS9KPIBLWVETGPSLXPV9QPGCXLGVIQUNWZ (b)
  • 8 (c)

You don’t have to apply extra security. If somebody copies the address information, nothing harmful can be done, except from looking up how much IOTA you own.

After the snapshot

Log into your wallet with your seed.

Go to the RECEIVE section and hit GENERATE NEW ADDRESS. Compare the generated address with the first address you saved earlier (a). They should be exactly the same. If they are, it validates that you’re using the correct seed.

ATTACH this address TO TANGLE.

Keep on generating receive addresses until the one generated matches the one you saved as the most recent address earlier (b).

You’ve effectively reconstructed the address history on the Tangle and your wallet should now show the correct balance.


While this might sound a bit intimidating, it is a pretty straight forward process. Depending largely on the performance of the node you’re connected to and the total number of addresses, it only takes a few minutes.

Final thoughts:

  • Future wallets currently under development will likely make this obsolete. They will either be stateful or handle this under the hood. Or both.
  • Transactions in pending state prior to the snapshot will get removed during snapshotting.
  • Your IOTA tokens will always remain safe on the Tangle. This entire process is about reconstructing the history for the wallet. Even if you do none of the above for a long time, your addresses with value will remain safely associated with your private key (and hence your seed) forever.

As always, if you’re interested into IOTA related news or want to get in touch, I’m @ralf on Twitter.

While I hope this helps, I obviously do not guarantee anything and will in no way be held liable for anything that might go wrong.

 




3 Replies to “Prepare for the January 28, 2018 IOTA Snapshot”

  1. I’m in a group of IOTA hodlers who have had transactions be confirmed from either Binance Bitfinex but never reach the intended target wallet. The balance does not show the transaction amount and the address history does not show the “send to” address, even though the Tangle shows the transactions confirmed. None of us are technical enough to do anything about it. We have several posts to Reddit and other IOTA blogs describing the problem but no one is able to lend constructive help. The hope is that the snapshot will untangle this costly problem of ours. I’m skeptical that the post snapshot wallet will generate the problem address when it does not show up in the history in the first place. Am I wrong to hold this concern? After the snapshot and we all re-generate the addresses and attach them and the missing transaction does not show up are we SOL. Will the snapshot wipeout our confirmed but missing transactions? Reddit IOTA issue #843

  2. Hi there,
    I managed to get all addresses to show up under “History->Addresses” tab, but under “History->Transfers” tab, only 0 IOTA transactions show up.
    All of them belong to the newly generated ones (I know, that this is how it should be). Addresses, that are supposed to show a value don’t even show up there.

    Transfers 7 / Addresses 10
    The 3 missing transfers are the addresses actually used to receive IOTA before.
    Overall balance shows 0.

    Can anyone help me out?

Leave a Reply

Your email address will not be published. Required fields are marked *