How to create your own cryptocurrency

From CoinWiki
Revision as of 01:52, 8 January 2018 by Owen (talk | contribs) (Install and Configure Forknote)
Jump to: navigation, search

Getting Started

One of the easiest ways to get your own blockchain up and running is with ForkNote, a CryptoNote blockchain fork with easy to setup configuration files. In this tutorial I make a few assumptions; mostly that you are comfortable on the Linux command line, know how to use tools like SSH, and have a basic understanding of networking and computing terminology.

Creating your Seed Nodes

This section only applies if you are creating your own blockchain, not if you will only be mining an existing blockchain. Before you can create your blockchain you're going to need seed nodes, basically the place where all other nodes are going to look so that they can update their own chain and find other peers. You'll need a minimum to two seed nodes to start. For our purposes, we're going to be using $5 / month instances on Amazon Lightsail.

Create Your Instances

  • Go to Amazon's Lightsail, if you do not have an account you'll need to create one.
  • Click on the "Create Instance" button.

Screen Shot 2018-01-05 at 7.57.44 PM.png

  • Select "OS Only", name your instances something meaningful, and create two them.

Screen Shot 2018-01-05 at 8.01.44 PM.png

  • Now we'll need to configure some network options like opening up the ports our nodes will use and adding static IP addresses. Click on your first instance and create a static IP for it.

Screen Shot 2018-01-05 at 8.20.30 PM.png

  • Go back to your home screen, select the same instance, and go into networking. Open TCP port 57575. You can use whatever port you want but for this tutorial this is what we'll be using

Screen Shot 2018-01-05 at 8.24.15 PM.png

  • Now do the exact same thing to your other instance.
  • Make a note of the two static IP addresses because we will be needing those for our configuration file. You might also need to download your private key from the connect section of your instance because we will use that to login. You can also use the "Connect using SSH" button from the connect section if you'd rather not mess around with keys, SSH apps, etc.

Create Your Configuration File

Forknote uses a configuration file that must be the same on all nodes. Creating a configuration file is easy when you use the online config file creator.

  • Blockchain Name: Be unique and creative. Your blockchain name should be all lowercase.
  • Address Prefix: All of your coins public addresses will start with this. It's not that important.
  • Money Supply: This number in conjunction with "Coin Decimal Point" will determine how many coins can exist on your blockchain. 18446744073709551615 is the maximum value allowed.
  • Coin Decimal Point: The number of decimal points your coin is allowed to have.
  • Percent of Premined Coins: The percentage of coins that will issued upon mining the genesis block.
  • Emission Speed Factor: CryptoNote rewards smaller and smaller rewards with each block mined. This value defines the emission curve slope.
  • Difficulty Target: This is the ideal amount of time that should go by between mined blocks. If blocks are being mined quicker, difficulty will go up. Transaction confirmation and emission speed both go up when this value is increased. The lower this number is the higher the orphan rate will be.
  • Genesis Coinbase Transaction Hex: Leave this blank, it will be generated for you.
  • Seed Nodes: Add the two IP addresses along with the port number we opened up for the two seed nodes that were created using Lightsail. The format should be IP:PORT, 52.88.81.50:57575 for example.

One you have filled in the require fields click the "View Config" button. Copy and save your config file somewhere as we will be using it to setup both seed and local nodes.

Install and Configure Forknote

  • Log into your Lightsail instance via SSH.
  • Download the Linux CLI version of Forknote from the Forknote download page. You can use wget from the command line like so:

wget https://github.com/forknote/forknote/releases/download/2.1.2/forknote-linux.tar.gz

  • Extract the archive. You can use tar from the command line like so:

tar -xzf forknote-linux.tar.gz

  • Change into the forknote-linux directory:

cd forknote-linux

  • Create a config file with your favorite text editor, paste the contents of the config file we generated earlier, and save it. I use nano:

nano sweetonium.conf

In your config file, change the value of p2p-bind-port to 57575 and the value of rpc-bind-port to 57576.

  • Start up your node in the background. You can specify your config and line file from the command line:

/home/ec2-user/forknote-linux/forknoted --no-console --log-level 4 --config-file ./sweetonium.conf --log-file ./sweetonium.log > /dev/null &

If you tail your log file you should see output:

tail -f ./sweetonium.log

You can do control+c to exit the tail command.

  • Now do the exact same thing on your other node. If you tail your log file you should see information about connecting to your other peer node. Yay!

Setting Up Your Local Node

Creating your local node is exactly the same as setting up your seed nodes, except this is where we will also be creating our wallet and doing our mining.

Creating Your Wallet

Mining

Creating a Mining Pool