Migrate to Version 0.9

Changed key derivation method

In Version 0.9 the crypto framework has been changed from libsodium to ring. As a consequence, the key derivation method which converts the string given as --secret to a key also changed. This means that Version 0.9 will create a different key than previous versions for the same string.

When upgrading nodes of a network to version 0.9 you have to make sure that either all nodes are upgraded to 0.9 (then the secret can be unchanged) or you have to modify the secret for the new nodes in order to allow them to communicate with older nodes.

The following form can convert old secrets to new secrets. (The whole calculation is done within the browser and the secret never leaves it. If you want to be sure, unplug the computer from the network while using this form.)

Conversion form

The old secret key:

The calculated new hash is:

Fixed bug in magic hashing

Version 0.9 also fixes a bug in the way network magics are hashed (when called with --magic hash:mystring). Before 0.9 the first character of the given string was ignored due to a bug. This has been fixed in 0.9 but therefore the same string results in different hashes compared to previous versions as the first character is now regarded.

When upgrading nodes of a network to version 0.9 you have to make sure that either all nodes are upgraded to 0.9 (then the magic string can be unchanged) or you have to modify the magic string for the nodes in order to allow them to communicate with each others:

  • Either you add a dummy character to all old nodes to be ignored, e.g. --magic hash:Xmystring
  • Or you remove the first character from all 0.9 nodes, e.g. --magic hash:ystring