VeilNet

Installation

Install conflux, join a network, and manage the boot service, upgrades and removal.

Release
conflux 1.0.0-pre
Platforms
Linux and Windows on amd64 and arm64, macOS on Apple silicon, FreeBSD and OpenBSD on amd64

Installing Conflux

Conflux is the command-line tool that runs an anchor on your machine. Each build is a single binary of about 50 MB. It contains anchord and anchorctl, the anchor binaries for its platform.

The installation steps are the same on every platform.

0 of 4 done
  1. Download the build for your machine and the SHA256SUMS file from the pre-release page. Builds are available for linux/amd64, linux/arm64, darwin/arm64, windows/amd64, windows/arm64, freebsd/amd64 and openbsd/amd64.

You can keep the downloaded binary anywhere. The boot service runs as root, so conflux registers its own copy in a directory that only root can change. The up, proxy, install and start commands make this copy, and uninstall removes it.

Two Ways to Join

A credential admits a machine to its realm. How you get one depends on the network you join:

  • The instance VeilNet hosts is for trials and personal use. A machine enrols itself there.
  • A sovereign network belongs to an organisation, which runs it with its guardian. The guardian commissions the machine, and you install the file it hands over.

After that, every command is the same on both.

Fig. 01 — Two ways a credential arrives
THE INSTANCE VEILNET HOSTSA SOVEREIGN NETWORKsudo conflux upFIRST RUN, OR conflux proxyENROLS ITSELFONE HTTPS CALL TOapi.veilnet.com.aumanifest.b64WRITTEN BEFORE ANYTHING ELSENO ACCOUNT · NO RECORDRENEWAL NOT AUTHENTICATEDguardian consoleAN OPERATOR COMMISSIONS ITnode-14.b64ONE FILE, HANDED OVERconflux enrol --manifestCHECKED, THEN INSTALLEDmanifest.b64KEPT ON THE MACHINERECORDED BY THE GUARDIANRENEWAL WITH A PER-MACHINE SECRETconflux up · conflux proxyTHE SAME ON BOTH FROM HERE

On the instance VeilNet hosts, a machine enrols itself the first time it runs conflux, and no record is kept. On a sovereign network, no machine enrols itself. The guardian commissions the machine, and you install the file it hands over. Either way, the credential ends up in manifest.b64 on the machine, and every later command is the same.

The instance VeilNet hostsA sovereign network
Getting a credentialconflux up enrols the machineThe guardian commissions the machine, and conflux enrol installs the file
Who is recordedNobody. There is no account and no recordThe machine, by the operator who commissioned it
TaintsChosen with --taint, or minted on the first machineGranted in the credential at commissioning
IPv4Chosen by youChosen by you, unless the guardian allocated one
RenewalAutomatic, without authenticationAutomatic, with a secret minted for that one machine

Joining the Instance VeilNet Hosts

The first time you run conflux up, it enrols the machine with the instance VeilNet hosts at https://api.veilnet.com.au. The machine gets its own identity and credential, and every later run reuses them. conflux proxy enrols in the same way. To choose between the two, see Proxy and TUN Modes.

Machines exchange data only when their taints are compatible. The first machine mints a taint, and you pass it to every other machine.

0 of 2 done
  1. $ sudo conflux up

    Answer the IPv4 question, then copy the taint that conflux mints. Quick Start shows the full output.

To run up from a script, pass both flags. --taint chooses the compartment, and --ipv4 or --no-ipv4 answers the only question that up asks. Without a terminal and without either IPv4 flag, conflux exits with status 1:

conflux: this machine has not been given an IPv4 yet and there is no terminal to ask at: pass --ipv4 ADDRESS or --no-ipv4

Conflux asks the IPv4 question only once in a machine's life, and it keeps the answer, even a blank one. A later up without the flag leaves the address unchanged.

Choosing the IPv4 address

Conflux treats the address you give as follows:

  • Conflux advertises a private address, and peers reach the machine at it. Give a different address to each machine that peers must reach on its own.
  • Conflux sends traffic from a public address but never advertises it.
  • A prefix length, as in 10.128.0.7/24, routes the rest of that range to the peers whose addresses fall inside it.
  • A blank answer is valid and common. The machine still reaches IPv4 peers, and peers reach it at its IPv6 address.
  • Conflux refuses addresses in 198.18.0.0/15, because anchor uses that range for IPv4 peers. It also refuses IPv6, loopback, link-local, multicast and broadcast addresses, and a range that covers the whole internet, such as 0.0.0.0/0.
  • To send internet traffic over the overlay, use an exit node with --use-exit instead.

Joining a Sovereign Network

On a sovereign network, machines do not enrol themselves. An operator commissions each machine in the guardian console and chooses its realm, its taints and, optionally, its IPv4 address.

The operator then hands you one file, the machine's manifest. It holds the machine's identity, its credential and the bootstrap nodes it starts from. conflux enrol installs the manifest, and conflux up starts the machine.

0 of 3 done
  1. Ask the guardian's operator to commission the machine, as Commissioning Machines describes. The file holds the machine's identity, so handle it like a private key.

These flags change how enrol installs a manifest:

FlagWhat it does
--manifest -Reads the manifest from standard input, so it is never stored on disk as a separate file.
--ipv4 ADDRESSUses this address instead of the one the guardian allocated.
--api URLSets the API base address, which conflux otherwise takes from the renewal address. If the two disagree, enrol refuses, so the credential is never sent anywhere else.

enrol checks everything before it writes anything, and it never replaces an installed credential. To replace one, run sudo conflux uninstall first.

If the manifest commissions the machine as an exit node, enrol shows an exit row, and the hint becomes Next: sudo conflux up --serve-exit. Conflux serves an exit only when you pass that flag.

enrol copies the allocated IPv4 address and any telemetry export settings into the configuration once. After that, you can change them like any other setting. To learn how the machine renews through the guardian, see Credentials and Renewal.

Boot Service

When a machine joins, conflux registers a boot service. The machine then comes back after a reboot without any command from you.

At every start, the service renews the credential if more than two thirds of its life has passed, and then starts the anchor. If the anchor stops, the service starts it again.

The service retries a failed start, waiting up to 30 seconds between attempts. It gives up after three attempts, with exit status 70, when retrying cannot help:

  • Conflux refuses the configuration.
  • The configuration asks for taints that the credential does not grant.
  • The credential has expired and cannot be renewed.

If there is nothing to start at all, the service exits with status 78.

PlatformRegistered asLogsAfter exit 70 or 78
Linuxsystemd unit conflux.servicejournalctl -u conflux -n 50Stays down, and the unit shows as failed
macOSlaunchd job org.veilnet.conflux in /Library/LaunchDaemons/var/log/conflux.logStarts again after launchd's throttle interval
Windowsservice conflux, shown as VeilNet Conflux, automatic at boot%ProgramData%\conflux\logs\conflux.logStays down, and shows as stopped rather than failed
FreeBSDrc script /usr/local/etc/rc.d/conflux/var/log/conflux.logStays down
OpenBSDrc script /etc/rc.d/conflux/var/log/daemonStays down

To check the service, look at the service row of sudo conflux status. On Linux, a healthy machine shows active (systemd: conflux.service, enabled at boot). For the other states, see Service and Logs.

Stopping and removing

down and start stop and start the anchor now. install and uninstall register and remove the boot service, and uninstall also deletes the identity.

What each command keeps
downstartinstalluninstall
Running anchorstopped(re)startedstarted, if configuredstopped
Boot servicekeptkeptregisteredremoved
conflux.jsonkeptkeptkeptdeleted
Identity (manifest.b64)keptkeptkeptdeleted, for good

To stop the anchor and keep everything else, run down:

$ sudo conflux down
Stopped. The boot service is still registered and the configuration is intact,
so the next reboot brings this machine back exactly as it was.

  conflux start      start it again now
  conflux uninstall  remove it permanently

The CLI Reference lists every file conflux keeps.