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

Native Windows Support #1237

Closed
2 of 4 tasks
michaelsproul opened this issue Jun 1, 2020 · 7 comments
Closed
2 of 4 tasks

Native Windows Support #1237

michaelsproul opened this issue Jun 1, 2020 · 7 comments
Assignees
Labels
A0 enhancement New feature or request infra-ci major-task A significant amount of work or conceptual task.

Comments

@michaelsproul
Copy link
Member

michaelsproul commented Jun 1, 2020

Description

Support compiling Lighthouse with MSVC and executing as a native binary on Windows, without requiring the Windows Subsystem for Linux. Windows support under WSL is covered by #1238

Known Issues

More points to be added as they're discovered

@michaelsproul michaelsproul added enhancement New feature or request major-task A significant amount of work or conceptual task. labels Jun 1, 2020
@ghost ghost added A1 infra-ci labels Sep 9, 2020
@michaelsproul
Copy link
Member Author

As a temporary workaround for the LevelDB issue, we could use the MemoryStore on Windows, and conditionally compile out all references to LevelDB using a feature flag (https://doc.rust-lang.org/cargo/reference/features.html).

@paulhauner paulhauner added A0 and removed A1 labels Nov 8, 2020
@paulhauner
Copy link
Member

I believe @AgeManning is having a look at this, when he has spare time.

@AgeManning
Copy link
Member

Yep, conditional on the spare time part. Things keep arising at the moment.

If someone is interested in this, feel free to get a start on this.

@pawanjay176
Copy link
Member

Managed to make everything compile (without restricting file permissions) and run a node and validator.

Working on fixing the file permissions atm.

@pawanjay176
Copy link
Member

Found a nice library for manipulating windows file access control lists https://github.com/trailofbits/windows-acl

@remyroy
Copy link
Contributor

remyroy commented Apr 10, 2021

My naive attempt at compiling Lighthouse 1.2.2 gave me this output on Windows 10.

error[E0308]: mismatched types
   --> validator_client\slashing_protection\src\slashing_database.rs:137:48
    |
137 |     fn set_db_file_permissions(file: &File) -> Result<(), NotSafe> {}
    |        -----------------------                 ^^^^^^^^^^^^^^^^^^^ expected enum `std::result::Result`, found `()`
    |        |
    |        implicitly returns `()` as its body has no tail or `return` expression
    |
    = note:   expected enum `std::result::Result<(), NotSafe>`
            found unit type `()`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0308`.
error: could not compile `slashing_protection`

WSL is very far from ideal to run Lighthouse on Windows. Full support and official binary for Windows would be appreciated.

@michaelsproul
Copy link
Member Author

Closed by #2333, thank you @ethDreamer! 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A0 enhancement New feature or request infra-ci major-task A significant amount of work or conceptual task.
Projects
None yet
Development

No branches or pull requests

5 participants