Include Cloudcoin in an Exchange

From CloudCoin Wiki
Jump to: navigation, search

Step 1: Create a Skywallet Account

NOTE: CloudCoin Developers are happy to walk you through the process of integrating CloudCoin onto your exchange including spending weeks over Skype helping you set things up. We estimate that it should take no more than one developer two weeks to implement.

Skywallet is a virtual bank that allows you to store, send, receive and transfer CloudCoins. Each Skywallet account has an address and these addresses are stored in DNS servers. A sample address would be 'Sean.CloudCoin.global', 'Bill.Skywallet.cc' or 'Payments.BigExchange.com'. You and your customers will need Skywallet Accounts to send and receive CloudCoins.

  1. Get several CloudCoins for free from CloudCoin Support or any programmer.
  2. Go to https://Skywallet.cc
  3. Click on "Get Skywallet"
  4. Enter a temporary Wallet Name for your account. If your exchange is called Folgory, you would choose "Folgory.Skywallet.cc" as your Wallet Name and Skywallet Address.
  5. Enter a recovery email in the "Your Email" text box. You can use this to recover your account if you lose your debit card.
  6. Click the "SELECT CLOUDCOIN" button and choose one of the CloudCoins that you will get from CloudCoin Support or CloudCoin Developers.
  7. You will then receive a virtual Skywallet Debit card as a PNG. Click on the download button to download it. Keep this PNG safe. You will need to have it on your web server.
  8. Look at the IP address on the back of the Debit Card. This translates to the Decimal Serial Number of your Skywallet Account. You will need this in the next step.

Step 2. Add Some DNS Records To Your DNS Zone

You will create DNS records so that people can figure out your Skywalleet address and find your webhook. This allows them to send you payments and allows them to tell you in real time that their payment was sent.

Example:

cloudcoin.mydomain.com. IN	A	1.63.140.196
cloudcoin.mydomain.com. IN     TXT  "https://host.mydomain.com/verify_payment.php"

1. Create an 'A' record on your DNS server.

  • The type will be 'A',
  • The Name will be 'cloudcoin'
  • The IPv4 Address will be the number on the back of your Skywallet debit card.
  • The TTL with be 'Auto'.*
  • Make sure you do not proxy this 'A' record but use DNS only (only applicable if your DNS supports proxy. Most do not).

2. Create a TXT record called on 'cloudcoin' your DNS server.

NOTE: Webhooks are how the client's application can communicate with your servers. This allows your customers to send real-time data from the Skywallet ATM application to your web server so that your servers know that you have been paid.


3. Test that the it is working by going to a command prompt (Windows) and typing:

nslookup cloudcoin.youdomain.com
where you replace "yourdomain.com" with the name of your domain. You should receive the IP address that is on the back of your Skywallet Debit card. Then do

nslookup set q=TXT cloudcoin.yourdomain.com

. You should see the url of your webhook page at the bottom of the results.

Step 3. Install Skywallet_Connect on your Web Server

NOTE: Skywallet_Connect is a CLI written in GO that will run on any operating system and can be called by any programming language.

1. Configure your web server as needed. CloudCoin has 30 World-Class System Administrators to help. You can see the most common setup by reading #Example Web Server Configuring For LAMP.

2. Download the Skywallet_connect binary from https://CloudCoinConsortium.com/zip/skywallet_connect.zip and put it in /usr/local/bin>

3. Change the permissions and make it executable:

sudo chmod 755 /usr/local/bin/skywallet_connect
chmod +x /usr/local/bin/skywallet_connect

4. create skywallet_connect HOME dir

sudo mkdir /var/www/skywallet_connect_home
sudo chown www-data:www-data /var/www/skywallet_connect_home

5. Create a file structure automatically by calling Skywallet_connect to check its balance. Become an Apache user. Expect an error when you enter the following commands to check the balance:

su -fm www-data
$ /usr/bin/skywallet_connect balance
{"status":"fail", "code":11 "message":"Failed to find ID coin", "time":"158ns"}

6. After you execute the commands above, you should now have folders. Make sure /var/www/skywallet_connect_home is populated

ls -l /var/www/skywallet_connect_home/
total 24
drwx------ 2 www-data www-data 4096 Apr 11 12:58 Bank
drwx------ 2 www-data www-data 4096 Apr 11 12:58 Counterfeit
drwx------ 2 www-data www-data 4096 Apr 11 12:58 Fracked
drwx------ 2 www-data www-data 4096 Apr 11 13:00 ID
drwx------ 2 www-data www-data 4096 Apr 11 12:58 Sent
-rw-r--r-- 1 www-data www-data  626 Apr 11 13:00 main.log

7. Copy your Skywallet PNG debit card file in the ID folder and run the command again. Make sure the balance is working

$ /usr/bin/skywallet_connect balance
{"total":0}

Your total may vary.

Step 4. Program your WebHook Page

Your Web Hook page allows user software (such as the Skywallet ATM) to tell your server that you have received a payment. You must give your users their unique identifier so that they can supply it to your Web Hook page so you know who paid you. See the videos below to see examples of users doing this on the Folgory exchange.

1. User software will find your hook page by looking up your TXT record for 'cloudcoin.yourdomain.com'.

2. User's software will use the HTTPS GET Method to call your page. Make sure you have HTTPS enable and that you have Access-Control-Allow-Origin: * configured on your web hook page.

      https://www.yourdomain.com/subfolder/hook.php?amount=400&merchant_skywallet=cloudcoin.yourdomain.com&guid=4ba87b01d54f4c398a60c14c3e5d6b17&meta=c2VhbiB3b3J0aGluZ3Rvbg==
     
  • amount is the number of CloudCoins your customer sent you.
  • merchant_skywallet is your skywallet account name such as cloudcoin.Folgory.com.
  • guid is a random GUID generated by the client that will be embedded in the memo of their payment to you.
  • meta is information that you give the client so that they can tell you who they are. This is most often a customer ID or Base64 data.

3. Program the web hook page. This depends on what your back-end programming language. We have programmers to help and sample pages. See #Sample PHP Web Hook Page below for the most common example.

4. Your hook page will need to call the CLI skywallet_connect Verify_Payment command with the necessary parameters to find the total that the user sent you. You can learn about this command at: github

5. You can test your web hook page by simply putting a GET command into your browser's address bar like this except use your own information: https://www.yourdomain.com/subfolder/hook.php?amount=400&merchant_skywallet=cloudcoin.yourdomain.com&guid=4ba87b01d54f4c398a60c14c3e5d6b17&meta=c2VhbiB3b3J0aGluZ3Rvbg==

Step 5. Program Your Transfer Script

Your Transfer script allows you to transfer CloudCoin from your Skywallet account to the Skywallet account of one of your users.

1. Create a script that calls the skywallet_connect transfer command. You can learn about this command at: CloudCoin Github

2. See an example script written in PHP at : CloudCoin Github

Step 6. Check your Skywallet Balance

You may want to check your Skywallet balance sometimes by calling the skywallet_connect balance command. You can see examples of scripts that do this at CloudCoin Github.

Step 7. Test The Whole Process

  1. Use the Skywallet ATM to create a second Skywallet account and deposit some CloudCoins in it. Or ask our developers to send CloudCoins to your newly created address.
  2. Using your new Skywallet, log into the ATM and click "Payment". Pay to "cloudcoin.YourDomain.com, Amount of coins that you want to test, memo/meta something like "Test".
  3. Check your webhook to see if it processed the request.
  4. Check the balance of your main Skywallet to see if the payment has been received.

Addendum

Example Web Server Configuring For LAMP

1. Create a fresh Ubuntu20.04 VPS in your CloudProvider Control Panel

2. Log in by ssh

3. Install all updates:

sudo apt update
sudo apt upgrade

4. reboot

5. Pick up a host name for your web server url e.g. myhost.mydomain.com

6. Create an 'A' record to point to the VPS in your DNS server

7. install apache, SSL and PHP

sudo apt install apache2
sudo a2enmod ssl
sudo apt install php libapache2-mod-php

8. Install your SSL-certificates, or create new using letsencrypt. See: https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-20-04

9. Create a new Virtual Domain in /etc/apache2/sites-enabled edit 000-mymerchant.conf

The minimal configuration is the following

<VirtualHost *:80>
        ServerName mymerchant.mydomain.com
        Redirect / https://mymerchant.mydomain.com
</VirtualHost>

<VirtualHost *:443>
        DocumentRoot /var/www/raida
        ServerName myhost.mydomain.com

        DirectoryIndex index.html
        Header add Access-Control-Allow-Origin "*"

        <Directory /var/www/raida>
                Allow from all
                AllowOverride all
        </Directory>

        <Files ~ "\.txt$">
                Order allow,deny
                Deny from all
        </Files>

        SSLEngine on
        SSLCertificateKeyFile "/etc/letsencrypt/live/myhost.mydomain.com/privkey.pem"
        SSLCertificateFile "/etc/letsencrypt/live/myhost.mydomain.com/fullchain.pem"
        ErrorLog /var/log/apache2/raida-error.log
        CustomLog /var/log/apache2/raida-access_log common
</VirtualHost>

(!) Dont forget to add Access-Control-Allow-Origin header to enable CORS policies

 sudo systemctl restart apache2
 sudo mkdir /var/www/data
 sudo chown www-data:www-data /var/www/raida

10. copy any PHP file (e.g. test.php) in the /var/www/raida directory and open the URL in the browser: https://mymerchant.myhost.com/test.php Make sure it is working

Sample PHP Web Hook Page

1. Put this PHP file (name it verify_payment.php) in the /var/www/raida directory:

<?php

$skywallet_connect = "/usr/local/bin/skywallet_connect";
if (!file_exists($skywallet_connect))
        die("skywallet_connect not found");

if (!is_executable($skywallet_connect))
        die("skywallet_connect doesn't have exec permissions");

function verify_payment($guid, $amount, $skywallet,$meta) {
        global $skywallet_connect;

	$cmd =  "$skywallet_connect verify_payment $guid";
	echo $cmd;

        // Exec the binary
        $json = exec($cmd, $outarray, $error_code);
        if ($error_code != 0) {
            die("Invalid response from skywallet_connect: $error_code, Output $json");
        }

        $arr = json_decode($json, true);
        if (!$arr) {
		die("Failed to decode json: $json");
        }

        if (!isset($arr['amount_verified']) || !isset($arr['status'])) {
		die("Corrupted response: $json");
        }

        if ($arr['status'] != "success") {
		die("Invalid status in response: $json");
        }

        $amountVerified = $arr['amount_verified'];
        if ($amountVerified != $amount) {
               die("Invalid amount: $amountVerified, expected: $amount");
	}

	touch("./file.txt");	
}

isset($_GET['merchant_skywallet'])? $mywallet = $_GET['merchant_skywallet']: $mywallet = '';
isset($_GET['amount'])? $amount = $_GET['amount']: $amount = 0;
isset($_GET['guid'])? $guid = $_GET['guid']: $guid = '';
isset($_GET['meta'])? $meta = $_GET['meta']: $meta = '';

verify_payment($guid, $amount, $mywallet,$meta);
?>

2. Pick up a domain name that will be used as your SkyWallet ID (E.g. myskywallet.mydomain.com) Set up two DNS records for this domain

A must point to the IP address of your previously registered mymerchant.skywallet.cc TXT record must go to the Full URL of verify_payment.php


3. Make sure DNS records are ready

4. Go to skywallet.cc and make a payment to myskywallet.mydomain.com

5. Check the Apache logs and make sure verify_payment.php is hit

6. Make sure ./file.txt is successfully created in the /var/www/raida directory

7. Change verify_payment.php script to meet your requirements

Videos That Show Examples of Depositing and Withdrawing from Existing Exchanges

1. How to deposit CloudCoins into the Folgory Exchange: https://www.youtube.com/embed/0mZ4lbJZL2s

2. How to withdraw CloudCoins from the Folgory Exchange: https://www.youtube.com/embed/zcuTyZL97bw

Marketing CloudCoin

What is CloudCoin (CC)?

CloudCoin is based on a new counterfeit detection technology called the "RAIDA" (Redundant Array of Independent Detection Agents). Instead of having a public ledger that tracks all transactions, the RAIDA simply checks to see if the coins are authentic. The goal of Cloudcoin is very simple: To be the best currency theoretically possible. This requires following the new "Theory of Perfect Money" that includes the following:

  • Confidentiality: The perfect currency should provide true privacy by require no accounts, usernames and passwords and should not record transactions.
  • Efficiency: The perfect currency should have no fees and not require substantial electricity and bandwidth.
  • Availability: The perfect currency should have data supremacy and be immune to quantum computers, governments, tech giants and even the administrators of the servers. It should be able to handle all the entire world’s transactions with no slowdown.

Who Are The Founders of CloudCoin?

CloudCoin's Founder is Sean Worthington. Advisors include Michael Terpin of the Transform Group, Stan Lerimer of Bitshares, Phil Flynn of the CME Group and Kevin Harrington, original Shark on the hit TV show Shark Tank. Sean has worked as a tenured computer science instructor for over 20 years. His subject of specialty is System Administration including teaching Cisco Academy, Microsoft Certification, Linux and general Network Infrastructure.

Sean came to the realization that monetary systems are information systems that help people make decisions. He recognized that the Blockchain is a database and so are all other monetary systems. He asked himself what makes the Blockchain unique and came to the conclusion that the Blockchain has no owner and has a property that Sean coined called "Data Supremacy" (When Hackers, Governments, Natural Disasters and even the creators and Administrators cannot take a database down).

Sean looked for other databases in the world that had data supremacy and found only one: The Root DNS System. This system has been up since the day it was created in 1985. Sean decided to use the Root DNS System as a starting point for the creation of a new data structure with Data Supremacy. He invented the RAIDA and received a patent USPTO #10,650,375 and granted the CloudCoin Consortium free use of the patent. The idea is to stop thousands of copy-cat coins like Blockchain has. Then he developed a global network of independent system administration so that each RAIDA server would be in a different legal jurisdiction (country) and so CloudCoin began.


What Makes CloudCoin Unique?

What Makes Cloudcoin Unique?

  1. There are no user accounts and no ledgers. Cloudcoin is 100% truly private.
  2. CloudCoins are file-based and not ledger-based so they seem like cash.
  3. CloudCoins trade much faster than other currencies and usually authenticate in unders 2 seconds.
  4. CloudCoin uses less electricity and bandwidth annually than a house and there are no fees.
  5. CloudCoin is the only crypto currency that can be recovered if lost.
  6. It is easy to mitigate against the risk of theft.
  7. CloudCoins can be hidden in files so that they are undetectable.
  8. CloudCoins do not depend on encryption for their physical integrity and are quantum-safe.
  9. Many people think CloudCoins are much easier to use than other digital currencies.
  10. CloudCoin is the first digital currency that is protected by a patent to prevent copy cats.
  11. The amount of coins is fixed so the number never grows or shrinks.
  12. The RAIDA Administrators are paid by recovering lost coins. Coins that have not been authenticated for over five years. This stops permanent loss of coins.
  13. The RAIDA was based on the root DNS Servers and like the root DNS servers, it has never gone down since the day it was created. The RAIDA was brought up in September 2016 and hasn't been down a second since. Note the Root DNS servers haven't gone down since 1985.
  14. CloudCoin did not have an ICO but instead, spent itself into existence.

Related Pages

Learn more about CloudCoin at https://CloudCoin.global and https://CloudCoin.com. You can download software at https://Cloudcoinconsortium.com

White Pager: https://www.cloudcoin.digital/whitepaper.pdf

Book: https://cloudcoinconsortium.com/book.pdf


How Many CloudCoins (CC) Are There in Circulation?

There are around 1.2 billion CloudCoins in circulation as of April 2021. There is a max. supply of 1,428,160,512 CloudCoin that is scheduled to be in circulation by December 2021. There is an ERC20 token called CCE (CloudCoin Etherium) that represents CloudCoin on some exchanges such as Bitcoin.com.

How Is The CloudCoin Network Secured?

Integrity is achieved by having redundant authentication systems. This means that each coin's authenticity is examined by 25 Agents. It is like going through customs while traveling and being required to show 25 different passports to 25 different custom agents. Because of the speed of light, we can do this within seconds.

The RAIDA also has a network infrastructure of volunteers called the "Guardians" who provid DNS, Reverse Proxy, DoS Protection and other services to CloudCoin users.

Where Can You Buy CloudCoin (CC)?

On your exchange!

What a CloudCoin File Looks like Inside

Each CloudCoin has a 'sn' (Serial Number) and twenty five 'an' (Authenticity Numbers). The 'an's are like passwords and each one corresponds to a different RAIDA Detection Agent.

{
	"cloudcoin": [{
		"nn": "1",
		"sn": "16777215",
		"an": [
			"be0f94e584584885ab86c301b8f1906d", "1e539633bc074bf88ebaeb7fd23279d7", "d735e4d16ff54eda8019e1a59ad33032", "b394553ff4e94f78a5f4c04df4102a20", "85b8f6956deb4dc28bc40b192ef5b0bc",
			"6775856024a14d10af30181477f8957a", "31274a1103c7406fb0f60736604f23b6", "6eb2c9bfb21e480b89f35c8124a8f3c0", "407b9d6b0b034b23b1d160d7da96a8ae", "2dbf38c2b1834287aed0fdcf4ba32274",
			"4da74b2a8c784731826716dd36296271", "0fe3fb2dee9648eeae64bdcf29abdf15", "01bdfe3b43b74b618c8db44e6b2febb6", "e0bdf8a182eb4174bcca6fda0c3609a1", "c8636145d53d42008c84432872816d4c",
			"f5258cb2cd2f4afca333bc7cd64f01eb", "c89eb2da6897489db2581d0b17d4d959", "89d5dba265c84a488106840a79316940", "8dba35338678464a9ef9a1686cd500af", "0a39da32d43546009147127443793297",
			"109a745bb88940a3ac9720bc8f9fee66", "a56933d0ab01400d99782c4eba0c6849", "ef6025e09f88499fb0490edf7ae21eba", "6014a91a938f440cb8f72658e0b9d61e", "cb64b024fe8c47d19d3fcd5c797fa0b3"
		],
		"pown": "ppeppppppfppppppnpppupppp",
		"ed": "9-2021",
		"aoid": []
	}]
}

How CloudCoins are Traded Outside of Exchanges

Here is the process for exchanging CloudCoins among users.

  1. The Owner a CloudCoin has the CloudCoin file. The file has twenty five Authenticity Numbers that are like passwords.
  2. To buy something, the Owner gives the CloudCoin file with the Authenticity Numbers to the Candidate Owner. Now both the Owner and the Candidate Owner have the Authenticity Numbers.
  3. Anyone who has the Authenticity Numbers can change them. The Candidate Owner changes the Authenticity Numbers to new numbers. Now the Owner no longer has the Authenticity Numbers and the Candidate Owner becomes the New Owner.