Forking Qwertycoin

This is a guide on how to make your own Qwertycoin fork.

Creator's License

Before we begin, you will see a license at the beginning of every file. It is important not to remove or alter that license statement other than how we have it detailed here.

// Copyright (c) 2012-2017, The CryptoNote developers, The Bytecoin developers
// Copyright (c) 2016-2018, The Karbowanec developers
// Copyright (c) 2018-2019, The Qwertycoin Developers
// Copyright (c) 2019, Your Name Goes Here
//
// Please see the included LICENSE file for more information.

Steps

Change the Binary Names

src/CMakeLists.txt

// Daemon name (coin name + d at the end)
set_target_properties(QwertycoinTools_Daemon PROPERTIES OUTPUT_NAME "qwertycoind")

// Miner name
set_target_properties(QwertycoinTools_Miner PROPERTIES OUTPUT_NAME "miner")

// Service wallet name
set_target_properties(QwertycoinTools_PaymentGateService PROPERTIES OUTPUT_NAME "walletd")

// Wallet name
set_target_properties(QwertycoinTools_SimpleWallet PROPERTIES OUTPUT_NAME "simplewallet")

Change ASCII Art

lib/Global/Constants.h

This ASCII art will display on the binary programs. You can use this generatorarrow-up-right to create your ASCII art. Depending on the ASCII art you choose to use, you may need to provide a different version for Windows.

Change Block Time

lib/global/CryptoNoteConfig.h

Block time is measured in seconds. Qwertycoin has 2 minute blocks.

Change Wallet Address Prefix

lib/global/CryptoNoteConfig.h

Qwertycoin has an address prefix of QWC. Every wallet that is generated will begin with the same prefix. You can use the generator on this pagearrow-up-right to generate your prefix in hexadecimal.

Change Mined Coins Unlocked Timeframe

lib/global/CryptoNoteConfig.h

Mined coins should wait about 20 minutes before being awarded to the miners. You can adjust this to suit your coin's parameters.

Change Money Supply

lib/global/CryptoNoteConfig.h

The coin supply is measured in Atomic Units. The amount of decimal places that you have determines how many coins this number truly represents.

  • (uint64_t)(-1) = 18446744073709551616 coins

  • You can define number explicitly like so: UINT64_C(18446744073709551616)

Change Emission Speed

lib/global/CryptoNoteConfig.h

The emission speed governs how much of the coin's total available supply is awarded to miners with each block. You can play around with the emission speed using this toolarrow-up-right.

Change Decimal Points

lib/global/CryptoNoteConfig.h

Change this number to suit your needs.

Change Minimum and Maximum Transaction Fees

lib/global/CryptoNoteConfig.h

Set the fees in Atomic Units for each transaction. Make sure this number isn't too low or you might run into spam transaction attacks.

Change Remote Node Fee

lib/global/CryptoNoteConfig.h

This section defines the fees that the remote node will receive from the sender.

Set Dust Limit

lib/global/CryptoNoteConfig.h

Dust is the word for the smallest pieces of a coin that are too small to be included with in a block. Any amount lower than this will not be spendable. This number is measured in Atomic Units.

Set mixin Level

lib/global/CryptoNoteConfig.h

Mixin determines how private transactions are. A high mixin on a new network can cause transactions to fail so it is suggested to allow zero mixin and to start off with reasonable limits and increase later.

Change Hashing Algorithm

lib/global/CryptoNoteConfig.h

If you want to be an ASIC mined coin, make this number very high (~300000-350000). If you don't want to be ASIC mined, set this number to 3. You can also change V5 and V6 for your coin.

Change Coin Name

lib/global/CryptoNoteConfig.h

Change P2P and RPC Ports

lib/global/CryptoNoteConfig.h

Set these to personal preference.

Software Update URL

lib/global/CryptoNoteConfig.h

Set this according to your preferences.

Change Seed Nodes

lib/global/CryptoNoteConfig.h

Seed nodes are full daemons that serve up a copy of the blockchain data for peers just joining the network. Minimum amount is one but several are recommended.

Remove Checkpoints

lib/global/Checkpoints.h

Remove checkpoints.

Change CLI Wallet Config

lib/Global/Constants.h

Change to your personal preference.

Set Address Length

lib/Global/Constants.h

Your address length should be 95 + the number of letters in your address prefix.

How to Compile and Deploy Your Coin on Linux

Prerequisites

Example for Ubuntu

Building

  • After installing dependencies run simple script:

  • If all went well, it will complete successfully, and you will find all your binaries in the ./build/src directory.

Deploy

On the seed nodes that you listed in src/config/CryptoNoteConfig.h, launch your newly compiled daemons. It is suggested that you run the daemons inside of tmux to keep them running. Here's how to start the daemons inside a basic loop to relaunch the daemon if it fails.

  • Type control b + d to exit tmux

Advanced Parameters

Coming soon....

Last updated

Was this helpful?