-
Notifications
You must be signed in to change notification settings - Fork 990
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
Grin on native Windows #2062
Comments
I'm able to build grin on Windows successfully.
If anybody wants to investigate on it: https://github.com/drizzt/grin/tree/windows |
What build environment did you use? This is also important to add into the build documentation. I can update the wiki. |
I cross compiled from Fedora 29 using |
the -windows-gnu target probably means the binary uses the cygwin runtime library, which cares about permissions that a normal windows software might not be stopped by. On startup, grin goes into ~/.grin to do stuff. Maybe try fixing up ownership and permissions on the .grin folder? |
Since building for Windows can be a problem I created a Dockerfile to simplify the process: |
You can play with the LMDB store size and see if that helps. Ultimately we should auto-detect the running environment to set it appropriately. But I expect you'll run in a few other issues after that... |
@ignopeverell I already did that in drizzt@604e421, but now it's failing during Lines 240 to 251 in 8d8f533
when it's managing pmmr files (so it's not a problem of LMDB) |
I think it's an issue with how Windows handles memory mapping. Everything MMR related uses mmap. @yorickdowne previously filed this bug against WSL: I understand you're not running against WSL but perhaps similar system calls are used under the hood. |
This should be another problem since no zero-length mmap is done in store/src/types.rs |
@drizzt I didn't dig into what your issue is here, "and" and "but", take a look at microsoft/WSL#3451 (comment) . That rabbit hole goes deeper than 0-length mmap, it has to do with how the Windows kernel interacts with file handles. My understanding is you can't make changes (delete, rename, change size, etc) when a handle is open. That's not how *ix behaves, and that throws quite a few packages for a loop. |
Given RoaringBitmap/croaring-rs#42, is getting Grin working on Windows really that far off? Surely it would seem all that has to happen now is an alternate PMMR backend that doesn't use memmap? |
Also confused because memmap crate claims to work and be tested on native windows, both msvc and gnu toolchains. This could just be a matter of tracing down an issue in https://docs.rs/crate/memmap/0.7.0 |
Hello, for my understandings, the problem is that mw/grin are an peer2peer application and under windows only a complete compiled wallet can deliver mw/grin functions. Webwallets, Paperwallets, nodejs/javascript and other known applications are not possible? |
We are releasing Windows binaries now so I suspect this issue is fixed? |
Indeed @Kargakis, closing. |
Hello, |
Opening this issue to keep track of getting Grin to run on Windows natively. A simple
cargo build
fails when trying to build croaring. There might be additional crates giving issues but I didn't get past the first one.It might be worth it to try and get just the wallet working on Windows, since that doesn't actually use croaring. It is however needed by other parts of Grin so it is listed as a dependency for
grin_chain
,grin_core
andgrin_store
, so it will take some effort to try and untangle these.At the moment this issue is not a priority for the devs, but if anyone else is willing to pick this up they are very much welcome.
The text was updated successfully, but these errors were encountered: