# \[v0.9.0\] New node ID format

**URL:** https://forum.syncthing.net/t/v0-9-0-new-node-id-format/478
**Category:** Announce
**Created:** [June 30, 2014, 12:05am UTC](https://forum.syncthing.net/t/v0-9-0-new-node-id-format/478 "2014-06-30T00:05:13Z")
**Posts on this page:** 1
**Showing post:** 5

<div class="post-metadata">

### Author: ![dapperstout](https://forum.syncthing.net/user_avatar/forum.syncthing.net/dapperstout/32/558_2.png) [@dapperstout](https://forum.syncthing.net/u/dapperstout)
#### Post date: [November 25, 2014, 8:43pm UTC](https://forum.syncthing.net/t/v0-9-0-new-node-id-format/478/5 "2014-11-25T20:43:09Z")

</div>

Hi Jakob, I was implementing the Luhn mod N algorithm in Swift, and found a discrepancy between the Swift port and the Go original. When I calculate the first check digit for P56IOI7MZJNU2, I get an “S” instead of a “Y”.

I went through the Go code, and if I read it correctly you iterate through the string left-to-right, alternating between a factor of 1 and 2. However, in the wikipedia article about the Luhn Mode N algorithm it is specified that you should iterate right-to-left, alternating between a factor of 2 and 1.

Can you verify whether my conclusion is correct? And if it is indeed an error in the Go code, will you change it, or shall I adopt the ‘wrong’ implementation in Swift?

---

_[View the full topic](https://forum.syncthing.net/t/v0-9-0-new-node-id-format/478)._
