🔑Backup your private keys

Fun fact: ~50 mil QUIL have been lost forever because people forgot to back up their keys :-o

After 30 minutes that then node has been running, it should have generated your keys and config files correctly. Use WinSCP or Termius SFTP feature to navigate to the root/ceremonyclient/node/.config folder.

You may have to enable visibility for hidden files in WinSCP if you don't see the .config folder.

After your node begins to work you need to keep updated backups of your whole /ceremonyclient/node/.config folder, because it contains all the files that hold your rewards.

.config folder contents (list)
  • Config.yml Contains your private key as well as all the configs for your node. Your peerID and rewards are connected to the key in this file - DO NOT LOSE IT.

  • Keys.yml Contains other important keys - DO NOT LOSE IT.

  • "Store" folder Contains all the files for the proofs generated by the node. It's a good idea to keep updated backups of this folder.

  • MIGRATIONS This file is necessary if you move the node to another machine.

  • REPAIR, RELEASE_VERSION, SELF_TEST These files have various functions but do not need to be backed up

Personally and for maximum security, I back up my keys.yml and config.yml files locally, while I keep synced updated backups of all the other files remotely via StorJ. Some people just back up their entire .config folder, though.

Another thing I do, before shutting down a node, is I stop it and do a final full backup. This is because although you can back up your store folder while the node is running, the store file that is being written to won't be backed up, so you risk losing some rewards.

See also Backup your node

If you need to migrate the node elsewhere, after installing the new node from scratch, you will need to migrate your entire root/ceremonyclient/node/.config folder to your new node . See also Migrating the node to a new server

What does a correct "keys.yml" file look like?
"":
 id: ""
 type: 0
 privateKey: ""
 publicKey: ""
default-proving-key:
 id: default-proving-key
 type: 0
 privateKey: ////long-key-here///
 publicKey: ////long-key-here///
q-ratchet-idk:
 id: q-ratchet-idk
 type: 1
 privateKey: ////long-key-here///
 publicKey: ////long-key-here///
q-ratchet-spk:
 id: q-ratchet-spk
 type: 1
 privateKey: 
What does a correct "config.yml" file look like?
key:
 keyManagerType: file
 keyManagerFile:
   path: .config/keys.yml
   createIfMissing: false
   encryptionKey: ////long-key-here///
p2p:
 d: 0
 dLo: 0
 dHi: 0
 dScore: 0
 dOut: 0
 historyLength: 0
 historyGossip: 0
 dLazy: 0
 gossipFactor: 0
 gossipRetransmission: 0
 heartbeatInitialDelay: 0s
 heartbeatInterval: 0s
 fanoutTTL: 0s
 prunePeers: 0
 pruneBackoff: 0s
 unsubscribeBackoff: 0s
 connectors: 0
 maxPendingConnections: 0
 connectionTimeout: 0s
 directConnectTicks: 0
 directConnectInitialDelay: 0s
 opportunisticGraftTicks: 0
 opportunisticGraftPeers: 0
 graftFloodThreshold: 0s
 maxIHaveLength: 0
 maxIHaveMessages: 0
 iWantFollowupTime: 0s
 bootstrapPeers:
 ////list-of-bootstrap-peers-here///
 listenMultiaddr: /ip4/0.0.0.0/tcp/8336
 peerPrivKey: ////long-key-here///
 traceLogFile: ""
 minPeers: 0
engine:
 provingKeyId: default-proving-key
 filter: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 genesisSeed: ////very-long-seed-here///
 maxFrames: -1
 pendingCommitWorkers: 4
 minimumPeersRequired: 0
 statsMultiaddr: ""
 difficulty: 0
db:
 path: .config/store
listenGrpcMultiaddr: ""
listenRESTMultiaddr: ""
logFile: ""

Last updated