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 generator 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 page 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 tool.

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?