maxweisspoker / pybip38

My python implementation of the full BIP0038 spec
MIT License
1 stars 2 forks source link

Support for micropython #1

Open sigkill opened 2 years ago

sigkill commented 2 years ago

I know you're not actively working on this anymore, but I've played around with a few different solvers now, and this and the encrypt38 in rust appear to be the most compliant for encryption and decryption.

I was curious, because I had an idea to throw a script I wrote onto a Raspberry Pi 2040 microcontroller, and it almost works, but some of the stuff like scrypt is still broken.

If it sounds interesting, would you be up for testing something out?

maxweisspoker commented 2 years ago

Sorry, I just now saw this. I almost never log in, just use git on the terminal.

Let me know what I can do to help with whatever you're working on.

I want to also caution you on using this library. It's some of my earlier Python code and really shouldn't be relied on too heavily. I wrote it to help learn various Bitcoin things and to learn Python at the same time.

Anyway, shoot me an e-mail or somehing if I can help somehow. I definitely am familiar with the BIP38 spec.

sigkill commented 2 years ago

Seems to work really well - I haven't pushed code to github yet, as I am still working on my project, but I've tested pybip38 against both an unknown password with known wallet 6P bip38 vs a know password and bip38 range, and had pretty good results. (tested with a medium range of both the password pattern, and a small range of the BIP38 6P address.)

I was hoping to see if it would be possible to get a micropython version of this to work on a small device like the raspberry pi pico, as I've been working with Xeon Phi and a variety of arm devices, almost entirely cpu based. Alternatively, do you know if a standalone C / C++ binary might be faster?

The thought was one could build a pretty large cluster of cheap hardware to work on competitions like the ballet wallet challenge that is happening right know - all ballet wallets use bip38 with a known pattern for password, and a huge range (but not that huge).

Anyhow, pybip38 is pretty damn awesome. Really like that out of so many other things out there, it seems the most compliant to the bip38 specifications.

sigkill commented 2 years ago

Didn't mean to close, sorry about that!

maxweisspoker commented 2 years ago

What you want is mostly beyond my capabilities, and I also think it's probably unlikely to be viable, since the scrypt library is C underneath and not Python. I think the best bet for what you want to do is use my code and the BIP38 spec to write a C library that you can then use as the basis for a distributed workload.

Thanks for the kind words. I did indeed try to be as compliant with the spec as possible.

maxweisspoker commented 2 years ago

Haha, I also accidentally closed it