Node

Node refers to daemon or wallet. By default node assigns free port automatically and tries to open incoming port using UPNP.

Endpoint configuration

Node uses standard .NET endpoint configuration parameters defined in appsettings.json. Multiple endpoints can be used each with different ip address binding.

Fixed port

To set fixed port, open appsettings.json and locate default endpoint configuration such as

"Http4": {
  "Url": "http://0.0.0.0:0"
}

and change it to

"Http4": {
  "Url": "http://0.0.0.0:5000"
}

Restart the node, and the new port will be used and announced to the network.

Localhost only access

To make your node to listen localhost only, open appsettings.json and change the endpoint URL to 127.0.0.1:

"Http4": {
  "Url": "http://127.0.0.1:0"
}

You might also want to disable UPNP.

Public URL

If you have a public DNS A record for your node, use this property to broadcast it to other nodes. This is required while using SSL.

"PublicUrl": "https://testnet-1.kryolite.io"
SSL Configuration

For SSL Configuration, you need to set the Public URL to match the Subject Name in the certificate. Certificate needs to be configured in appsettings.json

Let's Encrypt

Node also has built-in support for Let's Encrypt certificates with LettuceEncrypt library. To enable Let's Encrypt, add the following configuration to appsettings.json

"LettuceEncrypt": {
  // Set this to automatically accept the terms of service of your certificate authority.
  // If you don't set this in config, you will need to press "y" whenever the application starts
  "AcceptTermsOfService": true,

  // You must specify at least one domain name
  "DomainNames": [ "example.com" ],

  // You must specify an email address to register with the certificate authority
  "EmailAddress": "[email protected]"
}

DomainNames parameter must match PublicUrl.

UPNP

UPNP is enabled by default. If you see UPNP-related errors during node startup, it might mean your router does not support UPNP or UPNP is disabled. You may disable UPNP in appsettings.json

"EnableUPNP": false

Miner

By default, the miner uses mDNS autodiscovery to find a node to mine against.

Settings

--address Wallet address (required)
--url Node url to mine against
--threads Thread count [default: 1]
--throttle Milliseconds to sleep between hashes
--help Show help and usage information

WARNING This is an experimental project. There will be issues and testnet will be rolled back as needed. API should be considered unstable and subject to change.