# Coti Full Node Guide

A quick guide on setting up a node on the coti testnet / mainnet.

{% hint style="warning" %}
Mainnet nodes are added by invite only or by running a node on the testnet and waiting for your invite providing you meet the criteria.
{% endhint %}

## Introduction

Welcome to a fast guide on getting up and running quickly on COTI. This guide is not aimed at beginners so you may need to google some things, especially if you are new to Ubuntu and various web technologies. \
\
That being said, we have had IT beginners successfully launch nodes with this guide so don't let it put you off!

### Requirements to take part

#### :no\_entry: You can't participate if you are from a country in the restricted list below

Setting up a COTI Pay VIPER wallet and therefore running a node is not allowed in the following countries: Afghanistan, Barbados, Bosnia & Herzegovina, Botswana, Burkina Faso, Burundi, Cambodia, Canada, Cayman Islands, Central African Republic, Côte d'Ivoire, Cuba, Democratic People's Republic of Korea (DPRK), Democratic Republic of the Congo, Eritrea, Ethiopia, Ghana, Gibraltar, Guinea, Guinea-Bissau, Haiti, Iran, Iraq, Israel, Jamaica, Jordan, Lebanon, Liberia, Libya, Mali, Morocco, Myanmar, Nicaragua, Pakistan, Panama, Senegal, Somalia, South Sudan, Sri Lanka, Syria, The Bahamas, Trinidad & Tobago, Tunisia, Uganda, United States of America (USA) and U.S territories, Venezuela, Yemen, and Zimbabwe

US territories - The U.S. has five permanently inhabited territories: Puerto Rico and the U.S. Virgin Islands in the Caribbean Sea, Guam and the Northern Mariana Islands in the North Pacific Ocean, and American Samoa in the South Pacific Ocean.

#### :white\_check\_mark: You must stake a minimum of 150,000 COTI in the COTI treasury

It will be needed once you are invited on to the mainnet.  You will earn in two ways.  You will get 30% APR on 150k coins = 3750 per month.  On top of that lets say your 150k is in the treasury at 1X (no leverage no risk) at 11% APY currently, then you will also earn 1375 COTI on top for a total earn that month of 5125 COTI. Note: to take part in the testnet you do **not** need to stake ANY coti.<br>

### Follow the guide in order

The guide will be written so you can flow through from Top to Bottom.

I will provide helpful hints along the way to assist where possible.


# Sign Up

{% hint style="info" %}
If you are an **exchange** you can skip this wallet and kyc section
{% endhint %}

To run a node on COTI Mainnet or Testnet, you’ll need a COTI Pay Wallet aka Viper, and then you can generate a seed and extract the private key.

To create a COTI wallet, you’ll need to register for a wallet if you don’t have one already. You can do this at via <https://cps.coti.io/signup>. You'll be able to see us registering one below in the screenshots.

{% hint style="danger" %}
**Do NOT** use the same phrase as your secret key that you use for your password
{% endhint %}

{% hint style="danger" %}
**NEVER** give **ANYONE** your seed or secret key, not even to coti staff else you risk **losing** your funds.
{% endhint %}

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuW96g9LXJZPip34WT%2Fcoti-tutorial-01-signup-to-coti-pay.png?alt=media\&token=0efb0262-6afc-426d-bd4a-4f18c8f070ef)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuWMKfIStQjhR6vAe_%2Fcoti-tutorial-02-verifyemail.png?alt=media\&token=3bc36bb6-a9c7-4ad8-8a76-7d9809f2fc94)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuY7WWTak85Ocb_yqm%2Fcoti-tutorial-03-email-verify-button.png?alt=media\&token=a892898b-1e2e-4746-b847-53ab9eb1ab91)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuW-MvNjkiUHdtvZHg%2Fcoti-tutorial-01.png?alt=media\&token=dd0c19ee-3192-4375-a156-5dcba171a355)


# KYC

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuXI9wn4A8XpHlkOqX%2Fcoti-tutorial-03.png?alt=media\&token=a76150ec-90ce-4429-aeb7-0363d9a7ea1a)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuXYTn6_CkVDy0tFEn%2Fcoti-tutorial-04.png?alt=media\&token=848fc1ee-e9e3-475b-9c28-a9a61552e8cb)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuXbJcEow2RMnflZej%2Fcoti-tutorial-05.png?alt=media\&token=e82900d6-3fdf-4f40-8127-31f440a58d34)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuXirhBK7bF9_2EbZA%2Fcoti-tutorial-07.png?alt=media\&token=12727a6b-f10c-4fea-a145-4fc49942343a)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuXlf_3GimG4PnY7_0%2Fcoti-tutorial-08.png?alt=media\&token=2a5b5534-8ce7-4474-a478-11f686356f00)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuYgWiYxkin6nyFRVD%2Fcoti-tutorial-10.png?alt=media\&token=2eac75aa-728e-4b8e-86ce-1cad48c624b1)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuYkqfbrLWBzAGGI8d%2Fcoti-tutorial-11.png?alt=media\&token=1ba0e31c-6838-4bef-bddb-5c7c2dd42aca)

### Now we wait for KYC response (3-5 business days)

Check your email. You should expect a confirmation within 3 - 5 business days.  If you haven't been contacted after that feel free to drop an email to **<support@coti.io>** with the subject of KYC.

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuxFCLo9qYHpqSLx2h%2Fcoti-tutorial-15.png?alt=media\&token=8956e25a-e6a0-48d6-898f-e67d03fe2fa4)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuxPBdZJlveFNuIfJc%2Fcoti-tutorial-16.png?alt=media\&token=94878463-8223-4d24-8e80-92c623cfa94d)

If you have setup two factor authentication you will get the screenshot below.  I have provided a quick link to setting up two factor below which you can open in another browser window if you wish.

{% content-ref url="/pages/-MYuYz7F5hRpAkkw\_HLk" %}
[Two Factor Authentication](/extra-recommended-info/two-factor-authentication)
{% endcontent-ref %}

![If you have setup Two Factor Authentication you will get this screen above](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuxRQiN07-THfDPf7m%2Fcoti-tutorial-17.png?alt=media\&token=52eced69-c512-4455-b593-7b523d7052df)

Continue to the next page to learn how to generate your seed now that you have logged in.


# Secret Key & SEED

This is a really important section.

After logging in to <https://crypto-wallet.coti.io/connect> , click on the trustchain enter button.

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuyCS19z6Yhx4yG58B%2Fcoti-tutorial-18-b.png?alt=media\&token=46bb45be-0d83-4c11-85bb-1e09743a70fc)

{% hint style="warning" %}
Be sure to choose **testnet** from the drop down box on the following screens if you are setting up the node for the testnet.  Remember: Mainnet is invite only.
{% endhint %}

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuyFW0qmfluorYNcr2%2Fcoti-tutorial-19-b.png?alt=media\&token=8db1e18a-4bdb-49c2-8a08-bd21093cc911)

![Be sure to choose testnet if you are trying to setup a node on the testnet. ](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuyOPFX-obdec3DBRh%2Fcoti-tutorial-20.png?alt=media\&token=3f385b26-913a-4f76-81f5-5814282feffc)

### What is a good secret key?

Choosing a secret key is very important and although a minimum of 8 characters is allowed, i would advise to go with the maximum of 15 characters for better security.  Below is a random example of a secret key I could have chosen which is suitable. &#x20;

![An example of a good secret key using all 15 characters with a mix of upper, lower and numbers](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuybOBRXPGnHdaQ-Rx%2Fcoti-tutorial-01-password.png?alt=media\&token=5d27816e-bdb2-4cbc-bc48-33d571248963)

You may be thinking how will I remember that? The answer is either write it down and keep it safe, or you could use a password manager like [Bitwarden ](https://bitwarden.com/)or [Lastpass](https://lastpass.com/) which are much more effective and safer than storing anything in your browser.&#x20;

{% hint style="danger" %}
Before copying any seeds or keys, be sure your computer is clean from viruses or malware.  Some users may be more confident to turn off their internet once they have the seed on screen etc.  The seed and secret key is your responsibility to keep safe!

**Do NOT** use the same phrase as your secret key that you use for your CPS password

**NEVER** give **ANYONE** your seed or secret key, not even to coti staff else you risk **losing** your funds to impersonators.
{% endhint %}

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuyRDgGZGx-7queHJ5%2Fcoti-tutorial-21.png?alt=media\&token=23a571c9-80e1-4d90-bfdc-ee720510287f)

### Wallet and Private Key

Now go to <https://crypto-wallet.coti.io/connect> and sign in to retrieve the private key we need for the node install. Also never give this to anyone also.

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-McBYzjiRtIt2PSmp-us%2F-McBl62jTQrwMdPI0H2Q%2Fcoti-tutorial-private.png?alt=media\&token=9c15e61a-20c1-4a9f-8ff1-743e294e4bb7)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-McBYzjiRtIt2PSmp-us%2F-McBlTlRW0gmEG0_mCGe%2Fcoti-tutorial-private2.png?alt=media\&token=6c166d4b-b499-46d3-85f2-9e531dc429c1)

Copy the private key above.


# Registering a VPS

Hosting your node

You will need an Ubuntu VPS to host your node to allow you to be part of the testnet.

I personally recommend keeping it nice and cheap for the testnet but that does not mean going under specification!

Check out <https://contabo.com/en/vps/> for the screen below so you can choose a VPS.  The Best Choice below will meet the requirements of the testnet no problem whilst also not burning a hole in your pocket.

NOTE: VPS from Vultr for the same specification can be as much as $80 per month so it pays to shop around.

{% hint style="info" %}
For **MAINNET** see the tab below
{% endhint %}

{% tabs %}
{% tab title="Testnet Specification" %}
The requirements are: Ubuntu 18.04 or 20.04 LTS x64 VPS, 320 GB SSD, 6 CPU, 16 GB RAM, 5 TB bandwidth
{% endtab %}

{% tab title="Mainnet Specification" %}

### Top Specification

The top specification (expensive though) is: Ubuntu 18.04 or 20.04 LTS x64 VPS of the spec matching [c5.4xlarge](https://aws.amazon.com/ec2/instance-types/c5/) which is 16 vcpu, 32 GB RAM.

### Minimum Specification

Ubuntu 18.04 LTS x64, 12vcpu, 16GB Ram, 320GB SSD, 5 TB bandwidth, preferably not on shared infrastructure.

You could look at running a bare metal server with someone like [Leaseweb](https://www.leaseweb.com/dedicated-servers/high-performance-server) if you want some dedicated hardware at a reasonable price. Other providers are available like AWS, Vultr, Digital Ocean etc.

{% content-ref url="/pages/-MYvk7ahu446KMtXMqHW" %}
[Broken mention](broken://pages/-MYvk7ahu446KMtXMqHW)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}

### Registering a VPS for Testnet

I'll take you through everything from buying the VPS to setting it up, lets go.

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYvm3ypPbfYZQK57U5x%2F-MYvmCiSFB_iftoi50Cj%2Fcoti-tutorial-30-b.png?alt=media\&token=9c7f4f31-1d6d-4bd5-bc5f-544e90b387be)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYvm3ypPbfYZQK57U5x%2F-MYw6YjtrtFF63EUG7Rg%2Fcoti-tutorial-43.png?alt=media\&token=dd0a6f4d-2dda-4ed5-923d-42d38bf7cbb1)

![Fill in your details](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYvm3ypPbfYZQK57U5x%2F-MYw6dKvRqkhCQIfQGCG%2Fcoti-tutorial-44.png?alt=media\&token=f8c5efb2-851c-4e39-9245-960a7e31be66)

![Select your preferred payment method](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYvm3ypPbfYZQK57U5x%2F-MYw6flGw9evK5q5Nu-s%2Fcoti-tutorial-45.png?alt=media\&token=883cd613-3f50-4c4e-979f-789b38dcf869)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYvm3ypPbfYZQK57U5x%2F-MYw6mG4qhpnBTg33cZW%2Fcoti-tutorial-47.png?alt=media\&token=519576f8-58bf-4169-96d7-7c6ea7e96657)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYvm3ypPbfYZQK57U5x%2F-MYw6s-wgS7AaR8spIH5%2Fcoti-tutorial-48.png?alt=media\&token=aeae1141-d582-4c73-b7a4-cd2a0950eef1)

Now you can take a break while your VPS is provisioned.  This can take a few hours but may be sooner.  You will be emailed once the VPS is ready.


# VPS Setup

Great! i have received an email with all of the details on to say the VPS has been provisioned. I have blurred out my details but yours will have all of the necessary information!

Refer to the numbers on the screenshot below

1. This is your login information for <https://my.contabo.com/account/login>
2. Note the IP address of your node, we will need that to configure your "A" record at namecheap or whoever you use for your domain name. &#x20;

{% hint style="info" %}
2\. (extra info) The VNC details are useful for emergencies if you accidentally lock yourself out of the node.  Just be aware they are there but you should never need them for this tutorial.
{% endhint %}

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MZ2WNQbfvpnBM238Lnl%2F-MZ2d_X6M0waEpkp0rUS%2Fcoti-tutorial-vps01-B.png?alt=media\&token=30ed2406-9f42-4722-964f-f89e7cb62dfd)

### Quick test of the login details and view how to reinstall the VPS

Lets try out the login details and make sure we can connect

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MZ2WNQbfvpnBM238Lnl%2F-MZ2el_ZFP0CK0I91oZV%2Fcoti-tutorial-vps02-B.png?alt=media\&token=d54108d1-457e-4f2a-a1da-f3e46e2f6140)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MZ2WNQbfvpnBM238Lnl%2F-MZ2et1ZORVHQlpjvN8S%2Fcoti-tutorial-vps03.png?alt=media\&token=291675fa-f6f1-471b-801a-a944abb12abf)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-M_NuDI3uBDFst4LxMCP%2F-M_NurY_L8NCHgHTTagh%2Fcoti-tutorial-vps04.png?alt=media\&token=ed23c96f-7464-4b58-8a30-f4313d1a34da)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MZ2WNQbfvpnBM238Lnl%2F-MZ2f9IuVcMJQDMEgQGJ%2Fcoti-tutorial-vps04-B.png?alt=media\&token=f0d9e7f2-aafa-444b-8c1d-9a0f849e190b)

{% hint style="info" %}
If you ever make a mistake, remember the Reinstall button right there on the menu above. It will factory reset the VPS to be wiped to the same state as when you purchased the VPS. This is great if something goes wrong with the setting up
{% endhint %}

### Lets go and register a domain name and configure an "A" record to point to our new VPS IP address.


# Registering a domain name

For this I will be using [namecheap.com](https://namecheap.com) which is a popular low cost domain name register and it's pretty easy to use.

{% hint style="info" %}
**TIP:** To view the screenshots at full size, simply click on the screenshot.
{% endhint %}

Search for a domain name that you wish to use and see if it is available. I went with an extension of ".online" as it seemed pretty cheap.

This page simply shows a purchase of the domain name.

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYvm3ypPbfYZQK57U5x%2F-MYw2BVchTh2vo5Ub2DV%2Fcoti-tutorial-32.png?alt=media\&token=4da2bd3d-f733-4789-8811-2ae692df9bbf)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYvm3ypPbfYZQK57U5x%2F-MYw2WSNSIq-_remW2y4%2Fcoti-tutorial-34.png?alt=media\&token=027cc299-8ed8-4a60-b408-e7e947eae28e)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYvm3ypPbfYZQK57U5x%2F-MYw5nxAPK6JwCx2EmJh%2Fcoti-tutorial-36-b.png?alt=media\&token=0f883259-d419-43a6-a91b-9fcebb52b88a)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYvm3ypPbfYZQK57U5x%2F-MYw5M3MWeSPX-vSOhes%2Fcoti-tutorial-37.png?alt=media\&token=1b54a706-0ab2-4349-a443-72e672e893d3)

Complete the payment then you have bought yourself a domain name!

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYvm3ypPbfYZQK57U5x%2F-MYw60rwGKJw6NMG0gJB%2Fcoti-tutorial-38.png?alt=media\&token=67330fed-1cde-45a1-80b9-78737d5d81f3)

Check your email as you will probably have to confirm your email address to finalise the registration.


# Add an "A" record

Now you have bought your domain name, the next step is to point it your VPS.

{% hint style="info" %}
An "A" record is simply how you point a domain name to an IP address. When you register a VPS it will be given an IP address that looks like four sets of numbers, separated by full stops.
{% endhint %}

After verifying my email address, I have logged in to my [namecheap.com](https://namecheap.com) account and gone to Domain List and clicked Advanced DNS where you will find the correct screen to add an "A" record.

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYvm3ypPbfYZQK57U5x%2F-MYw7tghzsa-gSuOXrRD%2Fcoti-tutorial-40.png?alt=media\&token=1eb7099e-993c-4a76-9f37-2c46efe1c875)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYvm3ypPbfYZQK57U5x%2F-MYw7wyMJUxCOd-DsN5-%2Fcoti-tutorial-41.png?alt=media\&token=6cbb089c-4d5e-4dba-82c1-56fbbd2d241d)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYvm3ypPbfYZQK57U5x%2F-MYw7zSsSjOvAJkKCy58%2Fcoti-tutorial-42.png?alt=media\&token=de7c0984-42ca-4d0c-b2bb-64a71ede4f45)

I decided i wanted my node address to be "tutorialnode.cotinodes.online" so i wrote tutorial node in the host, and then i took the IP address from the VPS registration email (1) and added it in the Value field like shown on the screenshot below. You use YOUR VPS ip address of course. Select 5 min or even 1 min on the TTL which means how fast the DNS will update, then click the green tick.

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MZ2WNQbfvpnBM238Lnl%2F-MZ2iYv1huCB3WmOiVCT%2Fcoti-tutorial-vps01.png?alt=media\&token=5cc354a8-a82e-469e-b957-d7423537bdc2)

Now wait however long you gave the TTL value above i.e. 5 minutes, make a drink, come back and continue!


# Register your node hash

For testnet node operator

{% hint style="info" %}
This is a **testnet** only section.  Exchanges and mainnet nodes can ignore this section
{% endhint %}

Testnet users must register their public key aka node hash with coti to then make the transition on to the testnet. This can be done now (easier route)  or later, providing you do a reboot once COTI confirm your node is registered.

#### Step 1: Login to the testnet

Login to the **testnet** at [pay.coti.io/testnet](https://pay.coti.io/testnet) and once in your wallet, click the cog at the top right corner and find your **public key.**  Get ready to copy the public key see the screenshot below.

<figure><img src="https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MYjiRCkwZWAIQCdcw31%2Fuploads%2FK0aMgJalCs7HtOupqKG8%2Fcoti_pubkey2.png?alt=media&amp;token=3580d56b-dd73-4c0e-a060-ca2898cefefd" alt=""><figcaption></figcaption></figure>

**Step 2: Send email to COTI**

Send an email to <support@coti.io> with email subject of Register Testnet Node. &#x20;

You may copy and paste this text and insert the information

<mark style="color:red;">Dear Coti,</mark>

<mark style="color:red;">Please register my node on to the COTI Testnet.</mark>

<mark style="color:red;">My node is at URL:</mark> <mark style="color:purple;">\<INSERT NODE URL HERE></mark>

<mark style="color:red;">My node hash/public key is:</mark> <mark style="color:purple;">\<INSERT LARGE PUBLIC KEY HERE></mark>

<mark style="color:red;">Please email me to let me know when I can proceed.</mark>

<mark style="color:red;">Kind Regards,</mark>

<mark style="color:purple;">\<INSERT YOUR NAME/NICKNAME HERE></mark>

Send the email then you can either wait for the response from COTI, or continue and finish the node install with a "Wrong node hash for network testnet" error.

{% hint style="info" %}
If you decide to continue with the guide without getting a reply from the email above,  you will get a "Wrong node has for network Testnet" error once the node starts to run after you complete the Installing a node section. Thats ok though, as once COTI say you are registered you can issue the "reboot" command to the node and the node will reboot and should come online within a few minutes.&#x20;
{% endhint %}


# Connect to the node

## What is putty?

Putty is a FREE and open source terminal program, it basically allows you to connect to your Ubuntu node! If you are familiar with Terminal or other programs feel free to use those.

### Installing Putty

To install putty go to [putty.org](https://putty.org)

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MZAHV5AVoQiLTJAiJCK%2F-MZALIrtcCGn40nzFK1T%2Fcoti-tutorial-vps09.png?alt=media\&token=21388516-30c2-4fdf-8b68-57a5678cf510)

As I'm installing on my windows machine ill select the 64bit x86 version like so....

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MZAHV5AVoQiLTJAiJCK%2F-MZAM1X72lE8mHFZ4dpE%2Fcoti-tutorial-vps10.png?alt=media\&token=c8b5b899-caa8-4505-964f-8c3976b4f5e8)

Install the downloaded putty program, follow all the defaults for install then find Putty in your programs list and launch it.

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MZAHV5AVoQiLTJAiJCK%2F-MZAMy86pxjH1KQyHahe%2Fcoti-tutorial-vpsaws19.png?alt=media\&token=23a6a720-b3b8-4126-8ef1-2dcf080a0a94)

![See below for corresponding instructions](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MZAHV5AVoQiLTJAiJCK%2F-MZAIB0p_ES0ouEQCtqN%2Fcoti-tutorial-vps12.png?alt=media\&token=385d999a-3a76-4ab7-8687-fe1897a61744)

1. Click Session
2. Add your hostname that you created earlier in [Add an "A" record](/purchases/add-an-a-record) for example tutorialnode.cotinodes.online or mynode.mydomain.com etc
3. Add the port, usually 22.
4. Give your session a name.
5. Click Save

Awesome, now you have a connection in putty that you can load anytime you wish to connect to your node.  You are now ready to connect, and then install your node.

![See below for corresponding instructions](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MZAHV5AVoQiLTJAiJCK%2F-MZAORVOANyenP8TQsfz%2Fcoti-tutorial-vpsaws21.png?alt=media\&token=86a21073-8fef-444a-b4b7-b0e6b46f7367)

1. Click your saved session
2. Press Load
3. Press Open

![See below for corresponding instructions](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MZAHV5AVoQiLTJAiJCK%2F-MZAOdIZCK58Gajk_H8T%2Fcoti-tutorial-vps14.png?alt=media\&token=7795e75d-ddae-424c-aef0-178dbc91f235)

1. Press Yes to allow connection.  You should only see that the first time you connect from your device.

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MZAHV5AVoQiLTJAiJCK%2F-MZAP94cXeNWDoeKe0bM%2Fcoti-tutorial-vps15.png?alt=media\&token=a6b9b865-6bd1-4ec5-a7c1-3d5ab743a4be)

Type root or whichever username you were given on your VPS instructions and press enter

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MZAHV5AVoQiLTJAiJCK%2F-MZAPeIgzHiEdwu8g-E0%2Fcoti-tutorial-vps16.png?alt=media\&token=20dd3986-ea1c-4216-91b5-e08e9152da16)

{% hint style="warning" %}
You will not be able to see the password that you either type OR paste.\
Go to your VPS email and copy the root password, then to paste your password, you should RIGHT CLICK on the black window and press enter.  The right click pastes the password invisibly and enter will attempt to login.
{% endhint %}

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MZAHV5AVoQiLTJAiJCK%2F-MZAROGV3tIkXlt-9l0s%2Fcoti-tutorial-vpsaws22.png?alt=media\&token=73fc5512-ef22-4050-a63c-901fb5742962)

If you are logged in you should see the welcome screen to your VPS!


# Installing a node

If you are **NOT** a crypto exchange click the link below to install a full node.

{% content-ref url="/pages/-MYlkOCMgU2eXQTAhCTi" %}
[Install a full node](/installing-the-node/installing-a-node/step-6-ready-to-run-code)
{% endcontent-ref %}

If you **ARE** a crypto exchange with an API key, click the link below

{% content-ref url="/pages/-MaKdACQTpBXRyG2x1hq" %}
[Installing an exchange full node](/installing-the-node/installing-a-node/installing-an-exchange-node)
{% endcontent-ref %}


# Install a full node

Node installation tips specifically for users (not exchanges)

## Login to your VPS.

Connect to your VPS as the root user with putty or any other popular terminal connection program.

Once connected with root, copy the code below and paste it into your putty / terminal window and press enter.

{% hint style="info" %}
You can find the github repo [here](https://github.com/Geordie-R/coti-full-node) if you want to dig in to the code further.
{% endhint %}

```
rm -rf installfullnode.sh
wget -O installfullnode.sh https://raw.githubusercontent.com/Geordie-R/coti-full-node/main/installfullnode.sh
chmod +x installfullnode.sh
./installfullnode.sh
```

\#You will be asked if you are installing for mainnet or testnet.  Choose the number corresponding to the option

You will be asked a series of questions :

* Your SSH Port No (22 if you have not changed it)
* Your Ubuntu Username (use coti if not sure it will be created fresh)
* Your Email address&#x20;
* Your server hostname from namecheap or other provider of your choice e.g. coti.mynode.com&#x20;
* Your wallet private key  (**not** your secret key)
* Your wallet seed key
* \***Testnet only  - Node added 16/07/2022: -** (which version to launch type **3.1.0** for now)
* \***Mainnet only** (which version to launch e.g. 1.4.1 etc)

{% hint style="info" %}
If you are not sure of any of the answers that get asked above whilst running the code above, leave the answer empty and it will terminate after the questions so that you can run the installfullnode.sh script again on its own, as shown below.

```
./installfullnode.sh
```

{% endhint %}

Answer all of the questions, pressing enter after each answer, then the node will configure itself.

If you are not an exchange, please skip the next section and move on to the Finally checking you're up section.


# Installing an exchange full node

Node installation tips specifically for exchanges

I will detail what the difference is between installing a full node and installing an exchange full node.

The major difference installing for an exchange is you will be given an API key and also your mnemonic, seed and private key will be generated by YOU on your node, rather than given to you from the cps coti website.

You may follow the rest of the guide you see on the left menu from top to bottom, just ignore the WALLET AND KYC section as it does not apply to you.

### Connect to your node

Connect to your VPS as the **root** user with putty or any other popular terminal connection program of your choice.

Once connected with root, copy the code below and paste it into your putty / terminal window and press enter.

{% hint style="info" %}
You can find the github repo here: <https://github.com/Geordie-R/coti-full-node> if you want to dig in to the code further.
{% endhint %}

```
rm -rf installfullnode.sh
wget -O installfullnode.sh https://raw.githubusercontent.com/Geordie-R/coti-full-node/main/installfullnode.sh
chmod +x installfullnode.sh
./installfullnode.sh
```

You will be asked if you are installing for mainnet or testnet.  Choose the number corresponding to the option.

You will be asked a series of questions :

* Your SSH Port No (22 if you have not changed it)
* Your Ubuntu username (use coti if not sure it will be created fresh, do not use root)
* Your email address&#x20;
* Your server hostname  e.g. coti.mynode.com&#x20;
* Your API Key
* Version to use: which version to launch e.g. 1.4.1 or type latest for the latest version if that is what you have been told to use.

{% hint style="info" %}
If you are not sure of any of the answers that get asked whilst running the code above, leave the answer empty and it will terminate after the questions so that you can run the installfullnode.sh script again on its own, as shown below.

```
./installfullnode.sh
```

{% endhint %}

Answer all of the questions, pressing enter after each answer, then the node will configure itself. Now lets head back to the main menu again and check that your node is up with the link below.  Remember to head back here once you have finished that page

{% content-ref url="/pages/-MYm07-jNc3bjKmnm7Fl" %}
[Finally: Checking you're up!](/installing-the-node/finally-checking-youre-up)
{% endcontent-ref %}

### Recording your keys, then deleting the keys file.

During install, the script uses the newly generated keys storing them on disk in keys.json for a short time.  This next section allows you to view your keys then delete them. &#x20;

{% hint style="danger" %}
Make a safe backup of your keys, seeds and mnemonics stored inside the keys.json file. Run the code below to view your keys and then delete them from disk.
{% endhint %}

```
rm -rf getkeysthendelete.sh
wget -O getkeysthendelete.sh https://raw.githubusercontent.com/Geordie-R/coti-full-node/main/getkeysthendelete.sh
chmod +x getkeysthendelete.sh
./getkeysthendelete.sh
```

### Clearing your bash / terminal history

I recommend you clear your bash/terminal history once you have finished. Do this with the following command.

```
history -c
```


# Finally: Checking you're up!

If you successfully installed the node you will be on the lookout for this message

#### **COTI FULL NODE IS UP**

If you see the message above,  use the tabs below to check for your node on mainnet or testnet.

{% tabs %}
{% tab title="Checking on Testnet" %}
Check you're up by logging into[ https://pay.coti.io/testnet ](< https://pay.coti.io/testnet >)and find your node in the drop down node list once you're past the username and password section.
{% endtab %}

{% tab title="Checking on Mainnet" %}
Check you're up by logging into <https://pay.coti.io/> and find your node in the drop down node list once you're past the username and password section.
{% endtab %}
{% endtabs %}

{% hint style="info" %}
If you are an **exchange only:** be sure to head back to the exchange page and run the keys section now to record your mnemonics, seed and private key then delete the keys file.

<https://geordier.gitbook.io/geordie-docs/exchange-nodes/installing-an-exchange-node#recording-your-keys-then-deleting-the-keys-file>

{% endhint %}

### What happens if I reboot

The node is currently running under a systemd service so if you reboot the service will automatically start.  We would recommend you stop the service before rebooting of course.  \
\
You can see the configuration for this service if you wish:

```
nano /etc/systemd/system/cnode.service
```

### Start/Stop

To stop or start the service use a variation of this command replacing start with stop

```
systemctl start cnode.service
```

### Viewing the log

If you want to view the log you can use the following command. If you have used a user other than coti, please replace the first mention of coti in the command below with your username. If you just want to see the end of the log replace nano with tail -f

```
 nano /home/coti/coti-node/logs/FullNode1.log
```

## Uninstalling

If you make a mistake and want to uninstall and try the installation again, here is the code to uninstall.

```
rm -rf uninstallfullnode.sh
wget -O uninstallfullnode.sh https://raw.githubusercontent.com/Geordie-R/coti-full-node/main/uninstallfullnode.sh
chmod +x uninstallfullnode.sh
./uninstallfullnode.sh
```


# Uninstalling the node

If you make a mistake or want to uninstall and try the installation again, here is the code to uninstall.

```
rm -rf uninstallfullnode.sh
wget -O uninstallfullnode.sh https://raw.githubusercontent.com/Geordie-R/coti-full-node/main/uninstallfullnode.sh
chmod +x uninstallfullnode.sh
./uninstallfullnode.sh
```


# Upgrading your node

We have a new upgrade script you will be pleased to know!\
\
To upgrade your node, login as root and once logged in run the following code.

```
cd ~
rm -rf upgrade.sh
wget -O upgrade.sh https://raw.githubusercontent.com/Geordie-R/coti-node-upgrade/main/upgrade.sh && chmod +x upgrade.sh
./upgrade.sh
```

You will be asked a series of questions once you run the code above.

* You will be asked if you are upgrading a node on the testnet or mainnet. Type number 1 for the mainnet or 2 for the testnet then press enter.
* You will be asked for your ubuntu username the node is installed under.  Leave it empty and press enter if you used "coti" originally.
* You will be asked what version of the node software you would like to install. Type the number if you know it in this format: 3.1.0 then press enter. If you leave it empty it will use the latest version.  Please note if a brand new release has just been released i may not have had time to update the latest version in the script so just type it in manually if you are upgrading to a brand new release.

If all goes well you should see UPGRADE COMPLETE! in giant letters!

#### Credits

Thanks to Cryptofirebird for the collaboration with code and testing! Checkout his excellent website with lots of useful features here: <https://coti.nebula-tech.io/>

{% hint style="danger" %}

Once you have completed the above two steps, you can [go here to check ](/installing-the-node/finally-checking-youre-up)if you are up.
{% endhint %}


# Firewall / Ports

You may ignore this page, this is just for information purposes only for people wanting to configure their firewalls manually etc.

The ports that are needed are automatically configured for you in the UFW setup inside the installfullnode.sh script.  However, if you need to know the ports that we open, see the incoming list below.

### Incoming

Your SSH port (22 if you left it to the default)

80

443

7070 (you may want to lock down to receive only traffic from nodemanager IP address for this port)

{% hint style="info" %}
The testnet node manager IP is 52.59.142.53 and the mainnet node manager IP is 35.157.47.86.  You may lock down 7070 to these IP addresses depending on which network you are on.
{% endhint %}


# Two Factor Authentication

Login to cps.coti.io and click on the settings cog labelled 1 in the screenshot below, and then click Enable.

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuZBkYA9B8yHxtPt9m%2Fcoti-tutorial-12.png?alt=media\&token=9534e823-f044-46bc-be07-d742c60078f4)

### Download Google Authenticator

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuZkdeM9yvzjg9L-se%2Fcoti-tutorial-13-b.png?alt=media\&token=2db0a5c6-633b-4b6a-a7f7-b6b85743a0f6)

Follow the numbers below

1. Download the app for your phone
2. Make a backup of the text 2FA key in case you lose your phone. You must never give this to anyone. Then feel free to scan the QR code.
3. Enter your login password for CPS once again for security reasons.
4. Open google authenticator on your phone and enter the 6 digit, 2 factor code.

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYjiRCkwZWAIQCdcw31%2F-MYuVLnLknW4-0yWK95p%2F-MYuwqUvDpOoOG0FhoLb%2Fcoti-tutorial-14.png?alt=media\&token=e859baf0-463f-4966-924a-f20a7cd31cdb)


# Node Hardening

Checkout the node hardening guide here: <https://geordie-r.medium.com/coti-node-hardening-guide-part-1-53663af71abf>


# Troubleshooting your node

Sometimes unexpected things can go wrong.  The log is the best place to go to find out.&#x20;

### Check your logs

If you are wondering what is going on with your node then you should check your logs. To view your logs you can use a few different commands.

#### View log in real time

`tail -f /home/coti/coti-node/logs/FullNode1.log`

#### Get last 100 lines of your log

```
tail -n 100 /home/coti/coti-node/logs/FullNode1.log
```

#### Looking for specific phrases like ERROR as you use the tail command above

To further narrow down your tail command above you may want to hunt for a word like ERROR or COTI FULL NODE IS UP or some other phrase.

To do that just add a pipe and a grep and the word to search for like so:

```
tail -n 100 /home/coti/coti-node/logs/FullNode1.log | grep "ERROR"
```

{% hint style="info" %}
When you use grep, and are looking for a phrase, there may be errors which dont contain the word ERROR so it is not fool proof in that way.  Its a good skill to have though knowing how to grep your tail.  That sounds a bit wrong eh haha.
{% endhint %}

#### Analyse log with a text editor

`nano /home/coti/coti-node/logs/FullNode1.log`

#### Example of what a working node looks like

<img src="https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MYjiRCkwZWAIQCdcw31%2Fuploads%2F9VdD7LKgu4NWJGKYnU8I%2Fimage.png?alt=media&amp;token=7f495545-b765-427e-8b31-f0bb8478de6c" alt="" data-size="original">

If you somehow do not have a log from the above commands then your node may not even have produced a log yet. Something likely went wrong. The most common issues when users install the node is that they mix up their private key (64 characters long) with their secret key (8-15 characters long). Or, sometimes people use their mainnet keys instead of their testnet keys.  Do not do this.

If all else fails run the [uninstall](/uninstalling-the-node/uninstalling-the-node) and then [install](/installing-the-node/installing-a-node) again and closely monitor the install script until you see the node behaving like the screenshot above or before that you may see a phrase COTI FULL NODE IS UP.

### Need help?

Checkout the [discord for node operators here](https://discord.gg/QwVgfAa) if you need any assistance.


# Reseting Transactions

If you get a corrupt database, or the node status is UnSync on the coti node alert bot then run the following code in order.

### Step1 - Script download and Script run.

Copy and right click to paste the following code in your VPS .

```
cd ~
rm -rf reset_transactions.sh
wget -O reset_transactions.sh https://raw.githubusercontent.com/Geordie-R/coti-node-upgrade/main/reset_transactions.sh && chmod +x reset_transactions.sh
./reset_transactions.sh "true"
```

### Step 2 - Reboot the cnode.service

```
sudo systemctl restart cnode.service
```

### Step 3 - Set reset.transactions back to false

```
./reset_transactions.sh "false"
```

Now just wait 10 minutes and then check both the [Finally: Checking you're up!](/installing-the-node/finally-checking-youre-up) and also try sending some token through your node.


# Node Hash Retrieval

At the moment while COTI are fixing up some loose ends by putting the [Register your node hash](/purchases/full-node-operator) inside viper wallet instead, COTI support may ask you for your node hash.\
\
Now right this second I'm not 100% exactly what they want but checkout these two links:

Use your hostname in the URL for your node like this to receive a node hash in bytes format.\
![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MYjiRCkwZWAIQCdcw31%2Fuploads%2FBLsCpz2yc0D4ynCUfZmv%2Fimage.png?alt=media\&token=3171d026-5e7c-49c8-a318-c672e0f98326)

You can also check here.  Search for your node and send COTI your nodeHash

<https://testnet-nodemanager.coti.io/wallet/nodes>&#x20;

If you need any assistance locating your node hash ask in the [node operators group](https://discord.gg/QwVgfAa) in disccord.


# Export Logs

If you need to send your logs to COTI or to a community member who is helping you, this is the section for you.

{% hint style="info" %}
Please note that this section needs you to study the code which you copy and paste to edit it to your own values.  For example you need to use YOUR node address and YOUR SSH port no etc
{% endhint %}

With a little bit of work you can be retrieving files from your Ubuntu node.  I will cover how to do this with both Putty and Termius. I will cover Termius later in the week but if you cant wait just switch to the SFTP option in termius to allow the passing of files to and from your node.

## Exporting logs with Putty

Although this title says through putty, it is actually done through a program called pscp which is written by the makers of Putty. On putty.org website click through to download putty which will then take you through to the screen which contains pscp. See the screenshots below.

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MYjiRCkwZWAIQCdcw31%2Fuploads%2F8kCHZScT5R62EvhzPSwZ%2Fimage.png?alt=media\&token=3c28e589-2a31-40dd-b14d-8c81743f3b47)

<img src="https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MYjiRCkwZWAIQCdcw31%2Fuploads%2FFKrhLZVa8neHvsCVpJ2f%2Fimage.png?alt=media&amp;token=efb02d34-9b9e-4bcb-83b3-a1267546e43d" alt="" data-size="original">

### Download PSCP

Download pscp to the **root** of your C:\ on your machine (not your node)

{% hint style="info" %}
The reason we say download pscp to the root of your drive is so that the windows path system can find the pscp file when calling it from command prompt in windows.
{% endhint %}

### For node hardened users

If you have hardened your node and you have previously generated a private key (ssh key) to connect to your node with then follow this section.

If you connect to your node with a node username and password that your VPS provider gave you then skip this section.

Please study and then run the following command on your windows command prompt.  The command will pull back the logs to your machine if successful into the c:\ProgramData\CotiLogs folder. Be sure to edit the path after the -i part to be the path your private key. Also edit the port after the -P part to be your SSH port number. If you are not sure, this port is listed on the putty settings of your node. Also edit the bit which is "<root@coti.mynode.com>" to show your ubuntu user AND your node URL.

```
pscp -i C:\your_path_to_your_private_key.ppk -P 22 -sftp root@coti.mynode.com:/home/coti/coti-node/logs/* %HOMEDRIVE%\ProgramData\CotiLogs
```

The node will then ask you for your password to your SSH key. Once entered press enter and the copying of the files will begin.  You will now find your files at c:\ProgramData\CotiLogs .  You may have to go there manually in windows as ProgramData can be hidden by default.  Go to Start > Run > and paste c:\ProgramData\CotiLogs into the open box.

### For non-hardened node users

For users that have not done any security enhancements for SSH keys follow this section.

Run the following command on your windows command prompt.  The command will pull back the logs to your machine if successful into the c:\ProgramData\CotiLogs folder.&#x20;

Remember to edit the port (after -P in the code below) to be your SSH port number. If you are not sure, this port is listed on the putty settings of your node. Also edit the bit which is "<root@coti.mynode.com>" to show your ubuntu user AND your node URL.

```
pscp -P 22 -sftp root@coti.mynode.com:/home/coti/coti-node/logs/* %HOMEDRIVE%\ProgramData\CotiLogs
```

Once ran you should see something like this in command prompt

![](https://4065412983-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MYjiRCkwZWAIQCdcw31%2Fuploads%2FEkbo34bFJcsKsZmceVWd%2Fimage.png?alt=media\&token=ec7325f2-f729-46ca-9006-8e6c9e4b4ac8)

Now just check to see if you see your logs at c:\ProgramData\CotiLogs

You can then send them to coti or your friend by adding the c:\ProgramData\CotiLogs folder to a zip file so you can email it.

{% hint style="info" %}
The easiest way in windows to make a zip file is to right click the CotiLogs folder and press Send to > Compressed zip file.  You can then just email coti the one zip file.
{% endhint %}


