Getting Started on Windows
Native development of substrate is not very well supported! It is highly recommended to use Windows Subsystem Linux (WSL) and follow the instructions for Ubuntu/Debian. Substrate development is easiest on Unix-based operating systems like macOS or Linux. The examples in the Substrate Tutorials and How-to Guides use Unix-style terminals to demonstrate how to interact with Substrate from the command line.
If you do decide to try and use a Windows computer to natively build Substrate, do the following:
Download and install "Build Tools for Visual Studio:"
- You can get it at this link: https://aka.ms/buildtools.
- Run the installation file:
vs_buildtools.exe
. - Ensure the "Windows 10 SDK" component is included when installing the Visual C++ Build Tools.
- Restart your computer.
Install Rust:
Detailed instructions are provided by the Rust Book and a quick reference is available at https://rustup.rs/ .
- Download from: https://www.rust-lang.org/tools/install.
- Run the installation file:
rustup-init.exe
for 32 or 64 bis as appropriate.- It shouldn't prompt you to install
vs_buildtools
since you did it in step 1.
- It shouldn't prompt you to install
- Choose "Default Installation."
- To get started, you need Cargo's bin directory (
%USERPROFILE%\.cargo\bin
) in your PATH environment variable. Future applications will automatically have the correct environment, but you may need to restart your current shell.
Run these commands in Command Prompt (
CMD
) to set up your Wasm Build Environment:rustup update nightly rustup update stable rustup target add wasm32-unknown-unknown --toolchain nightly
Install LLVM: https://releases.llvm.org/download.html
Install OpenSSL with
vcpkg
using PowerShell:mkdir C:\Tools cd C:\Tools git clone https://github.com/Microsoft/vcpkg.git --depth=1 cd vcpkg .\bootstrap-vcpkg.bat .\vcpkg.exe install openssl:x64-windows-static
Add OpenSSL to your System Variables using PowerShell:
$env:OPENSSL_DIR = 'C:\Tools\vcpkg\installed\x64-windows-static' $env:OPENSSL_STATIC = 'Yes' [System.Environment]::SetEnvironmentVariable('OPENSSL_DIR', $env:OPENSSL_DIR, [System.EnvironmentVariableTarget]::User) [System.Environment]::SetEnvironmentVariable('OPENSSL_STATIC', $env:OPENSSL_STATIC, [System.EnvironmentVariableTarget]::User)
Install
cmake
: https://cmake.org/download/Install
make
- This can be done using Chocolatey. First you need to install the Chocolatey package manager: https://chocolatey.org/install
- Once Chocolatey installed you can install make:
choco install make