Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

i8n for mnemonics + checksum #162

Merged
merged 27 commits into from
Oct 5, 2014
Merged

Conversation

oranjuice
Copy link
Contributor

The question of whether to support variable seed lengths or not still remains. As of now, it isn't left flexible.
It is hard-coded atm, although word list file size isn't.

I've not done the "50% match check". Instead I do a full check because the words are in files and haven't been populated into a map data structure yet when the wallet restoration is asked for. It really doesn't make a difference as I understood, because we need the entire file parsed any way even for a 50% match check.

Also I've not implemented the "4 letter check if checksum test passes" because it didn't really seem to achieve any substantial improvement in efficiency unless the words are really huge.

Let me know what you think.

@fluffypony
Copy link
Contributor

Ok so after a bit of fiddling, I can't see any way to realistically reduce the number of words from 25 down to something more manageable. The minute you get down to 15, which is more manageable, you end up requiring a wordlist of nearly 200k words (264-bits of entropy including checksum == pow(2, 264/15) == 198 669)

Given that it's not practical to do that, even for English, and given that the difference between 25 words and 20 words is negligible, I think we stick to 25 (including checksum) based on a wordlist of 1626 words. This PR is, therefore, pretty much done and ready for broad testing:)

@oranjuice
Copy link
Contributor Author

@fluffypony What type of testing do you suggest?

@oranjuice
Copy link
Contributor Author

@fluffypony Please start looking at this. I don't think I'll have any substantial changes coming in.

@fluffypony
Copy link
Contributor

@oranjuice oh! sorry, I didn't realise that additional commits had been added, will add it to the testing list:)

@oranjuice
Copy link
Contributor Author

@fluffypony Just realized it was showing old English as an option. I removed that and changed indentation of some files from tabs to spaces.

@fluffypony
Copy link
Contributor

@oranjuice tks, I'll re-pull in a moment

@fluffypony
Copy link
Contributor

@oranjuice one last tweak (not in this PR, do it separately) - in a discussion with ThomasV from Electrum he mentioned that we should also check their is_CJK() method, as they use that to detect Japanese and remove spaces between the words. Here - https://github.com/spesmilo/electrum/blob/master/lib/mnemonic.py#L36 - you can see how they strip whitespace for CJK (Japanese) seeds. I have no clue how they then split it by word when the person enters a Japanese seed, haven't had time to look through, but the idea is there.

@fluffypony fluffypony merged commit 41948fa into monero-project:master Oct 5, 2014
stoffu pushed a commit to stoffu/monero that referenced this pull request Nov 27, 2019
Fix monero-project#6147 DB corruption from child process overwrite /monero#6148
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants