Yesterday I made a post about a HIVE username Regex & an open-source tester against the 2,409,078 existing usernames of the HIVE Blockchain I made.
On the 2,409,078 usernames it failed 11 due to "--"
I was sure the rules of a correct username on the HIVE Blockchain were:
.
is the segment separator
Each segment must be at least 3 characters long
Each segment must begin with a letter (a-z) and end with a letter or a number (0-9)
All letters contained in a segment must be lowercase
Hyphens (-) must be accompanied side by side by letters or numbers
But it looks like I was wrong! The last rule doesn't exist in the core of HIVE as you can see below (Thanks to @mahdiyari for providing it)
https://gitlab.syncad.com/hive/hive/-/blob/master/libraries/protocol/authority.cpp#L46
Even Steemit, who created the code base, doesn't respect it on their frontend and shows you this error "Account name should contain only one dash in a row"
So this morning I reviewed my Regex and regretfully removed the last rule that gave it its beauty as a beautiful mathematical equation. You can see the new Regex below
^(?=.{3,16}$)[a-z][0-9a-z\-]{1,}[0-9a-z]([\.][a-z][0-9a-z\-]{1,}[0-9a-z]){0,}$
It passed the test with success the 2,409,204 existing usernames of the HIVE Blockchain (Yep, today there are more Hivians than yesterday!)
I also made some tests of the auto-generated file
I invite @peakd @ecency @hiveonboard @inji and all those who have a signup process (frontend or library) with this rule to review their code ;)
Vote for my HIVE block producer account (witness): click here (via HiveSigner)