Running the cardano-node on windows, howto?

Hi all,
i have been struggling to get the cardano-node to run on windows.
I downloaded the executables like mentioned here,GitHub - input-output-hk/cardano-node: The core component that is used to participate in a Cardano decentralised blockchain.
i played with the command line given to point at the correct files but the furthest i got is an error saying.
cardano-node.exe: Aeson exception:
Error in $: Missing required field, either ByronGenesisFile or GenesisFile

I can find quite a few extensive linux guides but none related to the windows executable.
To run the node with cardano-node run you need to reference a few files and directories as arguments. These can be copied from the cardano-node repo into the executables directory.
This text is a bit vaguely and isnt really self-explanatory :frowning:

what i would like it to get a relay node running on windows (windows is what i got, dont have linux and dockers is giving a hard time as well)
hope some one can point me in the right direction.
thanks

I understand your pain. Windows/Docker can work but it is highly dependent upon Hyper-V. I was running Oracle VirtualBox long before Hyper-V was a viable virtualization choice. VirtualBox and Hyper-V don’t play together well if at all on Windows. So anything using Hyper-V on Windows, I do not attempt to use because it breaks VirtualBox.

What I’ve done on my Windows 10 system is created Ubuntu virtual machine using VirtualBox. I’ve run the relay node on the Ubuntu. On Ubuntu, I’m taking a different tack and using PowerShell core on Ubuntu to automate the execution of cardano-cli commands. So far PowerShell has been doing the job and I can mix execution of native linux commands along with core PowerShell cdmlets.

The same Windows 10 system is hosting a second linux system using PureOS and it will be setup to function as the producer node. I’m just using PureOS because it was already installed and I was too lazy to build another linux VM.

One just needs enough memory on the Windows host to pull this off. The Windows host I’m running has 32GB of memory. With all 4 servers running on the same hardware, I’m consuming about 21GB of memory.

If this sounds like an option you want to use, I have a bunch of Cardano PowerShell scripts that I’m willing to share. Eventually, the collection of scripts will be roled into a PowerShell module. But I’m not there yet.

Cheers! just the path i was taking as well, installed a fresh ubuntu on VirtualBox and have the relay node running.
Didnt think about using the powershell actually for running the scripts, good idea…intended to do everything from within the ubuntu vm.
My server also runs with 32gb so that is good to know. I dont think i will be running a full node, just a relay node and work through the cli. but i am certainly interested to see what you can do with the powershellscripts.

Hi!

This is the official guide how to setup a cardano-node:
https://docs.cardano.org/projects/cardano-node/en/latest/stake-pool-operations/getConfigFiles_AND_Connect.html

So basically, I’m following the official guide on how to setup a cardano-node that @laplasz has referenced. All of the commands presented in the guide have a PowerShell command equivalent. This includes building and updating the cardano-node software.

Just to be clear PowerShell (core) is installed on the Ubuntu vm. For securing the keys on the vm, a VeraCrypt container has been created. Any command requiring any of the key files requires mounting the veracrypt container which in turn requires authentication.

All of the PowerShell stuff is very rough at this point and I use it on testnet only. I’ve been programming since 1983 and using powershell since 2006.

Create-RawTranaction.ps1 is likely the most useful because it will determine the correct number of UTXOs (ins and outs) required for the transaction and calculates any of the needed fees or deposits.

Create-RawTransaction.ps1 [[-FromAddrFile] <string>] [[-ToAddrFile] <string>] [[-ada] <decimal>] [-stake] [-pool] [-prompt]

Here are a list of powershell functions that I’ve created so far.
Build-CardanoNode.ps1 Create-PaymentKeys.ps1 Create-StakeKeys.ps1 Get-Protocol.ps1 Install-CardanoNode.ps1 Update-CardanoNode.ps1
Create-ColdKeys.ps1 Create-PoolRegCertificate.ps1 Create-VRFKeys.ps1 Get-PublicIP.ps1
Create-DelegationCertificate.ps1 Create-RawTransaction.ps1 Get-AdaFee.ps1 Get-StakePoolID.ps1 Start-CardanoNode.ps1
Create-KESKeys.ps1 Create-RegistrationCert.ps1 Get-AdaTip.ps1 Get-Test.ps1
Create-OpCertificate.ps1 Create-SignedTransaction.ps1 Get-KesPeriod.ps1 Get-UTXO.ps1 Start-ProtonVPN.ps1
Create-PaymentAddress.ps1 Create-StakeAddress.ps1 Get-PaymentAddress.ps1 Submit-Transaction.ps1

Hi!

There are many useful scripts already available implemented by community members…
for example:

IMO running a pool on windows is a bad idea. There are several reasons for that:

  1. You need to reboot it on a regular basis to install security updates (block producing nodes will not produce blocks during reboots).
  2. Still your computer is vulnerable to cyber attacks (you don’t want to risk your pledge to criminals).
  3. You’re on your own when it comes to monitoring and firewall configuration (MS firewall won’t do it, i.e. you’ll have to buy an extra firewall system).
  4. Accessory software won’t be available for Windows (like leaderlog computation).

Sure I fully agree, it was more the idea of a relay node for development purposes through the cli.
And they took the effort to make a windows version, right?

Thanks for the reference.

In combination with understanding Cardano, I’m on a quest to validate that PowerShell core is a viable tool to use in the Linux world.